On Mon, Feb 9, 2009 at 12:35 AM, Pauli Virtanen <pav@iki.fi> wrote:
Sun, 08 Feb 2009 20:25:37 -0800, Michael Abshoff wrote:
David Cournapeau wrote:
This is much better - I really don't see the point of using C++ for math functions. I am ok with this.
Out of curiosity: I checked the boost website and it states for the math lib:
"All the implementations are fully generic and support the use of arbitrary "real-number" types, although they are optimised for use with types with known-about significand (or mantissa) sizes: typically float, double or long double."
Since I assume some people around here are interested in arbitrary precisions and after looking some more at the documentation it seems that that library only supports this via using an NTL type which in turn uses GMP. NTL itself is GPLed, GMP is LGPL, so either one does not fit the licensing requirements of Scipy.
Yeh, arbitrary precision could be nice in principle.
But as I see it, at the moment it's out-of-scope for Scipy. Right now, we only need good implementations in double precision. These we can get for some functions for example by adapting the Boost code (and re-testing it) -- this is much less work than rewriting everything from scratch.
David mentioned to write a library from scratch and I also assume that you want arbitrary precisions. Given that GMP is LGPL, the arbitrary precisions code in OpenSSL is covered by a BSD advertising clause (which might or might not be a deal breaker around here) what do you suggest to do about arbitrary precisions? I am not aware of any BSD 2 or 3 clause license library besides mpmath :)
For the present, I'd say that we should leave the arbitrary-precision functions implemented in mpmath.
Right. For double precision I think mpmath is not so fast. Fredrik, is it difficult to make mpmath fast even for double precision? Last time I asked: http://groups.google.com/group/mpmath/browse_thread/thread/bca53c3382945c34/ you replied: " SciPy already provides a truckload of machine precision special functions, with excellent (fast and robust) implementations. It'd be hard to top that. " But apparently, maybe mpmath can be useful. Ondrej