Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* initial work on sparse matrix representation * store/restore functionality * addLastRow functionality * getRow and getColumn * column-merging functionality * added an interface class * introducing also sparse vectors * added addLastColumn functionality * another unittest * get sparse columns/matrices in dense form * WIP on storing the constraint matrix inside the tableau in sparse form * more WIP, fixed a few bugs, still have a couple of failing tests * fixed some test issues * initialization * resize _a along with the rest * sparse lu factors * store also the transposed versions of F and V * starting work on the sparse GE * some work on changing the values within an existing sparse representation, needed for sparse factorization. still WIP * refactoring and new functionality for CSRMatrix: any kind of insertions and deletions * support for empty initialization and counting elements * sparse GE is now working. minor bug fixes elsewhere * compute Ft and Vt as part of the G-elimination process * tests * basis oracles can return also sparse columns, not just dense * sparse LU factorization class * switch to using the sparse factorization in the engine/tableau * bug fix in mergeColumns, and nicer printing * bug fix * bug fix * bug fix: merging columns does not delete the actual column, just leaves it empty * configuration changes * optimization: since the sparse columns of A are needed all the time, just compute them once-and-for-all * a more efficient implementation of sparse vectors * comments and unit tests * cleanup * keep _A in dense column-major format, too, instead of repeatedly invoking toDense() to gets its columns * bad deletes * bug fix in test * bug fixes: relu constraint propagation, and the handling of merged variables in the preprocessor * new test * compute Ft incrementally, use it whenever sparse columns are required * did the todo * valgrind fixes * debugging * un-initialized memory * cleanup * fixing an issue with cost function degradation * reinstating the anti-looping trick * debug prints * verify invariants * debug info for crash * fixing a numerical stability issue new assertions * cleanup * cleanup * removing the code with the failing assertion * weaken a couple of too-storng assertions * bug fix and some fine-tuning of PSE * bug fix in LU factorization optimizations to PSE * WIP * cleanup * cleanup * fine-tuning the computation of basic costs * more robust comparisons * more stable cost function computation * changes to how the cost function is adjusted at the beginning of every loop, due to degeneracy * made the decision on which non-basics are eligible for entry more robust * minor * more robust calculations * more robust PSE computation * if stuck with an unstable pivot, refresh the basis factorization and try again
- Loading branch information