This library contains mathematical tools. The library uses and complements the Boost.Math library.

Parts of this library are

*Log-float*A class that represents numbers by their logarithms, so that (when used on top of floating-point numbers), they provide a large dynamic range. There is a class that can represent only non-negative values, and one that adds a sign bit.*Magma*A magma is a set that has a binary operation that returns a value in the set. For example, the set of real numbers with the times operation is a magma. This can be extended to semirings and groups and whatnots. This sublibrary makes it possible to turn any class into a magma, and provides a number of predefined ones. For example, standard floating-point number types, and*Log-float*, are defined as magmas.*Alphabet*A class that represents a finite collection of symbols. Internally, small objects (like ints) are used to tell the symbols apart. There can be normal (run-time) symbols, and special (compile-time) symbols.