def Mag.sub

bend-kit-bignum@0.1.0.0 · bigint.bend:90

import bend-kit-bignum@0.1.0.0/bigint.bend as Bigint
import Base

90# a - b - w for a >= b + w. Leaves zero limbs on top: callers norm.
91def Mag.sub(a: List<&2, U32>, b: List<&2, U32>, +w: U32) -> List<&2, U32>:
92  match a b:
93    case Con{x, xs} Con{y, ys}:
94      +t = (x + 10000 - y - w : U32)
95      Con{(t % 10000 : U32), Mag.sub(xs, ys, (1 - t / 10000 : U32))}
96    case s Nil{}:
97      Mag.dec(s, U32.is_zero(w), w)
98    case Nil{} s:
99      Nil{}

Uses (8)

Used by (4)