Macaulay2 Engine
Loading...
Searching...
No Matches

◆ CRA0()

void ChineseRemainder::CRA0 ( mpz_srcptr a,
mpz_srcptr b,
mpz_srcptr um,
mpz_srcptr vn,
mpz_srcptr mn,
mpz_t result )
static

Definition at line 15 of file cra.cpp.

21{
22 mpz_t mn_half;
23 mpz_init(mn_half);
24 mpz_mul(result, um, b);
25 mpz_addmul(result, vn, a);
26 mpz_mod(result, result, mn);
27 mpz_tdiv_q_2exp(mn_half, mn, 1);
28 // get canonical representative
29 if (mpz_cmp(result, mn_half) > 0)
30 {
31 mpz_sub(result, result, mn);
32 }
33 mpz_clear(mn_half);
34}
VALGRIND_MAKE_MEM_DEFINED & result(result)

References result().

Referenced by CRA().