LibreOffice: rtl::math Namespace Reference

LibreOffice LibreOffice 7.3 SDK C/C++ API Reference

Loading...
Searching...
No Matches
Functions
rtl::math Namespace Reference

## Functions
rtl::OString | doubleToString (double fValue, rtl_math_StringFormat eFormat, sal_Int32 nDecPlaces, char cDecSeparator, sal_Int32 const *pGroups, char cGroupSeparator, bool bEraseTrailingDecZeros=false)
| A wrapper around rtl_math_doubleToString. More...
rtl::OString | doubleToString (double fValue, rtl_math_StringFormat eFormat, sal_Int32 nDecPlaces, char cDecSeparator, bool bEraseTrailingDecZeros=false)
| A wrapper around rtl_math_doubleToString, with no grouping. More...
void | doubleToStringBuffer (rtl::OStringBuffer &rBuffer, double fValue, rtl_math_StringFormat eFormat, sal_Int32 nDecPlaces, char cDecSeparator, sal_Int32 const *pGroups, char cGroupSeparator, bool bEraseTrailingDecZeros=false)
| A wrapper around rtl_math_doubleToString that appends to an rtl::OStringBuffer. More...
void | doubleToStringBuffer (rtl::OStringBuffer &rBuffer, double fValue, rtl_math_StringFormat eFormat, sal_Int32 nDecPlaces, char cDecSeparator, bool bEraseTrailingDecZeros=false)
| A wrapper around rtl_math_doubleToString that appends to an rtl::OStringBuffer, with no grouping. More...
rtl::OUString | doubleToUString (double fValue, rtl_math_StringFormat eFormat, sal_Int32 nDecPlaces, sal_Unicode cDecSeparator, sal_Int32 const *pGroups, sal_Unicode cGroupSeparator, bool bEraseTrailingDecZeros=false)
| A wrapper around rtl_math_doubleToUString. More...
rtl::OUString | doubleToUString (double fValue, rtl_math_StringFormat eFormat, sal_Int32 nDecPlaces, sal_Unicode cDecSeparator, bool bEraseTrailingDecZeros=false)
| A wrapper around rtl_math_doubleToUString, with no grouping. More...
void | doubleToUStringBuffer (rtl::OUStringBuffer &rBuffer, double fValue, rtl_math_StringFormat eFormat, sal_Int32 nDecPlaces, sal_Unicode cDecSeparator, sal_Int32 const *pGroups, sal_Unicode cGroupSeparator, bool bEraseTrailingDecZeros=false)
| A wrapper around rtl_math_doubleToUString that appends to an rtl::OUStringBuffer. More...
void | doubleToUStringBuffer (rtl::OUStringBuffer &rBuffer, double fValue, rtl_math_StringFormat eFormat, sal_Int32 nDecPlaces, sal_Unicode cDecSeparator, bool bEraseTrailingDecZeros=false)
| A wrapper around rtl_math_doubleToUString that appends to an rtl::OUStringBuffer, with no grouping. More...
double | stringToDouble (rtl::OString const &rString, char cDecSeparator, char cGroupSeparator, rtl_math_ConversionStatus *pStatus=NULL, sal_Int32 *pParsedEnd=NULL)
| A wrapper around rtl_math_stringToDouble. More...
double | stringToDouble (rtl::OUString const &rString, sal_Unicode cDecSeparator, sal_Unicode cGroupSeparator, rtl_math_ConversionStatus *pStatus=NULL, sal_Int32 *pParsedEnd=NULL)
| A wrapper around rtl_math_uStringToDouble. More...
double | round (double fValue, int nDecPlaces=0, rtl_math_RoundingMode eMode=rtl_math_RoundingMode_Corrected)
| A wrapper around rtl_math_round. More...
double | pow10Exp (double fValue, int nExp)
| A wrapper around rtl_math_pow10Exp. More...
double | approxValue (double fValue)
| A wrapper around rtl_math_approxValue. More...
double | expm1 (double fValue)
| A wrapper around rtl_math_expm1. More...
double | log1p (double fValue)
| A wrapper around rtl_math_log1p. More...
double | atanh (double fValue)
| A wrapper around rtl_math_atanh. More...
double | erf (double fValue)
| A wrapper around rtl_math_erf. More...
double | erfc (double fValue)
| A wrapper around rtl_math_erfc. More...
double | asinh (double fValue)
| A wrapper around rtl_math_asinh. More...
double | acosh (double fValue)
| A wrapper around rtl_math_acosh. More...
bool | approxEqual (double a, double b)
| A wrapper around rtl_math_approxEqual. More...
bool | approxEqual (double a, double b, sal_Int16 nPrec)
| Test equality of two values with an accuracy defined by nPrec. More...
double | approxAdd (double a, double b)
| Add two values. More...
double | approxSub (double a, double b)
| Subtract two values (a-b). More...
double | approxFloor (double a)
| floor() method taking approxValue() into account. More...
double | approxCeil (double a)
| ceil() method taking approxValue() into account. More...
bool | isFinite (double d)
| Tests whether a value is neither INF nor NAN. More...
bool | isInf (double d)
| If a value represents +INF or -INF. More...
bool | isNan (double d)
| Test on any QNAN or SNAN. More...
bool | isSignBitSet (double d)
| If the sign bit is set. More...
void | setInf (double *pd, bool bNegative)
| Set to +INF if bNegative==false or -INF if bNegative==true. More...
void | setNan (double *pd)
| Set a QNAN. More...
bool | isValidArcArg (double d)
| If a value is a valid argument for sin(), cos(), tan(). More...
double | sin (double d)
| Safe sin(), returns NAN if not valid. More...
double | cos (double d)
| Safe cos(), returns NAN if not valid. More...
double | tan (double d)
| Safe tan(), returns NAN if not valid. More...

