24 #ifndef PPL_Linear_Form_defs_hh
25 #define PPL_Linear_Form_defs_hh 1
39 void swap(Linear_Form<C>& x, Linear_Form<C>& y);
47 operator+(
const Linear_Form<C>& f1,
const Linear_Form<C>& f2);
53 operator+(Variable v,
const Linear_Form<C>& f);
59 operator+(
const Linear_Form<C>& f, Variable v);
65 operator+(
const C& n,
const Linear_Form<C>& f);
71 operator+(
const Linear_Form<C>& f,
const C& n);
89 operator-(
const Linear_Form<C>& f1,
const Linear_Form<C>& f2);
95 operator-(Variable v,
const Linear_Form<C>& f);
101 operator-(
const Linear_Form<C>& f, Variable v);
105 template <
typename C>
107 operator-(
const C& n,
const Linear_Form<C>& f);
111 template <
typename C>
113 operator-(
const Linear_Form<C>& f,
const C& n);
117 template <
typename C>
119 operator*(
const C& n,
const Linear_Form<C>& f);
123 template <
typename C>
125 operator*(
const Linear_Form<C>& f,
const C& n);
129 template <
typename C>
131 operator+=(Linear_Form<C>& f1,
const Linear_Form<C>& f2);
139 template <
typename C>
141 operator+=(Linear_Form<C>& f, Variable v);
145 template <
typename C>
147 operator+=(Linear_Form<C>& f,
const C& n);
151 template <
typename C>
153 operator-=(Linear_Form<C>& f1,
const Linear_Form<C>& f2);
161 template <
typename C>
163 operator-=(Linear_Form<C>& f, Variable v);
167 template <
typename C>
169 operator-=(Linear_Form<C>& f,
const C& n);
173 template <
typename C>
175 operator*=(Linear_Form<C>& f,
const C& n);
183 template <
typename C>
185 operator/=(Linear_Form<C>& f,
const C& n);
189 template <
typename C>
191 operator==(
const Linear_Form<C>& x,
const Linear_Form<C>& y);
195 template <
typename C>
197 operator!=(
const Linear_Form<C>& x,
const Linear_Form<C>& y);
199 namespace IO_Operators {
203 template <
typename C>
204 std::ostream& operator<<(std::ostream& s, const Linear_Form<C>& f);
260 template <
typename C>
398 template <
typename Target>
469 operator+=<C>(Linear_Form<C>& f1,
const Linear_Form<C>& f2);
470 friend Linear_Form<C>&
471 operator+=<C>(Linear_Form<C>& f,
Variable v);
472 friend Linear_Form<C>&
473 operator+=<C>(Linear_Form<C>& f,
const C& n);
475 friend Linear_Form<C>&
476 operator-=<C>(Linear_Form<C>& f1,
const Linear_Form<C>& f2);
477 friend Linear_Form<C>&
478 operator-=<C>(Linear_Form<C>& f,
Variable v);
479 friend Linear_Form<C>&
480 operator-=<C>(Linear_Form<C>& f,
const C& n);
482 friend Linear_Form<C>&
483 operator*=<C>(Linear_Form<C>& f,
const C& n);
485 friend Linear_Form<C>&
486 operator/=<C>(Linear_Form<C>& f,
const C& n);
489 operator==<C>(
const Linear_Form<C>& x,
const Linear_Form<C>& y);
492 Parma_Polyhedra_Library::IO_Operators
493 ::operator<<<C>(std::ostream& s,
const Linear_Form<C>& f);
499 #endif // !defined(PPL_Linear_Form_defs_hh)
Enable_If< Is_Singleton< T >::value, Interval< B, Info > >::type operator*(const Interval< B, Info > &x, const T &y)
bool operator!=(const Box< ITV > &x, const Box< ITV > &y)
void swap(CO_Tree &x, CO_Tree &y)
An abstract class to be implemented by an external analyzer such as ECLAIR in order to provide to the...
size_t dimension_type
An unsigned integral type for representing space dimensions.
A dimension of the vector space.
#define PPL_OUTPUT_DECLARATIONS
The entire library is confined to this namespace.
Enable_If< Is_Singleton< T >::value, Interval< B, Info > >::type operator+(const Interval< B, Info > &x, const T &y)
bool operator==(const Box< ITV > &x, const Box< ITV > &y)
Enable_If< Is_Singleton< T >::value, Interval< B, Info > >::type operator-(const Interval< B, Info > &x, const T &y)
size_t memory_size_type
An unsigned integral type for representing memory size in bytes.