def ilog_go

bend-collections-laws-math@1.0.0.0 · src/math/generic.bend:416

import bend-collections-laws-math@1.0.0.0/src/math/generic.bend as Generic
import Base
import bend-collections-laws-math@1.0.0.0/src/math/num.bend as N

416# the largest k with b^k <= n; p <= n / b is asked before p * b is formed
417def ilog_go(~T: Data, ~op: N.Op<T> -> T, ~test: N.Test<T> -> Bool, fuel: Nat, +q: T, +b: T, +k: Nat, +p: T, up: Bool) -> Nat:
418  match fuel up:
419    case 0n _:
420      k
421    case 1n+f False{}:
422      k
423    case 1n+f True{}:
424      ilog_go(~T, ~op, ~test, f, q, b, 1n+k, op(N.Mul{p, b}), le(~T, ~test, op(N.Mul{p, b}), q))

Uses (5)

Used by (5)