Oracle® Solaris Studio 12.4:数值计算指南

退出打印视图

更新时间: 2015 年 1 月
 
 

3.1.1 标准数学库

Oracle Solaris 标准数学库 libm 中包含基本数学函数以及 Oracle Solaris 操作环境所符合的各种标准所需的支持例程。

Oracle Solaris 10 OS 包括两种版本的 libmlibm.so.1libm.so.2libm.so.1 提供 Oracle Solaris 9 OS 及早期版本支持的标准所需的函数。libm.so.2 提供 Oracle Solaris 10 OS(包括 C99)支持的标准所需的函数。libm.so.1 用于提供向后兼容性,以保证在 Oracle Solaris 9 OS 及早期系统上编译和链接的程序不做改动即可继续运行。libm.so.1 中的内容在这些系统的 3M 手册页部分进行了说明。本章的剩余部分介绍了 libm.so.2。有关动态链接以及确定在运行程序时加载哪些共享对象文件的选项和环境变量的更多信息,请参见 ld(1) 和编译器手册页。

Table 3–1 列出了 libm 中的函数。 对于每个数学函数,表中只给出了函数的双精度版本名称。库中还包含函数的一个单精度版本,采用了相同的名称,后跟一个 f;以及一个扩展精度/四倍精度版本,也采用了相同的名称,后跟一个 l

表 3-1  libm 的内容
类型
函数名
代数函数
cbrtfdimfmafmaxfminhypotsqrt
初等超越函数
asinacosatanatan2asinhacoshatanh、expexp2expm1powloglog1plog10log2sincossincostansinhcoshtanh
高等超越函数
j0j1jny0y1ynerferfcgammalgammagamma_rlgamma_rtgamma
取整函数
ceilfloorllrintllroundlrintlroundmodfnearbyintrintroundtrunc
IEEE 标准推荐的函数
copysignfmodilogbnextafterremainderscalbnfabs
IEEE 分类函数
isnan
旧式浮点函数
frexpldexplogbscalbsignificand
错误处理例程(用户定义)
matherr
复数函数
cabscacoscacoshcargcasincasinhcatancatanhccosccoshcexpcimagclogconjcpowcprojcrealcsincsinhcsqrtctanctanh
C99 浮点环境函数
feclearexceptfegetenvfegetexceptflagfegetprecfegetroundfeholdexceptferaiseexceptfesetenvfesetexceptflagfesetprecfesetroundfetestexceptfeupdateenv
浮点异常处理函数
fex_getexcepthandlerfex_get_handlingfex_get_logfex_get_log_depthfex_log_entryfex_merge_flagsfex_setexcepthandlerfex_set_handlingfex_set_logfex_set_log_depth
其他 C99 函数
nannexttowardremquoscalbln

Table 3–1 的说明如下:

1. 函数 gamma_rlgamma_rgammalgamma 的可重入版本。

2. 函数 fegetprecfesetprec 只能在 x86 系统上使用。这些函数并非 C99 标准所规定的函数。

3. libm 中的超越函数的误差界限和观察误差在 libm(3LIB) 手册页中均以表格形式列出。