00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef PPL_GMP_Integer_defs_hh
00024 #define PPL_GMP_Integer_defs_hh 1
00025
00026 #include "GMP_Integer.types.hh"
00027 #include "globals.types.hh"
00028 #include <cstddef>
00029
00030 namespace Parma_Polyhedra_Library {
00031
00033
00034
00036
00037 const mpz_class& raw_value(const GMP_Integer& x);
00038
00040
00041 mpz_class& raw_value(GMP_Integer& x);
00042
00044
00046
00047
00048 #ifndef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS
00050
00051 #endif // !defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS)
00052 memory_size_type total_memory_in_bytes(const GMP_Integer& x);
00053
00054 #ifndef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS
00056
00057 #endif // !defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS)
00058 memory_size_type external_memory_in_bytes(const GMP_Integer& x);
00059
00061
00063
00064
00066
00067 void neg_assign(GMP_Integer& x);
00068
00070
00071 void neg_assign(GMP_Integer& x, const GMP_Integer& y);
00072
00074
00075 void abs_assign(GMP_Integer& x);
00076
00078
00079 void abs_assign(GMP_Integer& x, const GMP_Integer& y);
00080
00082
00083 void rem_assign(GMP_Integer& x,
00084 const GMP_Integer& y, const GMP_Integer& z);
00085
00087
00088 void gcd_assign(GMP_Integer& x,
00089 const GMP_Integer& y, const GMP_Integer& z);
00090
00092
00096 void gcdext_assign(GMP_Integer& x, GMP_Integer& s, GMP_Integer& t,
00097 const GMP_Integer& y, const GMP_Integer& z);
00098
00100
00101 void lcm_assign(GMP_Integer& x,
00102 const GMP_Integer& y, const GMP_Integer& z);
00103
00105
00106 void add_mul_assign(GMP_Integer& x,
00107 const GMP_Integer& y, const GMP_Integer& z);
00108
00110
00111 void sub_mul_assign(GMP_Integer& x,
00112 const GMP_Integer& y, const GMP_Integer& z);
00113
00121 void exact_div_assign(GMP_Integer& x,
00122 const GMP_Integer& y, const GMP_Integer& z);
00123
00125
00126 void sqrt_assign(GMP_Integer& x, const GMP_Integer& y);
00127
00134 int cmp(const GMP_Integer& x, const GMP_Integer& y);
00135
00137
00138 }
00139
00140 #include "GMP_Integer.inlines.hh"
00141
00142 #endif // !defined(PPL_GMP_Integer_defs_hh)