MLIR 22.0.0git
Matrix.cpp File Reference
#include "mlir/Analysis/Presburger/Matrix.h"
#include "mlir/Analysis/Presburger/Fraction.h"
#include "mlir/Analysis/Presburger/Utils.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <utility>

Go to the source code of this file.

Namespaces

namespace  mlir
 Include the generated interface declarations.
namespace  mlir::presburger

Functions

static void modEntryColumnOperation (Matrix< DynamicAPInt > &m, unsigned row, unsigned sourceCol, unsigned targetCol, Matrix< DynamicAPInt > &otherMatrix)
 Set M(row, targetCol) to its remainder on division by M(row, sourceCol) by subtracting from column targetCol an appropriate integer multiple of sourceCol.

Function Documentation

◆ modEntryColumnOperation()

void modEntryColumnOperation ( Matrix< DynamicAPInt > & m,
unsigned row,
unsigned sourceCol,
unsigned targetCol,
Matrix< DynamicAPInt > & otherMatrix )
static

Set M(row, targetCol) to its remainder on division by M(row, sourceCol) by subtracting from column targetCol an appropriate integer multiple of sourceCol.

This brings M(row, targetCol) to the range [0, M(row, sourceCol)). Apply the same column operation to otherMatrix, with the same integer multiple.

Definition at line 373 of file Matrix.cpp.

References mlir::presburger::Matrix< T >::addToColumn().

Referenced by mlir::presburger::IntMatrix::computeHermiteNormalForm().