PPL  1.2
Parma_Polyhedra_Library::Polyhedron::Status Class Reference

A conjunctive assertion about a polyhedron. More...

Public Member Functions

 Status ()
 By default Status is the zero-dim universe assertion. More...
 
bool OK () const
 Checks if all the invariants are satisfied. More...
 
void ascii_dump () const
 Writes to std::cerr an ASCII representation of *this. More...
 
void ascii_dump (std::ostream &s) const
 Writes to s an ASCII representation of *this. More...
 
void print () const
 Prints *this to std::cerr using operator<<. More...
 
bool ascii_load (std::istream &s)
 Loads from s an ASCII representation (as produced by ascii_dump(std::ostream&) const) and sets *this accordingly. Returns true if successful, false otherwise. More...
 
Test, remove or add an individual assertion from the conjunction
bool test_zero_dim_univ () const
 
void reset_zero_dim_univ ()
 
void set_zero_dim_univ ()
 
bool test_empty () const
 
void reset_empty ()
 
void set_empty ()
 
bool test_c_up_to_date () const
 
void reset_c_up_to_date ()
 
void set_c_up_to_date ()
 
bool test_g_up_to_date () const
 
void reset_g_up_to_date ()
 
void set_g_up_to_date ()
 
bool test_c_minimized () const
 
void reset_c_minimized ()
 
void set_c_minimized ()
 
bool test_g_minimized () const
 
void reset_g_minimized ()
 
void set_g_minimized ()
 
bool test_sat_c_up_to_date () const
 
void reset_sat_c_up_to_date ()
 
void set_sat_c_up_to_date ()
 
bool test_sat_g_up_to_date () const
 
void reset_sat_g_up_to_date ()
 
void set_sat_g_up_to_date ()
 
bool test_c_pending () const
 
void reset_c_pending ()
 
void set_c_pending ()
 
bool test_g_pending () const
 
void reset_g_pending ()
 
void set_g_pending ()
 

Private Types

typedef unsigned int flags_t
 Status is implemented by means of a finite bitset. More...
 

Private Member Functions

 Status (flags_t mask)
 Construct from a bit-mask. More...
 
bool test_all (flags_t mask) const
 Check whether all bits in mask are set. More...
 
bool test_any (flags_t mask) const
 Check whether at least one bit in mask is set. More...
 
void set (flags_t mask)
 Set the bits in mask. More...
 
void reset (flags_t mask)
 Reset the bits in mask. More...
 

Private Attributes

flags_t flags
 This holds the current bitset. More...
 

Static Private Attributes

Bit-masks for the individual assertions
static const flags_t ZERO_DIM_UNIV = 0U
 
static const flags_t EMPTY = 1U << 0
 
static const flags_t C_UP_TO_DATE = 1U << 1
 
static const flags_t G_UP_TO_DATE = 1U << 2
 
static const flags_t C_MINIMIZED = 1U << 3
 
static const flags_t G_MINIMIZED = 1U << 4
 
static const flags_t SAT_C_UP_TO_DATE = 1U << 5
 
static const flags_t SAT_G_UP_TO_DATE = 1U << 6
 
static const flags_t CS_PENDING = 1U << 7
 
static const flags_t GS_PENDING = 1U << 8
 

Related Functions

(Note that these are not member functions.)

bool get_field (std::istream &s, const char *keyword, bool &positive)
 

Detailed Description

A conjunctive assertion about a polyhedron.

