[Mlir-commits] [mlir] [MLIR][Presburger] Implement computation of generating function for unimodular cones (PR #77235)
Bharathi Ramana Joshi
llvmlistbot at llvm.org
Sun Jan 7 09:03:08 PST 2024
================
@@ -63,3 +63,71 @@ MPInt mlir::presburger::detail::getIndex(ConeV cone) {
return cone.determinant();
}
+
+/// Compute the generating function for a unimodular cone.
+GeneratingFunction mlir::presburger::detail::unimodularConeGeneratingFunction(
+ ParamPoint vertex, int sign, ConeH cone) {
+ // `cone` is assumed to be unimodular.
+ assert(getIndex(getDual(cone)) == 1 && "input cone is not unimodular!");
+
+ unsigned numVar = cone.getNumVars();
+ unsigned numIneq = cone.getNumInequalities();
+
+ // Thus its ray matrix, U, is the inverse of the
+ // transpose of its inequality matrix, `cone`.
+ FracMatrix transp(numVar, numIneq);
+ for (unsigned i = 0; i < numVar; i++)
----------------
iambrj wrote:
Use preincrements `++i` everywhere
https://github.com/llvm/llvm-project/pull/77235
More information about the Mlir-commits
mailing list