Home
last modified time | relevance | path

Searched refs:simplex (Results 1 – 8 of 8) sorted by relevance

/llvm-project/mlir/unittests/Analysis/Presburger/
H A DSimplexTest.cpp23 void addInequality(SimplexBase &simplex, ArrayRef<int64_t> coeffs) { in addInequality() argument
24 simplex.addInequality(getDynamicAPIntVec(coeffs)); in addInequality()
26 void addEquality(SimplexBase &simplex, ArrayRef<int64_t> coeffs) { in addEquality() argument
27 simplex.addEquality(getDynamicAPIntVec(coeffs)); in addEquality()
29 bool isRedundantInequality(Simplex &simplex, ArrayRef<int64_t> coeffs) { in isRedundantInequality() argument
30 return simplex.isRedundantInequality(getDynamicAPIntVec(coeffs)); in isRedundantInequality()
32 bool isRedundantInequality(LexSimplex &simplex, ArrayRef<int64_t> coeffs) { in isRedundantInequality() argument
33 return simplex.isRedundantInequality(getDynamicAPIntVec(coeffs)); in isRedundantInequality()
35 bool isRedundantEquality(Simplex &simplex, ArrayRef<int64_t> coeffs) { in isRedundantEquality() argument
36 return simplex.isRedundantEquality(getDynamicAPIntVec(coeffs)); in isRedundantEquality()
[all …]
/llvm-project/mlir/lib/Analysis/Presburger/
H A DPresburgerRelation.cpp339 /// As a heuristic, we try adding all the constraints and check if simplex
360 Simplex simplex(b); in getSetDifference() local
367 // A snapshot of the simplex state to rollback to. in getSetDifference()
414 // Similarly, we also want to rollback simplex to its original state. in getSetDifference()
415 unsigned initialSnapshot = simplex.getSnapshot(); in getSetDifference()
482 unsigned offset = simplex.getNumConstraints(); in getSetDifference()
485 simplex.appendVariable(numLocalsAdded); in getSetDifference()
487 unsigned snapshotBeforeIntersect = simplex.getSnapshot(); in getSetDifference()
488 simplex.intersectIntegerRelation(sI); in getSetDifference()
490 if (simplex in getSetDifference()
[all...]
H A DSimplex.cpp501 // coefficient, without needing to perform any simplex queries on the domain. in maybeGetAlwaysViolatedRow()
736 // B is basically the simplex tableau of our implementation except that instead
1217 // column, because when rolling back a lexicographic simplex, we always in undoLastConstraint()
1338 "IntegerRelation must have same dimensionality as simplex"); in intersectIntegerRelation()
1645 /// Given a simplex for a polytope, construct a new simplex whose variables are
1660 : simplex(Simplex::makeProduct(originalSimplex, originalSimplex)),
1661 simplexConstraintOffset(simplex.getNumConstraints()) {} in addEqualityForDirection()
1664 /// First pushes a snapshot for the current simplex state to the stack so in addEqualityForDirection()
1669 snapshotStack.emplace_back(simplex in computeWidth()
1759 Simplex simplex; global() member in presburger::GBRSimplex
[all...]
H A DIntegerRelation.cpp787 Simplex simplex(*this); in getBoundedDirections()
789 assert(!simplex.isEmpty() && "It is not meaningful to ask whether a " in getBoundedDirections()
793 // The constructor adds the inequalities to the simplex first, so this in getBoundedDirections()
796 if (simplex.isBoundedAlongConstraint(i)) in getBoundedDirections()
876 Simplex simplex(*this); in findIntegerSample()
877 if (simplex.isEmpty()) in findIntegerSample()
881 if (!simplex.isUnbounded()) in findIntegerSample()
882 return simplex.findIntegerSample(); in findIntegerSample()
1215 Simplex simplex(*this); in removeRedundantConstraints()
1216 simplex in removeRedundantConstraints()
784 Simplex simplex(*this); getBoundedDirections() local
873 Simplex simplex(*this); findIntegerSample() local
1212 Simplex simplex(*this); removeRedundantConstraints() local
1241 Simplex simplex(*this); computeVolume() local
2526 Simplex simplex(*this); isFullDim() local
[all...]
/llvm-project/mlir/include/mlir/Analysis/Presburger/
H A DSimplex.h876 SimplexRollbackScopeExit(SimplexBase &simplex) : simplex(simplex) { in SimplexRollbackScopeExit() argument
877 snapshot = simplex.getSnapshot(); in SimplexRollbackScopeExit()
879 ~SimplexRollbackScopeExit() { simplex.rollback(snapshot); } in ~SimplexRollbackScopeExit()
882 SimplexBase &simplex;
/llvm-project/polly/lib/External/isl/
H A Disl_vertices.c1450 isl_stat (*fn)(__isl_take isl_cell *simplex, void *user), void *user) in call_on_simplex() argument
1454 struct isl_cell *simplex; in call_on_simplex() local
1458 simplex = isl_calloc_type(ctx, struct isl_cell); in call_on_simplex()
1459 if (!simplex) in call_on_simplex()
1461 simplex->vertices = isl_vertices_copy(cell->vertices); in call_on_simplex()
1462 if (!simplex->vertices) in call_on_simplex()
1464 simplex->dom = isl_basic_set_copy(cell->dom); in call_on_simplex()
1465 if (!simplex->dom) in call_on_simplex()
1467 simplex->n_vertices = n_simplex + n_other; in call_on_simplex()
1468 simplex->ids = isl_alloc_array(ctx, int, simplex->n_vertices); in call_on_simplex()
[all …]
H A Disl_vertices_private.h62 isl_stat (*fn)(__isl_take isl_cell *simplex, void *user), void *user);
/llvm-project/polly/lib/External/isl/doc/
H A Dimplementation.tex175 In the following sections, we briefly recall the dual simplex
186 In {\tt isl}, the dual simplex method uses the same representation
188 simplex method. The implementation of this LP solver is based
213 The dual simplex method starts from an initial sample value that
270 The solution found by the dual simplex method may have
369 of the actual dual simplex method with Gomory cuts.
474 the dual simplex method.
562 implementation uses a recursive call to the dual simplex with Gomory
621 of the dual simplex method applied to this new context will be the same
624 the dual simplex method incrementally on the context and backtrack