
-----Original Message----- From: boost-bounces@lists.boost.org [mailto:boost-bounces@lists.boost.org] On Behalf Of Christopher Kormanyos Sent: Wednesday, June 01, 2011 9:34 PM To: boost@lists.boost.org 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@hetp.u-net.com