diff options
-rw-r--r-- | Eigen/src/Core/IO.h | 2 | ||||
-rw-r--r-- | Eigen/src/Core/MathFunctions.h | 14 |
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 *** **************/ |