+++ /dev/null
-(**
- Module: Value
- Description: basic data type in the vectorial faust interpreter.
- @author WANG Haisheng
- Created: 31/05/2013 Modified: 17/07/2013
-*)
-
-open Types;;
-open Basic;;
-
-let convert : (basic -> 'a) -> basic -> 'a =
- fun oper -> fun b -> oper b;;
-
-class value : basic -> value_type =
- fun (b_init : basic) ->
- object (self)
- val mutable b = b_init
- method get = b
- method normalize = b <- basic_normalize self#get
-
- method to_float = convert basic_to_float self#get
- method to_int = convert basic_to_int self#get
- method to_float_array = convert basic_to_float_array self#get
- method to_string = convert basic_to_string self#get
- method of_float_array : float array -> value_type =
- fun data -> new value (basic_of_float_array data)
-
- method private prim1 : (basic -> basic) -> value =
- fun oper ->
- new value (oper self#get)
-
- method neg = self#prim1 basic_neg
- method recip = self#prim1 basic_recip
- method zero = self#prim1 basic_zero
- method floor = self#prim1 basic_floor
- method ceil = self#prim1 basic_ceil
- method rint = self#prim1 basic_rint
- method int = self#prim1 basic_int
- method float = self#prim1 basic_float
- method sin = self#prim1 basic_sin
- method asin = self#prim1 basic_asin
- method cos = self#prim1 basic_cos
- method acos = self#prim1 basic_acos
- method tan = self#prim1 basic_tan
- method atan = self#prim1 basic_atan
- method exp = self#prim1 basic_exp
- method sqrt = self#prim1 basic_sqrt
- method ln = self#prim1 basic_ln
- method lg = self#prim1 basic_lg
- method abs = self#prim1 basic_abs
-
- method private prim2 : (basic -> basic -> basic) -> value -> value =
- fun oper ->
- fun v ->
- new value (oper self#get v#get)
-
- method add = self#prim2 basic_add
- method sub = self#prim2 basic_sub
- method mul = self#prim2 basic_mul
- method div = self#prim2 basic_div
- method power = self#prim2 basic_power
- method _and = self#prim2 basic_and
- method _or = self#prim2 basic_or
- method _xor = self#prim2 basic_xor
- method _mod = self#prim2 basic_mod
- method fmod = self#prim2 basic_fmod
- method remainder = self#prim2 basic_remainder
- method gt = self#prim2 basic_gt
- method lt = self#prim2 basic_lt
- method geq = self#prim2 basic_geq
- method leq = self#prim2 basic_leq
- method eq = self#prim2 basic_eq
- method neq = self#prim2 basic_neq
- method atan2 = self#prim2 basic_atan2
- method max = self#prim2 basic_max
- method min = self#prim2 basic_min
- method shl = self#prim2 basic_shl
- method shr = self#prim2 basic_shr
-
- end;;
-