def Nar.read.step

bend-kit-int@0.2.0.0 · int.bend:537

import bend-kit-int@0.2.0.0/int.bend as Int
import Base

537# acc * r + d stays at most m exactly when acc <= (m - d) / r.
538def Nar.read.step(+r: U32, +m: U32, st: Maybe<&2, U32>, x: U32) ->
539  Maybe<&2, U32>:
540  match st:
541    case None{}:
542      None{}
543    case Some{acc}:
544      +a = {acc : U32}
545      +d = {Radix.value(x) : U32}
546      Nar.read.dig(Bool.and(U32.is_lt(d, r),
547        U32.is_le(a, U32.div(U32.sub(m, d), r))), r, a, d)

Uses (9)

Used by (1)