PPL
1.2
|
The convergence certificate for the BHRZ03 widening operator. More...
#include <BHRZ03_Certificate_defs.hh>
Classes | |
struct | Compare |
A total ordering on BHRZ03 certificates. More... | |
Public Member Functions | |
BHRZ03_Certificate () | |
Default constructor. More... | |
BHRZ03_Certificate (const Polyhedron &ph) | |
Constructor: computes the certificate for ph . More... | |
BHRZ03_Certificate (const BHRZ03_Certificate &y) | |
Copy constructor. More... | |
~BHRZ03_Certificate () | |
Destructor. More... | |
int | compare (const BHRZ03_Certificate &y) const |
The comparison function for certificates. More... | |
int | compare (const Polyhedron &ph) const |
Compares *this with the certificate for polyhedron ph . More... | |
bool | is_stabilizing (const Polyhedron &ph) const |
Returns true if and only if the certificate for polyhedron ph is strictly smaller than *this . More... | |
bool | OK () const |
Check if gathered information is meaningful. More... | |
Private Attributes | |
dimension_type | affine_dim |
Affine dimension of the polyhedron. More... | |
dimension_type | lin_space_dim |
Dimension of the lineality space of the polyhedron. More... | |
dimension_type | num_constraints |
Cardinality of a non-redundant constraint system for the polyhedron. More... | |
dimension_type | num_points |
Number of non-redundant points in a generator system for the polyhedron. More... | |
std::vector< dimension_type > | num_rays_null_coord |
A vector containing, for each index `0 <= i < space_dim', the number of non-redundant rays in a generator system of the polyhedron having exactly `i' null coordinates. More... | |
The convergence certificate for the BHRZ03 widening operator.
Convergence certificates are used to instantiate the BHZ03 framework so as to define widening operators for the finite powerset domain.
Definition at line 42 of file BHRZ03_Certificate_defs.hh.
|
inline |
Default constructor.
Definition at line 32 of file BHRZ03_Certificate_inlines.hh.
References OK().
Parma_Polyhedra_Library::BHRZ03_Certificate::BHRZ03_Certificate | ( | const Polyhedron & | ph | ) |
Constructor: computes the certificate for ph
.
Definition at line 32 of file BHRZ03_Certificate.cc.
References affine_dim, Parma_Polyhedra_Library::Constraint_System::begin(), Parma_Polyhedra_Library::Generator_System::begin(), Parma_Polyhedra_Library::Generator::CLOSURE_POINT, Parma_Polyhedra_Library::Constraint_System::end(), Parma_Polyhedra_Library::Generator_System::end(), Parma_Polyhedra_Library::Polyhedron::is_necessarily_closed(), lin_space_dim, Parma_Polyhedra_Library::Generator::LINE, Parma_Polyhedra_Library::Polyhedron::marked_empty(), Parma_Polyhedra_Library::Polyhedron::minimize(), Parma_Polyhedra_Library::Polyhedron::minimized_constraints(), Parma_Polyhedra_Library::Polyhedron::minimized_generators(), num_constraints, num_points, num_rays_null_coord, OK(), Parma_Polyhedra_Library::Generator::POINT, Parma_Polyhedra_Library::Generator::RAY, and Parma_Polyhedra_Library::Polyhedron::space_dimension().
|
inline |
Copy constructor.
Definition at line 40 of file BHRZ03_Certificate_inlines.hh.
|
inline |
int Parma_Polyhedra_Library::BHRZ03_Certificate::compare | ( | const BHRZ03_Certificate & | y | ) | const |
The comparison function for certificates.
*this
is smaller than, equal to, or greater than y
, respectively.Compares *this
with y
, using a total ordering which is a refinement of the limited growth ordering relation for the BHRZ03 widening.
Definition at line 100 of file BHRZ03_Certificate.cc.
References affine_dim, lin_space_dim, num_constraints, Parma_Polyhedra_Library::Implementation::num_constraints(), num_points, num_rays_null_coord, and OK().
Referenced by is_stabilizing(), and Parma_Polyhedra_Library::BHRZ03_Certificate::Compare::operator()().
int Parma_Polyhedra_Library::BHRZ03_Certificate::compare | ( | const Polyhedron & | ph | ) | const |
Compares *this
with the certificate for polyhedron ph
.
Definition at line 128 of file BHRZ03_Certificate.cc.
References Parma_Polyhedra_Library::Constraint_System::begin(), Parma_Polyhedra_Library::Generator_System::begin(), Parma_Polyhedra_Library::Generator::CLOSURE_POINT, Parma_Polyhedra_Library::Constraint_System::end(), Parma_Polyhedra_Library::Generator_System::end(), Parma_Polyhedra_Library::Polyhedron::is_necessarily_closed(), Parma_Polyhedra_Library::Generator::LINE, Parma_Polyhedra_Library::Polyhedron::marked_empty(), Parma_Polyhedra_Library::Polyhedron::minimize(), Parma_Polyhedra_Library::Polyhedron::minimized_constraints(), Parma_Polyhedra_Library::Polyhedron::minimized_generators(), Parma_Polyhedra_Library::Implementation::num_constraints(), Parma_Polyhedra_Library::Generator::POINT, Parma_Polyhedra_Library::Generator::RAY, Parma_Polyhedra_Library::Polyhedron::space_dim, and Parma_Polyhedra_Library::Polyhedron::space_dimension().
|
inline |
Returns true
if and only if the certificate for polyhedron ph
is strictly smaller than *this
.
Definition at line 51 of file BHRZ03_Certificate_inlines.hh.
References compare().
Referenced by Parma_Polyhedra_Library::Polyhedron::BHRZ03_combining_constraints(), Parma_Polyhedra_Library::Polyhedron::BHRZ03_evolving_points(), Parma_Polyhedra_Library::Polyhedron::BHRZ03_evolving_rays(), and Parma_Polyhedra_Library::Polyhedron::BHRZ03_widening_assign().
bool Parma_Polyhedra_Library::BHRZ03_Certificate::OK | ( | ) | const |
Check if gathered information is meaningful.
Definition at line 249 of file BHRZ03_Certificate.cc.
References Parma_Polyhedra_Library::Implementation::num_constraints().
Referenced by BHRZ03_Certificate(), and compare().
|
private |
Affine dimension of the polyhedron.
Definition at line 97 of file BHRZ03_Certificate_defs.hh.
Referenced by BHRZ03_Certificate(), and compare().
|
private |
Dimension of the lineality space of the polyhedron.
Definition at line 99 of file BHRZ03_Certificate_defs.hh.
Referenced by BHRZ03_Certificate(), and compare().
|
private |
Cardinality of a non-redundant constraint system for the polyhedron.
Definition at line 101 of file BHRZ03_Certificate_defs.hh.
Referenced by BHRZ03_Certificate(), and compare().
|
private |
Number of non-redundant points in a generator system for the polyhedron.
Definition at line 106 of file BHRZ03_Certificate_defs.hh.
Referenced by BHRZ03_Certificate(), and compare().
|
private |
A vector containing, for each index `0 <= i < space_dim', the number of non-redundant rays in a generator system of the polyhedron having exactly `i' null coordinates.
Definition at line 112 of file BHRZ03_Certificate_defs.hh.
Referenced by BHRZ03_Certificate(), and compare().