X-Git-Url: https://scm.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/14e4f8cd6102d273c520c2d2e0168a5221a7daeb..fc2ec49c325b99370170789886b4be4f43e16d68:/interpretor/signal.ml?ds=sidebyside diff --git a/interpretor/signal.ml b/interpretor/signal.ml index b8f0e68..a32923e 100644 --- a/interpretor/signal.ml +++ b/interpretor/signal.ml @@ -90,6 +90,8 @@ class signal : int -> (time -> value_type) -> signal_type = 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) -> @@ -98,13 +100,13 @@ class signal : int -> (time -> value_type) -> 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 = @@ -141,10 +143,11 @@ class signal : int -> (time -> value_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