24 #include "ppl-config.h"
29 #ifdef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS
31 #endif // defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS)
43 PPL_ASSERT(c_num_vars == 0 && c_first_var == 0 && c_second_var == 0);
47 if (c_first_var == c_space_dim + 1) {
57 if (c_second_var == c_space_dim + 1) {
63 c_second_var = c_first_var;
67 c_second_var = c_first_var + 1;
84 swap(c_first_var, c_second_var);
92 if (c0 != c1 && c0 != -c1) {
A linear equality or inequality.
void swap(CO_Tree &x, CO_Tree &y)
size_t dimension_type
An unsigned integral type for representing space dimensions.
dimension_type space_dimension() const
Returns the dimension of the vector space enclosing *this.
Coefficient_traits::const_reference coefficient(Variable v) const
Returns the coefficient of v in *this.
static bool extract_octagonal_difference(const Constraint &c, dimension_type c_space_dim, dimension_type &c_num_vars, dimension_type &c_first_var, dimension_type &c_second_var, Coefficient &c_coeff, Coefficient &c_term)
Decodes the constraint c as an octagonal difference.
A dimension of the vector space.
Enable_If< Is_Native_Or_Checked< From >::value, int >::type sgn(const From &x)
Returns , or depending on whether the value of x is negative, zero or positive, respectively...
PPL_COEFFICIENT_TYPE Coefficient
An alias for easily naming the type of PPL coefficients.
dimension_type first_nonzero(dimension_type first, dimension_type last) const
The entire library is confined to this namespace.
void swap(Affine_Space &x, Affine_Space &y)
Swaps x with y.
Coefficient_traits::const_reference inhomogeneous_term() const
Returns the inhomogeneous term of *this.
expr_type expression() const
Partial read access to the (adapted) internal expression.
bool all_zeroes(const Variables_Set &vars) const
Returns true if the coefficient of each variable in vars is zero.