我必须使用一些(半自动)自动验证软件(CBMC (链接)),它是静态地工作在C源上。浮点是支持的,但没有所有的数学函数的定义。其尝试是检查,是否有可能用它来检查数字软件。
所以我需要这些功能。我正在寻找一些没有协处理器使用的math.h
定义(例如,sqrt
,pow
,RE余数,tan
;int
/float
/double
). )。
当我在一些linux发行版(可能现在是eglibc)附带的libc中查找它时,我总是达到这样的程度,例如,有一些处理器--本质意味着硬件sqrt函数。
第1部分:搜索软件实现
我需要的是一个具有以下特点的支持数学函数的图书馆:
到目前为止,我还在搜索各种libc实现,特别是关于嵌入式系统的实现。我认为这些库大多针对可移植性和编译程序的大小,但很难判断它们是否使用了特定于处理器的指令。
第2部分:理解这些实现的结构
e_sqrt.c
,k_sin
,s_sin
我很高兴听到一些可能对我有用的库。我倾向于在需要时使用库,但在必要时,也可以查找一些单一的函数实现,并构建一个小型库。我不会使用math.h中定义的所有函数。
这和这的帖子说Java实现是基于/基于fdlibm的,这听起来就是这个库的发展方向。有更多关于这个图书馆的信息吗?
看来我有很多可能性,包括以下两种:
发布于 2010-11-10 19:09:57
在glibc/sysdeps/ieee754 754中有一个完整的IEEE-754软件实现。当您编译库时,它可能会自动替代某个函数的体系结构特定版本(如ia64/fpu/e_acosf.S
),但整个库也是在软件中实现的。
https://stackoverflow.com/questions/4147972
复制相似问题