Boost logo

Boost :

Subject: [boost] [review] Multiprecision review scheduled for June 8th - 17th, 2012
From: Jeffrey Lee Hellrung, Jr. (jeffrey.hellrung_at_[hidden])
Date: 2012-05-29 17:08:55

Hi all,

The review of the proposed Boost.Multiprecision library authored by John
Maddock and Christopher Kormanyos has been scheduled for

June 8th - June 17th, 2012

and will be managed by myself.

>From the Introduction:

"The Multiprecision Library provides *User-defined* integer, rational and
floating-point C++ types which try to emulate as closely as practicable the
C++ built-in types, but provide for more range and precision. Depending
upon the number type, precision may be arbitrarily large (limited only by
available memory), fixed at compile time values, for example 50 decimal
digits, or a variable controlled at run-time by member functions. The types
are expression-template-enabled for better performance than naive
user-defined types."

And from the original formal review request from John:


* Expression template enabled front end.
* Support for Integer, Rational and Floating Point types.

Supported Integer backends:

* GMP.
* Libtommath.
* cpp_int.

cpp_int is an all C++ Boost licensed backend, supports both arbitrary
precision types (with Allocator support), and signed and unsigned fixed
precision types (with no memory allocation).

There are also some integer specific functions - for Miller Rabin testing,
bit fiddling, random numbers. Plus interoperability with Boost.Rational
(though that loses the expression template frontend).

Supported Rational Backends:

* libtommath
* cpp_int (as above)

Supported Floating point backends:

* cpp_dec_float

cpp_dec_float is an all C++ Boost licensed type, adapted from Christopher
Kormanyos' e_float code (published in TOMS last year).

All the floating point types, have full std lib support (cos sin exp, pow
etc), as well as full interoperability with Boost.Math.

There's nothing in principal to prevent extension to complex numbers and
interval arithmetic types (plus any other number types I've forgotten!),
but I've run out of energy for now ;-)

Code is in the sandbox under /big_number/.

Docs can be viewed online here:

I hope everyone interested can reserve some time to read through the
documentation, try the code out, and post a formal review, either during
the formal review window or before.

I expect to conduct the review in the "traditional" manner, i.e., entirely
within the regular boost developers' mailing list (boost_at_[hidden]).
I will send a reminder of review process details closer to the review


- Jeff

Boost list run by bdawes at, gregod at, cpdaniel at, john at