《浮点计算编程原理、实现与应用》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:刘纯根著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2008
  • ISBN:7111243830
  • 页数:302 页
图书介绍:

第1章 引论 1

1.1计算有什么用? 1

基础科学 1

应用科学 2

工程项目 3

日常生活 4

1.2超高精度计算有什么用? 5

1.3计算编程概述 9

1.4一些缩写的解释 10

第1部分 原理与实现:通用仿真库 13

第2章 代码概述 13

2.1基本内容 13

2.2使用C++? 14

C还是C++? 14

C++与通用编程 19

2.3 C++代码的设计 20

使用模板 20

操作符重载 21

选择接口函数 21

参数传递 23

返回值处理 23

计算异常与诊断信息 25

内存布局 26

2.4计算代码的测试 28

随机输入测试 28

特殊值测试 30

恒等式测试 31

2.5代码的使用 31

2.6伪码 32

第3章 通用整型运算 35

3.1基本概念 35

记数法与数制 35

整型编码 38

编码位数换算 42

3.2通用整型编码 43

数据定义 44

_TYPE的选取 45

3.3通用整型四则运算 45

加法 46

减法 48

乘法 49

除法 51

3.4优化 56

加法 57

减法 59

乘法 60

除法 63

3.5符号处理 64

原码,还是补码? 64

有符号通用整型的表示 64

符号操作 65

3.6输入输出函数 66

输入函数 66

输出函数 69

3.7代码使用 71

第4章 通用定点运算 73

4.1基本概念 73

记数法 73

误差 75

舍入 75

有效数字 78

4.2通用定点数编码 78

数据定义 78

符号处理 79

4.3四则运算 80

加法和减法 81

乘法 82

除法 83

4.4辅助操作 84

4.5代码使用:计算π 87

第5章 浮点数与IEEE浮点标准 89

5.1基本概念 89

科学记数法 89

浮点数 90

5.2 IEEE浮点数 92

格式 93

分类 96

5.3 IEEE异常 99

非法操作 99

被零除 100

上溢 101

下溢 101

不精确 102

5.4辅助函数 102

类型函数 103

符号函数 104

指数函数 105

取整函数 106

特殊值函数 108

5.5两个问题 109

是否遵循IEEE标准 109

弱规范数格式的解释 110

第6章 通用浮点运算 113

6.1数据定义 113

6.2格式处理 114

中间格式 115

BufExpand 115

BufRestore 116

6.3四则运算 119

加减法 119

乘法 122

除法 123

6.4 CsuperFloat 123

6.5代码使用:计算π 124

第7章 通用基本函数库 125

7.1算法简介 125

级数展开和迭代 125

收敛 127

精度控制 129

7.2三角函数 130

Sin 130

Cos 133

Tan 136

7.3反三角函数 136

ArcTan 136

ArcSin 139

ArcCos 139

7.4指数函数和幂函数 140

xn 140

ex 143

xy 144

? 144

7.5对数函数 145

1n 145

Logb 147

Log10 147

7.6输入输出函数 148

DataFromStr 148

DataToStr 148

7.7代码使用 149

第2部分 应用:x87 FPU编程与VC6浮点库 151

第8章 x87 FPU编程 151

8.1 x87 FPU简史 151

8.2编程环境 151

数据寄存器 152

状态寄存器 153

控制寄存器 156

其他寄存器 159

8.3 x87 FPU指令 160

指令简介 160

指令分类 160

指令使用 162

8.4代码示例 164

数组求和 164

冒泡排序 165

Sine函数表 166

第9章 编写自己的浮点库 169

9.1三角函数 169

9.2反三角函数 171

9.3对数函数 172

9.4指数函数和幂函数 172

9.5取整函数 173

将一般浮点数转换为浮点格式的整数 174

将一般浮点数转换为整型 175

9.6分类函数 176

9.7其他小函数 177

9.8封装指令 178

_Prem 1和_Prem 179

_Pow2x 179

_log2x 180

_Epsilonpln 181

_SinCos 182

_Extract 183

_RadToDeg和_DegToRad 183

第10章 如何反汇编代码 185

10.1指导思想 185

10.2反汇编基础 186

数据类型 187

变量存储 190

函数调用约定 191

寄存器使用 195

堆栈管理代码 196

10.3反汇编的过程 198

熟悉和准备相关资料 199

获取反汇编码 199

乱码 200

先易后难 200

数据推断 202

代码修饰 205

第11章 VC6浮点函数库 211

11.1 VC6浮点库简介 211

VC6浮点库文件 212

VC6浮点库对浮点格式的支持 212

VC6浮点库函数基本流程 213

11.2 x87 FPU操作函数 215

状态设置函数 215

状态函数 217

初始化或恢复 217

数据载入函数 218

11.3支持函数 219

分类函数 220

符号操作函数 224

取整函数 224

浮点数分解与合成函数 228

绝对值函数 234

11.4三角函数 235

11.5反三角函数 237

atan函数 237

asin函数 238

11.6指数函数和幂函数 240

11.7对数函数 241

11.8使用建议 243

第12章 异常处理机制 245

12.1处理机制 245

基本流程 245

核心函数 246

用户接口 253

12.2定位错误源码 255

错误定位框架 255

应用示例 259

大致过程 262

第13章 浮点编程中的常见技巧 263

13.1输入与中间结果检测 263

输入检测 263

中间结果检测 264

13.2绝对值计算 264

进行浮点比较 265

使用FABS指令 265

使用运行库函数 266

使用库函数设置符号位 266

直接设置符号 266

计算绝对值的宏 267

13.3获取数学常量 268

宏定义(硬编码)方式 268

硬件方式 268

算法方式 269

13.4避免极值 269

问题的提出 269

通过检测避免极值 270

通过附加因子避免极值 270

将表达式变形避免极值 271

13.5定步长积分循环的终止 271

自变量终止条件 272

约束条件 272

13.6相等判断 273

误差来源 273

==在浮点比较中的含义 274

相等判断 274

13.7通过参数的数据共享问题 275

13.8快速平方根和平方计算 276

附录 281

附录A x87浮点指令 281

附录B源码说明 301

参考文献 302