MLIR  19.0.0git
Namespaces | Functions
Matrix.cpp File Reference
#include "mlir/Analysis/Presburger/Matrix.h"
#include "mlir/Analysis/Presburger/Fraction.h"
#include "mlir/Analysis/Presburger/MPInt.h"
#include "mlir/Analysis/Presburger/Utils.h"
#include "mlir/Support/LLVM.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

 mlir
 Include the generated interface declarations.
 
 mlir::presburger
 

Functions

static void modEntryColumnOperation (Matrix< MPInt > &m, unsigned row, unsigned sourceCol, unsigned targetCol, Matrix< MPInt > &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. More...
 

Function Documentation

◆ modEntryColumnOperation()

static void modEntryColumnOperation ( Matrix< MPInt > &  m,
unsigned  row,
unsigned  sourceCol,
unsigned  targetCol,
Matrix< MPInt > &  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 375 of file Matrix.cpp.

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

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