diff options
-rw-r--r-- | Eigen/Array | 4 | ||||
-rw-r--r-- | Eigen/Cholesky | 4 | ||||
-rw-r--r-- | Eigen/Core | 4 | ||||
-rw-r--r-- | Eigen/Geometry | 6 | ||||
-rw-r--r-- | Eigen/LU | 4 | ||||
-rw-r--r-- | Eigen/QR | 5 | ||||
-rw-r--r-- | Eigen/Regression | 6 | ||||
-rw-r--r-- | Eigen/SVD | 4 | ||||
-rw-r--r-- | Eigen/Sparse | 5 | ||||
-rw-r--r-- | Eigen/src/Core/util/StaticAssert.h | 16 | ||||
-rw-r--r-- | Eigen/src/Geometry/Quaternion.h | 2 |
11 files changed, 56 insertions, 4 deletions
diff --git a/Eigen/Array b/Eigen/Array index c9e6c761a..dc1cf03c0 100644 --- a/Eigen/Array +++ b/Eigen/Array @@ -3,6 +3,8 @@ #include "Core" +#include "src/Core/util/DisableMSVCWarnings.h" + namespace Eigen { /** \defgroup Array Array module @@ -32,4 +34,6 @@ namespace Eigen { } // namespace Eigen +#include "src/Core/util/EnableMSVCWarnings.h" + #endif // EIGEN_ARRAY_MODULE_H diff --git a/Eigen/Cholesky b/Eigen/Cholesky index ddde61a31..3c3ffb936 100644 --- a/Eigen/Cholesky +++ b/Eigen/Cholesky @@ -3,6 +3,8 @@ #include "Core" +#include "src/Core/util/DisableMSVCWarnings.h" + // 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 @@ -57,4 +59,6 @@ namespace Eigen { } // namespace Eigen #endif +#include "src/Core/util/EnableMSVCWarnings.h" + #endif // EIGEN_CHOLESKY_MODULE_H diff --git a/Eigen/Core b/Eigen/Core index 1ff197a28..ff22d40a8 100644 --- a/Eigen/Core +++ b/Eigen/Core @@ -2,8 +2,8 @@ #define EIGEN_CORE_H // first thing Eigen does: prevent MSVC from committing suicide +#include "src/Core/util/DisableMSVCWarnings.h" #ifdef _MSC_VER - #pragma warning( disable : 4181 4244 ) #if (_MSC_VER >= 1500) // 2008 or later // Remember that usage of defined() in a #define is undefined by the standard #ifdef _M_IX86_FP @@ -144,4 +144,6 @@ namespace Eigen { } // namespace Eigen +#include "src/Core/util/EnableMSVCWarnings.h" + #endif // EIGEN_CORE_H diff --git a/Eigen/Geometry b/Eigen/Geometry index 95a3e9bed..5a674a163 100644 --- a/Eigen/Geometry +++ b/Eigen/Geometry @@ -1,6 +1,10 @@ #ifndef EIGEN_GEOMETRY_MODULE_H #define EIGEN_GEOMETRY_MODULE_H +#include "Core" + +#include "src/Core/util/DisableMSVCWarnings.h" + #include "Array" #include <limits> @@ -39,4 +43,6 @@ namespace Eigen { } // namespace Eigen +#include "src/Core/util/EnableMSVCWarnings.h" + #endif // EIGEN_GEOMETRY_MODULE_H @@ -3,6 +3,8 @@ #include "Core" +#include "src/Core/util/DisableMSVCWarnings.h" + namespace Eigen { /** \defgroup LU_Module LU module @@ -22,4 +24,6 @@ namespace Eigen { } // namespace Eigen +#include "src/Core/util/EnableMSVCWarnings.h" + #endif // EIGEN_LU_MODULE_H @@ -2,6 +2,9 @@ #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 @@ -62,4 +65,6 @@ namespace Eigen { } // namespace Eigen +#include "src/Core/util/EnableMSVCWarnings.h" + #endif // EIGEN_QR_MODULE_H diff --git a/Eigen/Regression b/Eigen/Regression index de9e0f04a..71c16773a 100644 --- a/Eigen/Regression +++ b/Eigen/Regression @@ -1,6 +1,10 @@ #ifndef EIGEN_REGRESSION_MODULE_H #define EIGEN_REGRESSION_MODULE_H +#include "Core" + +#include "src/Core/util/DisableMSVCWarnings.h" + #include "LU" #include "QR" #include "Geometry" @@ -19,4 +23,6 @@ namespace Eigen { } // namespace Eigen +#include "src/Core/util/EnableMSVCWarnings.h" + #endif // EIGEN_REGRESSION_MODULE_H @@ -3,6 +3,8 @@ #include "Core" +#include "src/Core/util/DisableMSVCWarnings.h" + namespace Eigen { /** \defgroup SVD_Module SVD module @@ -19,4 +21,6 @@ namespace Eigen { } // namespace Eigen +#include "src/Core/util/EnableMSVCWarnings.h" + #endif // EIGEN_SVD_MODULE_H diff --git a/Eigen/Sparse b/Eigen/Sparse index b8a10c9e0..6bf263540 100644 --- a/Eigen/Sparse +++ b/Eigen/Sparse @@ -2,6 +2,9 @@ #define EIGEN_SPARSE_MODULE_H #include "Core" + +#include "src/Core/util/DisableMSVCWarnings.h" + #include <vector> #include <map> #include <cstdlib> @@ -102,4 +105,6 @@ namespace Eigen { } // namespace Eigen +#include "src/Core/util/EnableMSVCWarnings.h" + #endif // EIGEN_SPARSE_MODULE_H diff --git a/Eigen/src/Core/util/StaticAssert.h b/Eigen/src/Core/util/StaticAssert.h index 0e2a70638..2594b73f8 100644 --- a/Eigen/src/Core/util/StaticAssert.h +++ b/Eigen/src/Core/util/StaticAssert.h @@ -74,8 +74,20 @@ }; }; - #define EIGEN_STATIC_ASSERT(CONDITION,MSG) \ - if (Eigen::ei_static_assert<CONDITION ? true : false>::MSG) {} + // Specialized implementation for MSVC to avoid "conditional + // expression is constant" warnings. This implementation doesn't + // appear to work under GCC, hence the multiple implementations. + #ifdef _MSC_VER + + #define EIGEN_STATIC_ASSERT(CONDITION,MSG) \ + {Eigen::ei_static_assert<CONDITION ? true : false>::MSG;} + + #else + + #define EIGEN_STATIC_ASSERT(CONDITION,MSG) \ + if (Eigen::ei_static_assert<CONDITION ? true : false>::MSG) {} + + #endif #endif // not CXX0X diff --git a/Eigen/src/Geometry/Quaternion.h b/Eigen/src/Geometry/Quaternion.h index ec79afa25..f6630e63e 100644 --- a/Eigen/src/Geometry/Quaternion.h +++ b/Eigen/src/Geometry/Quaternion.h @@ -279,7 +279,7 @@ inline Quaternion<Scalar>& Quaternion<Scalar>::operator=(const Quaternion& other template<typename Scalar> inline Quaternion<Scalar>& Quaternion<Scalar>::operator=(const AngleAxisType& aa) { - Scalar ha = 0.5*aa.angle(); + Scalar ha = Scalar(0.5)*aa.angle(); // Scalar(0.5) to suppress precision loss warnings this->w() = ei_cos(ha); this->vec() = ei_sin(ha) * aa.axis(); return *this; |