bit/div.fj

View source on GitHub

Macros

bit

  • bit.div10dst[:n], src[:n] = src[:n] / 10, src[:n] % 10.

  • bit.idiv — Signed integer division: q = a/b, r = a%b with sign(r)==sign(a). Jumps to end if b==0. q, a, b, r are bit[:n]. Wasteful …

  • bit.div — Unsigned integer division: q = a/b, r = a%b. Jumps to end if b==0. q, a, b, r are bit[:n]. Wasteful in space — prefer …

  • bit.idiv_loop — Compact signed integer division (slower than bit.idiv, but uses much less program space): q = a/b, r = a%b with sign(r)==sign(a). …

  • bit.div_loop — Compact unsigned integer division (slower than bit.div, but uses much less program space): q = a/b, r = a%b. Jumps to end if b==0.

bit.div10

bit.div

  • bit.div.div_step — One step of bit-level long division: R[0] ^= N; then if R[:n] >= D[:n], do R -= D and toggle Q[0]. The inner loop of bit.div / …