On Sun, Nov 30, 2008 at 9:39 AM, George Leeman
<george.leeman at sbcglobal.net>wrote:
> (%i2) log(10^309), numer;
> Maxima encountered a Lisp error:
> Error in SETQ [or a callee]: Can't print a non-number.
> ...
> Have I reached some strange boundary here? Is there a way to move the
> boundary upward (say to 10^400) instead of breaking the calculation into
> pieces?
Not a strange boundary: the boundary of IEEE double-precision floating
point, which almost all software uses for floating point. But Maxima goes
well beyond that.
For practically unlimited domain, range, and precision, use bfloat which
calculates with bigfloats instead of numer, which calculates with IEEE
floating point:
log(10^400), bfloat
XXX,bfloat or bfloat(XXX) converts the exact integer 10^400 to a bigfloat
log(10.0b0^400)
does the whole calculation with bigfloats.
For more precision, set fpprec: NNN:
fpprec:100$
log(10.0b0^400);
For that matter, you can work with very very large numbers:
2.0b0^(10^100)
(It does eventually run out of resources.)
Have fun,
-s