(**
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)
|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
|Vectorize -> vectorize_memory_length
|Vconcat -> 0
|Vpick -> 0
|Serialize -> 0
|Prefix -> 1
|Select2 -> 0
|Select3 -> 0;;