24 #include "ppl-config.h"
29 #ifdef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS
31 #endif // defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS)
40 PPL_ASSERT(c_num_vars == 0 && c_first_var == 0 && c_second_var == 0);
43 if (c_first_var == space_dim + 1) {
51 if (c_second_var == space_dim + 1) {
71 if (
sgn(c0) ==
sgn(c1) || c0 != -c1) {
81 #ifdef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS
83 #endif // defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS)
85 PPL::compute_leader_indices(
const std::vector<dimension_type>& predecessor,
86 std::vector<dimension_type>& indices) {
90 PPL_ASSERT(indices.size() == 0);
91 PPL_ASSERT(0 == predecessor[0]);
93 for (
dimension_type i = 1, p_size = predecessor.size(); i != p_size; ++i) {
94 if (i == predecessor[i]) {
A linear equality or inequality.
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.
A dimension of the vector space.
Coefficient_traits::const_reference get(dimension_type i) const
Returns the i -th coefficient.
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.
int sgn(Boundary_Type type, const T &x, const Info &info)
static bool extract_bounded_difference(const Constraint &c, dimension_type &c_num_vars, dimension_type &c_first_var, dimension_type &c_second_var, Coefficient &c_coeff)
Decodes the constraint c as a bounded difference.
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.