extern static int mpz_get_si(ref mpz_t src);
extern static int mpz_cmp(ref mpz_t op1, ref mpz_t op2);
extern static void mpz_tdiv_q(ref mpz_t dest, ref mpz_t src, ref mpz_t src2);
extern static void mpz_set_si(ref mpz_t src, int value);
extern static void mpz_sub(ref mpz_t dest, ref mpz_t src, ref mpz_t src2);
extern static void mpz_add(ref mpz_t dest, ref mpz_t src, ref mpz_t src2);
extern static void mpz_mul_si(ref mpz_t dest, ref mpz_t src, int val);
extern static void mpz_mul(ref mpz_t dest, ref mpz_t op1, ref mpz_t op2);
extern static void mpz_init(ref mpz_t value);