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
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))