def left_sweep
bend-visgraph@2.0.0.0 · visgraph.bend:469
import bend-visgraph@2.0.0.0/visgraph.bend as Visgraph
import Base
469def left_sweep(g: Visibility, index: Bool, count: Nat, +dir: Direction, +k: Weight, +lo: F32, +hi: F32, +ia: U32, +xa: F32, +ya: F32, w: Walked) -> Walked:
470 match g index:
471 case Natural{} True{}:
472 Walked{yr, xr, es} = w
473 (xs, xv) = xr
474 natural_left(~(a => +j => at_index(a, j)), count, (ia - 1 : U32), yr, at_index(xs, (ia - 1 : U32)), dir, k, lo, hi, ia, xa, ya, scale(xa, ya), neg_inf(), es, (ia + 1 : U32))
475 case Natural{} False{}:
476 Walked{yr, xr, es} = w
477 (xs, xv) = xr
478 natural_left(~(a => +j => Array.get(F32, a, j)), count, (ia - 1 : U32), yr, Array.get(F32, xs, (ia - 1 : U32)), dir, k, lo, hi, ia, xa, ya, scale(xa, ya), neg_inf(), es, (ia + 1 : U32))
479 case Horizontal{} True{}:
480 Walked{yr, xr, es} = w
481 (xs, xv) = xr
482 horizontal_left(~(a => +j => at_index(a, j)), count, (ia - 1 : U32), yr, at_index(xs, (ia - 1 : U32)), dir, k, lo, hi, ia, xa, ya, neg_inf(), es, (ia + 1 : U32))
483 case Horizontal{} False{}:
484 Walked{yr, xr, es} = w
485 (xs, xv) = xr
486 horizontal_left(~(a => +j => Array.get(F32, a, j)), count, (ia - 1 : U32), yr, Array.get(F32, xs, (ia - 1 : U32)), dir, k, lo, hi, ia, xa, ya, neg_inf(), es, (ia + 1 : U32))