Boost logo

Boost :

From: John Maddock (john_at_[hidden])
Date: 2008-02-18 12:27:25


The review of Johan Rade's floating point utilities starts today.

Code and docs can be downloaded from :
http://www.boost-consulting.com/vault/index.php?action=downloadfile&filename=floating_point_utilities_v3.zip&directory=Math%20-%20Numerics&

The library consists of three parts:

1) Floating point classification routines: these are optimised
implementations of the C99 and C++ TR1 functions fpclassify, isinf, isnan,
isnormal and isfinite. From Boost-1.35 onwards these are already a part of
Boost.Math (see
http://svn.boost.org/svn/boost/trunk/libs/math/doc/sf_and_dist/html/math_toolkit/special/fpclass.html)
so if accepted the two implementations will get merged.

The review here should focus on the implementation used, and testing on
whatever platforms you have available - in particular are there any
circumstances (compiler optimisation settings etc) where this implementation
breaks?

2) Sign manipulation functions: implementations of the C99 and C++ TR1
functions copysign and signbit, plus the changesign function. Two of these
(signbit and copysign) are currently undocumented members of Boost.Math, and
again the two implementations will get merged if this library is accepted.

Again the main focus of the review here is the implementation, and testing
thereof especially in the presence of compiler optimisations.

3) C++ locale facets: these will read and write non-finite numbers in a
portable and round-trippable way: that is not otherwise possible with
current C++ std library implementations. These are particularly useful for
number-serialisation for example.

Since the design is already specified by the C++ standard for these facets,
your review here should focus on implementation, testing, documentation, and
perhaps where in Boost these should best be placed if accepted.

These look to be a useful collection of utilities, so I'll look forward to
your reviews,

Regards,

John Maddock,

Floating Point Utilities Review Manager.


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