The assertions supported are:

  • zero-dim universe: the polyhedron is the zero-dimension vector space $\Rset^0 = \{\cdot\}$;
  • empty: the polyhedron is the empty set;
  • constraints pending: the polyhedron is correctly characterized by the attached system of constraints, which is split in two non-empty subsets: the already processed constraints, which are in minimal form, and the pending constraints, which still have to be processed and may thus be inconsistent or contain redundancies;
  • generators pending: the polyhedron is correctly characterized by the attached system of generators, which is split in two non-empty subsets: the already processed generators, which are in minimal form, and the pending generators, which still have to be processed and may thus contain redundancies;
  • constraints up-to-date: the polyhedron is correctly characterized by the attached system of constraints, modulo the processing of pending generators;
  • generators up-to-date: the polyhedron is correctly characterized by the attached system of generators, modulo the processing of pending constraints;
  • constraints minimized: the non-pending part of the system of constraints attached to the polyhedron is in minimal form;
  • generators minimized: the non-pending part of the system of generators attached to the polyhedron is in minimal form;
  • constraints' saturation matrix up-to-date: the attached saturation matrix having rows indexed by non-pending generators and columns indexed by non-pending constraints correctly expresses the saturation relation between the attached non-pending constraints and generators;
  • generators' saturation matrix up-to-date: the attached saturation matrix having rows indexed by non-pending constraints and columns indexed by non-pending generators correctly expresses the saturation relation between the attached non-pending constraints and generators;

Not all the conjunctions of these elementary assertions constitute a legal Status. In fact:

  • zero-dim universe excludes any other assertion;
  • empty: excludes any other assertion;
  • constraints pending and generators pending are mutually exclusive;
  • constraints pending implies both constraints minimized and generators minimized;
  • generators pending implies both constraints minimized and generators minimized;
  • constraints minimized implies constraints up-to-date;
  • generators minimized implies generators up-to-date;
  • constraints' saturation matrix up-to-date implies both constraints up-to-date and generators up-to-date;
  • generators' saturation matrix up-to-date implies both constraints up-to-date and generators up-to-date.

Definition at line 87 of file Polyhedron_defs.hh.

Member Typedef Documentation

Status is implemented by means of a finite bitset.

Definition at line 149 of file Polyhedron_defs.hh.

Constructor & Destructor Documentation

Parma_Polyhedra_Library::Polyhedron::Status::Status ( )
inline

By default Status is the zero-dim universe assertion.

Definition at line 35 of file Ph_Status_inlines.hh.

36  : flags(ZERO_DIM_UNIV) {
37 }
flags_t flags
This holds the current bitset.
Parma_Polyhedra_Library::Polyhedron::Status::Status ( flags_t  mask)
inlineprivate

Construct from a bit-mask.

Definition at line 30 of file Ph_Status_inlines.hh.

31  : flags(mask) {
32 }
flags_t flags
This holds the current bitset.

Member Function Documentation

void Parma_Polyhedra_Library::Polyhedron::Status::ascii_dump ( ) const

Writes to std::cerr an ASCII representation of *this.

void Parma_Polyhedra_Library::Polyhedron::Status::ascii_dump ( std::ostream &  s) const

Writes to s an ASCII representation of *this.

Definition at line 68 of file Ph_Status.cc.

References Parma_Polyhedra_Library::Implementation::BD_Shapes::empty, and Parma_Polyhedra_Library::Implementation::BD_Shapes::zero_dim_univ.

68  {
69  s << (test_zero_dim_univ() ? '+' : '-') << zero_dim_univ << ' '
70  << (test_empty() ? '+' : '-') << empty << ' '
71  << ' '
72  << (test_c_minimized() ? '+' : '-') << consys_min << ' '
73  << (test_g_minimized() ? '+' : '-') << gensys_min << ' '
74  << ' '
75  << (test_c_up_to_date() ? '+' : '-') << consys_upd << ' '
76  << (test_g_up_to_date() ? '+' : '-') << gensys_upd << ' '
77  << ' '
78  << (test_c_pending() ? '+' : '-') << consys_pending << ' '
79  << (test_g_pending() ? '+' : '-') << gensys_pending << ' '
80  << ' '
81  << (test_sat_c_up_to_date() ? '+' : '-') << satc_upd << ' '
82  << (test_sat_g_up_to_date() ? '+' : '-') << satg_upd << ' ';
83 }
bool Parma_Polyhedra_Library::Polyhedron::Status::ascii_load ( std::istream &  s)

Loads from s an ASCII representation (as produced by ascii_dump(std::ostream&) const) and sets *this accordingly. Returns true if successful, false otherwise.

Definition at line 88 of file Ph_Status.cc.

