IntModMul
IntModMul
Description
Compute (a * b) mod modulus.
Parameters
| Name | Direction | Description |
|---|---|---|
result |
out | Destination for the reduced product |
a |
in | Left operand |
b |
in | Right operand |
modulus |
in | Modulus |
Usage example (from documentation)
IntModMul(&result, &a, &b, &modulus);Usage example (Cross-references)
Usage examples (Cross-references)
- In
Int.c:1427:
}
void IntModMul(Int *result, Int *a, Int *b, Int *modulus) {
ValidateInt(result);
ValidateInt(a);- In
Int.c:1472:
}
IntModMul(&value, a, &inverse, modulus);
IntDeinit(&inverse);- In
Int.c:1480:
void IntSquareMod(Int *result, Int *value, Int *modulus) {
IntModMul(result, value, value, modulus);
}- In
Int.c:1502:
Int next = IntInit();
IntModMul(&next, &acc, &base_mod, modulus);
IntDeinit(&acc);
acc = next;- In
Int.c:1511:
Int next = IntInit();
IntModMul(&next, &base_mod, &base_mod, modulus);
IntDeinit(&base_mod);
base_mod = next;- In
Int.c:1542:
Int next = IntInit();
IntModMul(&next, &acc, &base_mod, modulus);
IntDeinit(&acc);
acc = next;- In
Int.c:1551:
Int next = IntInit();
IntModMul(&next, &base_mod, &base_mod, modulus);
IntDeinit(&base_mod);
base_mod = next;- In
Int.c:1748:
}
IntModMul(&next, &r, &b, modulus);
IntDeinit(&r);
r = next;- In
Int.c:1754:
IntSquareMod(&b_sq, &b, modulus);
next = IntInit();
IntModMul(&next, &t, &b_sq, modulus);
IntDeinit(&t);
t = next;- In
Int.Math.c:623:
bool test_int_mod_mul(void) {
WriteFmt("Testing IntModMul\n");
Int a = IntFrom(123);- In
Int.Math.c:630:
Int result_value = IntInit();
IntModMul(&result_value, &a, &b, &m);
bool result = IntToU64(&result_value) == 22;- In
Int.Math.c:653:
result = result && (IntToU64(&result_value) == 12);
IntModMul(&check, &result_value, &b, &m);
result = result && (IntCompare(&check, 10) == 0);- In
Int.Math.c:711:
result = result && (IntToU64(&result_value) == 4);
IntModMul(&check, &value, &result_value, &mod);
result = result && (IntToU64(&check) == 1);
Last updated on