Boost logo

Boost :

Subject: Re: [boost] [Review Request] Multiprecision Arithmetic Library
From: Jeffrey Lee Hellrung, Jr. (jeffrey.hellrung_at_[hidden])
Date: 2012-04-03 09:15:58


On Sun, Apr 1, 2012 at 8:55 AM, John Maddock <boost.regex_at_[hidden]> wrote:

> Folks,
>
> I'd like to ask for a formal review of the Multiprecision Arithmetic
> Library, currently in the sandbox.
>
> Features:
>
> * 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:
>
> * GMP
> * libtommath
> * cpp_int (as above)
>
> Supported Floating point backends:
>
> * GMP
> * MPFR
> * 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: http://svn.boost.org/svn/**
> boost/sandbox/big_number/libs/**multiprecision/doc/html/index.**html<http://svn.boost.org/svn/boost/sandbox/big_number/libs/multiprecision/doc/html/index.html>
>
> And of course, I'm looking for a review manager ;-)
>
> Many thanks, John.

I will have to take a look at it this week, sounds great!

My initial question/request pertains to putting this library within the
context of past attempts at getting an extended precision arithmetic
library into Boost. I'm specifically thinking of Chad Nelson's XInt library
reviewed approximately a year ago [1]. I'm wondering what, if any,
influence the XInt library and the XInt review process/result had on your
design decisions for MAL. I also hope that if issues similar to those
brought up during the XInt review also apply to MAL that you'll be prepared
to address them.

That said, I'm pretty confident you've done your homework :)

- Jeff

[1] http://lists.boost.org/boost-announce/2011/04/0305.php


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk