def pow_mod_pick
bend-collections-laws-crypto@1.0.0.0 · src/math/generic.bend:535
import bend-collections-laws-crypto@1.0.0.0/src/math/generic.bend as Generic
import Base
import bend-collections-laws-crypto@1.0.0.0/src/math/num.bend as N
535def pow_mod_pick(~T: Data, ~op: N.Op<T> -> T, ~test: N.Test<T> -> Bool, +b: T, +e: T, +m: T, mont: Bool) -> T:
536 match mont:
537 case True{}:
538 op(N.PowMod{op(N.Rem{b, m}), e, m})
539 case False{}:
540 pow_mod_go(~T, ~op, ~test, fuel(), m, op(N.Rem{b, m}), op(N.Rem{op(N.One{}), m}), zst(~T, ~test, e))