aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--Eigen/src/Core/IO.h2
-rw-r--r--Eigen/src/Core/MathFunctions.h14
2 files changed, 15 insertions, 1 deletions
diff --git a/Eigen/src/Core/IO.h b/Eigen/src/Core/IO.h
index ffb214894..22db103ed 100644
--- a/Eigen/src/Core/IO.h
+++ b/Eigen/src/Core/IO.h
@@ -132,7 +132,7 @@ struct ei_significant_decimals_impl
typedef typename NumTraits<Scalar>::Real RealScalar;
static inline int run()
{
- return (int) std::ceil(-ei_log(NumTraits<RealScalar>::epsilon())/ei_log(RealScalar(10)));
+ return ei_cast_to_int(std::ceil(-ei_log(NumTraits<RealScalar>::epsilon())/ei_log(RealScalar(10))));
}
};
diff --git a/Eigen/src/Core/MathFunctions.h b/Eigen/src/Core/MathFunctions.h
index c97a68e50..943b44cfa 100644
--- a/Eigen/src/Core/MathFunctions.h
+++ b/Eigen/src/Core/MathFunctions.h
@@ -44,6 +44,20 @@ template<typename T> inline typename NumTraits<T>::Real ei_hypot(T x, T y)
return p * ei_sqrt(T(1) + qp*qp);
}
+template<typename T> struct ei_cast_to_int_impl
+{
+ static int run(const T& x)
+ {
+ return int(x);
+ }
+};
+
+template<typename T> inline int ei_cast_to_int(const T& x)
+{
+ return ei_cast_to_int_impl<T>::run(x);
+}
+
+
/**************
*** int ***
**************/