Merge of itasc branch. Project files, scons and cmake should be working. Makefile...
[blender.git] / extern / Eigen2 / Eigen / Cholesky
1 #ifndef EIGEN_CHOLESKY_MODULE_H
2 #define EIGEN_CHOLESKY_MODULE_H
3
4 #include "Core"
5
6 #include "src/Core/util/DisableMSVCWarnings.h"
7
8 // Note that EIGEN_HIDE_HEAVY_CODE has to be defined per module
9 #if (defined EIGEN_EXTERN_INSTANTIATIONS) && (EIGEN_EXTERN_INSTANTIATIONS>=2)
10   #ifndef EIGEN_HIDE_HEAVY_CODE
11   #define EIGEN_HIDE_HEAVY_CODE
12   #endif
13 #elif defined EIGEN_HIDE_HEAVY_CODE
14   #undef EIGEN_HIDE_HEAVY_CODE
15 #endif
16
17 namespace Eigen {
18
19 /** \defgroup Cholesky_Module Cholesky module
20   *
21   * \nonstableyet
22   *
23   * This module provides two variants of the Cholesky decomposition for selfadjoint (hermitian) matrices.
24   * Those decompositions are accessible via the following MatrixBase methods:
25   *  - MatrixBase::llt(),
26   *  - MatrixBase::ldlt()
27   *
28   * \code
29   * #include <Eigen/Cholesky>
30   * \endcode
31   */
32
33 #include "src/Array/CwiseOperators.h"
34 #include "src/Array/Functors.h"
35 #include "src/Cholesky/LLT.h"
36 #include "src/Cholesky/LDLT.h"
37
38 } // namespace Eigen
39
40 #define EIGEN_CHOLESKY_MODULE_INSTANTIATE_TYPE(MATRIXTYPE,PREFIX) \
41   PREFIX template class LLT<MATRIXTYPE>; \
42   PREFIX template class LDLT<MATRIXTYPE>
43
44 #define EIGEN_CHOLESKY_MODULE_INSTANTIATE(PREFIX) \
45   EIGEN_CHOLESKY_MODULE_INSTANTIATE_TYPE(Matrix2f,PREFIX); \
46   EIGEN_CHOLESKY_MODULE_INSTANTIATE_TYPE(Matrix2d,PREFIX); \
47   EIGEN_CHOLESKY_MODULE_INSTANTIATE_TYPE(Matrix3f,PREFIX); \
48   EIGEN_CHOLESKY_MODULE_INSTANTIATE_TYPE(Matrix3d,PREFIX); \
49   EIGEN_CHOLESKY_MODULE_INSTANTIATE_TYPE(Matrix4f,PREFIX); \
50   EIGEN_CHOLESKY_MODULE_INSTANTIATE_TYPE(Matrix4d,PREFIX); \
51   EIGEN_CHOLESKY_MODULE_INSTANTIATE_TYPE(MatrixXf,PREFIX); \
52   EIGEN_CHOLESKY_MODULE_INSTANTIATE_TYPE(MatrixXd,PREFIX); \
53   EIGEN_CHOLESKY_MODULE_INSTANTIATE_TYPE(MatrixXcf,PREFIX); \
54   EIGEN_CHOLESKY_MODULE_INSTANTIATE_TYPE(MatrixXcd,PREFIX)
55
56 #ifdef EIGEN_EXTERN_INSTANTIATIONS
57
58 namespace Eigen {
59   EIGEN_CHOLESKY_MODULE_INSTANTIATE(extern);
60 } // namespace Eigen
61 #endif
62
63 #include "src/Core/util/EnableMSVCWarnings.h"
64
65 #endif // EIGEN_CHOLESKY_MODULE_H