diff options
Diffstat (limited to 'extern/Eigen2/Eigen/QR')
-rw-r--r-- | extern/Eigen2/Eigen/QR | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/extern/Eigen2/Eigen/QR b/extern/Eigen2/Eigen/QR new file mode 100644 index 00000000000..97907d1e50f --- /dev/null +++ b/extern/Eigen2/Eigen/QR @@ -0,0 +1,73 @@ +#ifndef EIGEN_QR_MODULE_H +#define EIGEN_QR_MODULE_H + +#include "Core" + +#include "src/Core/util/DisableMSVCWarnings.h" + +#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 + * + * \nonstableyet + * + * 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 + +#include "src/Core/util/EnableMSVCWarnings.h" + +#endif // EIGEN_QR_MODULE_H |