137 Commits
Author SHA1 Message Date
Rasmus Munk LarsenandRasmus Munk Larsen af2fd98144 SparseCore: honor Eigen::NoChange in SparseMatrix/SparseVector resize (#656)
libeigen/eigen!2569

Closes #656

Co-authored-by: Rasmus Munk Larsen <rlarsen@nvidia.com>
2026-05-18 21:36:29 -07:00
Rasmus Munk LarsenandRasmus Munk Larsen edc053f1b7 SparseCore: add operator==/!= to SparseCompressedBase InnerIterator (#1192)
libeigen/eigen!2571

Closes #1192

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-05-18 22:16:43 +00:00
Florian Maurin 83184e67da Cleanup: Modernize internal utilities for C++14
libeigen/eigen!2518
2026-05-07 16:43:22 -07:00
Rasmus Munk LarsenandRasmus Munk Larsen 8a3d61c790 Licensing: SPDX identifiers, REUSE.toml, and checkformat:reuse CI job
libeigen/eigen!2509

Closes #2868

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-05-04 00:36:12 +00:00
Rasmus Munk LarsenandRasmus Munk Larsen a624cf1a08 AMDOrdering: pattern-only A+A^T merge
libeigen/eigen!2496

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-05-02 11:03:40 +00:00
Rasmus Munk LarsenandRasmus Munk Larsen a25aa6467b SparseCore: SparsityPatternRef view; pattern-only AMD ordering & ILUT prep
libeigen/eigen!2489

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-05-01 17:34:57 -07:00
Florian Maurin 2aaea06c33 Fix left scalar multiplication for TriangularView and SparseSelfAdjointView
libeigen/eigen!2400

Closes #1398 and #1536
2026-04-16 13:36:51 -07:00
Rasmus Munk LarsenandRasmus Munk Larsen cc8c7cf0e6 Fix bugs and clean up SparseCore module
libeigen/eigen!2250

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-03-21 13:31:12 +00:00
Tyler Veness d8c8ee6fb2 Fix crash on construction of SparseMatrix with zero-length diagonal
libeigen/eigen!2249
2026-03-06 01:43:21 +00:00
Rasmus Munk LarsenandRasmus Munk Larsen eddb470a09 Fix flaky array_cwise and sparse_basic tests
libeigen/eigen!2227

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-02-27 21:52:46 -08:00
Charles Schlosser 7b5d32b7c9 Sparse move 2024-03-27 17:44:50 +00:00
Antonio Sánchez 46e9cdb7fe Clang-format tests, examples, libraries, benchmarks, etc. 2023-12-05 21:22:55 +00:00
Charles Schlosser e8515f78ac Fix sparse triangular view iterator 2023-10-05 17:13:37 +00:00
Charles Schlosser 67a1e881d9 Sparse matrix column/row removal 2023-05-24 17:04:45 +00:00
Antonio Sánchez 3918768be1 Fix sparse iterator and tests. 2023-04-25 19:05:49 +00:00
Charles Schlosser 0d12fcc34e Insert from triplets 2023-04-12 20:01:48 +00:00
Rasmus Munk Larsen 07aaa62e6f Fix compiler warnings in tests. 2023-02-14 02:29:03 +00:00
Charles Schlosser 5a7ca681d5 Fix sparse insert 2023-01-20 21:32:32 +00:00
Charles Schlosser 81172cbdcb Overhaul Sparse Core 2023-01-07 22:09:42 +00:00
Charles Schlosser 44fe539150 add sparse sort inner vectors function 2022-12-01 19:28:56 +00:00
Erik Schultheis d271a7d545 reduce float warnings (comparisons and implicit conversions) 2022-01-26 18:16:19 +00:00
Erik Schultheis f33a31b823 removed EIGEN_HAS_CXX11_* and redundant EIGEN_COMP_CXXVER checks 2021-11-29 19:18:57 +00:00
Erik Schultheis 7e586635ba don't use deprecated MappedSparseMatrix 2021-11-19 15:58:04 +00:00
Antonio Sanchez 543e34ab9d Re-implement move assignments.
The original swap approach leads to potential undefined behavior (reading
uninitialized memory) and results in unnecessary copying of data for static
storage.

Here we pass down the move assignment to the underlying storage.  Static
storage does a one-way copy, dynamic storage does a swap.

Modified the tests to no longer read from the moved-from matrix/tensor,
since that can lead to UB. Added a test to ensure we do not access
uninitialized memory in a move.

Fixes: #2119
2021-03-10 16:55:20 +00:00
Antonio Sanchez 2468253c9a Define EIGEN_CPLUSPLUS and replace most __cplusplus checks.
The macro `__cplusplus` is not defined correctly in MSVC unless building
with the the `/Zc:__cplusplus` flag. Instead, it defines `_MSVC_LANG` to the
specified c++ standard version number.

Here we introduce `EIGEN_CPLUSPLUS` which will contain the c++ version
number both for MSVC and otherwise.  This simplifies checks for supported
features.

Also replaced most instances of standard version checking via `__cplusplus`
with the existing `EIGEN_COMP_CXXVER` macro for better clarity.

Fixes: #2170
2021-03-05 18:33:18 +00:00
Adam Shapiro 2ac0b78739 Fixed sparse conservativeResize() when both num cols and rows decreased.
The previous implementation caused a buffer overflow trying to calculate non-
zero counts for columns that no longer exist.
2021-02-23 21:32:39 +00:00
Gael Guennebaud 25424d91f6 Fix #1974: assertion when reserving an empty sparse matrix 2020-08-26 12:32:20 +02:00
Gael Guennebaud f489f44519 bug #1574: implement "sparse_matrix =,+=,-= diagonal_matrix" with smart insertion strategies of missing diagonal coeffs. 2019-01-28 17:29:50 +01:00
Gael Guennebaud cd25b538ab Fix noise in sparse_basic_3 (numerical cancellation) 2018-12-08 00:13:37 +01:00
Rasmus Munk Larsen 954b4ca9d0 Suppress compiler warning about unused global variable. 2018-10-22 13:48:56 -07:00
Gael Guennebaud 3a33db4de5 merge 2018-10-15 09:22:27 +02:00
Rasmus Munk Larsen 0ed811a9c1 Suppress unused variable compiler warning in sparse subtest 3. 2018-10-12 13:41:57 -07:00
Gael Guennebaud 8214cf1896 Make sparse_basic includable from sparse_extra, but disable it since sparse_basic(DynamicSparseMatrix) does not compile at all anyways 2018-10-11 10:27:23 +02:00
Gael Guennebaud eec0dfd688 bug #632: add specializations for res ?= dense +/- sparse and res ?= sparse +/- dense.
They are rewritten as two compound assignment to by-pass hybrid dense-sparse iterator.
2018-10-10 22:50:15 +02:00
Gael Guennebaud dff3a92d52 Remove usage of #if EIGEN_TEST_PART_XX in unit tests that does not require them (splitting can thus be avoided for them) 2018-07-17 15:52:58 +02:00
Gael Guennebaud 82f0ce2726 Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }.
This provide several advantages:
- more flexibility in designing unit tests
- unit tests can be glued to speed up compilation
- unit tests are compiled with same predefined macros, which is a requirement for zapcc
2018-07-17 14:46:15 +02:00
Gael Guennebaud 26a2c6fc16 fix unit test 2017-12-14 15:11:04 +01:00
Gael Guennebaud c86911ac73 bug #1384: fix evaluation of "sparse/scalar" that used the wrong evaluation path. 2017-01-30 13:38:24 +01:00
Gael Guennebaud 296d24be4d bug #1381: fix sparse.diagonal() used as a rvalue.
The problem was that is "sparse" is not const, then sparse.diagonal() must have the
LValueBit flag meaning that sparse.diagonal().coeff(i) must returns a const reference,
const Scalar&. However, sparse::coeff() cannot returns a reference for a non-existing
zero coefficient. The trick is to return a reference to a local member of
evaluator<SparseMatrix>.
2017-01-25 17:39:01 +01:00
Gael Guennebaud ba3f977946 bug #1376: add missing assertion on size mismatch with compound assignment operators (e.g., mat += mat.col(j)) 2017-01-23 22:06:08 +01:00
Gael Guennebaud 7136267461 Add missing .outer() member to iterators of evaluators of cwise sparse binary expression 2016-12-27 16:34:30 +01:00
Gael Guennebaud 11b492e993 bug #1358: fix compilation for sparse += sparse.selfadjointView(); 2016-12-14 17:53:47 +01:00
Gael Guennebaud 2e334f5da0 bug #426: move operator && and || to MatrixBase and SparseMatrixBase. 2016-11-14 18:47:02 +01:00
Gael Guennebaud eedb87f4ba Fix regression in SparseMatrix::ReverseInnerIterator 2016-11-14 14:05:53 +01:00
Gael Guennebaud 7e029d1d6e bug #1271: add SparseMatrix::coeffs() methods returning a 1D view of the non zero coefficients. 2016-08-29 12:06:37 +02:00
Gael Guennebaud 757971e7ea bug #1258: fix compilation of Map<SparseMatrix>::coeffRef 2016-07-26 09:40:19 +02:00
Gael Guennebaud 2c1b56f4c1 bug #1238: fix SparseMatrix::sum() overload for un-compressed mode. 2016-05-31 10:56:53 +02:00
Gael Guennebaud 8456bbbadb bug #1224: fix regression in (dense*dense).sparseView() by specializing evaluator<SparseView<Product>> for sparse products only. 2016-05-18 16:53:28 +02:00
Christoph Hertzberg 7268b10203 Split unit test 2016-05-11 19:41:53 +02:00
Christoph Hertzberg dacb469bc9 Enable and fix -Wdouble-conversion warnings 2016-05-05 13:35:45 +02:00