diff options
author | Andre Susano Pinto <andresusanopinto@gmail.com> | 2009-09-28 17:05:03 +0400 |
---|---|---|
committer | Andre Susano Pinto <andresusanopinto@gmail.com> | 2009-09-28 17:05:03 +0400 |
commit | 04fdec2017461bc9f85b24a74782e6049c0f2df9 (patch) | |
tree | 067534fc2edf9b9efb956798c240072defd5bfbe /extern/Eigen2/Eigen/QR | |
parent | 82198721d6996d03df5d384fde2c155e998bc56e (diff) | |
parent | 8f07d27de729dbe7a6d8a861a87cd7179f601431 (diff) |
svn merge -r 23207:23528 https://svn.blender.org/svnroot/bf-blender/trunk/blender
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 |