aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/IO.h
diff options
context:
space:
mode:
authorGravatar Jitse Niesen <jitse@maths.leeds.ac.uk>2010-01-26 16:02:19 +0000
committerGravatar Jitse Niesen <jitse@maths.leeds.ac.uk>2010-01-26 16:02:19 +0000
commitbdb0e9fcd03a21c2451a893424bb71955917ed07 (patch)
treeb471b98ddaf1066b39b8bd1216c52ca6248f732d /Eigen/src/Core/IO.h
parent1403cea087df98dae21408518c33a22f8d2d99d1 (diff)
Clean up one compilation error and two warnings.
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
{