|
Boost : |
Subject: [boost] RFC: Multiprecision arithmetic library
From: John Maddock (boost.regex_at_[hidden])
Date: 2011-12-22 08:41:12
Folks,
I'd like to get some feedback on a multiprecision arithmetic library I've
been preparing for possible Boost inclusion. The code is in the sandbox
under the "big_number" directory. Docs can be viewed online here:
http://svn.boost.org/svn/boost/sandbox/big_number/libs/multiprecision/doc/html/boost_multiprecision/intro.html
The main features are:
* A generic front-end that's capable of wrapping almost any type that's a
"number". The front end is expression template enabled and handles all the
expression optimization and code reduction. For example it's possible to
evaluate a polynomial using Horner's rule without a single temporary
variable being created.
* A series of backends that need only provide a reduced interface and set of
operations, implement the actual arithmetic, currently supported backends
are:
Integer Types
~~~~~~~~~
1/ GMP (MPZ).
2/ libtommath.
Rational Types
~~~~~~~~~~
1/ GMP (MPQ).
[ But note that the integer types can also be used as template aruments to
Boost.Rational ]
Floating Point Types
~~~~~~~~~~~~~~
1/ GMP (MPF)
2/ MPFR
3/ cpp_float - an all C++ Boost-licensed backend based on Christopher
Kormanyos' e_float code.
[ Note these three types are fully compatible with Boost.Math Trunk - so you
get full standard library plus special function support ]
There's still a bunch to do, but I'd like to see what folks think, and where
the main priorities should be before submission.
Thanks in advance, John.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk