
Module: ppl/ppl Branch: floating_point Commit: d8e7d618dd4a429e1f9b80aacf5c4477d9f5aca3 URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=d8e7d618dd4a4...
Author: Fabio Bossi bossi@cs.unipr.it Date: Tue Sep 22 15:54:49 2009 +0200
Added missing static casts so that tests now pass again.
---
src/Floating_Point_Expression.defs.hh | 2 +- src/Floating_Point_Expression.templates.hh | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/Floating_Point_Expression.defs.hh b/src/Floating_Point_Expression.defs.hh index f0cd9c5..effb30d 100644 --- a/src/Floating_Point_Expression.defs.hh +++ b/src/Floating_Point_Expression.defs.hh @@ -193,7 +193,7 @@ typename Floating_Point_Expression<FP_Interval_Type, FP_Format>::boundary_type Floating_Point_Expression<FP_Interval_Type, FP_Format>::absolute_error = std::max(static_cast<typename Floating_Point_Expression<FP_Interval_Type, FP_Format>::boundary_type> - (pow(2, 1 - FP_Format::EXPONENT_BIAS - FP_Format::MANTISSA_BITS)), + (pow(2, static_cast<typename Floating_Point_Expression<FP_Interval_Type, FP_Format>::boundary_type>(1) - FP_Format::EXPONENT_BIAS - FP_Format::MANTISSA_BITS)), std::numeric_limits<typename Floating_Point_Expression<FP_Interval_Type, FP_Format> ::boundary_type>::denorm_min()); diff --git a/src/Floating_Point_Expression.templates.hh b/src/Floating_Point_Expression.templates.hh index 17e796d..0343bff 100644 --- a/src/Floating_Point_Expression.templates.hh +++ b/src/Floating_Point_Expression.templates.hh @@ -35,10 +35,9 @@ Floating_Point_Expression<FP_Interval_Type, FP_Format> ::relative_error(const FP_Linear_Form& lf, FP_Linear_Form& result) { /* FIXME: here we assume that boundary_type can represent (2)^(-FP_Format::MANTISSA_BITS) precisely. */ - FP_Interval_Type error_propagator(-pow(2, -FP_Format::MANTISSA_BITS)); + FP_Interval_Type error_propagator(-pow(2, -static_cast<typename Floating_Point_Expression<FP_Interval_Type, FP_Format>::boundary_type>(FP_Format::MANTISSA_BITS))); // FIXME: this may be incorrect for some policies. - error_propagator.join_assign(FP_Interval_Type( - pow(2, -FP_Format::MANTISSA_BITS))); + error_propagator.join_assign(FP_Interval_Type(pow(2, -static_cast<typename Floating_Point_Expression<FP_Interval_Type, FP_Format>::boundary_type>(FP_Format::MANTISSA_BITS))));
// Handle the inhomogeneous term. const FP_Interval_Type* current_term = &lf.inhomogeneous_term();