1511{
1512
1513 mpz_t a;
1514 mpz_init(a);
1515 mpz_mod_ui(a, mpq_numref(r),
P);
1516 long ctop = mpz_get_si(a);
1517 mpz_mod_ui(a, mpq_denref(r),
P);
1518 long cbottom = mpz_get_si(a);
1519 mpz_clear(a);
1520 if (ctop < 0) ctop +=
P;
1521 if (cbottom < 0) cbottom +=
P;
1522 if (cbottom == 0)
1523 {
1525 return false;
1526 }
1529
1531 return true;
1532}
void ZZp_MULT(long charac, long &a, long b)
void ZZp_INVERT(long charac, long &result, long b)
VALGRIND_MAKE_MEM_DEFINED & result(result)