On Wed, Apr 11, 2007 at 06:10:43PM -0400, Stavros Macrakis wrote:
> On 4/11/07, Richard Fateman <fateman at cs.berkeley.edu> wrote:
> >
> >People, myself included, find rational fractions harder to grasp. E.g. 1.4
> >is easier on the eye than 7/5, or especially
> >70000000000000001/50000000000000001
Agreed. Furthermore if I enter 1.4 I EXPECT it to be converted to a
IEEE float.
> Unless you really want that exact rational, the intuitive way to represent
> that number might be
>
> 7/5 - 8*10^-18 + a smidgen
>
> or 7/5 + 2/250000000000000005 <<< how many zeroes was that?
>
> or 7/5 - 2/(10^18/4+5)
>
> or 7/5 - 8/(10^18 + 20) <<< this is what I translate the above
> to....
>
> Those are surely closer to how we want to think about that number in many
> cases....
Those are good ideas for a system which wants to be PURELY
symbolic. However, I think it does a SERIOUS disservice to modify
maxima so that it by default doesn't take advantage of hardware
floats. IEEE floating point is exactly what serious users of maxima
expect from 1.3^2 or whatever, and they expect it to be fast.
It is hugely advantageous to have a mixed symbolic / numeric system,
since it allows you to express computations that would be complicated
to code or understand in a purely numerical system, but still allows
relatively fast computations of purely numerical results. I can't
imagine how much slower and difficult to understand the results of a
multidimensional newton's iteration would be in pure rational
arithmetic, even with a nice display system such as your proposal.
Serious users of Maxima know and expect binary floating point when
they ask for it.
Perhaps what we need to contemplate is a set of "modes". For example
the maxima startup could say:
Welcome to maxima: Maxima is capable of many types of computations. To
help select default settings type "askdefaultmodes();"
Then "askdefaultmodes();" would ask you to select something like:
1) Pure symbolic mathematics
2) Mixed symbolic / numerical math with rational numbers and big floats
3) Applied math and engineering with floating point and symbolic mix
4) Undergraduate level student
5) Grade school student
When you select one, it would then tell you what settings that
involved such as:
3 ...
setting defaults:
fpprintprec:6;
keepfloat:true;
find_root_abs:0.0
find_root_rel:0.0
numer:false;
etc
--
Daniel Lakeland
dlakelan at street-artists.org
http://www.street-artists.org/~dlakelan