aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/IO.h
diff options
context:
space:
mode:
Diffstat (limited to 'Eigen/src/Core/IO.h')
-rw-r--r--Eigen/src/Core/IO.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/Eigen/src/Core/IO.h b/Eigen/src/Core/IO.h
index d132064a6..8f91e272e 100644
--- a/Eigen/src/Core/IO.h
+++ b/Eigen/src/Core/IO.h
@@ -143,9 +143,16 @@ std::ostream & ei_print_matrix(std::ostream & s, const Derived& _m, const IOForm
}
else if(fmt.precision == FullPrecision)
{
- explicit_precision = NumTraits<Scalar>::HasFloatingPoint
- ? std::ceil(-ei_log(epsilon<Scalar>())/ei_log(10.0))
- : 0;
+ if (NumTraits<Scalar>::HasFloatingPoint)
+ {
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ RealScalar explicit_precision_fp = std::ceil(-ei_log(epsilon<Scalar>())/ei_log(10.0));
+ explicit_precision = static_cast<std::streamsize>(explicit_precision_fp);
+ }
+ else
+ {
+ explicit_precision = 0;
+ }
}
else
{