private static extern int mpq_equal(ref mpq_t op1, ref mpq_t op2);
 private static extern void mpq_inv(ref mpq_t rop, ref mpq_t op);
 private static extern int mpq_cmp(ref mpq_t op1, ref mpq_t op2);
 private static extern void mpq_div(ref mpq_t rop, ref mpq_t op1, ref mpq_t op2);
 private static extern void mpq_div_2exp(ref mpq_t rop, ref mpq_t op1, uint op2);
 private static extern void mpq_set_num(ref mpq_t rop, ref mpz_t num);
 private static extern void mpq_init(ref mpq_t destrational);
 private static extern double mpq_get_d(ref mpq_t op);
 private static extern void mpq_set_d(ref mpq_t rop, double op);
 private static extern void mpq_set_str(ref mpq_t rop, IntPtr s, int sbase);
 private static extern void mpq_swap(ref mpq_t rop1, ref mpq_t rop2);
 private static extern void mpq_set_ui(ref mpq_t rop, uint num, uint den);
 private static extern void mpq_set_z(ref mpq_t rop, ref mpz_t op);
 private static extern void mpq_clear(ref mpq_t rational);
 private static extern void mpq_get_num(ref mpz_t num, ref mpq_t op);
 private static extern void mpq_set_f(ref mpq_t rop, ref mpf_t op);
 private static extern void mpq_get_den(ref mpz_t den, ref mpq_t op);
 private static extern IntPtr mpq_get_str(IntPtr s, int sbase, ref mpq_t op);
 private static extern void mpq_set_den(ref mpq_t rop, ref mpz_t den);
 private static extern void mpq_canonicalize(ref mpq_t op);