Bits.assign.put: def of bend-kit-bits@0.1.0.1 Import: import bend-kit-bits@0.1.0.1/bits.bend as Bits Lines 240-246 of bend-kit-bits@0.1.0.1/bits.bend: https://jend.leeeet.dev/read.txt?path=bend-kit-bits@0.1.0.1/bits.bend&start_line=240&end_line=246 import Base # MSB-first, a code fills a run of consecutive entries; LSB-first, its bits reversed fill every 2^len-th. def assign.put(+msb: Bool, +max: U32, +sym: U32, +len: U32, r: Array & U32, t: Array) -> Array & Array: (n, +code) = r +lo = (max - len : U32) +start = Bool.pick(U32, msb, U32.shln(code, U32.to_nat(lo)), rev(U32.to_nat(len), code, 0)) +step = Bool.pick(U32, msb, 1, U32.shln(1, U32.to_nat(len))) (Array.set(U32, n, len, (code + 1 : U32)), fill(U32.to_nat(U32.shln(1, U32.to_nat(lo))), t, start, step, ((sym << 5n) .|. len : U32))) Uses (14): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Array https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Array.set https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool.pick https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Pair https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Sigma 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.or https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.shln https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.sub https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.to_nat https://jend.leeeet.dev/definition.txt?path=bend-kit-bits@0.1.0.1/bits.bend&name=fill https://jend.leeeet.dev/definition.txt?path=bend-kit-bits@0.1.0.1/bits.bend&name=rev