PPL  1.2
Poly_Con_Relation_inlines.hh
Go to the documentation of this file.
1 /* Poly_Con_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_Con_Relation_inlines_hh
25 #define PPL_Poly_Con_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_Con_Relation
41  return Poly_Con_Relation(NOTHING);
42 }
43 
44 inline Poly_Con_Relation
47 }
48 
49 inline Poly_Con_Relation
52 }
53 
54 inline Poly_Con_Relation
57 }
58 
59 inline Poly_Con_Relation
62 }
63 
64 inline bool
66  return (x & y) == y;
67 }
68 
69 inline bool
71  return implies(flags, y.flags);
72 }
73 
75 inline bool
77  return x.flags == y.flags;
78 }
79 
81 inline bool
83  return x.flags != y.flags;
84 }
85 
87 inline Poly_Con_Relation
89  return Poly_Con_Relation(x.flags | y.flags);
90 }
91 
93 inline Poly_Con_Relation
95  return Poly_Con_Relation(x.flags & ~y.flags);
96 }
97 
98 } // namespace Parma_Polyhedra_Library
99 
100 #endif // !defined(PPL_Poly_Con_Relation_inlines_hh)
static Poly_Con_Relation is_disjoint()
The polyhedron and the set of points satisfying the constraint are disjoint.
static bool implies(flags_t x, flags_t y)
True if and only if the conjunction x implies the conjunction y.
static Poly_Con_Relation is_included()
The polyhedron is included in the set of points satisfying the constraint.
static Poly_Con_Relation saturates()
The polyhedron is included in the set of points saturating the constraint.
flags_t flags
This holds the current bitset.
Poly_Con_Relation(flags_t mask)
Construct from a bit-mask.
Poly_Con_Relation operator-(const Poly_Con_Relation &x, const Poly_Con_Relation &y)
flags_t get_flags() const
Access the internal flags: this is needed for some language interfaces.
bool operator!=(const Poly_Con_Relation &x, const Poly_Con_Relation &y)
unsigned int flags_t
Poly_Con_Relation is implemented by means of a finite bitset.
The entire library is confined to this namespace.
Definition: version.hh:61
Poly_Con_Relation operator&&(const Poly_Con_Relation &x, const Poly_Con_Relation &y)
bool operator==(const Poly_Con_Relation &x, const Poly_Con_Relation &y)
static Poly_Con_Relation nothing()
The assertion that says nothing.
static Poly_Con_Relation strictly_intersects()
The polyhedron intersects the set of points satisfying the constraint, but it is not included in it...
The relation between a polyhedron and a constraint.