def natural_right

bend-visgraph@2.0.0.0 · visgraph.bend:403

import bend-visgraph@2.0.0.0/visgraph.bend as Visgraph
import Base

403def natural_right(~x_at: Array<F32> -> U32 -> Array<F32> & F32, count: Nat, +j: U32, yr: Array<F32> & F32, xr: Array<F32> & F32, +k: Weight, +lo: F32, +hi: F32, +ia: U32, +xa: F32, +ya: F32, +scale_a: F32, +best: F32, es: Edges, +ahead: U32) -> Walked:
404  match count:
405    case 0n:
406      (ys, yb) = yr
407      (xs, xb) = xr
408      Walked{Array.get(F32, ys, ahead), Array.get(F32, xs, ahead), es}
409    case 1n+c:
410      (ys, +yb) = yr
411      (xs, +xb) = xr
412      +s = F32.div(F32.sub(yb, ya), F32.sub(xb, xa))
413      +seen = clears(F32.is_gt(s, best), s, best, scale_a, xb, yb)
414      +j2 = (j + 1 : U32)
415      natural_right(~x_at, c, j2, Array.get(F32, ys, j2), x_at(xs, j2), k, lo, hi, ia, xa, ya, scale_a, pick(seen, s, best), add_right(seen, k, lo, hi, ia, j, xa, xb, ya, yb, s, es), ahead)

Uses (17)

Used by (1)