def start

unified-nsga-iii@0.2.2.0 · sbx.bend:161

import unified-nsga-iii@0.2.2.0/sbx.bend as Sbx
import Base
import unified-nsga-iii@0.2.2.0/individual.bend as Ind
import unified-nsga-iii@0.2.2.0/bounds.bend as Bounds
import unified-nsga-iii@0.2.2.0/rng.bend as Rng

161def start(
162  +eta: F32,
163  +x1s: List<&2, F32>,
164  +x2s: List<&2, F32>,
165  +box: Bounds.Box,
166  rng: Rng.State,
167  +m: Nat,
168  n: Nat
169) -> Rng.State & Ind.Individual & Ind.Individual:
170  match n:
171    case 0n:
172      (rng, Ind.from_variables(x1s, m), Ind.from_variables(x2s, m))
173    case 1n+f:
174      +rng2 = Rng.next_double(rng)
175      finish(
176        m,
177        loop(
178          1n+f,
179          F32.is_gt(Rng.last_double(rng2), 0.5),
180          close_heads(x1s, x2s),
181          eta, x1s, x2s, Bounds.intervals_of(box), rng2, Nil{}, Nil{}
182        )
183      )

Uses (16)

Used by (1)