中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

数学库接口过滤脚本

介绍

在探究精度问题的过程中,经常发现由于数学库不同而造成的差异。鲲鹏数学库团队为此开发了精度与ICC数学库IMF兼容的数学库KML,使得KML的计算结果与IMF一致。该团队对鲲鹏数学库与IMF进行了精度模拟,结果表明目前大部分函数都可以实现精度一致。

精度函数清单(鲲鹏数学库和x86 IMF数学库已完全一致)

函数名

函数简介

abs

返回一个数的绝对值

fabs

返回一个数的绝对值

ccos

返回一个复数的余弦值

ccosf

返回一个复数的余弦值

cexp

返回一个复数的指数值

cexpf

返回一个复数的指数值

cdiv

返回两个复数的商

cdivf

返回两个复数的商

ceil

返回一个数的上限整数

ceilf

返回一个数的上限整数

exp

返回一个数的指数值

expf

返回一个数的指数值

clog

返回一个复数的自然对数

clogf

返回一个复数的自然对数

cosd

返回一个角度的余弦值

cosdf

返回一个角度的余弦值

cosl

返回一个长双精度数的余弦值

cosl_18

返回一个长双精度数的余弦值

cos

返回一个弧度的余弦值

cosf

返回一个弧度的余弦值

csin

返回一个复数的正弦值

csinf

返回一个复数的正弦值

erf

返回一个数的误差函数值

erff

返回一个数的误差函数值

expl

返回一个长双精度数的指数值

expl_18

返回一个长双精度数的指数值

floor

返回一个数的下限整数

floorf

返回一个数的下限整数

fmod

返回两个数的余数

fmodf

返回两个数的余数

frexp

返回一个数的尾数和指数

frexpf

返回一个数的尾数和指数

gammaf

返回一个数的伽马函数值

hypot

返回两个数的平方和的平方根

ldexp

返回一个数的乘方值

ldexpl

返回一个长双精度数的乘方值

log

返回一个数的自然对数

logl

返回一个长双精度数的自然对数

llrint

返回一个数的四舍五入整数

lround

返回一个数的四舍五入整数

lroundf

返回一个数的四舍五入整数

fmodf_18

返回两个数的余数

nearbyint

返回一个数的最接近整数

nearbyintf

返回一个数的最接近整数

pow

返回一个数的乘方值

powf

返回一个数的乘方值

powl

返回一个长双精度数的乘方值

powi4i4

返回一个整数的乘方值

powi4i4_18

返回一个整数的乘方值

powi8i4

返回一个长整数的乘方值

powi8i4_18

返回一个长整数的乘方值

powi8i8

返回一个长整数的乘方值

powr4i4

返回一个实数的乘方值

rint

返回一个数的最接近整数

rintf

返回一个数的最接近整数

round

返回一个数的四舍五入整数

roundf

返回一个数的四舍五入整数

sin

返回一个弧度的正弦值

sinf

返回一个弧度的正弦值

sind

返回一个角度的正弦值

sindf

返回一个角度的正弦值

sinl

返回一个长双精度数的正弦值

sinl_18

返回一个长双精度数的正弦值

sqrt

返回一个数的平方根

sqrtl

返回一个长双精度数的平方根

trunc

返回一个数的整数部分

truncf

返回一个数的整数部分

cexp

计算复数的指数函数

cexpf

计算单精度复数的指数函数

cdiv

计算两个复数的商

cdivf

计算两个单精度复数的商

cabs

计算复数的模长

cpow

计算复数的幂函数

排查方法

保存如下脚本为math-filter.sh,然后在应用的二进制目录下运行math-filter.sh xx.exe来排查应用中包含的所有数学库接口。若出现未和x86的数学库函数对标过的接口,就联系KML数学库团队进行补齐。

#!/bin/bash 
#保存为xx.sh,然后cd到二进制目录,运行xx.sh 二进制名称即可 
name=$(basename $1) 
log_name=${name}_mathlib.log 
echo $name 
echo -e "collect mathlib function...\n" >> $log_name 
LD_DEBUG=symbols,bindings ldd -r $name |& grep "$name" |grep "normal symbol" |grep "libmathlib.so" >> $log_name 
echo -e "collect bsmath function...\n" >> $log_name 
LD_DEBUG=symbols,bindings ldd -r $name |& grep "$name" |grep "normal symbol" |grep "libbsmath.so" >> $log_name 
echo -e "collect pgmath function...\n" >> $log_name 
LD_DEBUG=symbols,bindings ldd -r $name |& grep "$name" |grep "normal symbol" |grep "libpgmath.so" >> $log_name 
echo -e "collect KML function...\n" >> $log_name 
LD_DEBUG=symbols,bindings ldd -r $name |& grep "$name" |grep "normal symbol" |grep "libk" >> $log_name 
echo -e "collect sys math function...\n" >> $log_name 
LD_DEBUG=symbols,bindings ldd -r $name |& grep "$name" |grep "normal symbol" |grep "libm.so" >> $log_name 
echo -e "collect fftw function...\n" >> $log_name 
LD_DEBUG=symbols,bindings ldd -r $name |& grep "$name" |grep "normal symbol" |grep "libfftw3" >> $log_name 
echo -e "collect blas&lapack function...\n" >> $log_name 
LD_DEBUG=symbols,bindings ldd -r $name |& grep "$name" |grep "normal symbol" |grep "libopenblas" >> $log_name 
LD_DEBUG=symbols,bindings ldd -r $name |& grep "$name" |grep "normal symbol" |grep "libblas" >> $log_name 
LD_DEBUG=symbols,bindings ldd -r $name |& grep "$name" |grep "normal symbol" |grep "liblapack" >> $log_name
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词