## Function Documentation

## ◆ acosh()

double rtl::math::acosh | ( | double | fValue | ) |
| inline

A wrapper around rtl_math_acosh.

## ◆ approxAdd()

double rtl::math::approxAdd | ( | double | a,
|  | double | b
| ) |  |
| inline

Add two values.

If signs differ and the absolute values are equal according to approxEqual() the method returns 0.0 instead of calculating the sum.

If you wanted to sum up multiple values it would be convenient not to call approxAdd() for each value but instead remember the first value not equal to 0.0, add all other values using normal + operator, and with the result and the remembered value call approxAdd().

## ◆ approxCeil()

double rtl::math::approxCeil | ( | double | a | ) |
| inline

ceil() method taking approxValue() into account.

Use for expected integer values being calculated by double functions.

## ◆ approxEqual() [1/2]

bool rtl::math::approxEqual | ( | double | a,
|  | double | b
| ) |  |
| inline

A wrapper around rtl_math_approxEqual.

## ◆ approxEqual() [2/2]

bool rtl::math::approxEqual | ( | double | a,
|  | double | b,
|  | sal_Int16 | nPrec
| ) |  |
| inline

Test equality of two values with an accuracy defined by nPrec.

Attention
  approxEqual( value!=0.0, 0.0 ) never yields true.

## ◆ approxFloor()

double rtl::math::approxFloor | ( | double | a | ) |
| inline

floor() method taking approxValue() into account.

Use for expected integer values being calculated by double functions.

## ◆ approxSub()

double rtl::math::approxSub | ( | double | a,
|  | double | b
| ) |  |
| inline

Subtract two values (a-b).

If signs are identical and the values are equal according to approxEqual() the method returns 0.0 instead of calculating the subtraction.

## ◆ approxValue()

double rtl::math::approxValue | ( | double | fValue | ) |
| inline

A wrapper around rtl_math_approxValue.

## ◆ asinh()

double rtl::math::asinh | ( | double | fValue | ) |
| inline

A wrapper around rtl_math_asinh.

## ◆ atanh()

double rtl::math::atanh | ( | double | fValue | ) |
| inline

