summaryrefslogtreecommitdiff
path: root/isl_tab.c
AgeCommit message (Collapse)AuthorFilesLines
2010-05-30fix some icc warningsSven Verdoolaege1-3/+5
2010-04-23isl_tab_rollback: restore rows that are no longer marked redundantSven Verdoolaege1-0/+1
When a row is marked redundant, it may have a negative (but strictly larger than -1) sample value. When undoing this marking, we need to make sure the sample value is restored to a non-negative value.
2010-04-02isl_tab_min_at_most_neg_one: restore sample value of non-redundant constraintsSven Verdoolaege1-2/+6
2010-04-02isl_tab.c: update debugging aid check_table to presence of big parameterSven Verdoolaege1-2/+9
2010-04-02isl_tab_relax: make sure no non-negative rows get a negative sample valueSven Verdoolaege1-2/+15
2010-03-30isl_tab.c: unrelax: restore row if variable is non-negativeSven Verdoolaege1-2/+6
Unrelaxing a constraint means that the constraint is tightened. The sample value may therefore become negative and then have to restore the row again. This is guaranteed to succeed because the tableau was supposed to be in a valid state before the constraint was relaxed.
2010-03-30isl_tab.c: cut_to_hyperplane: add extra sanity checkSven Verdoolaege1-0/+1
2010-03-04extract isl_tab_add_div from isl_tab_pip.cSven Verdoolaege1-0/+144
2010-01-08isl_basic_map_update_from_tab: re-gauss resulting bmapSven Verdoolaege1-0/+2
Many functions assume that their inputs have been gaussed.
2009-12-16add copyright statementsSven Verdoolaege1-0/+9
2009-12-07isl_tab: keep track of isl_basic_map instead of isl_basic_setSven Verdoolaege1-22/+52
2009-12-07isl_tab_detect_redundant: return status instead of isl_tab *Sven Verdoolaege1-10/+7
2009-12-07isl_tab: add isl_tab_freeze_constraintSven Verdoolaege1-0/+24
2009-11-29isl_tab_add_ineq and isl_tab_mark_empty: return status instead of isl_tab *Sven Verdoolaege1-31/+39
isl_tabs are not reference counted, so it's easier to deal with a status than to have to keep track of whether the isl_tab may have been destroyed.
2009-11-01isl_tab: row is only (obviously) redundant if it does not depend on variablesSven Verdoolaege1-1/+3
Variables are not assumed to be nonnegative, but are only marked as being nonnegative based on the constraints. This nonnegativity can therefore not be used to mark rows as being redundant as that could lead to circular reasoning.
2009-10-16isl_tab: support generic undo recordsSven Verdoolaege1-0/+9
2009-10-12mark some functions as requiring use of return valueSven Verdoolaege1-0/+8
2009-10-12isl_tab: improved error handlingSven Verdoolaege1-126/+240
2009-10-12isl_tab_pip.c: incrementally build recession cone of gbr contextSven Verdoolaege1-0/+23
When checking the feasibility of a constraint in the gbr context, we compute a sample. The first step of this computation builds a recession cone since we need to know which directions are unbounded. By incrementally building up the recession cone, we can avoid the complete recomputation. This is especially useful when the context is/becomes bounded, since we can then avoid the recession cone computation altogether.
2009-10-09isl_tab_basic_map_partial_lexopt: remove samples that are no longer usefulSven Verdoolaege1-1/+62
When we test an inequality in row_sign, it is useful to store any samples found, so we can use them to speed up the computation of future row signs. However, when we return from a branch, then all the samples found since we entered the branch all satisfy the constraints on that branch and so they will not satisfy the constraints on any other branch. We therefore save the current number of samples when we enter a branch and then discard all subsequently added samples when we return from the branch.
2009-10-09isl_tab.c: extract out samples handling from isl_tab_pip.cSven Verdoolaege1-0/+48
2009-10-09isl_tab_compute_reduced_basis: handle unbounded directions in initial basisSven Verdoolaege1-0/+3
2009-10-09isl_tab: keep (in)equalities of bset (if any) in syncSven Verdoolaege1-0/+40
2009-10-09isl_tab_compute_reduced_basis: allow incremental computationSven Verdoolaege1-0/+13
2009-10-09add isl_tab_productSven Verdoolaege1-0/+242
2009-10-08add isl_tab_add_eqSven Verdoolaege1-0/+57
2009-10-08isl_tab_add_valid_eq: add special treatment for manifestly zero rowsSven Verdoolaege1-0/+18
2009-10-08isl_tab_extend_cons: check tab argumentSven Verdoolaege1-0/+4
2009-10-08rename isl_tab_detect_equalities to isl_tab_detect_implicit_equalitiesSven Verdoolaege1-2/+2
2009-10-08isl_tab_from_recession_cone: take basic set instead of basic map as argumentSven Verdoolaege1-14/+14
2009-10-07isl_tab_allocate_con: add extra assertionSven Verdoolaege1-0/+1
2009-10-07isl_tab.c: close_row: push undo record for setting row to zeroSven Verdoolaege1-1/+4
2009-09-09isl_tab.c: cut_to_hyperplane: do nothing if selected constraint is an equalitySven Verdoolaege1-0/+4
2009-09-08isl_tab_dup: avoid out-of-bounds array accessSven Verdoolaege1-3/+5
tab->n_col is between 0 and mat->n_col - 2 - M and may not be equal to n_var after some columns have been dropped.
2009-09-06isl_tab.c: sign_of_min: only pivot back if we performed any pivotSven Verdoolaege1-2/+2
2009-09-06isl_tab.c: isl_tab_mark_redundant: fix up error returnSven Verdoolaege1-1/+1
2009-09-06isl_tab.c: remove unused variablesSven Verdoolaege1-4/+0
2009-09-06isl_tab.c: fix up to_colSven Verdoolaege1-3/+3
2009-08-28isl_seq_normalize: use pre-allocated temporary variable in isl_ctxSven Verdoolaege1-3/+4
This requires that we pass along an isl_ctx, but it removes the need for allocating a temporary variable every time isl_seq_normalize is called. In some cases, up to 20% of the execution time of isl_seq_normalize was wasted on initializing and clearing this temporary variable.
2009-08-28add isl_vec_normalizeSven Verdoolaege1-1/+1
2009-08-28isl_solve_lp: optionally return solution pointSven Verdoolaege1-1/+1
The caller may now not be interested in the optimal value anymore, so make returning this optimal value optional.
2009-08-09isl_tab_min: read off all information from tableau before rollbackSven Verdoolaege1-2/+2
As it happens, the rollback has little effect in this case and the information is still available, but we shouldn't depend on this.
2009-08-09isl_tab_add_valid_eq: keep track of whether equality is negatedSven Verdoolaege1-5/+16
This is important during generalized basis reduction, because this procedure requires the dual variables of some of the equalities added to the tableau. If the original equality get negated then the dual of the original equality will be the opposite of the dual of the equality that was actually added. Without this fix, gbr could in some cases make completely inappropriate decisions.
2009-08-07isl_tab: add support for keeping track of samplesSven Verdoolaege1-0/+13
2009-08-07isl_tab: optionally keep track of row signsSven Verdoolaege1-2/+88
2009-08-07isl_tab: add isl_basic_set field for optionally keeping track of inequalitiesSven Verdoolaege1-0/+12
2009-08-07isl_tab: introduce support for "big parameters"Sven Verdoolaege1-61/+133
These will be used while solving PILP problems.
2009-08-07isl_tab: allow introduction of extra variablesSven Verdoolaege1-1/+83
2009-08-07isl_tab: introduce parameters and divsSven Verdoolaege1-1/+7
2009-08-07isl_tab: allow saving and restoring the complete basisSven Verdoolaege1-0/+80