Parma_Polyhedra_Library::NNC_Polyhedron Class Reference
[C++ Language Interface]
A not necessarily closed convex polyhedron.
More...
#include <ppl.hh>
Inherits Parma_Polyhedra_Library::Polyhedron.
List of all members.
Public Member Functions |
| NNC_Polyhedron (dimension_type num_dimensions=0, Degenerate_Element kind=UNIVERSE) |
| Builds either the universe or the empty NNC polyhedron.
|
| NNC_Polyhedron (const Constraint_System &cs) |
| Builds an NNC polyhedron from a system of constraints.
|
| NNC_Polyhedron (Constraint_System &cs, Recycle_Input dummy) |
| Builds an NNC polyhedron recycling a system of constraints.
|
| NNC_Polyhedron (const Generator_System &gs) |
| Builds an NNC polyhedron from a system of generators.
|
| NNC_Polyhedron (Generator_System &gs, Recycle_Input dummy) |
| Builds an NNC polyhedron recycling a system of generators.
|
| NNC_Polyhedron (const Congruence_System &cgs) |
| Builds an NNC polyhedron from a system of congruences.
|
| NNC_Polyhedron (Congruence_System &cgs, Recycle_Input dummy) |
| Builds an NNC polyhedron recycling a system of congruences.
|
| NNC_Polyhedron (const C_Polyhedron &y, Complexity_Class complexity=ANY_COMPLEXITY) |
| Builds an NNC polyhedron from the C polyhedron y .
|
template<typename Interval > |
| NNC_Polyhedron (const Box< Interval > &box, Complexity_Class complexity=ANY_COMPLEXITY) |
| Builds an NNC polyhedron out of a box.
|
| NNC_Polyhedron (const Grid &grid, Complexity_Class complexity=ANY_COMPLEXITY) |
| Builds an NNC polyhedron out of a grid.
|
template<typename U > |
| NNC_Polyhedron (const BD_Shape< U > &bd, Complexity_Class complexity=ANY_COMPLEXITY) |
| Builds a NNC polyhedron out of a BD shape.
|
template<typename U > |
| NNC_Polyhedron (const Octagonal_Shape< U > &os, Complexity_Class complexity=ANY_COMPLEXITY) |
| Builds a NNC polyhedron out of an octagonal shape.
|
| NNC_Polyhedron (const NNC_Polyhedron &y, Complexity_Class complexity=ANY_COMPLEXITY) |
| Ordinary copy constructor.
|
NNC_Polyhedron & | operator= (const NNC_Polyhedron &y) |
| The assignment operator. (*this and y can be dimension-incompatible.).
|
NNC_Polyhedron & | operator= (const C_Polyhedron &y) |
| Assigns to *this the C polyhedron y .
|
| ~NNC_Polyhedron () |
| Destructor.
|
bool | poly_hull_assign_if_exact (const NNC_Polyhedron &y) |
| If the poly-hull of *this and y is exact it is assigned to *this and true is returned, otherwise false is returned.
|
bool | upper_bound_assign_if_exact (const NNC_Polyhedron &y) |
| Same as poly_hull_assign_if_exact(y).
|
Detailed Description
A not necessarily closed convex polyhedron.
An object of the class NNC_Polyhedron represents a not necessarily closed (NNC) convex polyhedron in the vector space
.
- Note:
- Since NNC polyhedra are a generalization of closed polyhedra, any object of the class C_Polyhedron can be (explicitly) converted into an object of the class NNC_Polyhedron. The reason for defining two different classes is that objects of the class C_Polyhedron are characterized by a more efficient implementation, requiring less time and memory resources.
Constructor & Destructor Documentation
Builds either the universe or the empty NNC polyhedron.
- Parameters:
-
| num_dimensions | The number of dimensions of the vector space enclosing the NNC polyhedron; |
| kind | Specifies whether a universe or an empty NNC polyhedron should be built. |
- Exceptions:
-
| std::length_error | Thrown if num_dimensions exceeds the maximum allowed space dimension. |
Both parameters are optional: by default, a 0-dimension space universe NNC polyhedron is built.
Parma_Polyhedra_Library::NNC_Polyhedron::NNC_Polyhedron |
( |
const Constraint_System & |
cs |
) |
[inline, explicit] |
Builds an NNC polyhedron from a system of constraints.
The polyhedron inherits the space dimension of the constraint system.
- Parameters:
-
| cs | The system of constraints defining the polyhedron. |
Builds an NNC polyhedron recycling a system of constraints.
The polyhedron inherits the space dimension of the constraint system.
- Parameters:
-
| cs | The system of constraints defining the polyhedron. It is not declared const because its data-structures may be recycled to build the polyhedron. |
| dummy | A dummy tag to syntactically differentiate this one from the other constructors. |
Parma_Polyhedra_Library::NNC_Polyhedron::NNC_Polyhedron |
( |
const Generator_System & |
gs |
) |
[inline, explicit] |
Builds an NNC polyhedron from a system of generators.
The polyhedron inherits the space dimension of the generator system.
- Parameters:
-
| gs | The system of generators defining the polyhedron. |
- Exceptions:
-
| std::invalid_argument | Thrown if the system of generators is not empty but has no points. |
Builds an NNC polyhedron recycling a system of generators.
The polyhedron inherits the space dimension of the generator system.
- Parameters:
-
| gs | The system of generators defining the polyhedron. It is not declared const because its data-structures may be recycled to build the polyhedron. |
| dummy | A dummy tag to syntactically differentiate this one from the other constructors. |
- Exceptions:
-
| std::invalid_argument | Thrown if the system of generators is not empty but has no points. |
Parma_Polyhedra_Library::NNC_Polyhedron::NNC_Polyhedron |
( |
const Congruence_System & |
cgs |
) |
[explicit] |
Builds an NNC polyhedron from a system of congruences.
The polyhedron inherits the space dimension of the congruence system.
- Parameters:
-
| cgs | The system of congruences defining the polyhedron. It is not declared const because its data-structures may be recycled to build the polyhedron. |
Builds an NNC polyhedron recycling a system of congruences.
The polyhedron inherits the space dimension of the congruence system.
- Parameters:
-
| cgs | The system of congruences defining the polyhedron. It is not declared const because its data-structures may be recycled to build the polyhedron. |
| dummy | A dummy tag to syntactically differentiate this one from the other constructors. |
Builds an NNC polyhedron from the C polyhedron y
.
- Parameters:
-
| y | The C polyhedron to be used; |
| complexity | This argument is ignored. |
template<typename Interval >
Parma_Polyhedra_Library::NNC_Polyhedron::NNC_Polyhedron |
( |
const Box< Interval > & |
box, |
|
|
Complexity_Class |
complexity = ANY_COMPLEXITY | |
|
) |
| | [inline, explicit] |
Builds an NNC polyhedron out of a box.
The polyhedron inherits the space dimension of the box and is the most precise that includes the box.
- Parameters:
-
| box | The box representing the polyhedron to be built; |
| complexity | This argument is ignored as the algorithm used has polynomial complexity. |
- Exceptions:
-
| std::length_error | Thrown if the space dimension of box exceeds the maximum allowed space dimension. |
Parma_Polyhedra_Library::NNC_Polyhedron::NNC_Polyhedron |
( |
const Grid & |
grid, |
|
|
Complexity_Class |
complexity = ANY_COMPLEXITY | |
|
) |
| | [explicit] |
Builds an NNC polyhedron out of a grid.
The polyhedron inherits the space dimension of the grid and is the most precise that includes the grid.
- Parameters:
-
| grid | The grid used to build the polyhedron. |
| complexity | This argument is ignored as the algorithm used has polynomial complexity. |
template<typename U >
Parma_Polyhedra_Library::NNC_Polyhedron::NNC_Polyhedron |
( |
const BD_Shape< U > & |
bd, |
|
|
Complexity_Class |
complexity = ANY_COMPLEXITY | |
|
) |
| | [inline, explicit] |
Builds a NNC polyhedron out of a BD shape.
The polyhedron inherits the space dimension of the BD shape and is the most precise that includes the BD shape.
- Parameters:
-
| bd | The BD shape used to build the polyhedron. |
| complexity | This argument is ignored as the algorithm used has polynomial complexity. |
template<typename U >
Parma_Polyhedra_Library::NNC_Polyhedron::NNC_Polyhedron |
( |
const Octagonal_Shape< U > & |
os, |
|
|
Complexity_Class |
complexity = ANY_COMPLEXITY | |
|
) |
| | [inline, explicit] |
Builds a NNC polyhedron out of an octagonal shape.
The polyhedron inherits the space dimension of the octagonal shape and is the most precise that includes the octagonal shape.
- Parameters:
-
| os | The octagonal shape used to build the polyhedron. |
| complexity | This argument is ignored as the algorithm used has polynomial complexity. |
Member Function Documentation
bool Parma_Polyhedra_Library::NNC_Polyhedron::poly_hull_assign_if_exact |
( |
const NNC_Polyhedron & |
y |
) |
|
If the poly-hull of *this
and y
is exact it is assigned to *this
and true
is returned, otherwise false
is returned.
- Exceptions:
-
| std::invalid_argument | Thrown if *this and y are dimension-incompatible. |
The documentation for this class was generated from the following file: