表 表2-1 IEEE格式和语言类型3 表2-2 EEE单精度格式位模式表示的值3 表2-3 单精度存储格式位模式及其1EEE值4 表2-4 IEEE双精度格式位模式表示的值5 表2-5 双精度存储格式位模式及其IEEE值的位模式6 表2-6 位模式表示的值(SPARC)8 表2-7 双精度扩展格式位模式(SPARC)8 表2-8 位模式表示的值(x86)10 表2-9 双精度扩展格式位模式及其值(x86)11 表2-10 存储格式的范围和精度14 表211 下溢阈值16 表2-12 四种不同精度的ulp(1)18 表2-13 可表示的单精度浮点数之间的差距19 表3-1 1ibm的内容2 表3-2 1 ibmvec的内容3 表33 1 ibsunmath的内容4 表3-4 调用单、双和扩展/四倍精度函数7 表35 ieee functions(3m)8 表3-6 ieee sun(3m)8 表3-7 从Fortran中调用ieee functions 9
xi 表 表 2-1 IEEE 格式和语言类型 3 表 2-2 IEEE 单精度格式位模式表示的值 3 表 2-3 单精度存储格式位模式及其 IEEE 值 4 表 2-4 IEEE 双精度格式位模式表示的值 5 表 2-5 双精度存储格式位模式及其 IEEE 值的位模式 6 表 2-6 位模式表示的值 (SPARC) 8 表 2-7 双精度扩展格式位模式 (SPARC) 8 表 2-8 位模式表示的值 (x86) 10 表 2-9 双精度扩展格式位模式及其值 (x86) 11 表 2-10 存储格式的范围和精度 14 表 2-11 下溢阈值 16 表 2-12 四种不同精度的 ulp(1) 18 表 2-13 可表示的单精度浮点数之间的差距 19 表 3-1 libm 的内容 2 表 3-2 libmvec 的内容 3 表 3-3 libsunmath 的内容 4 表 3-4 调用单、双和扩展 / 四倍精度函数 7 表 3-5 ieee_functions(3m) 8 表 3-6 ieee_sun(3m) 8 表 3-7 从 Fortran 中调用 ieee_functions 9
表3-8 从Fortran中调用ieee sun 9 表3-9 1EEE值:单精度10 表3-10 1EEE值:双精度10 表3-11 IEEE值:四倍精度(SPARC)11 表3-12 IEEE值:双扩展精度(x86)11 表3-13 ieee_f1ags的参数值12 表3-14 ieee_f1ags舍入方向的输入值13 表3-15 C99标准异常标记函数16 表3-16 1ibm浮点环境函数17 表3-17 单值随机数生成器的区间20 表4-1 IEEE浮点异常2 表4-2 无序比较3 表4-3 异常位5 表4-4 算术异常的类型17 表4-5 fex set handling的异常代码20 表A-1 -些调试命令(SPARC)45 表A-2 一些调试命令(x86)46 表B-1 SPARC浮点选项2 表B-2 浮点状态寄存器字段5 表B-3 异常处理字段5 表D-1 1EEE754格式参数15 表D-2 IEEE754特殊值18 表D-3 产生NaN的运算19 表D-4 1EEE754*中的异常24 表E-1 特例和1ibm函数2 表E-2 Solaris与C99/SUSv3的区别5 表E3 LA-1遵循性-表示法7 xi《数值计算指南》·2005年11月
xii 《数值计算指南》 • 2005 年 11 月 表 3-8 从 Fortran 中调用 ieee_sun 9 表 3-9 IEEE 值:单精度 10 表 3-10 IEEE 值:双精度 10 表 3-11 IEEE 值:四倍精度 (SPARC) 11 表 3-12 IEEE 值:双扩展精度 (x86) 11 表 3-13 ieee_flags 的参数值 12 表 3-14 ieee_flags 舍入方向的输入值 13 表 3-15 C99 标准异常标记函数 16 表 3-16 libm 浮点环境函数 17 表 3-17 单值随机数生成器的区间 20 表 4-1 IEEE 浮点异常 2 表 4-2 无序比较 3 表 4-3 异常位 5 表 4-4 算术异常的类型 17 表 4-5 fex_set_handling 的异常代码 20 表 A-1 一些调试命令 (SPARC) 45 表 A-2 一些调试命令 (x86) 46 表 B-1 SPARC 浮点选项 2 表 B-2 浮点状态寄存器字段 5 表 B-3 异常处理字段 5 表 D-1 IEEE 754 格式参数 15 表 D-2 IEEE 754 特殊值 18 表 D-3 产生 NaN 的运算 19 表 D-4 IEEE 754* 中的异常 24 表 E-1 特例和 libm 函数 2 表 E-2 Solaris 与 C99/SUSv3 的区别 5 表 E-3 LIA-1 遵循性 - 表示法 7
阅读本书之前 和x86 系统上的软件和 硬件所支持的 主要是随Sun语言产品提供的参考手册。 本手册中介绍了一些用于二进制浮点算法的EEE标准的内容。要了解EEE算法,请参 见18页的“标准”。有关EEE算法的简要参考书目,请参见附录F。 本书面向的读者 人 ,应该熟悉所使用的编程语言(Fortran、C等)、 山x(源码级调试器)以及操作系 本书的结构 第1章介绍浮点环境。 第2章介绍EEE算法模型、EEE格式和下溢。 第3章介绍了SunTM Studio编译器所提供的数学库, 第4章介绍异常并说明如何检测、查找和处理它们. 附录A包含示例程序。 附录B介绍基于SPARC工作站的浮点硬件选项
xiii 阅读本书之前 本手册介绍运行 Solaris™ 操作系统 (Solaris OS) 的基于 SPARC® 和 x86 系统上的软件和 硬件所支持的浮点环境。本手册介绍了 SPARC 和 Intel 体系结构的一些基本内容,但它 主要是随 Sun™ 语言产品提供的参考手册。 本手册中介绍了一些用于二进制浮点算法的 IEEE 标准的内容。要了解 IEEE 算法,请参 见 18 页的 “标准”。有关 IEEE 算法的简要参考书目,请参见附录 F。 本书面向的读者 本手册适用于开发、维护、移植数学的和科学的应用程序或基准的人员。在使用本手册之 前,应该熟悉所使用的编程语言 (Fortran、 C 等)、 dbx (源码级调试器)以及操作系 统命令和概念。 本书的结构 第 1 章介绍浮点环境。 第 2 章介绍 IEEE 算法模型、 IEEE 格式和下溢。 第 3 章 介绍了 Sun™ Studio 编译器所提供的数学库。 第 4 章介绍异常并说明如何检测、查找和处理它们。 附录 A 包含示例程序。 附录 B 介绍基于 SPARC 工作站的浮点硬件选项
附录C列出与ntel系统中所使用的浮点单元有关的x86和SPARC兼容性问题。 附录D是David Goldberg编写的浮点算法教程的编辑重印。 附录E介绍标准遵循性。 附录F包含一个参考资料和相关文档的列表。 术语表包含术语的定义。 本手册中的示例是使用C和Fortran编写的,但这些概念适用于基于SPARC或x86的 系统上的编译器。 印刷约定 表P-1 字体约定 字体 含义 示例 AaBbCc123 编辑.login文件。 使用1s-a列出所有文件。 You have mail. AaBbCc123 用户键入的内容,与计算机屏幕输出号8u 的显示不同。 Password: AaBbCc123 变量。 新词术语强调 新词或术语以及要强调的词。 您必须成为超级用户才能执行此操作, 《书名》 书名 阅读《用户指南》的第6章。 ·测览器的设置可能会与这些设置不同。 xv《数值计算指南》·2005年11月
xiv 《数值计算指南》 • 2005 年 11 月 附录 C 列出与 Intel 系统中所使用的浮点单元有关的 x86 和 SPARC 兼容性问题。 附录 D 是 David Goldberg 编写的浮点算法教程的编辑重印。 附录 E 介绍标准遵循性。 附录 F 包含一个参考资料和相关文档的列表。 术语表 包含术语的定义。 本手册中的示例是使用 C 和 Fortran 编写的,但这些概念适用于基于 SPARC 或 x86 的 系统上的编译器。 印刷约定 表 P-1 字体约定 字体* * 浏览器的设置可能会与这些设置不同。 含义 示例 AaBbCc123 命令、文件和目录的名称;计算机屏 幕输出。 编辑 .login 文件。 使用 ls -a 列出所有文件。 % You have mail. AaBbCc123 用户键入的内容,与计算机屏幕输出 的显示不同。 % su Password: AaBbCc123 保留未译的新词或术语以及要强调 的词。要使用实名或值替换的命令行 变量。 这些称为 class 选项。 要删除文件,请键入 rm filename。 新词术语强调 新词或术语以及要强调的词。 您必须成为超级用户才能执行此操作。 《书名》 书名 阅读 《用户指南》的第 6 章
表P-2 代码约定 代码符号含义 表示法 代码示例 方括号中包含可选参数。 o[n] -04,-0 号中包合所项的适a问 -dy B(dynamiclstatic) -Bstatic 器威分号有时用于 -R/local/libs:/U/a 省略号表示一系列的省略。 -xinline-fl[,...fi] -xinline-alpha,dos Shell提示符 Shell 提示特 Cshell nachine-iaie号 C shell超级用户 machine-name# Bourne shell Korn shell Bourne shell和Korn shell的超级用户 支持的平台 此Sun Studio发行版本支持使用SPARC⑧和x86系列处理器体系结构(UltraSPARC, SPARC64、AMD64、Pentium和Xeon EM64T)的系统。通过访间 amin/hc1中的硬件兼容性列表,可以了解您在使用的 品作系统版本的受特累跳这些文档列出了实现各个平台类型的所有差别 在本文档中,这些与x86有关的术语具有以下含义: ■“x86”是指较大的64位和32位x86兼容产品系列。 ■“x64”表示有关AMD64或EM64T系统的特定64位信息 ■“32位x86”表示有关基于x86的系统的特定32位信息。 阅读本书之前x
阅读本书之前 xv Shell 提示符 支持的平台 此 Sun Studio 发行版本支持使用 SPARC® 和 x86 系列处理器体系结构(UltraSPARC®、 SPARC64、 AMD64、 Pentium 和 Xeon EM64T)的系统。通过访问 http://www.sun.com/bigadmin/hcl 中的硬件兼容性列表,可以了解您在使用的 Solaris 操作系统版本的支持系统。这些文档列出了实现各个平台类型的所有差别。 在本文档中,这些与 x86 有关的术语具有以下含义: ■ “x86” 是指较大的 64 位和 32 位 x86 兼容产品系列。 ■ “x64” 表示有关 AMD64 或 EM64T 系统的特定 64 位信息。 ■ “32 位 x86”表示有关基于 x86 的系统的特定 32 位信息。 表 P-2 代码约定 代码符号 含义 表示法 代码示例 [ ] 方括号中包含可选参数。 O[n] -O4, -O { } 花括号中包含所需选项的选项 集合。 d{y|n} -dy | 分隔变量的 “|” 或 “-” 符号, 只能选择其一。 B{dynamic|static} -Bstatic : 与逗号一样,分号有时可用于 分隔参数。 Rdir[:dir] -R/local/libs:/U/a … 省略号表示一系列的省略。 -xinline=f1[,…fn] -xinline=alpha,dos Shell 提示符 C shell machine-name% C shell 超级用户 machine-name# Bourne shell 和 Korn shell $ Bourne shell 和 Korn shell 的超级用户 #