Public Member Functions |
| Linear_Form () |
| Default constructor: returns a copy of Linear_Form::zero().
|
| Linear_Form (const Linear_Form &f) |
| Ordinary copy constructor.
|
| ~Linear_Form () |
| Destructor.
|
| Linear_Form (const C &n) |
| Builds the linear form corresponding to the inhomogeneous term n .
|
| Linear_Form (Variable v) |
| Builds the linear form corresponding to the variable v .
|
| Linear_Form (const Linear_Expression &e) |
| Builds a linear form approximating the linear expression e .
|
dimension_type | space_dimension () const |
| Returns the dimension of the vector space enclosing *this .
|
const C & | coefficient (Variable v) const |
| Returns the coefficient of v in *this .
|
const C & | inhomogeneous_term () const |
| Returns the inhomogeneous term of *this .
|
void | negate () |
| Negates all the coefficients of *this .
|
memory_size_type | total_memory_in_bytes () const |
| Returns a lower bound to the total size in bytes of the memory occupied by *this .
|
memory_size_type | external_memory_in_bytes () const |
| Returns the size in bytes of the memory managed by *this .
|
void | ascii_dump () const |
| Writes to std::cerr an ASCII representation of *this .
|
void | ascii_dump (std::ostream &s) const |
| Writes to s an ASCII representation of *this .
|
void | print () const |
| Prints *this to std::cerr using operator<< .
|
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.
|
bool | OK () const |
| Checks if all the invariants are satisfied.
|
void | m_swap (Linear_Form &y) |
| Swaps *this with y .
|
bool | overflows () const |
| Verifies if the linear form overflows.
|
void | relative_error (Floating_Point_Format analyzed_format, Linear_Form &result) const |
| Computes the relative error associated to floating point computations that operate on a quantity that is overapproximated by *this .
|
template<typename Target > |
bool | intervalize (const FP_Oracle< Target, C > &oracle, C &result) const |
| Makes result become an interval that overapproximates all the possible values of *this .
|
Static Public Member Functions |
static dimension_type | max_space_dimension () |
| Returns the maximum space dimension a Linear_Form can handle.
|
Related Functions |
(Note that these are not member functions.)
|
template<typename FP_Interval_Type > |
void | discard_occurrences (std::map< dimension_type, Linear_Form< FP_Interval_Type > > &lf_store, Variable var) |
template<typename FP_Interval_Type > |
void | affine_form_image (std::map< dimension_type, Linear_Form< FP_Interval_Type > > &lf_store, Variable var, const Linear_Form< FP_Interval_Type > &lf) |
template<typename FP_Interval_Type > |
void | upper_bound_assign (std::map< dimension_type, Linear_Form< FP_Interval_Type > > &ls1, const std::map< dimension_type, Linear_Form< FP_Interval_Type > > &ls2) |
template<typename C > |
void | swap (Linear_Form< C > &x, Linear_Form< C > &y) |
| Swaps x with y .
|
template<typename C > |
Linear_Form< C > | operator+ (const Linear_Form< C > &f1, const Linear_Form< C > &f2) |
| Returns the linear form f1 + f2 .
|
template<typename C > |
Linear_Form< C > | operator+ (Variable v, const Linear_Form< C > &f) |
| Returns the linear form v + f .
|
template<typename C > |
Linear_Form< C > | operator+ (const Linear_Form< C > &f, Variable v) |
| Returns the linear form f + v .
|
template<typename C > |
Linear_Form< C > | operator+ (const C &n, const Linear_Form< C > &f) |
| Returns the linear form n + f .
|
template<typename C > |
Linear_Form< C > | operator+ (const Linear_Form< C > &f, const C &n) |
| Returns the linear form f + n .
|
template<typename C > |
Linear_Form< C > | operator+ (const Linear_Form< C > &f) |
| Returns the linear form f .
|
template<typename C > |
Linear_Form< C > | operator- (const Linear_Form< C > &f) |
| Returns the linear form - f .
|
template<typename C > |
Linear_Form< C > | operator- (const Linear_Form< C > &f1, const Linear_Form< C > &f2) |
| Returns the linear form f1 - f2 .
|
template<typename C > |
Linear_Form< C > | operator- (Variable v, const Linear_Form< C > &f) |
| Returns the linear form v - f .
|
template<typename C > |
Linear_Form< C > | operator- (const Linear_Form< C > &f, Variable v) |
| Returns the linear form f - v .
|
template<typename C > |
Linear_Form< C > | operator- (const C &n, const Linear_Form< C > &f) |
| Returns the linear form n - f .
|
template<typename C > |
Linear_Form< C > | operator- (const Linear_Form< C > &f, const C &n) |
| Returns the linear form f - n .
|
template<typename C > |
Linear_Form< C > | operator* (const C &n, const Linear_Form< C > &f) |
| Returns the linear form n * f .
|
template<typename C > |
Linear_Form< C > | operator* (const Linear_Form< C > &f, const C &n) |
| Returns the linear form f * n .
|
template<typename C > |
Linear_Form< C > & | operator+= (Linear_Form< C > &f1, const Linear_Form< C > &f2) |
| Returns the linear form f1 + f2 and assigns it to e1 .
|
template<typename C > |
Linear_Form< C > & | operator+= (Linear_Form< C > &f, Variable v) |
| Returns the linear form f + v and assigns it to f .
|
template<typename C > |
Linear_Form< C > & | operator+= (Linear_Form< C > &f, const C &n) |
| Returns the linear form f + n and assigns it to f .
|
template<typename C > |
Linear_Form< C > & | operator-= (Linear_Form< C > &f1, const Linear_Form< C > &f2) |
| Returns the linear form f1 - f2 and assigns it to f1 .
|
template<typename C > |
Linear_Form< C > & | operator-= (Linear_Form< C > &f, Variable v) |
| Returns the linear form f - v and assigns it to f .
|
template<typename C > |
Linear_Form< C > & | operator-= (Linear_Form< C > &f, const C &n) |
| Returns the linear form f - n and assigns it to f .
|
template<typename C > |
Linear_Form< C > & | operator*= (Linear_Form< C > &f, const C &n) |
| Returns the linear form n * f and assigns it to f .
|
template<typename C > |
Linear_Form< C > & | operator/= (Linear_Form< C > &f, const C &n) |
| Returns the linear form f / n and assigns it to f .
|
template<typename C > |
bool | operator== (const Linear_Form< C > &x, const Linear_Form< C > &y) |
| Returns true if and only if x and y are equal.
|
template<typename C > |
bool | operator!= (const Linear_Form< C > &x, const Linear_Form< C > &y) |
| Returns true if and only if x and y are different.
|
template<typename C > |
std::ostream & | operator<< (std::ostream &s, const Linear_Form< C > &f) |
| Output operator.
|
template<typename C > |
Linear_Form< C > | operator+ (const Linear_Form< C > &f) |
template<typename C > |
Linear_Form< C > | operator+ (const Linear_Form< C > &f, const C &n) |
template<typename C > |
Linear_Form< C > | operator+ (const Linear_Form< C > &f, const Variable v) |
template<typename C > |
Linear_Form< C > | operator- (const Linear_Form< C > &f, const C &n) |
template<typename C > |
Linear_Form< C > | operator- (const Variable v, const Variable w) |
template<typename C > |
Linear_Form< C > | operator* (const Linear_Form< C > &f, const C &n) |
template<typename C > |
Linear_Form< C > & | operator+= (Linear_Form< C > &f, const C &n) |
template<typename C > |
Linear_Form< C > & | operator-= (Linear_Form< C > &f, const C &n) |
template<typename C > |
bool | operator!= (const Linear_Form< C > &x, const Linear_Form< C > &y) |
template<typename C > |
void | swap (Linear_Form< C > &x, Linear_Form< C > &y) |
template<typename C > |
Linear_Form< C > | operator+ (const Linear_Form< C > &f1, const Linear_Form< C > &f2) |
template<typename C > |
Linear_Form< C > | operator+ (const Variable v, const Linear_Form< C > &f) |
template<typename C > |
Linear_Form< C > | operator+ (const C &n, const Linear_Form< C > &f) |
template<typename C > |
Linear_Form< C > | operator- (const Linear_Form< C > &f) |
template<typename C > |
Linear_Form< C > | operator- (const Linear_Form< C > &f1, const Linear_Form< C > &f2) |
template<typename C > |
Linear_Form< C > | operator- (const Variable v, const Linear_Form< C > &f) |
template<typename C > |
Linear_Form< C > | operator- (const Linear_Form< C > &f, const Variable v) |
template<typename C > |
Linear_Form< C > | operator- (const C &n, const Linear_Form< C > &f) |
template<typename C > |
Linear_Form< C > | operator* (const C &n, const Linear_Form< C > &f) |
template<typename C > |
Linear_Form< C > & | operator+= (Linear_Form< C > &f1, const Linear_Form< C > &f2) |
template<typename C > |
Linear_Form< C > & | operator+= (Linear_Form< C > &f, const Variable v) |
template<typename C > |
Linear_Form< C > & | operator-= (Linear_Form< C > &f1, const Linear_Form< C > &f2) |
template<typename C > |
Linear_Form< C > & | operator-= (Linear_Form< C > &f, const Variable v) |
template<typename C > |
Linear_Form< C > & | operator*= (Linear_Form< C > &f, const C &n) |
template<typename C > |
Linear_Form< C > & | operator/= (Linear_Form< C > &f, const C &n) |
template<typename C > |
std::ostream & | operator<< (std::ostream &s, const Linear_Form< C > &f) |