## 数学及数字处理
### Boost.Integer
这个库提供了对整数类型的有用功能,如编译期的最小、最大值常数\[3\], 基于给定位长的合适大小的类型,静态二进制对数计算等等。还包括从1999年C标准头文件`<stdint.h>`中的`typedef`。
> \[3\] `std::numeric_limits` 仅能以函数方式提供这些值。
Integer 的作者是 Beman Dawes 和 Daryle Walker.
### Boost.Interval
Interval库帮助你使用数学区间。它提供类模板`interval`及相关算子。区间的常见用法(除了明显的进行区间计算的情况)是提供模糊结果的计算;区间的使用可以量化舍入误差的传播情况。
Interval 的作者是 Guillaume Melquiond, Sylvain Pion, 和 Hervé Brönniman, 该库从 Jens Maurer的前期工作获得灵感。
### Boost.Math
Math是一组数学模板:`quaternion`s 和 `octonion`s (复数的特化);数学函数如`acosh`, `asinh`, 和 `sinhc`;计算最大公约数(GCD)和最小公倍数(LCM)的函数等等。
Math 的作者是 Hubert Holin, Daryle Walker, 和 Eric Ford.
### Boost.Minmax
Minmax可以同时计算最小和最大值,而使用`std::min` 和 `std::max`则要两次比较。对于`n`个元素的情况,只要`3n/2+1`次比较,而使用`std::min_element` 和 `std::max_element`则需要`2n`次比较。
Minmax 的作者是 Hervé Brönniman.
### Boost.Numeric Conversion
Numeric Conversion库是一组用于在不同数字类型的值之间进行安全及可预言的转换的工具。例如,有一个名为`numeric_cast` (最早来自于Boost.Conversion)的工具,提供了范围检测的转换以确定数值可被目标类型所表示,否则它会抛出异常。
Numeric Conversion 的作者是 Fernando Cacciola.
### Boost.Operators
Operators库提供了相关操作符及概念(LessThanComparable, Arithmetic,等等)的实现。定义一个类型的操作符时,保证所有操作符都有定义是一件乏味并容易出错的工作。例如,你提供了`operator<` (LessThanComparable),通常都要同时提供`operator<=`, `operator>`, 和 `operator>=` 。Operators可以根据给定类型的最小的用户自定义操作符集合,自动声明并定义其它所有的相关操作符。详细讨论见"[Library 4](../Text/content.html#ch04): [Operators 4](../Text/content.html#ch04)."
Operators 的作者是 David Abrahams, Jeremy Siek, Aleksey Gurtovoy, Beman Dawes, 和 Daryle Walker.
### Boost.Random
这是一个对随机数的专业使用的库,包括大量的生成器和分配器,可适用于多个不同的领域,如仿真和加密。Random已被收入即将发布的Library Technical Report.
Random 的作者是 Jens Maurer.
### Boost.Rational
整数类型和浮点数类型都内建成于C++语言,复数类型也是C++标准库的一部分,但有理数类型呢?有 理数可以避免浮点数的精度损失问题,因此它们常被用于计算金钱等。Rational提供的有理数类型可以基于任意整数类型,包括用户自定义的整数类型(具 有无限精度的类型显然是很有用的).
Rational 的作者是 Paul Moore.
### Boost.uBLAS
uBLAS库使用数学符号提供对向量和矩阵的基本线性代数操作,采用操作符重载,它可以生成紧凑的代码(使用表达式模板)。
uBLAS 的作者是 Joerg Walter 和 Mathias Koch.
- 序
- 前言
- Acknowledgments
- 关于作者
- 本书的组织结构
- Boost的介绍
- 字符串及文本处理
- 数 据结构, 容器, 迭代器, 和算法
- 函数对象及高级编程
- 泛 型编程与模板元编程
- 数学及数字处理
- 输入/输出
- 杂项
- Part I: 通用库
- Library 1. Smart_ptr
- Smart_ptr库如何改进你的程序?
- 何时我们需要智能指针?
- Smart_ptr如何适应标准库?
- scoped_ptr
- scoped_array
- shared_ptr
- shared_array
- intrusive_ptr
- weak_ptr
- Smart_ptr总结
- Library 2. Conversion
- Conversion 库如何改进你的程序?
- polymorphic_cast
- polymorphic_downcast
- numeric_cast
- lexical_cast
- Conversion 总结
- Library 3. Utility
- Utility 库如何改进你的程序?
- BOOST_STATIC_ASSERT
- checked_delete
- noncopyable
- addressof
- enable_if
- Utility 总结
- Library 4. Operators
- Operators库如何改进你的程序?
- Operators
- 用法
- Operators 总结
- Library 5. Regex
- Regex库如何改进你的程序?
- Regex 如何适用于标准库?
- Regex
- 用法
- Regex 总结
- Part II: 容器及数据结构
- Library 6. Any
- Any 库如何改进你的程序?
- Any 如何适用于标准库?
- Any
- 用法
- Any 总结
- Library 7. Variant
- Variant 库如何改进你的程序?
- Variant 如何适用于标准库?
- Variant
- 用法
- Variant 总结
- Library 8. Tuple
- Tuple 库如何改进你的程序?
- Tuple 库如何适用于标准库?
- Tuple
- 用法
- Tuple 总结
- Part III: 函数对象与高级编程
- Library 9. Bind
- Bind 库如何改进你的程序?
- Bind 如何适用于标准库?
- Bind
- 用法
- Bind 总结
- Library 10. Lambda
- Lambda 库如何改进你的程序?
- Lambda 如何适用于标准库?
- Lambda
- 用法
- Lambda 总结
- Library 11. Function
- Function 库如何改进你的程序?
- Function 如何适用于标准库?
- Function
- 用 法
- Function 总结
- Library 12. Signals
- Signals 库如何改进你的程序?
- Signals 如何适用于标准库?
- Signals
- 用法
- Signals 总结