A wrapper around rtl_math_atanh.

## ◆ cos()

double rtl::math::cos | ( | double | d | ) |
| inline

Safe cos(), returns NAN if not valid.

## ◆ doubleToString() [1/2]

rtl::OString rtl::math::doubleToString | ( | double | fValue,
|  | rtl_math_StringFormat | eFormat,
|  | sal_Int32 | nDecPlaces,
|  | char | cDecSeparator,
|  | bool | bEraseTrailingDecZeros = `false`
| ) |  |
| inline

A wrapper around rtl_math_doubleToString, with no grouping.

## ◆ doubleToString() [2/2]

rtl::OString rtl::math::doubleToString | ( | double | fValue,
|  | rtl_math_StringFormat | eFormat,
|  | sal_Int32 | nDecPlaces,
|  | char | cDecSeparator,
|  | sal_Int32 const * | pGroups,
|  | char | cGroupSeparator,
|  | bool | bEraseTrailingDecZeros = `false`
| ) |  |
| inline

A wrapper around rtl_math_doubleToString.

## ◆ doubleToStringBuffer() [1/2]

void rtl::math::doubleToStringBuffer | ( | rtl::OStringBuffer & | rBuffer,
|  | double | fValue,
|  | rtl_math_StringFormat | eFormat,
|  | sal_Int32 | nDecPlaces,
|  | char | cDecSeparator,
|  | bool | bEraseTrailingDecZeros = `false`
| ) |  |
| inline

A wrapper around rtl_math_doubleToString that appends to an rtl::OStringBuffer, with no grouping.

Since
  LibreOffice 5.4

## ◆ doubleToStringBuffer() [2/2]

void rtl::math::doubleToStringBuffer | ( | rtl::OStringBuffer & | rBuffer,
|  | double | fValue,
|  | rtl_math_StringFormat | eFormat,
|  | sal_Int32 | nDecPlaces,
|  | char | cDecSeparator,
|  | sal_Int32 const * | pGroups,
|  | char | cGroupSeparator,
|  | bool | bEraseTrailingDecZeros = `false`
| ) |  |
| inline

A wrapper around rtl_math_doubleToString that appends to an rtl::OStringBuffer.

Since
  LibreOffice 5.4

## ◆ doubleToUString() [1/2]

rtl::OUString rtl::math::doubleToUString | ( | double | fValue,
|  | rtl_math_StringFormat | eFormat,
|  | sal_Int32 | nDecPlaces,
|  | sal_Unicode | cDecSeparator,
|  | bool | bEraseTrailingDecZeros = `false`
| ) |  |
| inline

A wrapper around rtl_math_doubleToUString, with no grouping.

## ◆ doubleToUString() [2/2]

rtl::OUString rtl::math::doubleToUString | ( | double | fValue,
|  | rtl_math_StringFormat | eFormat,
|  | sal_Int32 | nDecPlaces,
|  | sal_Unicode | cDecSeparator,
|  | sal_Int32 const * | pGroups,
|  | sal_Unicode | cGroupSeparator,
|  | bool | bEraseTrailingDecZeros = `false`
| ) |  |
| inline

A wrapper around rtl_math_doubleToUString.

## ◆ doubleToUStringBuffer() [1/2]

void rtl::math::doubleToUStringBuffer | ( | rtl::OUStringBuffer & | rBuffer,
|  | double | fValue,
|  | rtl_math_StringFormat | eFormat,
|  | sal_Int32 | nDecPlaces,
|  | sal_Unicode | cDecSeparator,
|  | bool | bEraseTrailingDecZeros = `false`
| ) |  |
| inline

A wrapper around rtl_math_doubleToUString that appends to an rtl::OUStringBuffer, with no grouping.

## ◆ doubleToUStringBuffer() [2/2]

