GNU MP 是用C 语言写成的一个便携式库,它可以进行整数、有理数和浮点数的任意精度算术,其目标是为所有需要不能由基本C 类型直接支持的多精度类型的应用提供可能最快的算术。
目录
1 GMP 及其安装1
1.1 介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 GMP 在UNIX 类系统下的安装. . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 GMP 在Windows 系统下的安装. . . . . . . . . . . . . . . . . . . . . . . . 2
2 GMP 基础4
2.1 头文件与库文件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 术语与类型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 函数类. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4 变量约定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.5 参数约定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.6 内存管理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.7 重入. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.8 有用的宏和常量. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.9 与其它版本的兼容. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.10 示例程序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.11 效率. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.12 其他编译链接相关内容(略) . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3 整数函数11
3.1 初始化函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2 赋值函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3 初始化赋值组合函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4 转换函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.5 算术函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.6 除法函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.7 指数函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.8 求根开方函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.9 数论函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.10 比较函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.11 逻辑和位操作函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.12 输入输出函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.13 随机数函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.14 整数引入和导出. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.15 杂类函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4 有理数函数24
4.1 初始化和赋值函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.2 转换函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.3 算术运算函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.4 比较函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
I
II 目录
4.5 应用整数函数于有理数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.6 输入输出函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5 浮点函数28
5.1 初始化函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.2 赋值函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.3 初始化赋值组合函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.4 转换函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.5 算术函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.6 比较函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.7 输入输出函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.8 杂类函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6 低级函数35
6.1 Nails . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
7 随机数函数42
7.1 随机状态初始化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
7.2 随机状态种子. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
8 格式输出44
8.1 格式字符串. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
8.2 函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
9 格式输入47
9.1 格式输入字符串. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
9.2 格式输入函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
10 用户内存分配50
11 内部结构52
11.1 整数内部结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
11.2 有理数内部结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
11.3 浮点数内部结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
11.4 Raw 输出内部结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
参考文献55