From f2315daf701847a180a5759039b4951fb4da0653 Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Thu, 16 Sep 2021 11:59:08 +0200 Subject: Revert "speedup rational_FromDouble" This reverts commit 67d83e40e2c4f3862c50e6abeabfc24a75119fc8. because it causes less accuracy sometimes, eg. see https://gerrit.libreoffice.org/c/core/+/122186 Change-Id: I06eb4921359a8fe6689c6cfd3e2967e25b646fa3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122124 Tested-by: Jenkins Reviewed-by: Noel Grandin --- tools/source/generic/fract.cxx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'tools/source') diff --git a/tools/source/generic/fract.cxx b/tools/source/generic/fract.cxx index 57dd4e79c138..1b3c95a6cdda 100644 --- a/tools/source/generic/fract.cxx +++ b/tools/source/generic/fract.cxx @@ -370,8 +370,8 @@ bool operator > ( const Fraction& rVal1, const Fraction& rVal2 ) } // If dVal > LONG_MAX or dVal < LONG_MIN, the rational throws a boost::bad_rational. -// Otherwise, dVal and denominator are multiplied by 8, until one of them -// is larger than (LONG_MAX / 8). +// Otherwise, dVal and denominator are multiplied by 10, until one of them +// is larger than (LONG_MAX / 10). // // NOTE: here we use 'sal_Int32' due that only values in sal_Int32 range are valid. static boost::rational rational_FromDouble(double dVal) @@ -381,11 +381,11 @@ static boost::rational rational_FromDouble(double dVal) std::isnan(dVal) ) throw boost::bad_rational(); - const sal_Int32 nMAX = std::numeric_limits::max() / 8; + const sal_Int32 nMAX = std::numeric_limits::max() / 10; sal_Int32 nDen = 1; while ( std::abs( dVal ) < nMAX && nDen < nMAX ) { - dVal *= 8; - nDen *= 8; + dVal *= 10; + nDen *= 10; } return boost::rational( sal_Int32(dVal), nDen ); } -- cgit