diff options
Diffstat (limited to 'Eigen/Core')
-rw-r--r-- | Eigen/Core/NumTraits.h | 4 | ||||
-rw-r--r-- | Eigen/Core/ScalarMultiple.h | 6 |
2 files changed, 8 insertions, 2 deletions
diff --git a/Eigen/Core/NumTraits.h b/Eigen/Core/NumTraits.h index 9269fbcdc..d020c60f4 100644 --- a/Eigen/Core/NumTraits.h +++ b/Eigen/Core/NumTraits.h @@ -31,6 +31,7 @@ template<typename T> struct NumTraits; template<> struct NumTraits<int> { typedef int Real; + typedef double FloatingPoint; static const bool IsComplex = false; static const bool HasFloatingPoint = false; }; @@ -38,6 +39,7 @@ template<> struct NumTraits<int> template<> struct NumTraits<float> { typedef float Real; + typedef float FloatingPoint; static const bool IsComplex = false; static const bool HasFloatingPoint = true; }; @@ -45,6 +47,7 @@ template<> struct NumTraits<float> template<> struct NumTraits<double> { typedef double Real; + typedef double FloatingPoint; static const bool IsComplex = false; static const bool HasFloatingPoint = true; }; @@ -52,6 +55,7 @@ template<> struct NumTraits<double> template<typename _Real> struct NumTraits<std::complex<_Real> > { typedef _Real Real; + typedef std::complex<_Real> FloatingPoint; static const bool IsComplex = true; static const bool HasFloatingPoint = NumTraits<Real>::HasFloatingPoint; }; diff --git a/Eigen/Core/ScalarMultiple.h b/Eigen/Core/ScalarMultiple.h index 06c6e295f..ef424f79a 100644 --- a/Eigen/Core/ScalarMultiple.h +++ b/Eigen/Core/ScalarMultiple.h @@ -76,12 +76,14 @@ operator*(FactorType scalar, \ } \ \ template<typename Scalar, typename Derived> \ -const ScalarMultiple<FactorType, Derived> \ +const ScalarMultiple<typename NumTraits<FactorType>::FloatingPoint, Derived> \ operator/(const MatrixBase<Scalar, Derived>& matrix, \ FactorType scalar) \ { \ assert(NumTraits<Scalar>::HasFloatingPoint); \ - return matrix * (static_cast<Scalar>(1) / scalar); \ + return matrix * (static_cast< \ + typename NumTraits<FactorType>::FloatingPoint \ + >(1) / scalar); \ } \ \ template<typename Scalar, typename Derived> \ |