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) |