19 lines
		
	
	
		
			497 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			19 lines
		
	
	
		
			497 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
node gen_x_v1() returns (x:real) = loop 0.0<x and x<42.0
 | 
						|
 | 
						|
node gen_x_v2() returns (x:real) = 
 | 
						|
  loop { 0.0<x and x<42.0 fby loop [20] x = pre x }
 | 
						|
 | 
						|
node gen_x_v3() returns (target:real; x:real=0.0) =
 | 
						|
  run target := gen_x_v2() in
 | 
						|
  loop { x = (pre x + target) / 2.0 }
 | 
						|
 | 
						|
let inertia=0.6
 | 
						|
 | 
						|
node gen_x_v4()  returns (target:real; x:real=0.0) =
 | 
						|
  run target := gen_x_v2() in
 | 
						|
  exist px,ppx : real = 0.0 in
 | 
						|
  loop { 
 | 
						|
      px = pre x and ppx = pre px and
 | 
						|
      x = (px+target) / 2.0+inertia*(px-ppx) 
 | 
						|
  }
 |