Myers.build_peq_table: def of bend-edit-distance@0.2.2.0 Import: import bend-edit-distance@0.2.2.0/src/Myers.bend as Myers Lines 48-58 of bend-edit-distance@0.2.2.0/src/Myers.bend: https://jend.leeeet.dev/read.txt?path=bend-edit-distance@0.2.2.0/src/Myers.bend&start_line=48&end_line=58 import Base import bend-edit-distance@0.2.2.0/EdlibTypes.bend as E # A byte-indexed immutable table replaces the C++ transformed alphabet. # Low bits select branches, so lookup takes eight steps for every byte. # Both halves of the table have equal, independent work and run in parallel. def build_peq_table(+depth: Nat, +query: String, +symbol: U32, +step: U32, +pairs: List<&2, E.EqualityPair>) -> Peq: match depth: case 0n: Mask{build_peq_word(query, Chr{symbol}, 1, pairs)} case 1n+p: low high = build_peq_table(p, query, symbol, U32.shl(step), pairs) build_peq_table(p, query, U32.add(symbol, step), U32.shl(step), pairs) Branch{low, high} Uses (10): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Char https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=String https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.add https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.shl https://jend.leeeet.dev/definition.txt?path=bend-edit-distance@0.2.2.0/EdlibTypes.bend&name=EqualityPair https://jend.leeeet.dev/definition.txt?path=bend-edit-distance@0.2.2.0/src/Myers.bend&name=Peq https://jend.leeeet.dev/definition.txt?path=bend-edit-distance@0.2.2.0/src/Myers.bend&name=build_peq_word