15 using namespace presburger;
20 std::pair<unsigned, LinearTransform>
24 auto [h, u] = m.computeHermiteNormalForm();
29 for (col = 0, e = m.getNumColumns(); col < e; ++col) {
31 for (
unsigned row = 0, f = m.getNumRows(); row < f; ++row) {
32 if (h(row, col) != 0) {
51 const DynamicAPInt &c = eq.back();
54 newEq.emplace_back(c);
61 const DynamicAPInt &c = ineq.back();
64 newIneq.emplace_back(c);
An IntegerRelation represents the set of points from a PresburgerSpace that satisfy a list of affine ...
ArrayRef< DynamicAPInt > getInequality(unsigned idx) const
void addEquality(ArrayRef< DynamicAPInt > eq)
Adds an equality from the coefficients specified in eq.
void addInequality(ArrayRef< DynamicAPInt > inEq)
Adds an inequality (>= 0) from the coefficients specified in inEq.
ArrayRef< DynamicAPInt > getEquality(unsigned idx) const
unsigned getNumInequalities() const
const PresburgerSpace & getSpace() const
Returns a reference to the underlying space.
unsigned getNumEqualities() const
Include the generated interface declarations.