|
PPL
0.12.1
|
A generic Constant Floating Point Expression. More...
#include <Constant_Floating_Point_Expression.defs.hh>


Public Types | |
| typedef Floating_Point_Expression < FP_Interval_Type, FP_Format > ::FP_Linear_Form | FP_Linear_Form |
| Alias for the Linear_Form<FP_Interval_Type> from Floating_Point_Expression. | |
| typedef Floating_Point_Expression < FP_Interval_Type, FP_Format > ::FP_Interval_Abstract_Store | FP_Interval_Abstract_Store |
| Alias for the Box<FP_Interval_Type> from Floating_Point_Expression. | |
| typedef Floating_Point_Expression < FP_Interval_Type, FP_Format > ::FP_Linear_Form_Abstract_Store | FP_Linear_Form_Abstract_Store |
| Alias for the std::map<dimension_type, FP_Linear_Form> from Floating_Point_Expression. | |
| typedef Floating_Point_Expression < FP_Interval_Type, FP_Format > ::boundary_type | boundary_type |
| Alias for the FP_Interval_Type::boundary_type from Floating_Point_Expression. | |
| typedef Floating_Point_Expression < FP_Interval_Type, FP_Format > ::info_type | info_type |
| Alias for the FP_Interval_Type::info_type from Floating_Point_Expression. | |
Public Member Functions | |
| bool | linearize (const FP_Interval_Abstract_Store &int_store, const FP_Linear_Form_Abstract_Store &lf_store, FP_Linear_Form &result) const |
| Linearizes the expression in a given astract store. | |
| void | m_swap (Constant_Floating_Point_Expression &y) |
Swaps *this with y. | |
Constructors and Destructor | |
| Constant_Floating_Point_Expression (const boundary_type lower_bound, const boundary_type upper_bound) | |
Constructor with two parameters: builds the constant floating point expression from a lower_bound and an upper_bound of its value in the concrete domain. | |
| Constant_Floating_Point_Expression (const char *str_value) | |
Builds a constant floating point expression with the value expressed by the string str_value. | |
| ~Constant_Floating_Point_Expression () | |
| Destructor. | |
Private Member Functions | |
| Constant_Floating_Point_Expression (const Constant_Floating_Point_Expression &y) | |
| Inhibited copy constructor. | |
| Constant_Floating_Point_Expression & | operator= (const Constant_Floating_Point_Expression &y) |
| Inhibited assignment operator. | |
Private Attributes | |
| FP_Interval_Type | value |
Related Functions | |
(Note that these are not member functions.) | |
| template<typename FP_Interval_Type , typename FP_Format > | |
| void | swap (Constant_Floating_Point_Expression< FP_Interval_Type, FP_Format > &x, Constant_Floating_Point_Expression< FP_Interval_Type, FP_Format > &y) |
Swaps x with y. | |
| template<typename FP_Interval_Type , typename FP_Format > | |
| void | swap (Constant_Floating_Point_Expression< FP_Interval_Type, FP_Format > &x, Constant_Floating_Point_Expression< FP_Interval_Type, FP_Format > &y) |
A generic Constant Floating Point Expression.
FP_Interval_Type represents the type of the intervals used in the abstract domain.FP_Format represents the floating point format used in the concrete domain.The linearization of a constant floating point expression results in a linear form consisting of only the inhomogeneous term
, where
and
are the lower and upper bounds of the constant value given to the class constructor.
Definition at line 61 of file Constant_Floating_Point_Expression.defs.hh.
| typedef Floating_Point_Expression<FP_Interval_Type, FP_Format>::boundary_type Parma_Polyhedra_Library::Constant_Floating_Point_Expression< FP_Interval_Type, FP_Format >::boundary_type |
Alias for the FP_Interval_Type::boundary_type from Floating_Point_Expression.
Reimplemented from Parma_Polyhedra_Library::Floating_Point_Expression< FP_Interval_Type, FP_Format >.
Definition at line 96 of file Constant_Floating_Point_Expression.defs.hh.
| typedef Floating_Point_Expression<FP_Interval_Type, FP_Format>:: FP_Interval_Abstract_Store Parma_Polyhedra_Library::Constant_Floating_Point_Expression< FP_Interval_Type, FP_Format >::FP_Interval_Abstract_Store |
Alias for the Box<FP_Interval_Type> from Floating_Point_Expression.
Reimplemented from Parma_Polyhedra_Library::Floating_Point_Expression< FP_Interval_Type, FP_Format >.
Definition at line 80 of file Constant_Floating_Point_Expression.defs.hh.
| typedef Floating_Point_Expression<FP_Interval_Type, FP_Format>:: FP_Linear_Form Parma_Polyhedra_Library::Constant_Floating_Point_Expression< FP_Interval_Type, FP_Format >::FP_Linear_Form |
Alias for the Linear_Form<FP_Interval_Type> from Floating_Point_Expression.
Reimplemented from Parma_Polyhedra_Library::Floating_Point_Expression< FP_Interval_Type, FP_Format >.
Definition at line 72 of file Constant_Floating_Point_Expression.defs.hh.
| typedef Floating_Point_Expression<FP_Interval_Type, FP_Format>:: FP_Linear_Form_Abstract_Store Parma_Polyhedra_Library::Constant_Floating_Point_Expression< FP_Interval_Type, FP_Format >::FP_Linear_Form_Abstract_Store |
Alias for the std::map<dimension_type, FP_Linear_Form> from Floating_Point_Expression.
Reimplemented from Parma_Polyhedra_Library::Floating_Point_Expression< FP_Interval_Type, FP_Format >.
Definition at line 88 of file Constant_Floating_Point_Expression.defs.hh.
| typedef Floating_Point_Expression<FP_Interval_Type, FP_Format>::info_type Parma_Polyhedra_Library::Constant_Floating_Point_Expression< FP_Interval_Type, FP_Format >::info_type |
Alias for the FP_Interval_Type::info_type from Floating_Point_Expression.
Reimplemented from Parma_Polyhedra_Library::Floating_Point_Expression< FP_Interval_Type, FP_Format >.
Definition at line 102 of file Constant_Floating_Point_Expression.defs.hh.
|
inline |
Constructor with two parameters: builds the constant floating point expression from a lower_bound and an upper_bound of its value in the concrete domain.
Definition at line 40 of file Constant_Floating_Point_Expression.inlines.hh.
References Parma_Polyhedra_Library::GREATER_OR_EQUAL, Parma_Polyhedra_Library::i_constraint(), Parma_Polyhedra_Library::LESS_OR_EQUAL, and value.
{
assert(lb <= ub);
value.build(i_constraint(GREATER_OR_EQUAL, lb),
i_constraint(LESS_OR_EQUAL, ub));
}
|
inline |
Builds a constant floating point expression with the value expressed by the string str_value.
Definition at line 34 of file Constant_Floating_Point_Expression.inlines.hh.
: value(str_value) {}
|
inline |
|
private |
Inhibited copy constructor.
|
inlinevirtual |
Linearizes the expression in a given astract store.
Makes result become the linearization of *this in the given composite abstract store.
| int_store | The interval abstract store. |
| lf_store | The linear form abstract store. |
| result | The modified linear form. |
true if the linearization succeeded, false otherwise.See the class description for an explanation of how result is computed.
Implements Parma_Polyhedra_Library::Floating_Point_Expression< FP_Interval_Type, FP_Format >.
Definition at line 63 of file Constant_Floating_Point_Expression.inlines.hh.
References value.
{
result = FP_Linear_Form(value);
return true;
}
|
inline |
Swaps *this with y.
Definition at line 55 of file Constant_Floating_Point_Expression.inlines.hh.
References Parma_Polyhedra_Library::swap(), Parma_Polyhedra_Library::Constant_Floating_Point_Expression< FP_Interval_Type, FP_Format >::value, and value.
Referenced by Parma_Polyhedra_Library::Constant_Floating_Point_Expression< FP_Interval_Type, FP_Format >::swap().
|
private |
Inhibited assignment operator.
|
related |
Swaps x with y.
|
related |
Definition at line 73 of file Constant_Floating_Point_Expression.inlines.hh.
References Parma_Polyhedra_Library::Constant_Floating_Point_Expression< FP_Interval_Type, FP_Format >::m_swap().
{
x.m_swap(y);
}
|
private |
Definition at line 149 of file Constant_Floating_Point_Expression.defs.hh.
Referenced by Parma_Polyhedra_Library::Constant_Floating_Point_Expression< FP_Interval_Type, FP_Format >::m_swap().