void rtl::math::doubleToUStringBuffer | ( | rtl::OUStringBuffer & | rBuffer,
|  | double | fValue,
|  | rtl_math_StringFormat | eFormat,
|  | sal_Int32 | nDecPlaces,
|  | sal_Unicode | cDecSeparator,
|  | sal_Int32 const * | pGroups,
|  | sal_Unicode | cGroupSeparator,
|  | bool | bEraseTrailingDecZeros = `false`
| ) |  |
| inline

A wrapper around rtl_math_doubleToUString that appends to an rtl::OUStringBuffer.

## ◆ erf()

double rtl::math::erf | ( | double | fValue | ) |
| inline

A wrapper around rtl_math_erf.

## ◆ erfc()

double rtl::math::erfc | ( | double | fValue | ) |
| inline

A wrapper around rtl_math_erfc.

## ◆ expm1()

double rtl::math::expm1 | ( | double | fValue | ) |
| inline

A wrapper around rtl_math_expm1.

## ◆ isFinite()

bool rtl::math::isFinite | ( | double | d | ) |
| inline

Tests whether a value is neither INF nor NAN.

## ◆ isInf()

bool rtl::math::isInf | ( | double | d | ) |
| inline

If a value represents +INF or -INF.

The sign bit may be queried with isSignBitSet().

If isFinite(d)==false and isInf(d)==false then NAN.

## ◆ isNan()

bool rtl::math::isNan | ( | double | d | ) |
| inline

Test on any QNAN or SNAN.

## ◆ isSignBitSet()

bool rtl::math::isSignBitSet | ( | double | d | ) |
| inline

If the sign bit is set.

## ◆ isValidArcArg()

bool rtl::math::isValidArcArg | ( | double | d | ) |
| inline

If a value is a valid argument for sin(), cos(), tan().

IEEE 754 specifies that absolute values up to 2^64 (=1.844e19) for the radian must be supported by trigonometric functions. Unfortunately, at least on x86 architectures, the FPU doesn't generate an error pattern for values >2^64 but produces erroneous results instead and sets only the "invalid operation" (IM) flag in the status word :-( Thus the application has to handle it itself.

## ◆ log1p()

double rtl::math::log1p | ( | double | fValue | ) |
| inline

A wrapper around rtl_math_log1p.

## ◆ pow10Exp()

double rtl::math::pow10Exp | ( | double | fValue,
|  | int | nExp
| ) |  |
| inline

A wrapper around rtl_math_pow10Exp.

## ◆ round()

double rtl::math::round | ( | double | fValue,
|  | int | nDecPlaces = `0`,
|  | rtl_math_RoundingMode | eMode = `rtl_math_RoundingMode_Corrected`
| ) |  |
| inline

A wrapper around rtl_math_round.

## ◆ setInf()

void rtl::math::setInf | ( | double * | pd,
|  | bool | bNegative
| ) |  |
| inline

Set to +INF if bNegative==false or -INF if bNegative==true.

## ◆ setNan()

void rtl::math::setNan | ( | double * | pd | ) |
| inline

Set a QNAN.

## ◆ sin()

double rtl::math::sin | ( | double | d | ) |
| inline

Safe sin(), returns NAN if not valid.

## ◆ stringToDouble() [1/2]

double rtl::math::stringToDouble | ( | rtl::OString const & | rString,
|  | char | cDecSeparator,
|  | char | cGroupSeparator,
|  | rtl_math_ConversionStatus * | pStatus = `NULL`,
|  | sal_Int32 * | pParsedEnd = `NULL`
| ) |  |
| inline

A wrapper around rtl_math_stringToDouble.

## ◆ stringToDouble() [2/2]

double rtl::math::stringToDouble | ( | rtl::OUString const & | rString,
|  | sal_Unicode | cDecSeparator,
|  | sal_Unicode | cGroupSeparator,
|  | rtl_math_ConversionStatus * | pStatus = `NULL`,
|  | sal_Int32 * | pParsedEnd = `NULL`
| ) |  |
| inline

A wrapper around rtl_math_uStringToDouble.

## ◆ tan()

double rtl::math::tan | ( | double | d | ) |
| inline

Safe tan(), returns NAN if not valid.