method _mod = self#prim2 (fun t -> (self#at t)#_mod)
method larger = self#prim2 (fun t -> (self#at t)#larger)
method smaller = self#prim2 (fun t -> (self#at t)#smaller)
+ method max = self#prim2 (fun t -> (self#at t)#max)
+ method min = self#prim2 (fun t -> (self#at t)#min)
method delay : signal_type -> signal_type =
fun (s : signal_type) ->
let func : time -> value_type =
fun (t : time) ->
let i = (s#at t)#to_int in
- self#delay_by t i in
+ self#delay_by i t in
new signal freq func
method mem : signal_type =
let freq = self#frequency in
let () = self#add_memory 1 in
- let func = fun (t : time) -> self#delay_by t 1 in
+ let func = fun (t : time) -> self#delay_by 1 t in
new signal freq func
method rdtable : signal_type -> signal_type -> signal_type =
method prefix : signal_type -> signal_type =
fun (s_init : signal_type) ->
+ let () = self#add_memory 1 in
let func : time -> value_type =
fun t ->
if t = 0 then s_init#at 0
- else if t > 0 then self#at t
+ else if t > 0 then self#at (t - 1)
else raise (Signal_operation "prefix time < 0.") in
new signal self#frequency func