MLIR 22.0.0git
Barvinok.h File Reference

Go to the source code of this file.

Namespaces

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

Typedefs

using mlir::presburger::detail::PolyhedronH = IntegerRelation
 A polyhedron in H-representation is a set of inequalities in d variables with integer coefficients.
using mlir::presburger::detail::PolyhedronV = IntMatrix
 A polyhedron in V-representation is a set of rays and points, i.e., vectors, stored as rows of a matrix.
using mlir::presburger::detail::ConeH = PolyhedronH
 A cone in either representation is a special case of a polyhedron in that representation.
using mlir::presburger::detail::ConeV = PolyhedronV

Functions

PolyhedronH mlir::presburger::detail::defineHRep (int numVars, int numSymbols=0)
DynamicAPInt mlir::presburger::detail::getIndex (const ConeV &cone)
 Get the index of a cone, i.e., the volume of the parallelepiped spanned by its generators, which is equal to the number of integer points in its fundamental parallelepiped.
ConeV mlir::presburger::detail::getDual (ConeH cone)
 Given a cone in H-representation, return its dual.
ConeH mlir::presburger::detail::getDual (ConeV cone)
 Given a cone in V-representation, return its dual.
GeneratingFunction mlir::presburger::detail::computeUnimodularConeGeneratingFunction (ParamPoint vertex, int sign, const ConeH &cone)
 Compute the generating function for a unimodular cone.
std::optional< ParamPointmlir::presburger::detail::solveParametricEquations (FracMatrix equations)
 Find the solution of a set of equations that express affine constraints between a set of variables and a set of parameters.
std::vector< std::pair< PresburgerSet, GeneratingFunction > > mlir::presburger::detail::computeChamberDecomposition (unsigned numSymbols, ArrayRef< std::pair< PresburgerSet, GeneratingFunction > > regionsAndGeneratingFunctions)
 Given a list of possibly intersecting regions (PresburgerSet) and the generating functions active in each region, produce a pairwise disjoint list of regions (chambers) and identify the generating function of the polytope in each chamber.
std::vector< std::pair< PresburgerSet, GeneratingFunction > > mlir::presburger::detail::computePolytopeGeneratingFunction (const PolyhedronH &poly)
 Compute the generating function corresponding to a polytope.
Point mlir::presburger::detail::getNonOrthogonalVector (ArrayRef< Point > vectors)
 Find a vector that is not orthogonal to any of the given vectors, i.e., has nonzero dot product with those of the given vectors that are not null.
QuasiPolynomial mlir::presburger::detail::getCoefficientInRationalFunction (unsigned power, ArrayRef< QuasiPolynomial > num, ArrayRef< Fraction > den)
 Find the coefficient of a given power of s in a rational function given by P(s)/Q(s), where P is a polynomial, in which the coefficients are QuasiPolynomials over d parameters (distinct from s), and and Q is a polynomial with Fraction coefficients.
QuasiPolynomial mlir::presburger::detail::computeNumTerms (const GeneratingFunction &gf)
 Find the number of terms in a generating function, as a quasipolynomial in the parameter space of the input function.