From 0a0b350ff67902cf3fb200d543abc4b374fd37a3 Mon Sep 17 00:00:00 2001 From: wo80 Date: Wed, 12 Jun 2024 16:04:14 +0200 Subject: [PATCH] Update documentation and release notes for v4.1.0 --- CSparse/CSparse.csproj | 15 +++++++++++---- CSparse/Storage/CompressedColumnStorage.cs | 9 +++++++++ 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/CSparse/CSparse.csproj b/CSparse/CSparse.csproj index 8c0a145..05c3d12 100644 --- a/CSparse/CSparse.csproj +++ b/CSparse/CSparse.csproj @@ -11,10 +11,10 @@ Copyright Christian Woltering © 2012-2024 Christian Woltering - 4.0.0.0 - 4.0.0.0 + 4.1.0.0 + 4.1.0.0 math sparse matrix lu cholesky qr decomposition factorization - 4.0.0 + 4.1.0 CSparse CSparse LGPL-2.1-only @@ -22,9 +22,16 @@ https://github.com/wo80/CSparse.NET.git git + Version 4.1.0 + + * Add overload for creating a sparse matrix from an enumerable of ValueTuple. + * Add matrix EnumerateIndexedAsValueTuples() to enumerate entries as ValueTuple. + + Version 4.0.0 + 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. - Other changes in version 4.0.0: + Other changes in this version: * Addition of helper method Helper.ValidateStorage(...) to validate the structure of a sparse matrix. * Update to GetHashCode() method of CompressedColumnStorage class. diff --git a/CSparse/Storage/CompressedColumnStorage.cs b/CSparse/Storage/CompressedColumnStorage.cs index 2329119..47d2593 100644 --- a/CSparse/Storage/CompressedColumnStorage.cs +++ b/CSparse/Storage/CompressedColumnStorage.cs @@ -172,6 +172,9 @@ public static CompressedColumnStorage OfIndexed(int rows, int columns, IEnume /// /// Create a new sparse matrix as a copy of the given array (row-major). /// + /// The number of rows. + /// The number of columns. + /// The dense matrix values in row-major order. public static CompressedColumnStorage OfRowMajor(int rows, int columns, T[] rowMajor) { var c = Converter.FromRowMajorArray(rowMajor, rows, columns); @@ -182,6 +185,9 @@ public static CompressedColumnStorage OfRowMajor(int rows, int columns, T[] r /// /// Create a new sparse matrix as a copy of the given array (column-major). /// + /// The number of rows. + /// The number of columns. + /// The dense matrix values in column-major order. public static CompressedColumnStorage OfColumnMajor(int rows, int columns, T[] columnMajor) { var c = Converter.FromColumnMajorArray(columnMajor, rows, columns); @@ -192,6 +198,7 @@ public static CompressedColumnStorage OfColumnMajor(int rows, int columns, T[ /// /// Create a new square sparse matrix with the diagonal as a copy of the given array. /// + /// The matrix diagonal values. public static CompressedColumnStorage OfDiagonalArray(T[] diagonal) { int order = diagonal.Length; @@ -587,6 +594,8 @@ public override IEnumerable> EnumerateIndexed() } } + // TODO: [v5] remove method below and only provide one method using value-tuples + /// public override IEnumerable<(int row, int column, T value)> EnumerateIndexedAsValueTuples() {