Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell98 |
Non-standard mathematical classes and class instances.
- dinf :: UGen
- sc3_true :: Num n => n
- sc3_false :: Num n => n
- sc3_not :: (Ord n, Num n) => n -> n
- sc3_bool :: Num n => Bool -> n
- sc3_comparison :: Num n => (n -> n -> Bool) -> n -> n -> n
- sc3_eq :: (Num n, Eq n) => n -> n -> n
- sc3_neq :: (Num n, Eq n) => n -> n -> n
- sc3_lt :: (Num n, Ord n) => n -> n -> n
- sc3_lte :: (Num n, Ord n) => n -> n -> n
- sc3_gt :: (Num n, Ord n) => n -> n -> n
- sc3_gte :: (Num n, Ord n) => n -> n -> n
- roundTo_ :: (RealFrac n, Ord n) => n -> n -> n
- sc3_round_to :: (RealFrac n, Ord n) => n -> n -> n
- sc3_idiv :: RealFrac n => n -> n -> n
- binop_hs_tbl :: (Real n, Floating n, RealFrac n, Ord n) => [(Binary, n -> n -> n)]
- binop_special_hs :: (Real n, RealFrac n, Floating n, Ord n) => Int -> Maybe (n -> n -> n)
- uop_hs_tbl :: (RealFrac n, Floating n, Ord n) => [(Unary, n -> n)]
- uop_special_hs :: (RealFrac n, Floating n, Ord n) => Int -> Maybe (n -> n)
- class (Eq a, Num a) => EqE a where
- class (Ord a, Num a) => OrdE a where
- sc3_properFraction :: (RealFrac t, Num t) => t -> (t, t)
- sc3_truncate :: (RealFrac a, Num a) => a -> a
- sc3_round :: (RealFrac a, Num a) => a -> a
- sc3_ceiling :: (RealFrac a, Num a) => a -> a
- sc3_floor :: (RealFrac a, Num a) => a -> a
- class RealFrac a => RealFracE a where
- properFractionE :: a -> (a, a)
- truncateE :: a -> a
- roundE :: a -> a
- ceilingE :: a -> a
- floorE :: a -> a
- roundTo :: UGen -> UGen -> UGen
- ceil :: UGen -> UGen
- midiCPS' :: Floating a => a -> a
- cpsMIDI' :: Floating a => a -> a
- cpsOct' :: Floating a => a -> a
- ampDb' :: Floating a => a -> a
- dbAmp' :: Floating a => a -> a
- cubed' :: Num a => a -> a
- midiRatio' :: Floating a => a -> a
- octCPS' :: Floating a => a -> a
- ratioMIDI' :: Floating a => a -> a
- squared' :: Num a => a -> a
- class (Floating a, Ord a) => UnaryOp a where
- ampDb :: a -> a
- asFloat :: a -> a
- asInt :: a -> a
- cpsMIDI :: a -> a
- cpsOct :: a -> a
- cubed :: a -> a
- dbAmp :: a -> a
- distort :: a -> a
- frac :: a -> a
- isNil :: a -> a
- log10 :: a -> a
- log2 :: a -> a
- midiCPS :: a -> a
- midiRatio :: a -> a
- notE :: a -> a
- notNil :: a -> a
- octCPS :: a -> a
- ramp_ :: a -> a
- ratioMIDI :: a -> a
- softClip :: a -> a
- squared :: a -> a
- difSqr' :: Num a => a -> a -> a
- hypotx' :: (Ord a, Floating a) => a -> a -> a
- class (Floating a, RealFrac a, Ord a) => BinaryOp a where
- absDif :: a -> a -> a
- amClip :: a -> a -> a
- atan2E :: a -> a -> a
- clip2 :: a -> a -> a
- difSqr :: a -> a -> a
- excess :: a -> a -> a
- exprandRange :: a -> a -> a
- fill :: a -> a -> a
- firstArg :: a -> a -> a
- fold2 :: a -> a -> a
- gcdE :: a -> a -> a
- hypot :: a -> a -> a
- hypotx :: a -> a -> a
- iDiv :: a -> a -> a
- lcmE :: a -> a -> a
- modE :: a -> a -> a
- randRange :: a -> a -> a
- ring1 :: a -> a -> a
- ring2 :: a -> a -> a
- ring3 :: a -> a -> a
- ring4 :: a -> a -> a
- roundUp :: a -> a -> a
- scaleNeg :: a -> a -> a
- sqrDif :: a -> a -> a
- sqrSum :: a -> a -> a
- sumSqr :: a -> a -> a
- thresh :: a -> a -> a
- trunc :: a -> a -> a
- wrap2 :: a -> a -> a
- fmod_f32 :: Float -> Float -> Float
- class Num a => TernaryOp a where
- mul_add :: a -> a -> a -> a
- wrap' :: RealFracE n => n -> n -> n -> n
- genericWrap :: (Ord a, Num a) => a -> a -> a -> a
- wrap_ :: RealFracE n => n -> n -> n -> n
- foldToRange :: (Ord a, Num a) => a -> a -> a -> a
- fold_ :: (Ord a, Num a) => a -> a -> a -> a
- clip' :: Ord a => a -> a -> a -> a
- clip_ :: Ord a => a -> a -> a -> a
- hypot_ :: Floating a => a -> a -> a
- linLin_muladd :: Fractional t => t -> t -> t -> t -> (t, t)
- linlin :: (Fractional a, TernaryOp a) => a -> a -> a -> a -> a -> a
- linlin' :: Fractional a => a -> a -> a -> a -> a -> a
- urange :: (Fractional a, TernaryOp a) => a -> a -> a -> a
- urange' :: Fractional a => a -> a -> a -> a
- range_muladd :: Fractional t => t -> t -> (t, t)
- range :: (Fractional a, TernaryOp a) => a -> a -> a -> a
- range' :: Fractional a => a -> a -> a -> a
Documentation
sc3_not :: (Ord n, Num n) => n -> n Source
Lifted not
.
sc3_not sc3_true == sc3_false sc3_not sc3_false == sc3_true
sc3_comparison :: Num n => (n -> n -> Bool) -> n -> n -> n Source
Lift comparison function.
roundTo_ :: (RealFrac n, Ord n) => n -> n -> n Source
Variant of SC3
roundTo
function.
let r = [0,0,0.25,0.25,0.5,0.5,0.5,0.75,0.75,1,1] in map (`roundTo_` 0.25) [0,0.1 .. 1] == r
sc3_round_to :: (RealFrac n, Ord n) => n -> n -> n Source
binop_hs_tbl :: (Real n, Floating n, RealFrac n, Ord n) => [(Binary, n -> n -> n)] Source
Association table for Binary
to haskell function implementing operator.
binop_special_hs :: (Real n, RealFrac n, Floating n, Ord n) => Int -> Maybe (n -> n -> n) Source
lookup
binop_hs_tbl
via toEnum
.
uop_hs_tbl :: (RealFrac n, Floating n, Ord n) => [(Unary, n -> n)] Source
Association table for Unary
to haskell function implementing operator.
uop_special_hs :: (RealFrac n, Floating n, Ord n) => Int -> Maybe (n -> n) Source
lookup
uop_hs_tbl
via toEnum
.
class (Eq a, Num a) => EqE a where Source
Variant on Eq class, result is of the same type as the values compared.
Nothing
class (Ord a, Num a) => OrdE a where Source
Variant on Ord class, result is of the same type as the values compared.
Nothing
sc3_properFraction :: (RealFrac t, Num t) => t -> (t, t) Source
sc3_truncate :: (RealFrac a, Num a) => a -> a Source
sc3_ceiling :: (RealFrac a, Num a) => a -> a Source
midiRatio' :: Floating a => a -> a Source
ratioMIDI' :: Floating a => a -> a Source
class (Floating a, Ord a) => UnaryOp a where Source
Unary operator class.
map (floor . (* 1e4) . dbAmp) [-90,-60,-30,0] == [0,10,316,10000]
Nothing
class (Floating a, RealFrac a, Ord a) => BinaryOp a where Source
Binary operator class.
Nothing
fmod_f32 :: Float -> Float -> Float Source
The SC3 %
operator is the mod'
function.
> 1.5 % 1.2 // ~= 0.3 > -1.5 % 1.2 // ~= 0.9 > 1.5 % -1.2 // ~= -0.9 > -1.5 % -1.2 // ~= -0.3
1.5 `fmod_f32` 1.2 -- ~= 0.3 (-1.5) `fmod_f32` 1.2 -- ~= 0.9 1.5 `fmod_f32` (-1.2) -- ~= -0.9 (-1.5) `fmod_f32` (-1.2) -- ~= -0.3
> 1.2 % 1.5 // ~= 1.2 > -1.2 % 1.5 // ~= 0.3 1.2 % -1.5 // ~= -0.3 -1.2 % -1.5 // ~= -1.2
1.2 `fmod_f32` 1.5 -- ~= 1.2 (-1.2) `fmod_f32` 1.5 -- ~= 0.3 1.2 `fmod_f32` (-1.5) -- ~= -0.3 (-1.2) `fmod_f32` (-1.5) -- ~= -1.2
wrap' :: RealFracE n => n -> n -> n -> n Source
Wrap k to within range (i,j), ie. AbstractFunction.wrap
.
> [5,6].wrap(0,5) == [5,0] map (wrap' 0 5) [5,6] == [5,0]
> [9,10,5,6,7,8,9,10,5,6].wrap(5,10) == [9,10,5,6,7,8,9,10,5,6] map (wrap' 5 10) [3..12] == [9,10,5,6,7,8,9,10,5,6]
genericWrap :: (Ord a, Num a) => a -> a -> a -> a Source
Generic variant of wrap'
.
> [5,6].wrap(0,5) == [5,0] map (genericWrap 0 5) [5,6] == [5,0]
> [9,10,5,6,7,8,9,10,5,6].wrap(5,10) == [9,10,5,6,7,8,9,10,5,6] map (genericWrap (5::Integer) 10) [3..12] == [9,10,5,6,7,8,9,10,5,6]
wrap_ :: RealFracE n => n -> n -> n -> n Source
Variant of wrap'
with SC3
argument ordering.
map (\n -> wrap_ n 5 10) [3..12] == map (wrap' 5 10) [3..12]
foldToRange :: (Ord a, Num a) => a -> a -> a -> a Source
Fold k to within range (i,j), ie. AbstractFunction.fold
map (foldToRange 5 10) [3..12] == [7,6,5,6,7,8,9,10,9,8]
fold_ :: (Ord a, Num a) => a -> a -> a -> a Source
Variant of foldToRange
with SC3
argument ordering.
clip' :: Ord a => a -> a -> a -> a Source
Clip k to within range (i,j),
map (clip' 5 10) [3..12] == [5,5,5,6,7,8,9,10,10,10]
linLin_muladd :: Fractional t => t -> t -> t -> t -> (t, t) Source
Calculate multiplier and add values for linLin
transform.
range_muladd 3 4 == (0.5,3.5) linLin_muladd (-1) 1 3 4 == (0.5,3.5) linLin_muladd 0 1 3 4 == (1,3) linLin_muladd (-1) 1 0 1 == (0.5,0.5)
linlin :: (Fractional a, TernaryOp a) => a -> a -> a -> a -> a -> a Source
Map from one linear range to another linear range.
linlin' :: Fractional a => a -> a -> a -> a -> a -> a Source
Variant without TernaryOp
constraint.
urange :: (Fractional a, TernaryOp a) => a -> a -> a -> a Source
Scale uni-polar (0,1) input to linear (l,r) range
map (urange 3 4) [0,0.5,1] == [3,3.5,4]
urange' :: Fractional a => a -> a -> a -> a Source
Variant without TernaryOp
constraint.
range_muladd :: Fractional t => t -> t -> (t, t) Source
Calculate multiplier and add values for range
transform.
range_muladd 3 4 == (0.5,3.5)
range :: (Fractional a, TernaryOp a) => a -> a -> a -> a Source
Scale bi-polar (-1,1) input to linear (l,r) range. Note that the
argument order is not the same as linLin
.
map (range 3 4) [-1,0,1] == [3,3.5,4] map (\x -> let (m,a) = linLin_muladd (-1) 1 3 4 in x * m + a) [-1,0,1]
range' :: Fractional a => a -> a -> a -> a Source
Variant without TernaryOp
constraint.