Long-float variant giving more precision to numerical computations.
Subject: Long-float variant giving more precision to numerical computations.
From: Stavros Macrakis
Date: Wed, 6 Feb 2008 09:41:45 -0500
On Feb 6, 2008 8:38 AM, Douglas Crosher <dtc-maxima at scieneer.com> wrote:
> A variant of Maxima 5.14.0cvs is available that replaces the use of the
> Common Lisp
> 'double-float type with the 'long-float type for Maxima floating point
> numbers.
> ...However there are still a good number numerical approximations in
> Maxima that
> have not been improved and still give only 'double-float level accuracy.
>
> It is not clear to me that this is a change that should be integrated into
> the
> main source now, but the modified source code can be downloaded from:
> http://www.scieneer.com/s/product.html?code=58636
>
I'm not sure what you mean by 'integrated'. If there is a compile-time
switch that chooses between double-float and long-float to implement Maxima
float, with the default being double-float, that would be useful for
experimentation moving forward. If this is a runtime choice (some numbers
are floats, some long floats), what is the interface?
Though I admit that currently there is no documentation on the accuracy of
our mathematical functions, it seems reasonable for users to expect that
they will be close to the full precision of whatever 'float' is.
So I don't think it makes sense to make the default be long-float until all
Maxima float operations return full long-float precision, including not just
operations provided by the underlying Lisp such as sin/cos/log/exp/^ (which
presumably return full long-float precision), but also mathematical
constants such as %pi, %e, %gamma...; and mathematical functions such as
gamma, bessel_j, ... I would hope that routines such as find_root and the
like are written in a precision-independent way, but I don't know.
-s