sas*_*cha 2 c libc math.h uclibc newlib
我必须使用静态验证C源的一些(半)自动验证软件(CBMC (链接)).支持浮点,但没有所有数学函数的定义.尝试检查是否可以用它来检查数字软件.
所以我需要这些功能.我在找一些math.h没有协处理器使用的定义(例如sqrt,pow,其余部分tan; int/ float/ double).
当我在一些Linux发行版附带的libc(也许现在是eglibc)中查找它时,我总是达到一个点,其中有一些处理器内在函数意味着硬件sqrt函数.
我需要的是一个支持数学函数的库,具有以下特征:
到目前为止,我搜索了各种libc实现,特别是有关嵌入式系统的实现.我认为这些库中的大多数都是针对编译程序的可移植性和大小,但很难说它们是否使用特定于处理器的指令.
有人能给我一些关于这些数学库结构的简短介绍.他们如何调度各种版本(例如特定的协处理器)?
这些不同前缀在文件名中的含义是什么?e_sqrt.c,k_sin,s_sin?
我会很高兴听到一些图书馆这可能是对我有用.我宁愿选择一个库,但是当它有必要时,也可以寻找一些单一的函数实现并构建一个小型库.我不会使用math.h中定义的所有函数.
这个和这个 SO帖子都说Java Math Implementation是基于fdlibm的,这听起来这个库是可行的.有关这个库的更多信息的人我应该知道吗?
似乎我有很多可能性,包括以下两个:
在glibc/sysdeps/ieee754中有一个完整的IEEE-754软件实现.当您编译库时,它可能会自动替换ia64/fpu/e_acosf.S某个函数的体系结构特定版本(例如),但整个库也在软件中实现.