Re: Bignum looses precision too fast?



On Jul 23, 10:01 pm, "mensana...@xxxxxxx" <mensana...@xxxxxxx> wrote:
On Jul 23, 10:03?pm, mike3 <mike4...@xxxxxxxxx> wrote:





On Jul 23, 4:34 pm, user923005 <dcor...@xxxxxxxxx> wrote:

On Jul 23, 1:09 pm, mike3 <mike4...@xxxxxxxxx> wrote:

Hi.

I was making a program to deep zoom in fractals using bignum floating
point. But the bignum routines I wrote loose precision too fast -- for
instance one with a magnification of 10^31 with 128-bit arithmetic
does not work -- it needs 160 bits (5 dwords instead of 4 -- the
numbers are stored as strings of 32-bit dwords). Is this a hard limit,
even though 2^-128 ~ 10^-38 not 10^-31? Or am I missing something
(guard digits? rounding?)

Try it with an existing number class and see if you have the same
problem.
Assuming you can do fundamental arithemetic operations, you might look
at this stuff for the other functions:http://www.netlib.org/cephes/128bdoc.html

PS. here's a picture if this will help:

http://img507.imageshack.us/img507/3120/fractalprogramdebugtestka8.png

The left picture, done with the 128-bit mantissa (should be able
to go down to a maximum resolution of ~10^-39,

Doesn't the mantissa of your starting coordinate have 42 decimal
places?
Why would you think 128 bits would work?


It does, but rounding it down to 38 does not have an effect. And
at magnification 10^31 the remaining decimals below 10^-38 are
not going to really matter (that's ten-millionths of the
magnification!)

.