Word64.W64.small.step: def of bend-osdev-word64@0.1.1.0 Import: import bend-osdev-word64@0.1.1.0/word64.bend as Word64 Lines 304-309 of bend-osdev-word64@0.1.1.0/word64.bend: https://jend.leeeet.dev/read.txt?path=bend-osdev-word64@0.1.1.0/word64.bend&start_line=304&end_line=309 import Base # a divided by a small d (1 to 65536) and the remainder, through the four # 16-bit pieces of a, most significant first: every step fits in 32 bits def W64.small.step(+d: U32, qr: U32 & U32, +c: U32) -> U32 & U32: (q, r) = qr +v = U32.add(U32.mul(r, 65536), c) (U32.or(U32.shln(q, 16n), U32.div(v, d)), U32.mod(v, d)) Uses (9): 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.div https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.mod https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.mul 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