X-Git-Url: https://svn.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/14e4f8cd6102d273c520c2d2e0168a5221a7daeb..c49372ebd1adde89ca83af5e37d1441ff2c2e7d5:/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