|
| 1 | +### Version 4.3.0 - 2025-11-11 |
| 2 | + |
| 3 | +* Add net10.0 and remove net6.0 target framework. |
| 4 | +* Minor optimizations for matrix-vector multiplication. |
| 5 | +* Minor optimizations checking empty Span. |
| 6 | + |
| 7 | +### Version 4.2.0 - 2024-09-15 |
| 8 | + |
| 9 | +* Make `SymbolicColumnStorage` class public and update `StronglyConnectedComponents` and `DulmageMendelsohn` decomposition accordingly. |
| 10 | + |
| 11 | +### Version 4.1.0 - 2024-06-14 |
| 12 | + |
| 13 | +* Add overload for creating a sparse matrix from an enumerable of `ValueTuple`. |
| 14 | +* Add matrix `EnumerateIndexedAsValueTuples()` to enumerate entries as `ValueTuple`. |
| 15 | + |
| 16 | +### Version 4.0.0 - 2024-04-03 |
| 17 | + |
| 18 | +The major version change is due to the removal of obsolete methods in the `Converter` class. Visibility of that class was changed from public to internal. In case those obsolete methods were still used, please switch to the static conversion methods provided by the `SparseMatrix` class. |
| 19 | + |
| 20 | +Additional changes: |
| 21 | + |
| 22 | +* Add helper method `Helper.ValidateStorage(...)` to validate the structure of a sparse matrix. |
| 23 | +* Update to `GetHashCode()` method of `CompressedColumnStorage` class. |
| 24 | +* Improvements to documentation. |
| 25 | + |
| 26 | +### Version 3.8.1 - 2023-11-15 |
| 27 | + |
| 28 | +* Add overloads for permutation `Invert()` and `IsValid()` methods taking the permutation length as argument. |
| 29 | + |
| 30 | +### Version 3.8.0 - 2023-05-20 |
| 31 | + |
| 32 | +* Add overloads for the factorization `Solve()` methods taking `Span<T>` as argument. Note that this introduces a dependency on `System.Memory` for the netstandard2.0 assembly. |
| 33 | + |
| 34 | +### Version 3.7.0 - 2022-05-04 |
| 35 | + |
| 36 | +* Add sparse matrix `OfDiagonals` static method (similar to MATLAB spdiags). |
| 37 | + |
| 38 | +### Version 3.6.0 - 2021-11-25 |
| 39 | + |
| 40 | +* Remove .NET 4.5 target framework, upgrade .NET 5.0 to 6.0. |
| 41 | +* Add constructor that takes explicit non-zeros count to `CoordinateStorage` class. |
| 42 | + |
| 43 | +### Version 3.5.0 - 2021-01-14 |
| 44 | + |
| 45 | +* Remove .NET 4.0 target framework, add .NET 5.0. |
| 46 | + |
| 47 | +### Version 3.4.9 - 2020-11-06 |
| 48 | + |
| 49 | +* Add `CoordinateStorage` constructor that uses existing storage arrays. |
| 50 | +* Convert `CoordinateStorage` to sparse matrix in place. |
| 51 | + |
| 52 | +### Version 3.4.7 - 2020-08-28 |
| 53 | + |
| 54 | +* BREAKING: make `SparseLDL` constructor private (use static create methods instead). |
| 55 | +* Add complex version of `SparseLDL`. |
| 56 | +* Add `matrix.EnumerateIndexed(action)` overload. |
| 57 | + |
| 58 | +### Version 3.4.6 - 2020-07-21 |
| 59 | + |
| 60 | +* Add `SolveTranspose` method for `SparseQR`. |
| 61 | + |
| 62 | +### Version 3.4.5 - 2020-06-11 |
| 63 | + |
| 64 | +This release introduces the static `SparseMatrix.AutoTrimStorage` option, which enables control over hidden memory allocations in matrix addition and multiplication. By default, the matrix storage will be resized to exactly fit the non-zeros count, which involves new memory allocations. If you want to avoid this, set `AutoTrimStorage` to `false`. |
| 65 | + |
| 66 | +Additional changes: |
| 67 | + |
| 68 | +* Add public helper methods `Helper.TrimStrorage(...)` and `Helper.SortIndices(...)` |
| 69 | +* Add `DenseMatrix.OfJaggedArray(...)` |
| 70 | + |
| 71 | +### Version 3.4.3 - 2020-05-25 |
| 72 | + |
| 73 | +* Add a sparse matrix multiplication overload that accepts the result matrix as a parameter. |
| 74 | + |
| 75 | +### Version 3.4.2 - 2020-05-13 |
| 76 | + |
| 77 | +* Make CSparse.NET CLS compliant |
| 78 | +* Mark public methods of Converter class as obsolete |
| 79 | + |
| 80 | +### Version 3.4.1 - 2019-10-02 |
| 81 | + |
| 82 | +* Improved validation of matrix constructor arguments |
| 83 | +* Fixes an issue with `CoordinateStorage` throwing `IndexOutOfRangeException` (introduced in v3.4.0) |
| 84 | + |
| 85 | +### Version 3.4.0 - 2019-09-15 |
| 86 | + |
| 87 | +* Parallel dense and sparse matrix multiplication (by Andreas Girgensohn) |
| 88 | +* General performance improvements for sparse matrix addition and multiplication |
| 89 | + |
| 90 | +### Version 3.3.0 - 2019-04-29 |
| 91 | + |
| 92 | +* Support more target frameworks (including netstandard2.0). |
| 93 | +* Public access to members of Dulmage-Mendelsohn decomposition. |
| 94 | +* Compute strongly connected components. |
| 95 | + |
| 96 | +### Version 3.2.3 - 2018-11-30 |
| 97 | + |
| 98 | +* Added matrix creation helper (e.g. call `SparseMatrix.OfIndexed(s)` to convert coordinate storage). |
| 99 | + |
| 100 | +### Version 3.2.2 - 2018-10-12 |
| 101 | + |
| 102 | +* Added MatrixMarket writer. |
| 103 | +* BREAKING: make `IProgress interface` compatible with .NET 4.5. |
| 104 | + |
| 105 | +### Version 3.2.1 - 2018-09-17 |
| 106 | + |
| 107 | +### Version 3.2.0 - 2018-03-09 |
| 108 | + |
| 109 | +* Added new `DenseMatrix` type. |
| 110 | +* BREAKING: removed deprecated `CompressedColumnStorage` type. |
| 111 | +* BREAKING: removed deprecated `matrix.Norm(int)` method. |
| 112 | + |
| 113 | +### Version 3.1.10 - 2018-03-06 |
| 114 | + |
| 115 | +* Rename `CompressedColumnStorage` to `SparseMatrix`. |
| 116 | +* BREAKING: `matrix.Multiply(x, y)` overwrites y (instead of update). |
| 117 | +* BREAKING: sparse matrix `PermuteColumns` returns a new matrix (instead of update). |
| 118 | + |
| 119 | +### Version 3.1.9 - 2017-01-06 |
| 120 | + |
| 121 | +* BREAKING: use static `Create` methods (e.g. `SparseLU.Create(...)`) instead of constructors. |
| 122 | + |
| 123 | +### Version 3.1.4 - 2015-09-19 |
| 124 | + |
| 125 | +* Initial release of CSparse.NET (based on Tim Davis CSparse version 3.1.4) |
0 commit comments