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))

Uses (17)

Used by (1)