-(**
- Module: Symbol
- Description: Symbols' information in faust.
- @author WANG Haisheng
- Created: 05/08/2013 Modified: 05/08/2013
-*)
-
-open Types;;
-
-exception Symbol_error of string;;
-
-(* MACRO *)
-let delay_memory_length = 100000;;
-let rdtable_memory_length = 100000;;
-let vectorize_memory_length = 1000;;
-
-let dimension_of_symbol : symbol -> int * int =
- fun (s : symbol) ->
- match s with
- |Add -> (2, 1)
- |Sub -> (2, 1)
- |Mul -> (2, 1)
- |Div -> (2, 1)
- |Pass -> (1, 1)
- |Stop -> (1, 0)
- |Mem -> (1, 1)
- |Delay -> (2, 1)
- |Floor -> (1, 1)
- |Int -> (1, 1)
- |Sin -> (1, 1)
- |Cos -> (1, 1)
- |Atan -> (1, 1)
- |Atan2 -> (2, 1)
- |Sqrt -> (1, 1)
- |Rdtable -> (3, 1)
- |Mod -> (2, 1)
- |Vectorize -> (2, 1)
- |Vconcat -> (2, 1)
- |Vpick -> (2, 1)
- |Serialize -> (1, 1)
- |Larger -> (2, 1)
- |Smaller -> (2, 1)
- |Max -> (2, 1)
- |Min -> (2, 1)
- |Prefix -> (2, 1)
- |Select2 -> (3, 1)
- |Select3 -> (4, 1);;
-
-let delay_of_symbol : symbol -> int =
- fun (s : symbol) ->
- match s with
- |Add -> 0
- |Sub -> 0
- |Mul -> 0
- |Div -> 0
- |Pass -> 0
- |Stop -> 0
- |Mem -> 1
- |Delay -> delay_memory_length
- |Floor -> 0
- |Int -> 0
- |Sin -> 0
- |Cos -> 0
- |Atan -> 0
- |Atan2 -> 0
- |Sqrt -> 0
- |Rdtable -> rdtable_memory_length
- |Mod -> 0
- |Larger -> 0
- |Smaller -> 0
- |Max -> 0
- |Min -> 0
- |Vectorize -> vectorize_memory_length
- |Vconcat -> 0
- |Vpick -> 0
- |Serialize -> 0
- |Prefix -> 1
- |Select2 -> 0
- |Select3 -> 0;;
-
-let string_of_symbol : symbol -> string =
- fun (s : symbol) ->
- match s with
- |Add -> "Add"
- |Sub -> "Sub"
- |Mul -> "Mul"
- |Div -> "Div"
- |Pass -> "Pass"
- |Stop -> "Stop"
- |Mem -> "Mem"
- |Delay -> "Delay"
- |Floor -> "Floor"
- |Int -> "Int"
- |Sin -> "Sin"
- |Cos -> "Cos"
- |Atan -> "Atan"
- |Atan2 -> "Atan2"
- |Sqrt -> "Sqrt"
- |Rdtable -> "Rdtable"
- |Mod -> "Mod"
- |Larger -> "Larger"
- |Smaller -> "Smaller"
- |Max -> "Max"
- |Min -> "Min"
- |Vectorize -> "Vectorize"
- |Vconcat -> "Vconcat"
- |Vpick -> "Vpick"
- |Serialize -> "Serialize"
- |Prefix -> "Prefix"
- |Select2 -> "Select2"
- |Select3 -> "Select3";;
-