Boost logo

Boost :

Subject: Re: [boost] Is there interest in e_float: Multiple-precision float and special functions?
From: Paul A. Bristow (pbristow_at_[hidden])
Date: 2011-06-03 14:36:46


> -----Original Message-----
> From: boost-bounces_at_[hidden] [mailto:boost-bounces_at_[hidden]] On Behalf Of
Christopher
> Kormanyos
> Sent: Wednesday, June 01, 2011 9:34 PM
> To: boost_at_[hidden]
> Subject: [boost] Is there interest in e_float: Multiple-precision float and special functions?
>
> Is there interest in my e_float library for potential inclusion in boost?
>
> e_float is a portable C++ system for multiple-precision floating-point calculations and
calculations of
> special functions. The e_float library supports 30 to 300 decimal digits of precision. It has an
extendable
> architecture featuring a uniform C++ mathematical layer which can be used with any suitably
prepared big-
> number back end such as GMP, MPFR, etc.
> The e_float system implements many high precision special functions and extends some of these to
very
> large parameter ranges not available from other systems.
> Interoperability with Microsoft's CLR, Python (via Boost.Python) and Mathematica
>
> are supported. The e_float library is well-tested and has high performance.
>
> Further details can be found in my original work published in the ACM:
> Christopher Kormanyos,
> "Algorithm 910: A Portable C++ Multiple-Precision System for Special-Function Calculations", ACM
Trans.
> Math. Soft. 37, 4, 2010, article 45.
>
> http://portal.acm.org/citation.cfm?id=1916469
>
> e_float is potentially suited for boost because:
>
> * It provides a uniform, standardization-capable interface to multiple precision
mathematics.
> * It has a sound mathematical foundation (published in the ACM).
> * It has been programmed from the ground up using modern C++ programming idioms.
> * It uses a layered architecture that hosts any number of big-number back ends.
> * It is highly portable, robust and durable.
> * It has a broad test suite developed in conjunction with code coverage analyses.
> * It is extendable. Additional functions, parameter ranges and test cases can be added.
> * It provides interfaces to very high level languages.

This looks a most impressive body of work.

More important for Boosters, it may offer a Boost-compatible floating-point package in a way that
allows a smooth transition from the C++ built-in float-point types up to arbitrary (but not infinite
or exact) precision. Although built-in types are fine of most applications, when you need a higher
precision, you need it badly - and I think Boost really, really needs this as part of its toolkit.

As John Maddock has noted, there are some potential license issues, but I am confident these can be
overcome.
(All other similar packages have Boost-unfriendly license conditions - sadly).

It comes with an extensive set of tests. (But it might be nice of these used Boost.Test - this
would help Boost's routine multiplatform testing).

To move forward, I would welcome the core e_float (with addition of reference to Boost license terms
in the program text - as normal Boost practice) to be put into the Boost Sandbox. This will allow
us to have something concrete to try out and make more informed comments on exactly what
Boostification we feel is desirable. (It will also allow us to get a definitive license statement
of agreement from ACM before we get too far in. ).

Paul

---
Paul A. Bristow,
Prizet Farmhouse, Kendal LA8 8AB  UK
+44 1539 561830  07714330204
pbristow_at_[hidden]

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