aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/Core
diff options
context:
space:
mode:
Diffstat (limited to 'Eigen/Core')
-rw-r--r--Eigen/Core/NumTraits.h4
-rw-r--r--Eigen/Core/ScalarMultiple.h6
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> \