Message Boards Message Boards

0
|
3071 Views
|
2 Replies
|
0 Total Likes
View groups...
Share
Share this post:

How to generate a pentation fractal?

Posted 1 year ago

The following fractal is a Mandelbrot set with the quadratic equation replaced by powers, also known as a tetration escape fractal.

Tetration escape fractal

I generated this fractal thirty years ago. By extending tetration to the complex numbers I hope to plot the tetrational map also referred to as the pentation escape fractal.

Computing the Mandelbrot set is greatly accelerated by compiling using FunctionCompile. Unfortunately using pixel0^pixel instead of pixel^2+pixel0 in the quadratic equation breaks the compilation. I'm afraid that without a useful FunctionCompile statement I will not come close to the speed needed to plot a pentation fractal.

basicFun = Function[{Typed[pixel0, "ComplexReal64"]},
   Module[{iters = 1, maxIters = 10000, pixel = pixel0},
    While[iters < maxIters && Abs[pixel] < 10000,
     pixel = pixel0^pixel;
     iters++];
    iters]
   ];
compiledFun = FunctionCompile[basicFun]
ArrayPlot[
 Table[compiledFun[x + I y], {y, -2.5, 2.5, .0025}, {x, -3., 
   3., .0025}]]

What is the recommended method of compiling pixel0^pixel where both are complex values?

POSTED BY: Daniel Geisler
2 Replies

You can write (a+bi)^(c+di) as exp(log(r)(c+id)+iθ(c+id)), where r and theta are the norm and arg of the a+bi. then write that out in pure complex and real part; the real part give you a simple exp(real) and exp(complex) give you a rotation.

POSTED BY: Sander Huisman

Thank you, I was able to get my code to compile.

POSTED BY: Daniel Geisler
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract