Lines Matching defs:cone
18 /// Assuming that the input cone is pointed at the origin,
21 ConeV mlir::presburger::detail::getDual(ConeH cone) {
22 unsigned numIneq = cone.getNumInequalities();
23 unsigned numVar = cone.getNumCols() - 1;
31 assert(cone.atIneq(i, numVar) == 0 &&
32 "H-representation of cone is not centred at the origin!");
34 dual.at(i, j) = cone.atIneq(i, j);
43 /// Converts a cone in V-representation to the H-representation
46 ConeH mlir::presburger::detail::getDual(ConeV cone) {
47 unsigned rows = cone.getNumRows();
48 unsigned columns = cone.getNumColumns();
52 cone.insertColumn(columns);
55 dual.addInequality(cone.getRow(i));
62 /// Find the index of a cone in V-representation.
63 DynamicAPInt mlir::presburger::detail::getIndex(const ConeV &cone) {
64 if (cone.getNumRows() > cone.getNumColumns())
67 return cone.determinant();
70 /// Compute the generating function for a unimodular cone.
75 /// den_j is defined as the set of generators of the cone.
81 ParamPoint vertex, int sign, const ConeH &cone) {
82 // Consider a cone with H-representation [0 -1].
87 // `cone` must be unimodular.
88 assert(abs(getIndex(getDual(cone))) == 1 && "input cone is not unimodular!");
90 unsigned numVar = cone.getNumVars();
91 unsigned numIneq = cone.getNumInequalities();
94 // transpose of its inequality matrix, `cone`.
97 FracMatrix transp = FracMatrix(cone.getInequalities()).transpose();
106 // function are given by the generators of the cone,
301 /// 2. For each vertex, identify the tangent cone and compute the generating
304 /// of the tangent cone.
322 // generating functions of the tangent cone, in order.
407 // the tangent cone at that vertex.
420 // We assume that the tangent cone is unimodular, so there is no need
428 auto [sign, cone] = signedCone;
430 computeUnimodularConeGeneratingFunction(*vertex, sign, cone);
433 // tangent cone.