References Parma_Polyhedra_Library::Implementation::BD_Shapes::empty, Parma_Polyhedra_Library::BD_Shape< T >::Status::get_field(), PPL_UNINITIALIZED, and Parma_Polyhedra_Library::Implementation::BD_Shapes::zero_dim_univ.

88  {
89  PPL_UNINITIALIZED(bool, positive);
90 
91  if (!get_field(s, zero_dim_univ, positive)) {
92  return false;
93  }
94  if (positive) {
96  }
97 
98  if (!get_field(s, empty, positive)) {
99  return false;
100  }
101  if (positive) {
102  set_empty();
103  }
104 
105  if (!get_field(s, consys_min, positive)) {
106  return false;
107  }
108  if (positive) {
109  set_c_minimized();
110  }
111  else {
113  }
114 
115  if (!get_field(s, gensys_min, positive)) {
116  return false;
117  }
118  if (positive) {
119  set_g_minimized();
120  }
121  else {
123  }
124 
125  if (!get_field(s, consys_upd, positive)) {
126  return false;
127  }
128  if (positive) {
130  }
131  else {
133  }
134 
135  if (!get_field(s, gensys_upd, positive)) {
136  return false;
137  }
138  if (positive) {
140  }
141  else {
143  }
144 
145  if (!get_field(s, consys_pending, positive)) {
146  return false;
147  }
148  if (positive) {
149  set_c_pending();
150  }
151  else {
152  reset_c_pending();
153  }
154 
155  if (!get_field(s, gensys_pending, positive)) {
156  return false;
157  }
158  if (positive) {
159  set_g_pending();
160  }
161  else {
162  reset_g_pending();
163  }
164 
165  if (!get_field(s, satc_upd, positive)) {
166  return false;
167  }
168  if (positive) {
170  }
171  else {
173  }
174 
175  if (!get_field(s, satg_upd, positive)) {
176  return false;
177  }
178  if (positive) {
180  }
181  else {
183  }
184 
185  // Check invariants.
186  PPL_ASSERT(OK());
187  return true;
188 }
bool OK() const
Checks if all the invariants are satisfied.
Definition: Ph_Status.cc:191
bool get_field(std::istream &s, const char *keyword, bool &positive)
Definition: Ph_Status.cc:54
#define PPL_UNINITIALIZED(type, name)
Definition: compiler.hh:72
bool Parma_Polyhedra_Library::Polyhedron::Status::OK ( ) const

Checks if all the invariants are satisfied.

Definition at line 191 of file Ph_Status.cc.

References reset_empty(), and test_zero_dim_univ().

191  {
192 #ifndef NDEBUG
193  using std::endl;
194  using std::cerr;
195 #endif
196 
197  if (test_zero_dim_univ()) {
198  // Zero-dim universe is OK.
199  return true;
200  }
201 
202  if (test_empty()) {
203  Status copy = *this;
204  copy.reset_empty();
205  if (copy.test_zero_dim_univ()) {
206  return true;
207  }
208  else {
209 #ifndef NDEBUG
210  cerr << "The empty flag is incompatible with any other one."
211  << endl;
212 #endif
213  return false;
214  }
215  }
216 
218  && !(test_c_up_to_date() && test_g_up_to_date())) {
219 #ifndef NDEBUG
220  cerr <<
221  "If a saturation matrix is up-to-date, constraints and\n"
222  "generators have to be both up-to-date."
223  << endl;
224 #endif
225  return false;
226  }
227 
228  if (test_c_minimized() && !test_c_up_to_date()) {
229 #ifndef NDEBUG
230  cerr << "If constraints are minimized they must be up-to-date."
231  << endl;
232 #endif
233  return false;
234  }
235 
236  if (test_g_minimized() && !test_g_up_to_date()) {
237 #ifndef NDEBUG
238  cerr << "If generators are minimized they must be up-to-date."
239  << endl;
240 #endif
241  return false;
242  }
243 
244  if (test_c_pending() && test_g_pending()) {
245 #ifndef NDEBUG
246  cerr << "There cannot be both pending constraints and pending generators."
247  << endl;
248 #endif
249  return false;
250  }
251 
252  if (test_c_pending() || test_g_pending()) {
253  if (!test_c_minimized() || !test_g_minimized()) {
254 #ifndef NDEBUG
255  cerr <<
256  "If there are pending constraints or generators, constraints\n"
257  "and generators must be minimized."
258  << endl;
259 #endif
260  return false;
261  }
262 
264 #ifndef NDEBUG
265  cerr <<
266  "If there are pending constraints or generators, there must\n"
267  "be at least a saturation matrix up-to-date."
268  << endl;
269 #endif
270  return false;
271  }
272  }
273 
274  // Any other case is OK.
275  return true;
276 }
Status()
By default Status is the zero-dim universe assertion.
void Parma_Polyhedra_Library::Polyhedron::Status::print ( ) const

