reduce
odd = reduce(step_root * s->c[j + offset]);
s->c[j + offset] = reduce(step_root *
s->c[i] = reduce(s->c[i] * kInverseDegree);
reduce(real_real +
(uint32_t)reduce(img_img) * kModRoots[i]);
out->c[2 * i + 1] = reduce(img_real + real_img);
generate_test_quintuple(int reduce, BIGNUM *a, BIGNUM *p, BIGNUM *b, BIGNUM *q,
if (reduce) {
generate_test_triple(int reduce, BIGNUM *a, BIGNUM *p, BIGNUM *m, BN_CTX *ctx)
return generate_test_quintuple(reduce, a, p, NULL, NULL, m, ctx);
bn_mod_exp_test(int reduce, BIGNUM *want, BIGNUM *a, BIGNUM *p, BIGNUM *m,
if (!generate_test_triple(reduce, a, p, m, ctx))
int reduce;
reduce = 0;
failed |= bn_mod_exp_test(reduce, want, a, p, m, ctx);
reduce = 1;
failed |= bn_mod_exp_test(reduce, want, a, p, m, ctx);
bn_mod_exp2_test(int reduce, BIGNUM *want, BIGNUM *got, BIGNUM *a, BIGNUM *p,
if (!generate_test_quintuple(reduce, a, p, b, q, m, ctx))
int reduce;
reduce = 0;
failed |= bn_mod_exp2_test(reduce, want, got, a, p, b, q, m, ctx);
reduce = 1;
failed |= bn_mod_exp2_test(reduce, want, got, a, p, b, q, m, ctx);
void reduce(void);
reduce(); /* see if any reduction can be done */
void reduce(void);
reduce(); /* see if this allows any reduction */