Searched refs:simplex (Results 1 – 8 of 8) sorted by relevance
/llvm-project/mlir/unittests/Analysis/Presburger/ |
H A D | SimplexTest.cpp | 23 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 D | PresburgerRelation.cpp | 339 /// 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 D | Simplex.cpp | 501 // 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 D | IntegerRelation.cpp | 787 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 D | Simplex.h | 876 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 D | isl_vertices.c | 1450 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 D | isl_vertices_private.h | 62 isl_stat (*fn)(__isl_take isl_cell *simplex, void *user), void *user);
|
/llvm-project/polly/lib/External/isl/doc/ |
H A D | implementation.tex | 175 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
|