def Mag.step
import bend-kit-bignum@0.1.0.0/bigint.bend as Bigintimport Base
218# One quotient digit: bring limb x down into r, estimate from r's top two
219# limbs over bn's top limb vt, and correct.
220def Mag.step(x: U32, +bn: List<&2, U32>, +n: Nat, +n1: Nat, +vt: U32,
221 qr: List<&2, U32> & List<&2, U32>) -> List<&2, U32> & List<&2, U32>:
222 (q, r) = qr
223 +r2 = Mag.cons(x, r)
224 +d = U32.min(((Mag.at(r2, n) * 10000 + Mag.at(r2, n1)) / vt : U32), 9999)
225 Mag.fix(3n, d, Mag.scale(bn, d), r2, bn, q)