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_Polyhedronoperator= (const NNC_Polyhedron &y)
 The assignment operator. (*this and y can be dimension-incompatible.).
NNC_Polyhedronoperator= (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 $\Rset^n$.

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

Parma_Polyhedra_Library::NNC_Polyhedron::NNC_Polyhedron ( dimension_type  num_dimensions = 0,
Degenerate_Element  kind = UNIVERSE 
) [inline, explicit]

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.
Parma_Polyhedra_Library::NNC_Polyhedron::NNC_Polyhedron ( Constraint_System cs,
Recycle_Input  dummy 
) [inline]

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.
Parma_Polyhedra_Library::NNC_Polyhedron::NNC_Polyhedron ( Generator_System gs,
Recycle_Input  dummy 
) [inline]

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.
Parma_Polyhedra_Library::NNC_Polyhedron::NNC_Polyhedron ( Congruence_System cgs,
Recycle_Input  dummy 
)

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.
Parma_Polyhedra_Library::NNC_Polyhedron::NNC_Polyhedron ( const C_Polyhedron y,
Complexity_Class  complexity = ANY_COMPLEXITY 
) [explicit]

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:
Generated on Sun Feb 27 10:10:57 2011 for PPL by  doxygen 1.6.3