Skip to content

Commit dd7d51c

Browse files
committed
Track native Eigen headers for CI
1 parent 0936cb3 commit dd7d51c

893 files changed

Lines changed: 313847 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
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
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
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_CHOLESKY_MODULE_H
9+
#define EIGEN_CHOLESKY_MODULE_H
10+
11+
#include "Core"
12+
#include "Jacobi"
13+
14+
#include "src/Core/util/DisableStupidWarnings.h"
15+
16+
/** \defgroup Cholesky_Module Cholesky module
17+
*
18+
* This module provides two variants of the Cholesky decomposition for selfadjoint (hermitian) matrices.
19+
* Those decompositions are also accessible via the following methods:
20+
* - MatrixBase::llt()
21+
* - MatrixBase::ldlt()
22+
* - SelfAdjointView::llt()
23+
* - SelfAdjointView::ldlt()
24+
*
25+
* \code
26+
* #include <Eigen/Cholesky>
27+
* \endcode
28+
*/
29+
30+
// IWYU pragma: begin_exports
31+
#include "src/Cholesky/LLT.h"
32+
#include "src/Cholesky/LDLT.h"
33+
#ifdef EIGEN_USE_LAPACKE
34+
#include "src/misc/lapacke_helpers.h"
35+
#include "src/Cholesky/LLT_LAPACKE.h"
36+
#endif
37+
// IWYU pragma: end_exports
38+
39+
#include "src/Core/util/ReenableStupidWarnings.h"
40+
41+
#endif // EIGEN_CHOLESKY_MODULE_H
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
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_CHOLMODSUPPORT_MODULE_H
9+
#define EIGEN_CHOLMODSUPPORT_MODULE_H
10+
11+
#include "SparseCore"
12+
13+
#include "src/Core/util/DisableStupidWarnings.h"
14+
15+
#include <cholmod.h>
16+
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 do 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
43+
#include "src/CholmodSupport/CholmodSupport.h"
44+
// IWYU pragma: end_exports
45+
46+
#include "src/Core/util/ReenableStupidWarnings.h"
47+
48+
#endif // EIGEN_CHOLMODSUPPORT_MODULE_H

0 commit comments

Comments
 (0)