13 using namespace presburger;
18 std::pair<unsigned, LinearTransform>
29 for (
unsigned row = 0, f = m.
getNumRows(); row < f; ++row) {
30 if (h(row, col) != 0) {
49 const MPInt &c = eq.back();
59 const MPInt &c = ineq.back();
An IntegerRelation represents the set of points from a PresburgerSpace that satisfy a list of affine ...
ArrayRef< MPInt > getEquality(unsigned idx) const
void addInequality(ArrayRef< MPInt > inEq)
Adds an inequality (>= 0) from the coefficients specified in inEq.
void addEquality(ArrayRef< MPInt > eq)
Adds an equality from the coefficients specified in eq.
ArrayRef< MPInt > getInequality(unsigned idx) const
unsigned getNumInequalities() const
const PresburgerSpace & getSpace() const
Returns a reference to the underlying space.
unsigned getNumEqualities() const
This class provides support for multi-precision arithmetic.
This is a class to represent a resizable matrix.
unsigned getNumColumns() const
unsigned getNumRows() const
std::pair< Matrix, Matrix > computeHermiteNormalForm() const
Given the current matrix M, returns the matrices H, U such that H is the column hermite normal form o...
This header declares functions that assit transformations in the MemRef dialect.