LIBM、MATHLIB、LIBIMF迁移到KML_MATH
可替换性
接口名 |
KML接口名 |
数据类型 |
描述 |
|---|---|---|---|
sin |
sin |
double、float、long double |
正弦函数 |
cos |
cos |
double、float、long double |
余弦函数 |
sincos |
sincos |
double、float、long double |
正弦、余弦函数 |
tan |
tan |
double、float、long double |
正切函数 |
asin |
asin |
double、float |
反正弦函数 |
asind |
asind |
double、float |
反正弦函数(入参为角度) |
acos |
acos |
double、float |
反余弦函数 |
atan |
atan |
double、float |
反正切函数 |
atan2 |
atan2 |
double、float、long double |
反正切函数 |
cosd |
cosd |
double、float、long double |
余弦函数(入参为角度) |
sinh |
sinh |
double、float |
双曲正弦函数 |
cosh |
cosh |
double、float |
双曲余弦函数 |
tanh |
tanh |
double、float |
双曲正切函数 |
asinh |
asinh |
double、float |
反双曲正弦函数 |
acosh |
acosh |
double、float |
反双曲余弦函数 |
atanh |
atanh |
double、float |
反双曲正切函数 |
exp |
exp |
double、float、long double |
指数函数(base e) |
exp2 |
exp2 |
double、float |
指数函数(base 2) |
log |
log |
double、float、long double |
对数函数(base e) |
log2 |
log2 |
double、float |
对数函数(base 2) |
log10 |
log10 |
double、float |
对数函数(base 10) |
pow |
pow |
double、float、long double |
幂函数 |
sqrt |
sqrt |
double、float、long double |
平方根函数 |
cbrt |
cbrt |
double、float |
立方根函数 |
fmod |
fmod |
double、float |
浮点数求模 |
tgamma |
tgamma |
double、float |
伽马函数 |
__powr8i4 |
powr8i4 |
- |
80位扩展精度幂函数 |
高性能版本C语言迁移步骤
- 识别源码中是否包含开源基础数学库的头文件:<mathimf.h>/<math.h> /<mathlib.h>。
- 将开源头文件替换成<km.h>。
- 在编译选项中将-lm或-lmathlib替换为-lkm -lm。
- 添加环境变量,/PATH_TO_KM为安装路径。
export LD_LIBRARY_PATH=/PATH_TO_KM:$LD_LIBRARY_PATH
高精度版本C语言迁移步骤
- 识别源码中是否包含开源基础数学库的头文件:<mathimf.h>/<math.h>。
- 将开源头文件替换成<km.h> 。
- 在编译选项中将-lm -fp-model=precise替换为-lkm_l9 -lm。
- 添加环境变量,/PATH_TO_KM为安装路径。
export LD_LIBRARY_PATH=/PATH_TO_KM:$LD_LIBRARY_PATH
Fortran接口迁移步骤
Fortran接口迁移与高性能版本C语言迁移步骤一致。