summaryrefslogtreecommitdiff
path: root/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge/demos/lutin
blob: b031cee1ee953bd38f01376ffa27648dabe64dfe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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) 
  }