summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/rtl/math.h8
-rw-r--r--include/rtl/math.hxx14
2 files changed, 11 insertions, 11 deletions
diff --git a/include/rtl/math.h b/include/rtl/math.h
index 41047e139d01..1217e65adb20 100644
--- a/include/rtl/math.h
+++ b/include/rtl/math.h
@@ -422,6 +422,14 @@ SAL_DLLPUBLIC double SAL_CALL rtl_math_pow10Exp(double fValue, int nExp) SAL_THR
*/
SAL_DLLPUBLIC double SAL_CALL rtl_math_approxValue(double fValue) SAL_THROW_EXTERN_C();
+/** Test equality of two values with an accuracy of the magnitude of the
+ given values scaled by 2^-48 (4 bits roundoff stripped).
+
+ @attention
+ approxEqual( value!=0.0, 0.0 ) _never_ yields true.
+ */
+SAL_DLLPUBLIC bool SAL_CALL rtl_math_approxEqual(double a, double b) SAL_THROW_EXTERN_C();
+
/** Returns more accurate e^x-1 for x near 0 than calculating directly.
expm1 is part of the C99 standard, but not provided by some compilers.
diff --git a/include/rtl/math.hxx b/include/rtl/math.hxx
index 642763dfc2d7..fed674fdd210 100644
--- a/include/rtl/math.hxx
+++ b/include/rtl/math.hxx
@@ -239,20 +239,11 @@ inline double acosh(double fValue)
return rtl_math_acosh(fValue);
}
-
-/** Test equality of two values with an accuracy of the magnitude of the
- given values scaled by 2^-48 (4 bits roundoff stripped).
-
- @attention
- approxEqual( value!=0.0, 0.0 ) _never_ yields true.
+/** A wrapper around rtl_math_approxEqual.
*/
inline bool approxEqual(double a, double b)
{
- if ( a == b )
- return true;
- double x = a - b;
- return (x < 0.0 ? -x : x)
- < ((a < 0.0 ? -a : a) * (1.0 / (16777216.0 * 16777216.0)));
+ return rtl_math_approxEqual( a, b );
}
/** Test equality of two values with an accuracy defined by nPrec
@@ -268,6 +259,7 @@ inline bool approxEqual(double a, double b, sal_Int16 nPrec)
return (x < 0.0 ? -x : x)
< ((a < 0.0 ? -a : a) * (1.0 / (pow(static_cast<double>(2.0), nPrec))));
}
+
/** Add two values.
If signs differ and the absolute values are equal according to approxEqual()