mirror of
https://gitlab.com/libeigen/eigen.git
synced 2024-12-21 07:19:46 +08:00
9466e5f94e
- 33 new snippets - unfuck doxygen output in Cwise (issues with function macros) - more see-also links from outside, making Cwise more discoverable * rename matrixNorm() to operatorNorm(). There are many matrix norms (the L2 is another one) but only one is called the operator norm. Risk of confusion with keyword operator is not too scary after all.
66 lines
2.1 KiB
Plaintext
66 lines
2.1 KiB
Plaintext
#ifndef EIGEN_QR_MODULE_H
|
|
#define EIGEN_QR_MODULE_H
|
|
|
|
#include "Core"
|
|
#include "Cholesky"
|
|
|
|
// 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 QR_Module QR module
|
|
* This module mainly provides QR decomposition and an eigen value solver.
|
|
* This module also provides some MatrixBase methods, including:
|
|
* - MatrixBase::qr(),
|
|
* - MatrixBase::eigenvalues(),
|
|
* - MatrixBase::operatorNorm()
|
|
*
|
|
* \code
|
|
* #include <Eigen/QR>
|
|
* \endcode
|
|
*/
|
|
|
|
#include "src/QR/QR.h"
|
|
#include "src/QR/Tridiagonalization.h"
|
|
#include "src/QR/EigenSolver.h"
|
|
#include "src/QR/SelfAdjointEigenSolver.h"
|
|
#include "src/QR/HessenbergDecomposition.h"
|
|
|
|
// declare all classes for a given matrix type
|
|
#define EIGEN_QR_MODULE_INSTANTIATE_TYPE(MATRIXTYPE,PREFIX) \
|
|
PREFIX template class QR<MATRIXTYPE>; \
|
|
PREFIX template class Tridiagonalization<MATRIXTYPE>; \
|
|
PREFIX template class HessenbergDecomposition<MATRIXTYPE>; \
|
|
PREFIX template class SelfAdjointEigenSolver<MATRIXTYPE>
|
|
|
|
// removed because it does not support complex yet
|
|
// PREFIX template class EigenSolver<MATRIXTYPE>
|
|
|
|
// declare all class for all types
|
|
#define EIGEN_QR_MODULE_INSTANTIATE(PREFIX) \
|
|
EIGEN_QR_MODULE_INSTANTIATE_TYPE(Matrix2f,PREFIX); \
|
|
EIGEN_QR_MODULE_INSTANTIATE_TYPE(Matrix2d,PREFIX); \
|
|
EIGEN_QR_MODULE_INSTANTIATE_TYPE(Matrix3f,PREFIX); \
|
|
EIGEN_QR_MODULE_INSTANTIATE_TYPE(Matrix3d,PREFIX); \
|
|
EIGEN_QR_MODULE_INSTANTIATE_TYPE(Matrix4f,PREFIX); \
|
|
EIGEN_QR_MODULE_INSTANTIATE_TYPE(Matrix4d,PREFIX); \
|
|
EIGEN_QR_MODULE_INSTANTIATE_TYPE(MatrixXf,PREFIX); \
|
|
EIGEN_QR_MODULE_INSTANTIATE_TYPE(MatrixXd,PREFIX); \
|
|
EIGEN_QR_MODULE_INSTANTIATE_TYPE(MatrixXcf,PREFIX); \
|
|
EIGEN_QR_MODULE_INSTANTIATE_TYPE(MatrixXcd,PREFIX)
|
|
|
|
#ifdef EIGEN_EXTERN_INSTANTIATIONS
|
|
EIGEN_QR_MODULE_INSTANTIATE(extern);
|
|
#endif // EIGEN_EXTERN_INSTANTIATIONS
|
|
|
|
} // namespace Eigen
|
|
|
|
#endif // EIGEN_QR_MODULE_H
|