separator bar
FractInt heading title image.
separator bar

Arbitrary Precision and Deep Zooming

The normal zoom limit of FractInt is approximately 10^15 (10 to the fifteenth power).   This limit is due to the precision possible with the computer representation of numbers as 64 bit double precision data.   To give you an idea of just how big a magnification 10^15 is, consider this.   At the scale of your computer screen while displaying a tiny part of the Mandelbrot set at the deepest possible zoom, the entire Mandelbrot set would be many millions of miles wide, as big as the orbit of Jupiter.

Big as this zoom magnification is, your PC can do better using something called arbitrary precision math.   Instead of using 64 bit double precision to represent numbers, your computer software allocates as much memory as needed to create a data type supporting as many decimals of precision as you want.

Incorporation of this feature in FractInt was inspired by Jay Hill and his DEEPZOOM program which uses the shareware MFLOAT programming library.   Several of the Stone Soup programmers noticed Jay's posts in the Internet sci.fractals newsgroup and began to investigate adding arbitrary precision to FractInt.   High school math and physics teacher Wes Loewer wrote an arbitrary precision library in both 80x86 assembler and C, and the Stone Soup team incorporated Wes's library into FractInt.   Initially, support was added for fractal types mandel, julia, manzpower, and julzpower.

Normally, when you reach FractInt's zoom limit, FractInt simply refuses to let you zoom any more.   When using the fractal types that support arbitrary precision, you will not reach this limit, but can keep on zooming.   When you pass the threshold between double precision and arbitrary precision, FractInt will dramatically slow down.   The [tab] status screen can be used to verify that FractInt is indeed using arbitrary precision.

Fractals with arbitrary precision are SLOW, as much as ten times slower than if the math were done with your math coprocessor, and even slower simply because the zoom depth is greater.   The good news, if you want to call it that, is that your math coprocessor is not needed; coprocessorless machines can produce deep zooms with the same glacial slowness as machines with coprocessors!

Maybe the real point of arbitrary precision math is to prolong the "olden" days when men were men, women were women, and real fractal programmers spent weeks generating fractals.   One of your Stone Soup authors has a large monitor that blinks a bit when changing video modes -- PCs have gotten so fast that FractInt finishes the default 320x200 Mandelbrot before the monitor can even complete its blinking transition to graphics mode!   Computers are getting faster every day, and soon a new generation of fractal lovers might forget that fractal generation is supposed to be slow, just as it was in Grandpa's day when they only had Pentium chips.   The solution to this educational dilemma is FractInt's arbitrary precision feature.   Even the newest sexium and septium machines are going to have to chug for days or weeks at the extreme zoom depths now possible ...

So how far can you zoom?   How does 10^1600 sound--roughly 1600 decimal digits of precision.   To put this magnification in perspective, the "tiny" ratio of 10^61 is the ratio of the entire visible universe to the smallest quantum effects.   With 1600 digits to work with, you can expand an electron-sized image up to the size of the visible universe, not once but more than twenty times.   So you can examine screen-sized portions of a Mandelbrot set so large all but a tiny part of it would be vastly farther away than the billion or so light year limit of our best telescopes.

Lest anyone suppose that we Stone Soupers suffer from an inflated pride over having thus spanned the Universe, current inflationary cosmological theories estimate the size of the universe to be unimaginably larger than the "tiny" part we can see.

Note:   Many of FractInt's options do not work with arbitrary precision.   To experiment with arbitrary precision at the speedier ordinary magnifications, start FractInt with the debug=3200 command-line option.   With the exception of mandel and manzpower perturbations, values that would normally be entered in the Parameters and Coordinates screens need to be entered using the command-line interface or .PAR files.   Other known things that do not yet work with arbitrary precision are:   biomorph, decomp, distance estimator, inversion, Julia-Mandel switch, history, orbit-in-window, and the browse feature.

separator bar Return to FractInt's Home Page,   or to the FractInt Information index,   or to FractInt Deep Zoom Gallery. separator bar This page was last updated on:   September 18, 2010
HTML 4.01 Checked!     web page counter     Notepad
separator bar