[clang-tools-extra] [MLIR][Presburger] Implement matrix inverse (PR #67382)

2023-10-17 Thread via cfe-commits
@@ -432,4 +432,138 @@ MPInt IntMatrix::normalizeRow(unsigned row, unsigned cols) { MPInt IntMatrix::normalizeRow(unsigned row) { return normalizeRow(row, getNumColumns()); +} + +MPInt IntMatrix::determinant() { + unsigned r = getNumRows(); + unsigned c = getNumColumns();

[clang-tools-extra] [MLIR][Presburger] Implement matrix inverse (PR #67382)

2023-10-17 Thread via cfe-commits
@@ -432,4 +432,138 @@ MPInt IntMatrix::normalizeRow(unsigned row, unsigned cols) { MPInt IntMatrix::normalizeRow(unsigned row) { return normalizeRow(row, getNumColumns()); +} + +MPInt IntMatrix::determinant() { + unsigned r = getNumRows(); + unsigned c = getNumColumns();

[clang-tools-extra] [MLIR][Presburger] Implement matrix inverse (PR #67382)

2023-10-17 Thread Arjun P via cfe-commits
@@ -432,4 +432,138 @@ MPInt IntMatrix::normalizeRow(unsigned row, unsigned cols) { MPInt IntMatrix::normalizeRow(unsigned row) { return normalizeRow(row, getNumColumns()); +} + +MPInt IntMatrix::determinant() { + unsigned r = getNumRows(); + unsigned c = getNumColumns();

[clang-tools-extra] [MLIR][Presburger] Implement matrix inverse (PR #67382)

2023-10-13 Thread Arjun P via cfe-commits
@@ -390,4 +463,83 @@ MPInt IntMatrix::normalizeRow(unsigned row, unsigned cols) { MPInt IntMatrix::normalizeRow(unsigned row) { return normalizeRow(row, getNumColumns()); +} + +std::optional IntMatrix::integerInverse() { + Fraction det = Fraction(determinant(), 1); + Frac

[clang-tools-extra] [MLIR][Presburger] Implement matrix inverse (PR #67382)

2023-10-13 Thread Arjun P via cfe-commits
@@ -390,4 +463,83 @@ MPInt IntMatrix::normalizeRow(unsigned row, unsigned cols) { MPInt IntMatrix::normalizeRow(unsigned row) { return normalizeRow(row, getNumColumns()); +} + +std::optional IntMatrix::integerInverse() { + Fraction det = Fraction(determinant(), 1); + Frac

[clang-tools-extra] [MLIR][Presburger] Implement matrix inverse (PR #67382)

2023-10-13 Thread Arjun P via cfe-commits
@@ -283,12 +326,43 @@ template bool Matrix::hasConsistentState() const { return true; } +template +T Matrix::determinant() { + unsigned r = getNumRows(); + unsigned c = getNumColumns(); + if (r == 1) +return at(0, 0); + if (r == 2) +return (at(0, 0) * at(1, 1)

[clang-tools-extra] [MLIR][Presburger] Implement matrix inverse (PR #67382)

2023-10-13 Thread Arjun P via cfe-commits
@@ -241,6 +245,32 @@ class IntMatrix : public Matrix /// Returns the GCD of the columns of the specified row. MPInt normalizeRow(unsigned row); + // Return the integer inverse of the matrix, leaving the calling object + // unmodified. + std::optional integerInverse(); +

[clang-tools-extra] [MLIR][Presburger] Implement matrix inverse (PR #67382)

2023-10-09 Thread via cfe-commits
https://github.com/Abhinav271828 edited https://github.com/llvm/llvm-project/pull/67382 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits