|  | 
| (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 xwithy.  More...
 | 
|  | 
| template<typename C > | 
| Linear_Form< C > | operator+ (const Linear_Form< C > &f1, const Linear_Form< C > &f2) | 
|  | Returns the linear form f1+f2.  More...
 | 
|  | 
| template<typename C > | 
| Linear_Form< C > | operator+ (Variable v, const Linear_Form< C > &f) | 
|  | Returns the linear form v+f.  More...
 | 
|  | 
| template<typename C > | 
| Linear_Form< C > | operator+ (const Linear_Form< C > &f, Variable v) | 
|  | Returns the linear form f+v.  More...
 | 
|  | 
| template<typename C > | 
| Linear_Form< C > | operator+ (const C &n, const Linear_Form< C > &f) | 
|  | Returns the linear form n+f.  More...
 | 
|  | 
| template<typename C > | 
| Linear_Form< C > | operator+ (const Linear_Form< C > &f, const C &n) | 
|  | Returns the linear form f+n.  More...
 | 
|  | 
| template<typename C > | 
| Linear_Form< C > | operator+ (const Linear_Form< C > &f) | 
|  | Returns the linear form f.  More...
 | 
|  | 
| template<typename C > | 
| Linear_Form< C > | operator- (const Linear_Form< C > &f) | 
|  | Returns the linear form - f.  More...
 | 
|  | 
| template<typename C > | 
| Linear_Form< C > | operator- (const Linear_Form< C > &f1, const Linear_Form< C > &f2) | 
|  | Returns the linear form f1-f2.  More...
 | 
|  | 
| template<typename C > | 
| Linear_Form< C > | operator- (Variable v, const Linear_Form< C > &f) | 
|  | Returns the linear form v-f.  More...
 | 
|  | 
| template<typename C > | 
| Linear_Form< C > | operator- (const Linear_Form< C > &f, Variable v) | 
|  | Returns the linear form f-v.  More...
 | 
|  | 
| template<typename C > | 
| Linear_Form< C > | operator- (const C &n, const Linear_Form< C > &f) | 
|  | Returns the linear form n-f.  More...
 | 
|  | 
| template<typename C > | 
| Linear_Form< C > | operator- (const Linear_Form< C > &f, const C &n) | 
|  | Returns the linear form f-n.  More...
 | 
|  | 
| template<typename C > | 
| Linear_Form< C > | operator* (const C &n, const Linear_Form< C > &f) | 
|  | Returns the linear form n*f.  More...
 | 
|  | 
| template<typename C > | 
| Linear_Form< C > | operator* (const Linear_Form< C > &f, const C &n) | 
|  | Returns the linear form f*n.  More...
 | 
|  | 
| template<typename C > | 
| Linear_Form< C > & | operator+= (Linear_Form< C > &f1, const Linear_Form< C > &f2) | 
|  | Returns the linear form f1+f2and assigns it toe1.  More...
 | 
|  | 
| template<typename C > | 
| Linear_Form< C > & | operator+= (Linear_Form< C > &f, Variable v) | 
|  | Returns the linear form f+vand assigns it tof.  More...
 | 
|  | 
| template<typename C > | 
| Linear_Form< C > & | operator+= (Linear_Form< C > &f, const C &n) | 
|  | Returns the linear form f+nand assigns it tof.  More...
 | 
|  | 
| template<typename C > | 
| Linear_Form< C > & | operator-= (Linear_Form< C > &f1, const Linear_Form< C > &f2) | 
|  | Returns the linear form f1-f2and assigns it tof1.  More...
 | 
|  | 
| template<typename C > | 
| Linear_Form< C > & | operator-= (Linear_Form< C > &f, Variable v) | 
|  | Returns the linear form f-vand assigns it tof.  More...
 | 
|  | 
| template<typename C > | 
| Linear_Form< C > & | operator-= (Linear_Form< C > &f, const C &n) | 
|  | Returns the linear form f-nand assigns it tof.  More...
 | 
|  | 
| template<typename C > | 
| Linear_Form< C > & | operator*= (Linear_Form< C > &f, const C &n) | 
|  | Returns the linear form n*fand assigns it tof.  More...
 | 
|  | 
| template<typename C > | 
| Linear_Form< C > & | operator/= (Linear_Form< C > &f, const C &n) | 
|  | Returns the linear form f/nand assigns it tof.  More...
 | 
|  | 
| template<typename C > | 
| bool | operator== (const Linear_Form< C > &x, const Linear_Form< C > &y) | 
|  | Returns trueif and only ifxandyare equal.  More...
 | 
|  | 
| template<typename C > | 
| bool | operator!= (const Linear_Form< C > &x, const Linear_Form< C > &y) | 
|  | Returns trueif and only ifxandyare different.  More...
 | 
|  | 
| template<typename C > | 
| std::ostream & | operator<< (std::ostream &s, const Linear_Form< C > &f) | 
|  | Output operator.  More... 
 | 
|  | 
| 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 > | 
| bool | operator== (const Linear_Form< C > &x, const Linear_Form< C > &y) | 
|  | 
| template<typename C > | 
| std::ostream & | operator<< (std::ostream &s, const Linear_Form< C > &f) | 
|  | 
template<typename C>
class Parma_Polyhedra_Library::Linear_Form< C >
A linear form with interval coefficients. 
An object of the class Linear_Form represents the interval linear form 
![\[ \sum_{i=0}^{n-1} a_i x_i + b \]](form_522.png) 
 where  is the dimension of the vector space, each
 is the dimension of the vector space, each  is the coefficient of the
 is the coefficient of the  -th variable
-th variable  and
 and  is the inhomogeneous term. The coefficients and the inhomogeneous term of the linear form have the template parameter
 is the inhomogeneous term. The coefficients and the inhomogeneous term of the linear form have the template parameter C as their type. C must be the type of an Interval.
- How to build a linear form.
- A full set of functions is defined in order to provide a convenient interface for building complex linear forms starting from simpler ones and from objects of the classes Variable and C. Available operators include binary addition and subtraction, as well as multiplication and division by a coefficient. The space dimension of a linear form is defined as the highest variable dimension among variables that have a nonzero coefficient in the linear form, or zero if no such variable exists. The space dimension for each variable is given by is given by . .
- Example
- Given the type Tof an Interval with floating point coefficients (though any integral type may also be used), the following code builds the interval linear form with space dimension 6: with space dimension 6:Variable x5(5); Variable x2(2); T x5_coefficient; x5_coefficient.lower() = 2.0; x5_coefficient.upper() = 3.0; inhomogeneous_term.lower() = 4.0; inhomogeneous_term.upper() = 8.0; Linear_Form<T> lf(x2); lf = -lf; lf += Linear_Form<T>(x2); Linear_Form<T> lf_x5(x5); lf_x5 *= x5_coefficient; lf += lf_x5; 
lf_x5is created with space dimension 6, whilelfis created with space dimension 0 and then extended first to space dimension 2 whenx2is subtracted and finally to space dimension 6 whenlf_x5is added.