PPL  1.2
GMP_Integer_defs.hh
Go to the documentation of this file.
1 /* GMP_Integer class declaration.
2  Copyright (C) 2001-2010 Roberto Bagnara <bagnara@cs.unipr.it>
3  Copyright (C) 2010-2016 BUGSENG srl (http://bugseng.com)
4 
5 This file is part of the Parma Polyhedra Library (PPL).
6 
7 The PPL is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published by the
9 Free Software Foundation; either version 3 of the License, or (at your
10 option) any later version.
11 
12 The PPL is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 for more details.
16 
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software Foundation,
19 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1307, USA.
20 
21 For the most up-to-date information see the Parma Polyhedra Library
22 site: http://bugseng.com/products/ppl/ . */
23 
24 #ifndef PPL_GMP_Integer_defs_hh
25 #define PPL_GMP_Integer_defs_hh 1
26 
27 #include "GMP_Integer_types.hh"
28 #include "globals_types.hh"
29 #include <cstddef>
30 
31 namespace Parma_Polyhedra_Library {
32 
34 
35 
37 
38 const mpz_class& raw_value(const GMP_Integer& x);
39 
41 
42 mpz_class& raw_value(GMP_Integer& x);
43 
45 
47 
48 
50 
51 void neg_assign(GMP_Integer& x);
52 
54 
55 void neg_assign(GMP_Integer& x, const GMP_Integer& y);
56 
58 
59 void abs_assign(GMP_Integer& x);
60 
62 
63 void abs_assign(GMP_Integer& x, const GMP_Integer& y);
64 
66 
67 void rem_assign(GMP_Integer& x,
68  const GMP_Integer& y, const GMP_Integer& z);
69 
71 
72 void gcd_assign(GMP_Integer& x,
73  const GMP_Integer& y, const GMP_Integer& z);
74 
76 
81  const GMP_Integer& y, const GMP_Integer& z);
82 
84 
85 void lcm_assign(GMP_Integer& x,
86  const GMP_Integer& y, const GMP_Integer& z);
87 
89 
91  const GMP_Integer& y, const GMP_Integer& z);
92 
94 
96  const GMP_Integer& y, const GMP_Integer& z);
97 
99 
100 void mul_2exp_assign(GMP_Integer& x, const GMP_Integer& y, unsigned int exp);
101 
103 
104 void div_2exp_assign(GMP_Integer& x, const GMP_Integer& y, unsigned int exp);
105 
114  const GMP_Integer& y, const GMP_Integer& z);
115 
117 
118 void sqrt_assign(GMP_Integer& x, const GMP_Integer& y);
119 
126 int cmp(const GMP_Integer& x, const GMP_Integer& y);
127 
129 
130 } // namespace Parma_Polyhedra_Library
131 
132 #include "GMP_Integer_inlines.hh"
133 
134 #endif // !defined(PPL_GMP_Integer_defs_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)
void neg_assign(GMP_Integer &x)
The entire library is confined to this namespace.
Definition: version.hh:61
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)