LibreOffice
LibreOffice 5.3 SDK C/C++ API Reference
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
math.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #ifndef INCLUDED_RTL_MATH_H
21 #define INCLUDED_RTL_MATH_H
22 
23 #include <sal/config.h>
24 
25 #include <rtl/ustring.h>
26 #include <sal/saldllapi.h>
27 #include <sal/types.h>
28 
29 #if defined __cplusplus
30 extern "C" {
31 #endif /* __cplusplus */
32 
37 {
41 
45 
50 
55 
60 
65 
70 
75 
77  rtl_math_StringFormat_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
79 };
80 
84 {
88 
92 
94  rtl_math_ConversionStatus_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
96 };
97 
101 {
105 
109 
113 
117 
121 
125 
129 
133 
135  rtl_math_RoundingMode_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
137 };
138 
143 {
147 
153 };
154 
155 
220 SAL_DLLPUBLIC void SAL_CALL rtl_math_doubleToString(rtl_String ** pResult,
221  sal_Int32 * pResultCapacity,
222  sal_Int32 nResultOffset, double fValue,
223  enum rtl_math_StringFormat eFormat,
224  sal_Int32 nDecPlaces,
225  sal_Char cDecSeparator,
226  sal_Int32 const * pGroups,
227  sal_Char cGroupSeparator,
228  sal_Bool bEraseTrailingDecZeros)
230 
295 SAL_DLLPUBLIC void SAL_CALL rtl_math_doubleToUString(rtl_uString ** pResult,
296  sal_Int32 * pResultCapacity,
297  sal_Int32 nResultOffset, double fValue,
298  enum rtl_math_StringFormat eFormat,
299  sal_Int32 nDecPlaces,
300  sal_Unicode cDecSeparator,
301  sal_Int32 const * pGroups,
302  sal_Unicode cGroupSeparator,
303  sal_Bool bEraseTrailingDecZeros)
305 
341 SAL_DLLPUBLIC double SAL_CALL rtl_math_stringToDouble(
342  sal_Char const * pBegin, sal_Char const * pEnd, sal_Char cDecSeparator,
343  sal_Char cGroupSeparator, enum rtl_math_ConversionStatus * pStatus,
344  sal_Char const ** pParsedEnd) SAL_THROW_EXTERN_C();
345 
382  sal_Unicode const * pBegin, sal_Unicode const * pEnd,
383  sal_Unicode cDecSeparator, sal_Unicode cGroupSeparator,
384  enum rtl_math_ConversionStatus * pStatus, sal_Unicode const ** pParsedEnd)
386 
400 SAL_DLLPUBLIC double SAL_CALL rtl_math_round(double fValue, int nDecPlaces,
401  enum rtl_math_RoundingMode eMode)
403 
416 SAL_DLLPUBLIC double SAL_CALL rtl_math_pow10Exp(double fValue, int nExp) SAL_THROW_EXTERN_C();
417 
423 SAL_DLLPUBLIC double SAL_CALL rtl_math_approxValue(double fValue) SAL_THROW_EXTERN_C();
424 
431 SAL_DLLPUBLIC bool SAL_CALL rtl_math_approxEqual(double a, double b) SAL_THROW_EXTERN_C();
432 
440 SAL_DLLPUBLIC double SAL_CALL rtl_math_expm1(double fValue) SAL_THROW_EXTERN_C();
441 
449 SAL_DLLPUBLIC double SAL_CALL rtl_math_log1p(double fValue) SAL_THROW_EXTERN_C();
450 
459 SAL_DLLPUBLIC double SAL_CALL rtl_math_atanh(double fValue) SAL_THROW_EXTERN_C();
460 
468 SAL_DLLPUBLIC double SAL_CALL rtl_math_erf(double fValue) SAL_THROW_EXTERN_C();
469 
477 SAL_DLLPUBLIC double SAL_CALL rtl_math_erfc(double fValue) SAL_THROW_EXTERN_C();
478 
486 SAL_DLLPUBLIC double SAL_CALL rtl_math_asinh(double fValue) SAL_THROW_EXTERN_C();
487 
495 SAL_DLLPUBLIC double SAL_CALL rtl_math_acosh(double fValue) SAL_THROW_EXTERN_C();
496 
497 #if defined __cplusplus
498 }
499 #endif /* __cplusplus */
500 
501 #endif /* INCLUDED_RTL_MATH_H */
502 
503 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
#define SAL_DLLPUBLIC
Definition: saldllapi.h:30
SAL_DLLPUBLIC bool rtl_math_approxEqual(double a, double b) SAL_THROW_EXTERN_C()
Test equality of two values with an accuracy of the magnitude of the given values scaled by 2^-48 (4 ...
char sal_Char
A legacy synonym for char.
Definition: types.h:130
SAL_DLLPUBLIC double rtl_math_erf(double fValue) SAL_THROW_EXTERN_C()
Returns values of the Errorfunction erf.
Frac &lt;= 0.5 ? floor of abs : ceil of abs, signed return.
Definition: math.h:124
Ceil of signed value.
Definition: math.h:120
IEEE rounding mode (statistical).
Definition: math.h:132
Conversion was successful.
Definition: math.h:87
Same &#39;G&#39;, but with only 2 minimum digits in exponent.
Definition: math.h:74
SAL_DLLPUBLIC double rtl_math_atanh(double fValue) SAL_THROW_EXTERN_C()
Returns more accurate atanh(x) for x near 0 than calculating 0.5*log((1+x)/(1-x)).
#define SAL_MAX_ENUM
Definition: types.h:242
SAL_DLLPUBLIC double rtl_math_erfc(double fValue) SAL_THROW_EXTERN_C()
Returns values of the complement Errorfunction erfc.
Conversion caused overflow or underflow.
Definition: math.h:91
SAL_DLLPUBLIC double rtl_math_approxValue(double fValue) SAL_THROW_EXTERN_C()
Rounds value to 15 significant decimal digits.
unsigned char sal_Bool
Definition: types.h:48
Like sprintf() E.
Definition: math.h:40
Floor of absolute value, signed return (commercial).
Definition: math.h:108
SAL_DLLPUBLIC double rtl_math_expm1(double fValue) SAL_THROW_EXTERN_C()
Returns more accurate e^x-1 for x near 0 than calculating directly.
SAL_DLLPUBLIC double rtl_math_log1p(double fValue) SAL_THROW_EXTERN_C()
Returns more accurate log(1+x) for x near 0 than calculating directly.
rtl_math_StringFormat
Formatting modes for rtl_math_doubleToString and rtl_math_doubleToUString and rtl_math_doubleToUStrin...
Definition: math.h:36
rtl_math_ConversionStatus
Status for rtl_math_stringToDouble and rtl_math_uStringToDouble.
Definition: math.h:83
Frac &lt; 0.5 ? floor of abs : ceil of abs, signed return (mathematical).
Definition: math.h:128
SAL_DLLPUBLIC double rtl_math_acosh(double fValue) SAL_THROW_EXTERN_C()
Returns values of the inverse hyperbolic cosine.
sal_uInt16 sal_Unicode
Definition: types.h:155
SAL_DLLPUBLIC double rtl_math_uStringToDouble(sal_Unicode const *pBegin, sal_Unicode const *pEnd, sal_Unicode cDecSeparator, sal_Unicode cGroupSeparator, enum rtl_math_ConversionStatus *pStatus, sal_Unicode const **pParsedEnd) SAL_THROW_EXTERN_C()
Conversion analogous to strtod(), convert a string representing a decimal number into a double value...
Same &#39;E&#39;, but with only 1 minimum digits in exponent.
Definition: math.h:59
Like sprintf() f.
Definition: math.h:44
Same &#39;E&#39;, but with only 2 minimum digits in exponent.
Definition: math.h:64
SAL_DLLPUBLIC double rtl_math_pow10Exp(double fValue, int nExp) SAL_THROW_EXTERN_C()
Scales fVal to a power of 10 without calling pow() or div() for nExp values between -16 and +16...
SAL_DLLPUBLIC double rtl_math_stringToDouble(sal_Char const *pBegin, sal_Char const *pEnd, sal_Char cDecSeparator, sal_Char cGroupSeparator, enum rtl_math_ConversionStatus *pStatus, sal_Char const **pParsedEnd) SAL_THROW_EXTERN_C()
Conversion analogous to strtod(), convert a string representing a decimal number into a double value...
SAL_DLLPUBLIC void rtl_math_doubleToString(rtl_String **pResult, sal_Int32 *pResultCapacity, sal_Int32 nResultOffset, double fValue, enum rtl_math_StringFormat eFormat, sal_Int32 nDecPlaces, sal_Char cDecSeparator, sal_Int32 const *pGroups, sal_Char cGroupSeparator, sal_Bool bEraseTrailingDecZeros) SAL_THROW_EXTERN_C()
Conversions analogous to sprintf() using internal rounding.
Value to be used with rtl_math_StringFormat_Automatic.
Definition: math.h:146
SAL_DLLPUBLIC double rtl_math_asinh(double fValue) SAL_THROW_EXTERN_C()
Returns values of the inverse hyperbolic sine.
SAL_DLLPUBLIC double rtl_math_round(double fValue, int nDecPlaces, enum rtl_math_RoundingMode eMode) SAL_THROW_EXTERN_C()
Rounds a double value.
Same &#39;G&#39;, but with only 1 minimum digits in exponent.
Definition: math.h:69
Automatic, &#39;F&#39; or &#39;E&#39; format is used depending on the numeric value to be formatted.
Definition: math.h:54
Like sprintf() G, &#39;F&#39; or &#39;E&#39; format is used depending on which one is more compact.
Definition: math.h:49
Like HalfUp, but corrects roundoff errors, preferred.
Definition: math.h:104
SAL_DLLPUBLIC void rtl_math_doubleToUString(rtl_uString **pResult, sal_Int32 *pResultCapacity, sal_Int32 nResultOffset, double fValue, enum rtl_math_StringFormat eFormat, sal_Int32 nDecPlaces, sal_Unicode cDecSeparator, sal_Int32 const *pGroups, sal_Unicode cGroupSeparator, sal_Bool bEraseTrailingDecZeros) SAL_THROW_EXTERN_C()
Conversions analogous to sprintf() using internal rounding.
Floor of signed value.
Definition: math.h:116
#define SAL_THROW_EXTERN_C()
Nothrow specification for C functions.
Definition: types.h:370
Value to be used with rtl_math_StringFormat_G.
Definition: math.h:152
Ceil of absolute value, signed return (commercial).
Definition: math.h:112
rtl_math_RoundingMode
Rounding modes for rtl_math_round.
Definition: math.h:100
rtl_math_DecimalPlaces
Special decimal places constants for rtl_math_doubleToString and rtl_math_doubleToUString and rtl_mat...
Definition: math.h:142