def horizontal_left
bend-visgraph@2.0.0.0 · visgraph.bend:444
import bend-visgraph@2.0.0.0/visgraph.bend as Visgraph
import Base
444def horizontal_left(~x_at: Array<F32> -> U32 -> Array<F32> & F32, count: Nat, +j: U32, yr: Array<F32> & F32, xr: Array<F32> & F32, +dir: Direction, +k: Weight, +lo: F32, +hi: F32, +ia: U32, +xa: F32, +ya: F32, +best: F32, es: Edges, +ahead: U32) -> Walked:
445 match count:
446 case 0n:
447 (ys, yb) = yr
448 (xs, xb) = xr
449 Walked{Array.get(F32, ys, ahead), Array.get(F32, xs, ahead), es}
450 case 1n+c:
451 (ys, +yb) = yr
452 (xs, xb) = xr
453 +seen = F32.is_gt(yb, best)
454 +j2 = (j - 1 : U32)
455 horizontal_left(~x_at, c, j2, Array.get(F32, ys, j2), x_at(xs, j2), dir, k, lo, hi, ia, xa, ya, pick(seen, yb, best), add_left(seen, dir, k, lo, hi, ia, j, xa, xb, ya, yb, nan(), es), ahead)