def dp_cell
bend-edit-distance@0.2.2.0 · src/Reconstruction.bend:31
import bend-edit-distance@0.2.2.0/src/Reconstruction.bend as Reconstruction
import Base
31def dp_cell(above: U32, left: U32, diagonal: U32, +matches: Bool) -> TraceCell:
32 +up = U32.add(above, 1)
33 +across = U32.add(left, 1)
34 +diagonal_cost = U32.add(diagonal, Bool.to_u32(Bool.not(matches)))
35 TraceCell{U32.min(U32.min(up, across), diagonal_cost),
36 choose_operation(matches,
37 U32.is_le(up, U32.min(across, diagonal_cost)), U32.is_le(across, diagonal_cost))}