MLIR  19.0.0git
Namespaces | Typedefs | Functions
Barvinok.h File Reference
#include "mlir/Analysis/Presburger/GeneratingFunction.h"
#include "mlir/Analysis/Presburger/IntegerRelation.h"
#include "mlir/Analysis/Presburger/Matrix.h"
#include "mlir/Analysis/Presburger/PresburgerRelation.h"
#include "mlir/Analysis/Presburger/QuasiPolynomial.h"
#include <bitset>
#include <optional>

Go to the source code of this file.

Namespaces

 mlir
 Include the generated interface declarations.
 
 mlir::presburger
 
 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. More...
 
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. More...
 
using mlir::presburger::detail::ConeH = PolyhedronH
 A cone in either representation is a special case of a polyhedron in that representation. More...
 
using mlir::presburger::detail::ConeV = PolyhedronV
 

Functions

PolyhedronH mlir::presburger::detail::defineHRep (int numVars, int numSymbols=0)
 
MPInt 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. More...
 
ConeV mlir::presburger::detail::getDual (ConeH cone)
 Given a cone in H-representation, return its dual. More...
 
ConeH mlir::presburger::detail::getDual (ConeV cone)
 Given a cone in V-representation, return its dual. More...
 
GeneratingFunction mlir::presburger::detail::computeUnimodularConeGeneratingFunction (ParamPoint vertex, int sign, const ConeH &cone)
 Compute the generating function for a unimodular cone. More...
 
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. More...
 
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. More...
 
std::vector< std::pair< PresburgerSet, GeneratingFunction > > mlir::presburger::detail::computePolytopeGeneratingFunction (const PolyhedronH &poly)
 Compute the generating function corresponding to a polytope. More...
 
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. More...
 
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. More...
 
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. More...