24 #ifndef PPL_GMP_Integer_inlines_hh
25 #define PPL_GMP_Integer_inlines_hh 1
27 #include "assertions.hh"
33 mpz_neg(x.get_mpz_t(), x.get_mpz_t());
38 mpz_neg(x.get_mpz_t(), y.get_mpz_t());
43 mpz_abs(x.get_mpz_t(), x.get_mpz_t());
48 mpz_abs(x.get_mpz_t(), y.get_mpz_t());
53 mpz_gcd(x.get_mpz_t(), y.get_mpz_t(), z.get_mpz_t());
58 mpz_tdiv_r(x.get_mpz_t(), y.get_mpz_t(), z.get_mpz_t());
64 mpz_gcdext(x.get_mpz_t(),
65 s.get_mpz_t(), t.get_mpz_t(),
66 y.get_mpz_t(), z.get_mpz_t());
71 mpz_lcm(x.get_mpz_t(), y.get_mpz_t(), z.get_mpz_t());
76 mpz_addmul(x.get_mpz_t(), y.get_mpz_t(), z.get_mpz_t());
81 mpz_submul(x.get_mpz_t(), y.get_mpz_t(), z.get_mpz_t());
86 mpz_mul_2exp(x.get_mpz_t(), y.get_mpz_t(), exp);
91 mpz_tdiv_q_2exp(x.get_mpz_t(), y.get_mpz_t(), exp);
96 PPL_ASSERT(y % z == 0);
97 mpz_divexact(x.get_mpz_t(), y.get_mpz_t(), z.get_mpz_t());
102 mpz_sqrt(x.get_mpz_t(), y.get_mpz_t());
107 return mpz_cmp(x.get_mpz_t(), y.get_mpz_t());
110 inline const mpz_class&
122 #endif // !defined(PPL_GMP_Integer_inlines_hh)
void add_mul_assign(GMP_Integer &x, const GMP_Integer &y, const GMP_Integer &z)
void abs_assign(GMP_Integer &x)
void lcm_assign(GMP_Integer &x, const GMP_Integer &y, const GMP_Integer &z)
void sqrt_assign(GMP_Integer &x, const GMP_Integer &y)
void exact_div_assign(Checked_Number< T, Policy > &x, const Checked_Number< T, Policy > &y, const Checked_Number< T, Policy > &z)
void div_2exp_assign(GMP_Integer &x, const GMP_Integer &y, unsigned int exp)
const mpz_class & raw_value(const GMP_Integer &x)
void gcdext_assign(GMP_Integer &x, GMP_Integer &s, GMP_Integer &t, const GMP_Integer &y, const GMP_Integer &z)
void rem_assign(GMP_Integer &x, const GMP_Integer &y, const GMP_Integer &z)
void mul_2exp_assign(GMP_Integer &x, const GMP_Integer &y, unsigned int exp)
Unbounded integers as provided by the GMP library.
void neg_assign(GMP_Integer &x)
The entire library is confined to this namespace.
int cmp(const GMP_Integer &x, const GMP_Integer &y)
void gcd_assign(GMP_Integer &x, const GMP_Integer &y, const GMP_Integer &z)
void sub_mul_assign(GMP_Integer &x, const GMP_Integer &y, const GMP_Integer &z)