def nearest_go
unified-nsga-iii@0.2.2.0 · survival.bend:245
import unified-nsga-iii@0.2.2.0/survival.bend as Survival
import Base
245
246
247def nearest_go(+f: List<&2, F32>, dirs: List<&2, List<&2, F32>>, +i: Nat, +best_i: Nat, +best_d: F32) -> Assignment:
248 match dirs:
249 case Nil{}:
250 MkAssignment{best_i, best_d, 0n}
251 case +w <> ws:
252 +d = perp(f, w)
253 nearest_go(
254 f,
255 ws,
256 1n+i,
257 Bool.pick(Nat, F32.is_lt(d, best_d), i, best_i),
258 Bool.pick(F32, F32.is_lt(d, best_d), d, best_d)
259 )