|
| 1 | +# Re::Solve Changelog |
| 2 | + |
| 3 | +## Changes to Re::Solve in release 0.99.2 |
| 4 | + |
| 5 | +### Major Features |
| 6 | + |
| 7 | +1. Re::Solve now works reliably with asymmetric matrices, with no need for intermediate CSC storage. |
| 8 | +This requires switching $L$ with $U$ and $P$ with $Q$ and reinterpretting them as CSR instead of CSC. |
| 9 | +It is seamless from the user perspective and fixed many bugs. |
| 10 | + |
| 11 | +2. Added more rigorous checks for PRs for clang formatting and to compile without warnings and memory leaks. |
| 12 | + |
| 13 | +3. Updated pull request and issue templates. |
| 14 | + |
| 15 | +### Bug Fixes |
| 16 | + |
| 17 | +1. Fixed a bug that produced inaccurate results for some asymmetric matrices with major feature 1. |
| 18 | + |
| 19 | +2. Synchronized devices after HIP functions. HIP executes asynchronously, so bugs occured wihout synchronization. |
| 20 | + |
| 21 | +3. Corrected the way cmake finds suitsparse. |
| 22 | + |
| 23 | +4. Fixed various memory leaks and compiler warnings. |
| 24 | + |
| 25 | +### Minor Features and Enhancements |
| 26 | + |
| 27 | +1. Changed all examples and tests to use Csr format, added uniform command line parsers (no longer hard-coded), and decluttered them. |
| 28 | + |
| 29 | +2. Added asymmetric matrices and well-conditioned matrices to the test suite. |
| 30 | + |
| 31 | +3. Removed RocSparse "fast mode" triangular solver and use RocSolver triangular solver only as it is now faster and removes dependencies. |
| 32 | + |
| 33 | +4. Put sorting inside the KLU extraction because many solvers assume sorted factors and there's no need to reimplement sorting constantly. |
| 34 | + |
| 35 | +5. Removed duplicate code, added code comments, corrected code to fit guidelines, removed magic numbers, and simplified code where possible. |
| 36 | + |
| 37 | +6. Added the ability to reset a workspace without completely destroying it. |
| 38 | + |
| 39 | +7. Improved testing and added tests where they were missing. |
| 40 | + |
| 41 | +8. Added kernels for multiplying a vector by a diagonal matrix and a general matrix by a diagonal matrix (left and right). |
| 42 | + |
| 43 | +9. Prohibitted sloppy memory syncing and added more descriptive error messages when a prohibited action is attempted. |
| 44 | + |
| 45 | +10. The code now tracks the updated status for each vector in a multivector. |
| 46 | + |
| 47 | +11. Added the ability to reuse a transpose allocation. |
| 48 | + |
| 49 | +12. Added the ability to generically set solver parameters. |
| 50 | + |
| 51 | +13. Added LUSOL direct solver, which can factorize matrices and extract factors independently of KLU. |
| 52 | + |
| 53 | +14. Various Spack updates. |
| 54 | + |
| 55 | + |
| 56 | + |
| 57 | + |
| 58 | + |
0 commit comments