## 數學及數字處理
### 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 總結