Prints *this to std::cerr using operator<<.

void Parma_Polyhedra_Library::Polyhedron::Status::reset ( flags_t  mask)
inlineprivate

Reset the bits in mask.

Definition at line 55 of file Ph_Status_inlines.hh.

55  {
56  flags &= ~mask;
57 }
flags_t flags
This holds the current bitset.
void Parma_Polyhedra_Library::Polyhedron::Status::reset_c_minimized ( )
inline

Definition at line 130 of file Ph_Status_inlines.hh.

Referenced by Parma_Polyhedra_Library::Polyhedron::clear_constraints_minimized().

130  {
132 }
void reset(flags_t mask)
Reset the bits in mask.
void Parma_Polyhedra_Library::Polyhedron::Status::reset_c_pending ( )
inline

Definition at line 161 of file Ph_Status_inlines.hh.

Referenced by Parma_Polyhedra_Library::Polyhedron::clear_pending_constraints().

161  {
162  reset(CS_PENDING);
163 }
void reset(flags_t mask)
Reset the bits in mask.
void Parma_Polyhedra_Library::Polyhedron::Status::reset_c_up_to_date ( )
inline

Definition at line 100 of file Ph_Status_inlines.hh.

Referenced by Parma_Polyhedra_Library::Polyhedron::clear_constraints_up_to_date().

100  {
102 }
void reset(flags_t mask)
Reset the bits in mask.
void Parma_Polyhedra_Library::Polyhedron::Status::reset_empty ( )
inline

Definition at line 85 of file Ph_Status_inlines.hh.

References Parma_Polyhedra_Library::EMPTY.

Referenced by Parma_Polyhedra_Library::Polyhedron::clear_empty(), and OK().

85  {
86  reset(EMPTY);
87 }
void reset(flags_t mask)
Reset the bits in mask.
void Parma_Polyhedra_Library::Polyhedron::Status::reset_g_minimized ( )
inline

Definition at line 145 of file Ph_Status_inlines.hh.

Referenced by Parma_Polyhedra_Library::Polyhedron::clear_generators_minimized().

145  {
147 }
void reset(flags_t mask)
Reset the bits in mask.
void Parma_Polyhedra_Library::Polyhedron::Status::reset_g_pending ( )
inline

Definition at line 176 of file Ph_Status_inlines.hh.

Referenced by Parma_Polyhedra_Library::Polyhedron::clear_pending_generators().

176  {
177  reset(GS_PENDING);
178 }
void reset(flags_t mask)
Reset the bits in mask.
void Parma_Polyhedra_Library::Polyhedron::Status::reset_g_up_to_date ( )
inline

Definition at line 115 of file Ph_Status_inlines.hh.

Referenced by Parma_Polyhedra_Library::Polyhedron::clear_generators_up_to_date().

115  {
117 }
void reset(flags_t mask)
Reset the bits in mask.
void Parma_Polyhedra_Library::Polyhedron::Status::reset_sat_c_up_to_date ( )
inline

Definition at line 192 of file Ph_Status_inlines.hh.

Referenced by Parma_Polyhedra_Library::Polyhedron::clear_sat_c_up_to_date().

192  {
194 }
void reset(flags_t mask)
Reset the bits in mask.
void Parma_Polyhedra_Library::Polyhedron::Status::reset_sat_g_up_to_date ( )
inline

Definition at line 207 of file Ph_Status_inlines.hh.

