Math and Numerics


Boost.Integer

This library provides useful functionality for integer types, such as compile-time constants for the minimum and maximum values,[3] suitably sized types based on the number of required bits, static binary logarithm calculations, and more. Also included are typedefs from the 1999 C Standard header <stdint.h>.

[3] std::numeric_limits only provide these as functions.

The authors of Integer are Beman Dawes and Daryle Walker.

Boost.Interval

The Interval library helps when working with mathematical intervals. It provides arithmetic operators for the class template interval. A common use case for working with intervals (besides the obvious case of computations including intervals) is when computations provide inexact results; intervals make it possible to quantify the propagation of rounding errors.

The authors of Interval are Guillaume Melquiond, Sylvain Pion, and Hervé Brönniman, and the library is inspired by previous work from Jens Maurer.

Boost.Math

Math is a collection of mathematics templates: quaternions and octonions (generalizations of complex numbers); numerical functions such as acosh, asinh, and sinhc; functionality for calculating the greatest common divisor (GCD) and least common multiple (LCM); and more.

The authors of Math are Hubert Holin, Daryle Walker, and Eric Ford.

Boost.Minmax

Minmax simultaneously computes the minimum and maximum values, rather than requiring two comparisons when using std::min and std::max. For a range of n elements, only 3n/2+1 comparisons are performed, rather than the 2n required when using std::min_element and std::max_element.

The author of Minmax is Hervé Brönniman.

Boost.Numeric Conversion

The Numeric Conversion library is a collection of tools used to perform safe and predictable conversions between values of different numeric types. For example, there is a tool called numeric_cast (originally from Boost.Conversion), which performs range-checked conversions and ensures that the value can be represented in the destination type; otherwise, it throws an exception.

The author of Numeric Conversion is Fernando Cacciola.

Boost.Operators

The Operators library provides implementations of related operators and concepts (LessThanComparable, Arithmetic, and so on). When defining operators for a type, it is both tedious and error prone to add all of the operators that should be defined. For example, when providing operator< (LessThanComparable), operator<=, operator>, and operator>= should also be defined in most cases. Operators automatically declare and define all relevant operators in terms of a minimum set of user-defined operators for a given type. There is detailed coverage of the library in "Library 4: Operators 4."

The authors of Operators are David Abrahams, Jeremy Siek, Aleksey Gurtovoy, Beman Dawes, and Daryle Walker.

Boost.Random

This is a library for professional use of random numbers, including a number of generators and distributions that are commonly used in a wide variety of domains such as simulation and security. Random has been accepted for the upcoming Library Technical Report.

The author of Random is Jens Maurer.

Boost.Rational

Integer types and floating-point types are built into the C++ language, and complex numbers are part of the C++ Standard Library, but what about rational numbers? Rational numbers avoid the problems with loss of precision in floating-point types, so their use in tracking money, for example, is popular. Rational provides rational numbers built atop any integral type, including user-defined types (where a type with unlimited precision is obviously the most useful).

The author of Rational is Paul Moore.

Boost.uBLAS

The uBLAS library provides basic linear algebra operations on vectors and matrices using mathematical notation, via operator overloading, with efficient code generation (using expression templates).

The authors of uBLAS are Joerg Walter and Mathias Koch.



    Beyond the C++ Standard Library(c) An Introduction to Boost
    Beyond the C++ Standard Library: An Introduction to Boost
    ISBN: 0321133544
    EAN: 2147483647
    Year: 2006
    Pages: 125

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net