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
00049
00050 memory_size_type total_memory_in_bytes(const GMP_Integer& x);
00051
00053
00054 memory_size_type external_memory_in_bytes(const GMP_Integer& x);
00055
00057
00059
00060
00062
00063 void neg_assign(GMP_Integer& x);
00064
00066
00067 void neg_assign(GMP_Integer& x, const GMP_Integer& y);
00068
00070
00071 void gcd_assign(GMP_Integer& x,
00072 const GMP_Integer& y, const GMP_Integer& z);
00073
00075
00079 void gcdext_assign(GMP_Integer& x,
00080 const GMP_Integer& y, const GMP_Integer& z,
00081 GMP_Integer& s, GMP_Integer& t);
00082
00084
00085 void lcm_assign(GMP_Integer& x,
00086 const GMP_Integer& y, const GMP_Integer& z);
00087
00089
00090 void add_mul_assign(GMP_Integer& x,
00091 const GMP_Integer& y, const GMP_Integer& z);
00092
00094
00095 void sub_mul_assign(GMP_Integer& x,
00096 const GMP_Integer& y, const GMP_Integer& z);
00097
00105 void exact_div_assign(GMP_Integer& x,
00106 const GMP_Integer& y, const GMP_Integer& z);
00107
00109
00110 void sqrt_assign(GMP_Integer& x, const GMP_Integer& y);
00111
00118 int cmp(const GMP_Integer& x, const GMP_Integer& y);
00119
00121
00122 }
00123
00124
00125 namespace std {
00126
00128
00129 void swap(Parma_Polyhedra_Library::GMP_Integer& x,
00130 Parma_Polyhedra_Library::GMP_Integer& y);
00131
00132 }
00133
00134 #include "GMP_Integer.inlines.hh"
00135
00136 #endif // !defined(PPL_GMP_Integer_defs_hh)