-
-type index = int;;
-
-type time = int;;
-
-type basic = N of int
- | R of float
- | Vec of vector
- | Zero
- | Error
-and vector = < size : int; nth : (index -> basic) >;;
-
-class type vector_type =
- object
- method size : int
- method nth : index -> basic
- end;;
-
-class type value_type =
- object
- method get : basic
- method to_int : int
- method to_float : float
- method to_float_array : float array
- method of_float_array : float array -> value_type
- method to_string : string
- method normalize : unit
- method add : value_type -> value_type
- method neg : value_type
- method sub : value_type -> value_type
- method mul : value_type -> value_type
- method recip : value_type
- method div : value_type -> value_type
- method power : value_type -> value_type
- method _and : value_type -> value_type
- method _or : value_type -> value_type
- method _xor : value_type -> value_type
- method zero : value_type
- method floor : value_type
- method ceil : value_type
- method rint : value_type
- method int : value_type
- method float : value_type
- method sin : value_type
- method asin : value_type
- method cos : value_type
- method acos : value_type
- method tan : value_type
- method atan : value_type
- method atan2 : value_type -> value_type
- method exp : value_type
- method sqrt : value_type
- method ln : value_type
- method lg : value_type
- method abs : value_type
- method fmod : value_type -> value_type
- method _mod : value_type -> value_type
- method remainder : value_type -> value_type
- method gt : value_type -> value_type
- method lt : value_type -> value_type
- method geq : value_type -> value_type
- method leq : value_type -> value_type
- method eq : value_type -> value_type
- method neq : value_type -> value_type
- method shl : value_type -> value_type
- method shr : value_type -> value_type
- method max : value_type -> value_type
- method min : value_type -> value_type
- end;;
-
-
-type symbol = Add
- | Sub
- | Mul
- | Div
- | Power
- | Pass
- | Stop
- | And
- | Or
- | Xor
- | Mem
- | Delay
- | Floor
- | Ceil
- | Rint
- | Int
- | Float
- | Sin
- | Asin
- | Cos
- | Acos
- | Tan
- | Atan
- | Atan2
- | Exp
- | Sqrt
- | Ln
- | Lg
- | Abs
- | Fmod
- | Mod
- | Remainder
- | Vectorize
- | Vconcat
- | Vpick
- | Serialize
- | Gt
- | Lt
- | Geq
- | Leq
- | Eq
- | Neq
- | Shl
- | Shr
- | Max
- | Min
- | Prefix
- | Select2
- | Select3
- | Rdtable
- | Rwtable
-
-type faust_exp =
- Const of basic
- | Ident of symbol
- | Par of faust_exp * faust_exp
- | Seq of faust_exp * faust_exp
- | Rec of faust_exp * faust_exp
- | Split of faust_exp * faust_exp
- | Merge of faust_exp * faust_exp
-
-
-class type rate_type =
- object
- method to_int : int
- method to_float : float
- method to_string : string
- method num : int
- method denom : int
- method equal : rate_type -> bool
- method mul : int -> rate_type
- method div : int -> rate_type
- end
-
-class type signal_type =
- object
- method frequency : rate_type
- method at : time -> value_type
- method add_memory : int -> unit
- method add : signal_type -> signal_type
- method neg : signal_type
- method sub : signal_type -> signal_type
- method mul : signal_type -> signal_type
- method div : signal_type -> signal_type
- method power : signal_type -> signal_type
- method _and : signal_type -> signal_type
- method _or : signal_type -> signal_type
- method _xor : signal_type -> signal_type
- method delay : signal_type -> signal_type
- method mem : signal_type
- method vectorize : signal_type -> signal_type
- method serialize : signal_type
- method vconcat : signal_type -> signal_type
- method vpick : signal_type -> signal_type
- method floor : signal_type
- method ceil : signal_type
- method rint : signal_type
- method int : signal_type
- method float : signal_type
- method sin : signal_type
- method asin : signal_type
- method cos : signal_type
- method acos : signal_type
- method tan : signal_type
- method atan : signal_type
- method atan2 : signal_type -> signal_type
- method exp : signal_type
- method sqrt : signal_type
- method ln : signal_type
- method lg : signal_type
- method abs : signal_type
- method fmod : signal_type -> signal_type
- method _mod : signal_type -> signal_type
- method remainder : signal_type -> signal_type
- method gt : signal_type -> signal_type
- method lt : signal_type -> signal_type
- method geq : signal_type -> signal_type
- method leq : signal_type -> signal_type
- method eq : signal_type -> signal_type
- method neq : signal_type -> signal_type
- method shl : signal_type -> signal_type
- method shr : signal_type -> signal_type
- method max : signal_type -> signal_type
- method min : signal_type -> signal_type
- method rdtable : signal_type -> signal_type -> signal_type
- method rwtable : signal_type -> signal_type ->
- signal_type -> signal_type -> signal_type
- method select2 : signal_type -> signal_type -> signal_type
- method select3 : signal_type -> signal_type -> signal_type -> signal_type
- method prefix : signal_type -> signal_type
- end;;
-
-type matrix = float array array;;
-
-type data = float array array array;;
-
-class type beam_type =
- object
- method get : signal_type array
- method width : int
- method sub : int -> int -> beam_type
- method cut : int -> beam_type * beam_type
- method append : beam_type -> beam_type
- method matching : int -> beam_type
- method at : time -> value_type array
- method output : int -> data
- method frequency : rate_type array
- end;;
-
-
-class type dimension_type =
- object
- method input : int
- method output : int
- method par : dimension_type -> dimension_type
- method seq : dimension_type -> dimension_type
- method split : dimension_type -> dimension_type
- method merge : dimension_type -> dimension_type
- method _rec : dimension_type -> dimension_type
- end;;
-
-
-class type process_type =
- object
- method exp : faust_exp
- method dim : dimension_type
- method delay : int
- method eval : beam_type -> beam_type
- end;;
-
-
-class type io_type =
- object
- method set : string -> string -> unit
- method read : string array -> beam_type
- method write : rate_type array -> data -> string array
- end;;