Safe Haskell | None |
---|
Data flow nodes.
- data DF a where
- K :: K' a => a -> DF a
- A :: Vec Float -> DF (Vec Float)
- R :: K' a => R_Id -> TypeRep -> Either a (DF b, DF a) -> DF b
- P0 :: K' a => String -> TypeRep -> DF a
- P1 :: (K' a, K' b) => String -> TypeRep -> DF a -> DF b
- P2 :: (K' a, K' b, K' c) => String -> TypeRep -> DF a -> DF b -> DF c
- P3 :: (K' a, K' b, K' c, K' d) => String -> TypeRep -> DF a -> DF b -> DF c -> DF d
- M :: K' a => DF a -> DF () -> DF a
- df_typeOf :: K' a => DF a -> TypeRep
- df_primitive :: DF a -> Maybe String
- mrg :: K' a => DF a -> DF () -> DF a
- df_vec :: V_Id -> [Float] -> DF (Vec Float)
- df_vec_m :: UId m => [Float] -> m (DF (Vec Float))
- df_vec_size :: DF a -> Maybe Int
- df_tbl_size :: DF a -> Maybe Int
- type Unary_Op a = a -> a
- type Binary_Op a = a -> a -> a
- type Ternary_Op a = a -> a -> a -> a
- type Quaternary_Op a = a -> a -> a -> a -> a
- type Quinary_Op a = a -> a -> a -> a -> a -> a
- type Senary_Op a = a -> a -> a -> a -> a -> a -> a
- type Binary_Fn i o = i -> i -> o
- mk_uop :: K' a => String -> Unary_Op (DF a)
- mk_binop :: K' a => String -> Binary_Op (DF a)
- mk_ternaryop :: K' a => String -> Ternary_Op (DF a)
- df_mul_add :: K_Num a => DF a -> DF a -> DF a -> DF a
- df_add_optimise :: K_Num a => DF a -> DF a -> DF a
- df_bw_and :: DF Int32 -> DF Int32 -> DF Int32
- df_bw_or :: DF Int32 -> DF Int32 -> DF Int32
- df_bw_not :: DF Int32 -> DF Int32
- df_eq :: K_Ord a => DF a -> DF a -> DF Bool
- df_lt :: K_Ord a => DF a -> DF a -> DF Bool
- df_gte :: K_Ord a => DF a -> DF a -> DF Bool
- df_gt :: K_Ord a => DF a -> DF a -> DF Bool
- df_lte :: K_Ord a => DF a -> DF a -> DF Bool
- df_max :: K_Ord a => DF a -> DF a -> DF a
- df_min :: K_Ord a => DF a -> DF a -> DF a
- df_float_to_int32 :: DF Float -> DF Int32
- df_int32_to_float :: DF Int32 -> DF Float
- i32_to_normal_f32 :: DF Int32 -> DF Float
- df_mod :: Binary_Op (DF Int32)
- df_fmodf :: Binary_Op (DF Float)
- df_ceilf :: DF Float -> DF Float
- df_floorf :: DF Float -> DF Float
- df_lrintf :: DF Float -> DF Int32
- df_roundf :: DF Float -> DF Float
- rec_r :: K' a => R_Id -> a -> (DF a -> (DF b, DF a)) -> DF b
- rec_m :: (K' a, UId m) => a -> (DF a -> (DF b, DF a)) -> m (DF b)
- rec_h :: (K' a, Show b) => a -> (DF a -> (DF b, DF a)) -> DF b
- rec_mM :: (K' a, UId m) => a -> (DF a -> m (DF b, DF a)) -> m (DF b)
- in1 :: DF Float
- out1 :: DF Float -> DF ()
- out2 :: DF Float -> DF Float -> DF ()
- out3 :: DF Float -> DF Float -> DF Float -> DF ()
- ctl1 :: DF Int32 -> DF Float
- df_and :: DF Bool -> DF Bool -> DF Bool
- df_or :: DF Bool -> DF Bool -> DF Bool
- df_not :: DF Bool -> DF Bool
- select2 :: K' a => DF Bool -> DF a -> DF a -> DF a
- w_sample_rate :: DF Float
- w_kr_nframes :: DF Int32
- w_kr_edge :: DF Bool
- b_read :: DF Int32 -> DF Int32 -> DF Float
- b_write :: DF Int32 -> DF Int32 -> DF Float -> DF ()
- a_read :: DF (Vec Float) -> DF Int32 -> DF Float
- a_write :: DF (Vec Float) -> DF Int32 -> DF Float -> DF ()
- df_erase :: K' a => DF a -> UDF
DF
Data flow node.
K :: K' a => a -> DF a | |
A :: Vec Float -> DF (Vec Float) | |
R :: K' a => R_Id -> TypeRep -> Either a (DF b, DF a) -> DF b | |
P0 :: K' a => String -> TypeRep -> DF a | |
P1 :: (K' a, K' b) => String -> TypeRep -> DF a -> DF b | |
P2 :: (K' a, K' b, K' c) => String -> TypeRep -> DF a -> DF b -> DF c | |
P3 :: (K' a, K' b, K' c, K' d) => String -> TypeRep -> DF a -> DF b -> DF c -> DF d | |
M :: K' a => DF a -> DF () -> DF a |
df_typeOf :: K' a => DF a -> TypeRepSource
Typeable instance for DF
.
df_typeOf (C (undefined::Int32)) == int32_t df_typeOf (C (undefined::Float)) == float_t df_typeOf (A undefined) == vec_float_t df_typeOf (0::DF Int32) == int32_t df_typeOf (0.0::DF Float) == float_t
MRG
DF Vec
df_tbl_size :: DF a -> Maybe IntSource
df_vec_size
variant, tables have a guard point.
Operator types
type Ternary_Op a = a -> a -> a -> aSource
Ternary operator.
type Quaternary_Op a = a -> a -> a -> a -> aSource
Quaternary operator.
type Quinary_Op a = a -> a -> a -> a -> a -> aSource
Quinary operator.
Uniform function types
Primitive constructors
mk_ternaryop :: K' a => String -> Ternary_Op (DF a)Source
Binary operator.
df_add_optimise :: K_Num a => DF a -> DF a -> DF aSource
Optimising addition primitive. If either input is a multiplier node, unfold to a multiplier-add node.
df_add_optimise (2 * 3) (4::DF Int32) df_add_optimise (2::DF Int32) (3 * 4)
Bits
Ord
Cast
Integral
RealFrac
Backward arcs
rec_r :: K' a => R_Id -> a -> (DF a -> (DF b, DF a)) -> DF bSource
Introduce backward arc with implicit unit delay.
The function receives the previous output as input, initially y0
,
and returns a (feed-forward,feed-backward) pair.
rec_r (R_Id 0) (0::Int) ((\i->(i,i)) . (+) 1) rec_r (R_Id 0) (0.0::Float) ((\i->(i,i)) . (+) 1.0)
rec_mM :: (K' a, UId m) => a -> (DF a -> m (DF b, DF a)) -> m (DF b)Source
Variant of rec_m
with monadic action in backward arc.
Primitives
select2 :: K' a => DF Bool -> DF a -> DF a -> DF aSource
If p then q else r. p must have type bool, and q and r must have equal types.
w_sample_rate :: DF FloatSource
Operating sample rate.
w_kr_nframes :: DF Int32Source
Number of frames in current control period.
b_write :: DF Int32 -> DF Int32 -> DF Float -> DF ()Source
Buffer write, write to buffer p at index q value r.