[Maxima] floating point exponents

Robert Dodier robert.dodier at gmail.com
Sun Sep 12 14:32:01 CDT 2010


On 9/11/10, Mahdiyar Noorbala <noorbala at stanford.edu> wrote:

> (%i1) log(1b-308),numer;
> log: log(0) has been generated.
>  -- an error. To debug this try: debugmode(true);

numer changes bigfloats to ordinary floats.
1b-308 is less than the smallest ordinary float,
so it's converted to zero.
If you want a bigfloat result, omit numer from the example above.

> (%i2) find_root(log(x)=-300,x,1b-308,1);
> (%o2) find_root(log(x)=-300,x,0.0,1.0)

> (%i3) find_root(x^2=1b100,x,0,1b105);
> Maxima encountered a Lisp error:
>
> *: floating point overflow

find_root only works with ordinary floats, not bigfloats.
find_root tries to convert any other kind of number to ordinary floats.

Most of the numerical functions for Maxima work only with ordinary
floats. There are bigfloat versions of some of them. ?? bf
at the input prompt finds them (and some other stuff).

> (%i4) sqrt(1b-1000000);
> (%o4) 1.0b-500000

I don't understand what is there error here.

best,

Robert Dodier


More information about the Maxima mailing list