00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef PPL_GMP_Integer_defs_hh
00025 #define PPL_GMP_Integer_defs_hh 1
00026
00027 #include "GMP_Integer.types.hh"
00028 #include "globals.types.hh"
00029 #include <cstddef>
00030
00031 namespace Parma_Polyhedra_Library {
00032
00034
00035
00037
00038 const mpz_class& raw_value(const GMP_Integer& x);
00039
00041
00042 mpz_class& raw_value(GMP_Integer& x);
00043
00045
00047
00048
00049 #ifndef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS
00050
00051
00052 #endif // !defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS)
00053 memory_size_type total_memory_in_bytes(const GMP_Integer& x);
00054
00055 #ifndef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS
00056
00057
00058 #endif // !defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS)
00059 memory_size_type external_memory_in_bytes(const GMP_Integer& x);
00060
00062
00064
00065
00067
00068 void neg_assign(GMP_Integer& x);
00069
00071
00072 void neg_assign(GMP_Integer& x, const GMP_Integer& y);
00073
00075
00076 void abs_assign(GMP_Integer& x);
00077
00079
00080 void abs_assign(GMP_Integer& x, const GMP_Integer& y);
00081
00083
00084 void rem_assign(GMP_Integer& x,
00085 const GMP_Integer& y, const GMP_Integer& z);
00086
00088
00089 void gcd_assign(GMP_Integer& x,
00090 const GMP_Integer& y, const GMP_Integer& z);
00091
00093
00097 void gcdext_assign(GMP_Integer& x, GMP_Integer& s, GMP_Integer& t,
00098 const GMP_Integer& y, const GMP_Integer& z);
00099
00101
00102 void lcm_assign(GMP_Integer& x,
00103 const GMP_Integer& y, const GMP_Integer& z);
00104
00106
00107 void add_mul_assign(GMP_Integer& x,
00108 const GMP_Integer& y, const GMP_Integer& z);
00109
00111
00112 void sub_mul_assign(GMP_Integer& x,
00113 const GMP_Integer& y, const GMP_Integer& z);
00114
00116
00117 void mul_2exp_assign(GMP_Integer& x, const GMP_Integer& y, unsigned int exp);
00118
00120
00121 void div_2exp_assign(GMP_Integer& x, const GMP_Integer& y, unsigned int exp);
00122
00130 void exact_div_assign(GMP_Integer& x,
00131 const GMP_Integer& y, const GMP_Integer& z);
00132
00134
00135 void sqrt_assign(GMP_Integer& x, const GMP_Integer& y);
00136
00143 int cmp(const GMP_Integer& x, const GMP_Integer& y);
00144
00146
00147 }
00148
00149 #include "GMP_Integer.inlines.hh"
00150
00151 #endif // !defined(PPL_GMP_Integer_defs_hh)