Function Description
KML_MATH is a basic math function library implemented in the C language.
The calculation result of the high-performance version is benchmarked against the open-source math library MPFR, and the calculation result of the high-precision version is benchmarked against the x86 math library.
Function Class |
Function |
Description |
High Performance |
High Precision |
|---|---|---|---|---|
Trigonometric functions
|
sin |
Sine function |
Single-precision/double-precision real number Single-precision/double-precision complex number |
Single-precision/double-precision real number Single-precision/double-precision complex number |
cos |
Cosine function |
Single-precision/double-precision real number Single-precision/double-precision complex number |
Single-precision/double-precision real number Single-precision/double-precision complex number |
|
sincos |
Sine and cosine function |
Single-precision/double-precision real number |
None |
|
tan |
Tangent function |
Single-precision/double-precision real number Single-precision/double-precision complex number |
Single-precision/double-precision real number |
|
asin |
Arcsine function |
Single-precision/double-precision real number |
Single-precision/double-precision/long double-precision real number |
|
asind |
Arcsine function (The input parameter is an angle.) |
None |
Single-precision/double-precision real number |
|
acos |
Arccosine function |
Single-precision/double-precision real number |
Single-precision/double-precision real number |
|
atan |
Arctangent function |
Single-precision/double-precision real number |
Single-precision/double-precision real number |
|
atan2 |
Arctangent function |
Single-precision/double-precision real number |
Single-precision/double-precision/long double-precision real number |
|
atan2d |
Arctangent function (The input parameter is an angle.) |
None |
Long double-precision real number |
|
cosd |
Cosine function (The input parameter is an angle.) |
None |
Single-precision/double-precision/long double-precision real number |
|
Hyperbolic functions
|
sinh |
Hyperbolic sine function |
Single-precision/double-precision real number |
Single-precision/double-precision real number Single-precision/double-precision complex number |
cosh |
Hyperbolic cosine function |
Single-precision/double-precision real number |
Single-precision/double-precision real number Single-precision/double-precision complex number |
|
tanh |
Hyperbolic tangent function |
Single-precision/double-precision real number |
Single-precision/double-precision real number |
|
asinh |
Inverse hyperbolic sine function |
Single-precision/double-precision real number |
None |
|
acosh |
Inverse hyperbolic cosine function |
Single-precision/double-precision real number |
None |
|
atanh |
Inverse hyperbolic tangent function |
Single-precision/double-precision real number |
None |
|
Exponential and logarithmic functions
|
exp |
Exponential function (base e) |
Single-precision/double-precision real number |
Single-precision/double-precision/long double-precision real number Single-precision/double-precision complex number |
exp2 |
Exponential function (base 2) |
Single-precision/double-precision real number |
Single-precision/double-precision real number |
|
log |
Logarithmic function (base e) |
Single-precision/double-precision real number |
Single-precision/double-precision real number Double-precision complex number |
|
log2 |
Logarithmic function (base 2) |
Single-precision/double-precision real number |
None |
|
log10 |
Logarithmic function (base 10) |
Single-precision/double-precision real number |
Single-precision/double-precision real number |
|
Power and root functions |
pow |
Power function |
Single-precision/double-precision real number |
Single-precision/double-precision real number Double-precision complex number |
powr?i? |
Power function |
None |
Double-precision real number |
|
sqrt |
Square root function |
Single-precision/double-precision real number |
Single-precision/double-precision real number Single-precision/double-precision complex number |
|
cbrt |
Cubic root function |
Single-precision/double-precision real number |
Single-precision/double-precision real number |
|
Miscellaneous functions |
fmod |
Performs the modulo operation on two floating-point numbers. |
None |
Single-precision/double-precision real number |
tgamma |
Gamma function |
Single-precision real number |
Single-precision real number |
|
Special functions |
cabs |
Computes the absolute value of a complex number. |
None |
Single-precision/double-precision/long double-precision complex number |
erf |
Error function |
None |
Single-precision/double-precision real number |
|
gamma |
Computes the natural logarithm of the absolute gamma value of x. |
None |
Single-precision real number |
|
Rounding functions (nearest integer) |
ceil |
Computes the integer value rounded toward plus infinity for each vector element. |
None |
Single-precision/double-precision real number |
floor |
Computes the integer value rounded toward minus infinity for each vector element. |
None |
Single-precision/double-precision real number |
|
nearbyint |
Computes the rounded integer value in the current rounding mode for each vector element. |
None |
Single-precision/double-precision real number |
|
round |
Computes the integer value rounded to nearest for each vector element. |
None |
Single-precision/double-precision real number |
|
trunc |
Computes the integer value rounded toward zero for each vector element. |
None |
Single-precision/double-precision real number |
|
rint |
Computes the rounded integer value in the current rounding mode. |
None |
Single-precision/double-precision real number |