def resid_sq
import unified-nsga-iii@0.2.2.0/survival.bend as Survivalimport Base
209# Same F32 steps as `vec_sqnorm(vec_sub(f, vec_scale(t, w)))`: left-to-right
210# `r*r` with `r = f - t*w`, no scaled-vector and residual-vector spines.
211def resid_sq(+t: F32, f: List<&2, F32>, w: List<&2, F32>) -> F32:
212 match f w:
213 case Nil{} Nil{}:
214 0.0
215 case x <> xs y <> ys:
216 +r = F32.sub(x, F32.mul(t, y))
217 F32.add(F32.mul(r, r), resid_sq(t, xs, ys))
218 case Nil{} y <> ys:
219 0.0
220 case x <> xs Nil{}:
221 0.0