def initial_semiglobal_row

bend-edit-distance@0.2.2.0 · src/DistanceDP.bend:88

import bend-edit-distance@0.2.2.0/src/DistanceDP.bend as DistanceDP
import Base
import bend-edit-distance@0.2.2.0/EdlibTypes.bend as E

88# Directional DP keeps query rows and target columns in their original order.
89# D[i,0] = i in every mode. SHW has D[0,j] = j and a free target suffix;
90# HW has D[0,j] = 0 and both target ends free. Both minimize D[m,j].
91def initial_semiglobal_row(length: Nat, +column: U32, +mode: E.Mode) -> List<U32>:
92  match length mode:
93    case 0n E.HW{}:
94      [0]
95    case 0n _:
96      [column]
97    case 1n+p E.HW{}:
98      0 <> initial_semiglobal_row(p, U32.add(column, 1), mode)
99    case 1n+p _:
100      column <> initial_semiglobal_row(p, U32.add(column, 1), mode)

Uses (5)

Used by (1)