PPL  1.2
Poly_Gen_Relation_inlines.hh
Go to the documentation of this file.
1 /* Poly_Gen_Relation class implementation: inline functions.
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_Poly_Gen_Relation_inlines_hh
25 #define PPL_Poly_Gen_Relation_inlines_hh 1
26 
27 namespace Parma_Polyhedra_Library {
28 
29 inline
31  : flags(mask) {
32 }
33 
36  return flags;
37 }
38 
39 inline Poly_Gen_Relation
41  return Poly_Gen_Relation(NOTHING);
42 }
43 
44 inline Poly_Gen_Relation
47 }
48 
49 inline bool
51  return (x & y) == y;
52 }
53 
54 inline bool
56  return implies(flags, y.flags);
57 }
58 
60 inline bool
62  return x.flags == y.flags;
63 }
64 
66 inline bool
68  return x.flags != y.flags;
69 }
70 
72 inline Poly_Gen_Relation
74  return Poly_Gen_Relation(x.flags | y.flags);
75 }
76 
78 inline Poly_Gen_Relation
80  return Poly_Gen_Relation(x.flags & ~y.flags);
81 }
82 
83 } // namespace Parma_Polyhedra_Library
84 
85 #endif // !defined(PPL_Poly_Gen_Relation_inlines_hh)
static Poly_Gen_Relation subsumes()
Adding the generator would not change the polyhedron.
Poly_Gen_Relation operator&&(const Poly_Gen_Relation &x, const Poly_Gen_Relation &y)
unsigned int flags_t
Poly_Gen_Relation is implemented by means of a finite bitset.
flags_t flags
This holds the current bitset.
Poly_Gen_Relation operator-(const Poly_Gen_Relation &x, const Poly_Gen_Relation &y)
bool operator==(const Poly_Gen_Relation &x, const Poly_Gen_Relation &y)
The entire library is confined to this namespace.
Definition: version.hh:61
bool operator!=(const Poly_Gen_Relation &x, const Poly_Gen_Relation &y)
flags_t get_flags() const
Access the internal flags: this is needed for some language interfaces.
static bool implies(flags_t x, flags_t y)
True if and only if the conjunction x implies the conjunction y.
static Poly_Gen_Relation nothing()
The assertion that says nothing.
The relation between a polyhedron and a generator.
Poly_Gen_Relation(flags_t mask)
Construct from a bit-mask.