Skip to content

Commit cfdfdb7

Browse files
committed
Sync with Eigen 5.0.0 (aka 3.5.0)
1 parent 58df934 commit cfdfdb7

File tree

631 files changed

+149623
-130943
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

631 files changed

+149623
-130943
lines changed

ChangeLog

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
2025-12-25 Dirk Eddelbuettel <edd@debian.org>
2+
3+
* inst/include/Eigen/: Sync with upstream Eigen 5.0.0 (aka 3.5.0)
4+
* inst/include/unsupported/Eigen/: Idem
5+
16
2025-08-26 Dirk Eddelbuettel <edd@debian.org>
27

38
* inst/tinytest/test_misc.R: Add minimal test for EigenNbThreads()
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
// This file is part of Eigen, a lightweight C++ template library
2+
// for linear algebra.
3+
//
4+
// This Source Code Form is subject to the terms of the Mozilla
5+
// Public License v. 2.0. If a copy of the MPL was not distributed
6+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
7+
8+
#ifndef EIGEN_ACCELERATESUPPORT_MODULE_H
9+
#define EIGEN_ACCELERATESUPPORT_MODULE_H
10+
11+
#include "SparseCore"
12+
13+
#include "src/Core/util/DisableStupidWarnings.h"
14+
15+
/** \ingroup Support_modules
16+
* \defgroup AccelerateSupport_Module AccelerateSupport module
17+
*
18+
* This module provides an interface to the Apple Accelerate library.
19+
* It provides the seven following main factorization classes:
20+
* - class AccelerateLLT: a Cholesky (LL^T) factorization.
21+
* - class AccelerateLDLT: the default LDL^T factorization.
22+
* - class AccelerateLDLTUnpivoted: a Cholesky-like LDL^T factorization with only 1x1 pivots and no pivoting
23+
* - class AccelerateLDLTSBK: an LDL^T factorization with Supernode Bunch-Kaufman and static pivoting
24+
* - class AccelerateLDLTTPP: an LDL^T factorization with full threshold partial pivoting
25+
* - class AccelerateQR: a QR factorization
26+
* - class AccelerateCholeskyAtA: a QR factorization without storing Q (equivalent to A^TA = R^T R)
27+
*
28+
* \code
29+
* #include <Eigen/AccelerateSupport>
30+
* \endcode
31+
*
32+
* In order to use this module, the Accelerate headers must be accessible from
33+
* the include paths, and your binary must be linked to the Accelerate framework.
34+
* The Accelerate library is only available on Apple hardware.
35+
*
36+
* Note that many of the algorithms can be influenced by the UpLo template
37+
* argument. All matrices are assumed to be symmetric. For example, the following
38+
* creates an LDLT factorization where your matrix is symmetric (implicit) and
39+
* uses the lower triangle:
40+
*
41+
* \code
42+
* AccelerateLDLT<SparseMatrix<float>, Lower> ldlt;
43+
* \endcode
44+
*/
45+
46+
// IWYU pragma: begin_exports
47+
#include "src/AccelerateSupport/AccelerateSupport.h"
48+
// IWYU pragma: end_exports
49+
50+
#include "src/Core/util/ReenableStupidWarnings.h"
51+
52+
#endif // EIGEN_ACCELERATESUPPORT_MODULE_H

inst/include/Eigen/Cholesky

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,32 +14,30 @@
1414
#include "src/Core/util/DisableStupidWarnings.h"
1515

1616
/** \defgroup Cholesky_Module Cholesky module
17-
*
18-
*
19-
*
20-
* This module provides two variants of the Cholesky decomposition for selfadjoint (hermitian) matrices.
21-
* Those decompositions are also accessible via the following methods:
22-
* - MatrixBase::llt()
23-
* - MatrixBase::ldlt()
24-
* - SelfAdjointView::llt()
25-
* - SelfAdjointView::ldlt()
26-
*
27-
* \code
28-
* #include <Eigen/Cholesky>
29-
* \endcode
30-
*/
17+
*
18+
*
19+
*
20+
* This module provides two variants of the Cholesky decomposition for selfadjoint (hermitian) matrices.
21+
* Those decompositions are also accessible via the following methods:
22+
* - MatrixBase::llt()
23+
* - MatrixBase::ldlt()
24+
* - SelfAdjointView::llt()
25+
* - SelfAdjointView::ldlt()
26+
*
27+
* \code
28+
* #include <Eigen/Cholesky>
29+
* \endcode
30+
*/
3131

32+
// IWYU pragma: begin_exports
3233
#include "src/Cholesky/LLT.h"
3334
#include "src/Cholesky/LDLT.h"
3435
#ifdef EIGEN_USE_LAPACKE
35-
#ifdef EIGEN_USE_MKL
36-
#include "mkl_lapacke.h"
37-
#else
38-
#include "src/misc/lapacke.h"
39-
#endif
36+
#include "src/misc/lapacke_helpers.h"
4037
#include "src/Cholesky/LLT_LAPACKE.h"
4138
#endif
39+
// IWYU pragma: end_exports
4240

4341
#include "src/Core/util/ReenableStupidWarnings.h"
4442

45-
#endif // EIGEN_CHOLESKY_MODULE_H
43+
#endif // EIGEN_CHOLESKY_MODULE_H

inst/include/Eigen/CholmodSupport

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -12,33 +12,37 @@
1212

1313
#include "src/Core/util/DisableStupidWarnings.h"
1414

15-
/** \ingroup Support_modules
16-
* \defgroup CholmodSupport_Module CholmodSupport module
17-
*
18-
* This module provides an interface to the Cholmod library which is part of the <a href="http://www.suitesparse.com">suitesparse</a> package.
19-
* It provides the two following main factorization classes:
20-
* - class CholmodSupernodalLLT: a supernodal LLT Cholesky factorization.
21-
* - class CholmodDecomposiiton: a general L(D)LT Cholesky factorization with automatic or explicit runtime selection of the underlying factorization method (supernodal or simplicial).
22-
*
23-
* For the sake of completeness, this module also propose the two following classes:
24-
* - class CholmodSimplicialLLT
25-
* - class CholmodSimplicialLDLT
26-
* Note that these classes does not bring any particular advantage compared to the built-in
27-
* SimplicialLLT and SimplicialLDLT factorization classes.
28-
*
29-
* \code
30-
* #include <Eigen/CholmodSupport>
31-
* \endcode
32-
*
33-
* In order to use this module, the cholmod headers must be accessible from the include paths, and your binary must be linked to the cholmod library and its dependencies.
34-
* The dependencies depend on how cholmod has been compiled.
35-
* For a cmake based project, you can use our FindCholmod.cmake module to help you in this task.
36-
*
37-
*/
15+
#include <cholmod.h>
3816

17+
/** \ingroup Support_modules
18+
* \defgroup CholmodSupport_Module CholmodSupport module
19+
*
20+
* This module provides an interface to the Cholmod library which is part of the <a
21+
* href="http://www.suitesparse.com">suitesparse</a> package. It provides the two following main factorization classes:
22+
* - class CholmodSupernodalLLT: a supernodal LLT Cholesky factorization.
23+
* - class CholmodDecomposition: a general L(D)LT Cholesky factorization with automatic or explicit runtime selection of
24+
* the underlying factorization method (supernodal or simplicial).
25+
*
26+
* For the sake of completeness, this module also propose the two following classes:
27+
* - class CholmodSimplicialLLT
28+
* - class CholmodSimplicialLDLT
29+
* Note that these classes does not bring any particular advantage compared to the built-in
30+
* SimplicialLLT and SimplicialLDLT factorization classes.
31+
*
32+
* \code
33+
* #include <Eigen/CholmodSupport>
34+
* \endcode
35+
*
36+
* In order to use this module, the cholmod headers must be accessible from the include paths, and your binary must be
37+
* linked to the cholmod library and its dependencies. The dependencies depend on how cholmod has been compiled. For a
38+
* cmake based project, you can use our FindCholmod.cmake module to help you in this task.
39+
*
40+
*/
41+
42+
// IWYU pragma: begin_exports
3943
#include "src/CholmodSupport/CholmodSupport.h"
44+
// IWYU pragma: end_exports
4045

4146
#include "src/Core/util/ReenableStupidWarnings.h"
4247

43-
#endif // EIGEN_CHOLMODSUPPORT_MODULE_H
44-
48+
#endif // EIGEN_CHOLMODSUPPORT_MODULE_H

0 commit comments

Comments
 (0)