From: Bruno Haible <bruno@cl...> - 2004-12-21 16:04:09
> > +<para>Bignum Limits: Bignums are limited in size. Their maximum size is
> > +2097088 bits. The largest representable bignum is
> > +2<superscript>2097088</superscript>-1.</para>
> what is 2097088?
(* 32 65534).
From: Bruno Haible <bruno@cl...> - 2004-12-21 18:51:07
> bignums are stored in uint32[N] with N<= 2^16-2.
> why "-2"?
I don't understand this either. I thought it would be 2^16-1. But this is not
> why ^16 and not ^array-total-size-max
Because 1. a two-byte length field is more effcient to access than a 3-byte
length field, and 2. as explained in comp.lang.lisp, a reasonable error
message is preferrable to math operations that consume 500 MB of RAM or
10 days of time. (Think about the user who wanted to square his number 10
times but through a simple programming mistake is squaring it 30 times.)