Boost logo

Boost :

Subject: [boost] [multiprecision] OK to merge to Trunk?
From: John Maddock (boost.regex_at_[hidden])
Date: 2012-11-13 12:53:26


Folks,

Unless there are any objections, I'd like to merge the multiprecision
library to SVN Trunk pretty soon.

Here are the main changes since the review, which have mostly concentrated
on the interface changes:

* Non-expression template operators further optimized with rvalue reference
support.
* Many functions made `constexp`.
* Differentiate between explicit and implicit conversions in the number
constructor.
* Removed "mp_" prefix from types.
* Allowed mixed precision arithmetic.
* Changed ExpressionTemplates parameter to class `number` to use enumerated
values rather than true/false.
* Changed ExpressionTemplate parameter default value to use a traits class
so that the default value depends on the backend used.
* Added support for fused-multiply-add/subtract with GMP support.
* Tweaked expression template unpacking to use fewer temporaries when the
LHS also appears in the RHS.
* Refactored `cpp_int_backend` based on review comments with new template
parameter structure.
* Added additional template parameter to `mpfr_float_backend` to allow
stack-based allocation.
* Added section on mixed precision arithmetic, and added support for
operations yielding a higher precision result
than either of the arguments.
* Added overloads of integer-specific functions for built in integer types.

Things requested in review, but not yet done:

* We can reuse temporaries in multiple subtrees (temporary caching). Low
priority for now.
* cpp_dec_float should round to nearest. Chris currently has no time for
this, and it's really hard to do *right*.
* A 2's complement fixed precision int that uses exactly N bits and no more.
Refactoring of cpp_int should make this easier to add as an option in
future.

There are also documentation updates pending (mostly relating to the new
improved performance results), and more tests I want to add/run, bit
basically I need to get things widely tested to move forward now.

Release schedule wise, I think it'll be hard to get things ready for the
next release, but the release after that really should be on the cards.

So basically now is the last chance for folks to complain before the
interface gets ossified ;-)

As ever current code is in the sandbox under /big_number/ and docs can be
viewed online here:
http://svn.boost.org/svn/boost/sandbox/big_number/libs/multiprecision/doc/html/index.html

Regards, John.


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