Referenced by Parma_Polyhedra_Library::Polyhedron::clear_sat_g_up_to_date().

207  {
209 }
void reset(flags_t mask)
Reset the bits in mask.
void Parma_Polyhedra_Library::Polyhedron::Status::reset_zero_dim_univ ( )
inline

Definition at line 65 of file Ph_Status_inlines.hh.

References Parma_Polyhedra_Library::EMPTY.

65  {
66  // This is a no-op if the current status is not zero-dim.
67  if (flags == ZERO_DIM_UNIV) {
68  // In the zero-dim space, if it is not the universe it is empty.
69  flags = EMPTY;
70  }
71 }
flags_t flags
This holds the current bitset.
void Parma_Polyhedra_Library::Polyhedron::Status::set ( flags_t  mask)
inlineprivate

Set the bits in mask.

Definition at line 50 of file Ph_Status_inlines.hh.

50  {
51  flags |= mask;
52 }
flags_t flags
This holds the current bitset.
void Parma_Polyhedra_Library::Polyhedron::Status::set_c_minimized ( )
inline

Definition at line 135 of file Ph_Status_inlines.hh.

Referenced by Parma_Polyhedra_Library::Polyhedron::set_constraints_minimized().

135  {
136  set(C_MINIMIZED);
137 }
void set(flags_t mask)
Set the bits in mask.
void Parma_Polyhedra_Library::Polyhedron::Status::set_c_pending ( )
inline

Definition at line 166 of file Ph_Status_inlines.hh.

Referenced by Parma_Polyhedra_Library::Polyhedron::set_constraints_pending().

166  {
167  set(CS_PENDING);
168 }
void set(flags_t mask)
Set the bits in mask.
void Parma_Polyhedra_Library::Polyhedron::Status::set_c_up_to_date ( )
inline

Definition at line 105 of file Ph_Status_inlines.hh.

Referenced by Parma_Polyhedra_Library::Polyhedron::set_constraints_up_to_date().

105  {
106  set(C_UP_TO_DATE);
107 }
void set(flags_t mask)
Set the bits in mask.
void Parma_Polyhedra_Library::Polyhedron::Status::set_empty ( )
inline

Definition at line 90 of file Ph_Status_inlines.hh.

References Parma_Polyhedra_Library::EMPTY.

Referenced by Parma_Polyhedra_Library::Polyhedron::Polyhedron().

90  {
91  flags = EMPTY;
92 }
flags_t flags
This holds the current bitset.
void Parma_Polyhedra_Library::Polyhedron::Status::set_g_minimized ( )
inline

Definition at line 150 of file Ph_Status_inlines.hh.

Referenced by Parma_Polyhedra_Library::Polyhedron::set_generators_minimized().

150  {
151  set(G_MINIMIZED);
152 }
void set(flags_t mask)
Set the bits in mask.
void Parma_Polyhedra_Library::Polyhedron::Status::set_g_pending ( )
inline

Definition at line 181 of file Ph_Status_inlines.hh.

Referenced by Parma_Polyhedra_Library::Polyhedron::set_generators_pending().

181  {
182  set(GS_PENDING);
183 }
void set(flags_t mask)
Set the bits in mask.
void Parma_Polyhedra_Library::Polyhedron::Status::set_g_up_to_date ( )
inline

Definition at line 120 of file Ph_Status_inlines.hh.

Referenced by Parma_Polyhedra_Library::Polyhedron::set_generators_up_to_date().

120  {
121  set(G_UP_TO_DATE);
122 }
void set(flags_t mask)
Set the bits in mask.
void Parma_Polyhedra_Library::Polyhedron::Status::set_sat_c_up_to_date ( )
inline

Definition at line 197 of file Ph_Status_inlines.hh.

Referenced by Parma_Polyhedra_Library::Polyhedron::set_sat_c_up_to_date().

197  {
199 }
void set(flags_t mask)
Set the bits in mask.
void Parma_Polyhedra_Library::Polyhedron::Status::set_sat_g_up_to_date ( )
inline

Definition at line 212 of file Ph_Status_inlines.hh.

