mirror of
https://gitlab.com/libeigen/eigen.git
synced 2024-12-21 07:19:46 +08:00
765219aa51
* rename Cholesky to LLT * rename CholeskyWithoutSquareRoot to LDLT * rename MatrixBase::cholesky() to llt() * rename MatrixBase::choleskyNoSqrt() to ldlt() * make {LLT,LDLT}::solve() API consistent with other modules Note that we are going to keep a source compatibility untill the next beta release. E.g., the "old" Cholesky* classes, etc are still available for some time. To be clear, Eigen beta2 should be (hopefully) source compatible with beta1, and so beta2 will contain all the deprecated API of beta1. Those features marked as deprecated will be removed in beta3 (or in the final 2.0 if there is no beta 3 !). Also includes various updated in sparse Cholesky.
61 lines
1.9 KiB
Plaintext
61 lines
1.9 KiB
Plaintext
#ifndef EIGEN_CHOLESKY_MODULE_H
|
|
#define EIGEN_CHOLESKY_MODULE_H
|
|
|
|
#include "Core"
|
|
|
|
// Note that EIGEN_HIDE_HEAVY_CODE has to be defined per module
|
|
#if (defined EIGEN_EXTERN_INSTANTIATIONS) && (EIGEN_EXTERN_INSTANTIATIONS>=2)
|
|
#ifndef EIGEN_HIDE_HEAVY_CODE
|
|
#define EIGEN_HIDE_HEAVY_CODE
|
|
#endif
|
|
#elif defined EIGEN_HIDE_HEAVY_CODE
|
|
#undef EIGEN_HIDE_HEAVY_CODE
|
|
#endif
|
|
|
|
namespace Eigen {
|
|
|
|
/** \defgroup Cholesky_Module Cholesky module
|
|
* This module provides two variants of the Cholesky decomposition for selfadjoint (hermitian) matrices.
|
|
* Those decompositions are accessible via the following MatrixBase methods:
|
|
* - MatrixBase::llt(),
|
|
* - MatrixBase::ldlt()
|
|
*
|
|
* \code
|
|
* #include <Eigen/Cholesky>
|
|
* \endcode
|
|
*/
|
|
|
|
#include "src/Array/CwiseOperators.h"
|
|
#include "src/Array/Functors.h"
|
|
#include "src/Cholesky/LLT.h"
|
|
#include "src/Cholesky/LDLT.h"
|
|
#include "src/Cholesky/Cholesky.h"
|
|
#include "src/Cholesky/CholeskyWithoutSquareRoot.h"
|
|
|
|
} // namespace Eigen
|
|
|
|
#define EIGEN_CHOLESKY_MODULE_INSTANTIATE_TYPE(MATRIXTYPE,PREFIX) \
|
|
PREFIX template class Cholesky<MATRIXTYPE>; \
|
|
PREFIX template class CholeskyWithoutSquareRoot<MATRIXTYPE>
|
|
|
|
#define EIGEN_CHOLESKY_MODULE_INSTANTIATE(PREFIX) \
|
|
EIGEN_CHOLESKY_MODULE_INSTANTIATE_TYPE(Matrix2f,PREFIX); \
|
|
EIGEN_CHOLESKY_MODULE_INSTANTIATE_TYPE(Matrix2d,PREFIX); \
|
|
EIGEN_CHOLESKY_MODULE_INSTANTIATE_TYPE(Matrix3f,PREFIX); \
|
|
EIGEN_CHOLESKY_MODULE_INSTANTIATE_TYPE(Matrix3d,PREFIX); \
|
|
EIGEN_CHOLESKY_MODULE_INSTANTIATE_TYPE(Matrix4f,PREFIX); \
|
|
EIGEN_CHOLESKY_MODULE_INSTANTIATE_TYPE(Matrix4d,PREFIX); \
|
|
EIGEN_CHOLESKY_MODULE_INSTANTIATE_TYPE(MatrixXf,PREFIX); \
|
|
EIGEN_CHOLESKY_MODULE_INSTANTIATE_TYPE(MatrixXd,PREFIX); \
|
|
EIGEN_CHOLESKY_MODULE_INSTANTIATE_TYPE(MatrixXcf,PREFIX); \
|
|
EIGEN_CHOLESKY_MODULE_INSTANTIATE_TYPE(MatrixXcd,PREFIX)
|
|
|
|
#ifdef EIGEN_EXTERN_INSTANTIATIONS
|
|
|
|
namespace Eigen {
|
|
EIGEN_CHOLESKY_MODULE_INSTANTIATE(extern);
|
|
} // namespace Eigen
|
|
#endif
|
|
|
|
#endif // EIGEN_CHOLESKY_MODULE_H
|