Referenced by Parma_Polyhedra_Library::Polyhedron::set_sat_g_up_to_date().

212  {
214 }
void set(flags_t mask)
Set the bits in mask.
void Parma_Polyhedra_Library::Polyhedron::Status::set_zero_dim_univ ( )
inline

Definition at line 74 of file Ph_Status_inlines.hh.

74  {
75  // Zero-dim universe is incompatible with anything else.
77 }
flags_t flags
This holds the current bitset.
bool Parma_Polyhedra_Library::Polyhedron::Status::test_all ( flags_t  mask) const
inlineprivate

Check whether all bits in mask are set.

Definition at line 40 of file Ph_Status_inlines.hh.

40  {
41  return (flags & mask) == mask;
42 }
flags_t flags
This holds the current bitset.
bool Parma_Polyhedra_Library::Polyhedron::Status::test_any ( flags_t  mask) const
inlineprivate

Check whether at least one bit in mask is set.

Definition at line 45 of file Ph_Status_inlines.hh.

45  {
46  return (flags & mask) != 0;
47 }
flags_t flags
This holds the current bitset.
bool Parma_Polyhedra_Library::Polyhedron::Status::test_c_minimized ( ) const
inline

Definition at line 125 of file Ph_Status_inlines.hh.

Referenced by Parma_Polyhedra_Library::Polyhedron::constraints_are_minimized().

125  {
126  return test_any(C_MINIMIZED);
127 }
bool test_any(flags_t mask) const
Check whether at least one bit in mask is set.
bool Parma_Polyhedra_Library::Polyhedron::Status::test_c_pending ( ) const
inline

Definition at line 156 of file Ph_Status_inlines.hh.

Referenced by Parma_Polyhedra_Library::Polyhedron::has_pending_constraints(), and Parma_Polyhedra_Library::Polyhedron::has_something_pending().

156  {
157  return test_any(CS_PENDING);
158 }
bool test_any(flags_t mask) const
Check whether at least one bit in mask is set.
bool Parma_Polyhedra_Library::Polyhedron::Status::test_c_up_to_date ( ) const
inline

Definition at line 95 of file Ph_Status_inlines.hh.

Referenced by Parma_Polyhedra_Library::Polyhedron::constraints_are_up_to_date().

95  {
96  return test_any(C_UP_TO_DATE);
97 }
bool test_any(flags_t mask) const
Check whether at least one bit in mask is set.
bool Parma_Polyhedra_Library::Polyhedron::Status::test_empty ( ) const
inline

Definition at line 80 of file Ph_Status_inlines.hh.

References Parma_Polyhedra_Library::EMPTY.

Referenced by Parma_Polyhedra_Library::Polyhedron::marked_empty().

80  {
81  return test_any(EMPTY);
82 }
bool test_any(flags_t mask) const
Check whether at least one bit in mask is set.
bool Parma_Polyhedra_Library::Polyhedron::Status::test_g_minimized ( ) const
inline

Definition at line 140 of file Ph_Status_inlines.hh.

Referenced by Parma_Polyhedra_Library::Polyhedron::generators_are_minimized().

140  {
141  return test_any(G_MINIMIZED);
142 }
bool test_any(flags_t mask) const
Check whether at least one bit in mask is set.
bool Parma_Polyhedra_Library::Polyhedron::Status::test_g_pending ( ) const
inline

Definition at line 171 of file Ph_Status_inlines.hh.

Referenced by Parma_Polyhedra_Library::Polyhedron::has_pending_generators(), and Parma_Polyhedra_Library::Polyhedron::has_something_pending().

171  {
172  return test_any(GS_PENDING);
173 }
bool test_any(flags_t mask) const
Check whether at least one bit in mask is set.
bool Parma_Polyhedra_Library::Polyhedron::Status::test_g_up_to_date ( ) const
inline

Definition at line 110 of file Ph_Status_inlines.hh.

Referenced by Parma_Polyhedra_Library::Polyhedron::generators_are_up_to_date().

110  {
111  return test_any(G_UP_TO_DATE);
112 }
bool test_any(flags_t mask) const
Check whether at least one bit in mask is set.
bool Parma_Polyhedra_Library::Polyhedron::Status::test_sat_c_up_to_date ( ) const
inline

Definition at line 187 of file Ph_Status_inlines.hh.

Referenced by Parma_Polyhedra_Library::Polyhedron::sat_c_is_up_to_date().

187  {
188  return test_any(SAT_C_UP_TO_DATE);
189 }
bool test_any(flags_t mask) const
Check whether at least one bit in mask is set.
bool Parma_Polyhedra_Library::Polyhedron::Status::test_sat_g_up_to_date ( ) const
inline

Definition at line 202 of file Ph_Status_inlines.hh.

Referenced by Parma_Polyhedra_Library::Polyhedron::sat_g_is_up_to_date().

202  {
203  return test_any(SAT_G_UP_TO_DATE);
204 }
bool test_any(flags_t mask) const
Check whether at least one bit in mask is set.
bool Parma_Polyhedra_Library::Polyhedron::Status::test_zero_dim_univ ( ) const
inline

Definition at line 60 of file Ph_Status_inlines.hh.

Referenced by Parma_Polyhedra_Library::Polyhedron::add_space_dimensions_and_embed(), and OK().

60  {
61  return flags == ZERO_DIM_UNIV;
62 }
flags_t flags
This holds the current bitset.

Friends And Related Function Documentation

bool get_field ( std::istream &  s,
const char *  keyword,
bool &  positive 
)
related

Reads a keyword and its associated on/off, +/- flag from s. Returns true if the operation is successful, returns false otherwise. When successful, positive is set to true if the flag is on; it is set to false otherwise.

Definition at line 54 of file Ph_Status.cc.

54  {
55  std::string str;
56  if (!(s >> str)
57  || (str[0] != '+' && str[0] != '-')
58  || str.substr(1) != keyword) {
59  return false;
60  }
61  positive = (str[0] == '+');
62  return true;
63 }

Member Data Documentation

const flags_t Parma_Polyhedra_Library::Polyhedron::Status::C_MINIMIZED = 1U << 3
staticprivate

Definition at line 157 of file Polyhedron_defs.hh.

const flags_t Parma_Polyhedra_Library::Polyhedron::Status::C_UP_TO_DATE = 1U << 1
staticprivate

Definition at line 155 of file Polyhedron_defs.hh.

const flags_t Parma_Polyhedra_Library::Polyhedron::Status::CS_PENDING = 1U << 7
staticprivate

Definition at line 161 of file Polyhedron_defs.hh.

const flags_t Parma_Polyhedra_Library::Polyhedron::Status::EMPTY = 1U << 0
staticprivate

Definition at line 154 of file Polyhedron_defs.hh.

flags_t Parma_Polyhedra_Library::Polyhedron::Status::flags
private

This holds the current bitset.

Definition at line 166 of file Polyhedron_defs.hh.

const flags_t Parma_Polyhedra_Library::Polyhedron::Status::G_MINIMIZED = 1U << 4
staticprivate

Definition at line 158 of file Polyhedron_defs.hh.

const flags_t Parma_Polyhedra_Library::Polyhedron::Status::G_UP_TO_DATE = 1U << 2
staticprivate

Definition at line 156 of file Polyhedron_defs.hh.

const flags_t Parma_Polyhedra_Library::Polyhedron::Status::GS_PENDING = 1U << 8
staticprivate

Definition at line 162 of file Polyhedron_defs.hh.

const flags_t Parma_Polyhedra_Library::Polyhedron::Status::SAT_C_UP_TO_DATE = 1U << 5
staticprivate

Definition at line 159 of file Polyhedron_defs.hh.

const flags_t Parma_Polyhedra_Library::Polyhedron::Status::SAT_G_UP_TO_DATE = 1U << 6
staticprivate

Definition at line 160 of file Polyhedron_defs.hh.

const flags_t Parma_Polyhedra_Library::Polyhedron::Status::ZERO_DIM_UNIV = 0U
staticprivate

Definition at line 153 of file Polyhedron_defs.hh.


The documentation for this class was generated from the following files: