Another Unexpected Difference   3 comments


I received a query regarding the implementation of a fractal formula that didn’t produce the expected pictures. Here is such a picture. The implicated culprit was std::complex<T>, I’ve had trouble with this in the past leading to the use of my own version of the complex class in my software, it looks like it is entirely innocent.

I checked the formulae by trying them out in Saturn which also failed to produce the expected pictures. The program used for producing the fractals is called XoaS, the fractals in question aren’t part of XaoS but can be produced by setting the user formula.

An example of these formulae is shown below:

zn+1 = zn^(1 – (1/(log(z) + 0.1))) + 0.3

where z0 = the location in the complex plane

This is what is produced by the Window’s version of Xaos (the image is centred on (0,0) and has a width of 3):

XaoS.Windows

The Linux version of XaoS would be expected to produce the same image, it doesn’t (the image is centred on (0,0) and has a width 8):

XaoS.Linux

Saturn produces this (the image is centred on (0,0) and has width 32):

Saturn

Gnofract4d agrees with Saturn:

Gnofracta4d

Ultra Fractal also agrees with Saturn and Gnofract4d, the much smaller circle produced by XaoS for Linux must be to do with its bailout function, the bailout value is 4 which is the same as Gnofract4d and Saturn where the absolute value of z is used (abs(z) in Saturn, cabs in Gnofract4d).

The picture for the Linux version of XaoS took several attempts, initially there was just featureless black, zooming out I got a simple circle, but it was only when I went back to XaoS on Linux to check the location and size of the image that the blobs appeared.

I’ve now found that Saturn produces the same image as XaoS on Linux when the bailout function is changed to norm(z).

I can only conclude that the fractal images produced by the Windows version of XaoS are in error, as XaoS, Gnofract4d and Saturn on Linux and Ultra Fractal on Windows all produce the same image.

The images produced by Saturn for fractals with similar formulae are not all interesting so fractals of this sort won’t be added to Saturn. The erroreous images produced by XaoS on Windows on the the other hand are definitely worth adding to any fractal program provided the error can be found and replicated, indeed Saturn already has several fractal types found due to programming errors.

3 responses to “Another Unexpected Difference

Subscribe to comments with RSS.

  1. Okay. First of all, thank you so much for taking a look at the problem at
    hand.
    I have to admit that I am disappointed wrt the fact that I agree with you.
    However, now I have something to look forward too! That is, investigating
    why a “weird” bug in Xaos 3.5 for Windows produces such an interesting
    fractal. I am doing all of this in my spare time, but IMVHO, this is worth
    further
    research…

    AFAICT, you are apparently getting something very similar, if not exactly
    like,
    Roger Bagulas excellent Mathematica work with the formulas in question:

    The 3d-ployhedra effect generated by the damn _bug_ is extremely
    interesting, and I really want to know WHY Xaos 3.5 for windows gives us
    such
    a result, with “3d panels” loaded with spirals within spirals. Therefore, I
    will get
    back to you after some experimentation. Well, that is if you are interested;
    BTW, Thank You again!

    —————————————-

    FWIW, here are some other fractals I am experimenting with that work in
    multiple programs, including my own software… This means they will
    completely work in your excellent software as well.

    Interesting Glynn-Like sets:

    F(Z) = Z^1.99 – 1.148823

    https://plus.google.com/101799841244447089430/posts/fPTxKry2xb5

    F(Z) = Z^1.87 – 0.44258

    https://plus.google.com/101799841244447089430/posts/CQYQisC1fk9

    F(Z) = Z^1.82 – 0.39

    https://plus.google.com/101799841244447089430/posts/fKJSpKVY6uC

    Dual Cantor spirals with sharp shooting, bifurcating antennae:

    F(Z) = Z^9 – 0.683

    https://plus.google.com/101799841244447089430/posts/3sZV3MqYmeM

    F(Z) = Z^8.0045 – 1.0925668989

    https://plus.google.com/101799841244447089430/posts/6uVNRmavvRx

    F(Z) = Z^16 – 1.047

    — Very intricate, almost biological-like antennae and plateau structures.
    https://plus.google.com/101799841244447089430/posts/ZF4Bat7tj33

    F(Z)=Z^6-1.1253355

    – Weird Mandelbrot like set…
    https://plus.google.com/101799841244447089430/posts/a83uAS9E7Zq

    F(Z) = Z^6 – 1.1253355

    – More shooting antennae bio looks.
    https://plus.google.com/101799841244447089430/posts/iLCcHfCG6h7

    Also, if you are interested, here are some fractals created by recursive
    intersecting circles:

    https://plus.google.com/101799841244447089430/posts/MV5qwHesS3u

    https://plus.google.com/101799841244447089430/posts/6bimsLsxqK4

    https://plus.google.com/101799841244447089430/posts/GpYfTxZbpzU

    https://plus.google.com/101799841244447089430/posts/LDKVqwsZy4G

    Here is the circle intersection algorithm:

    Click to access circle_isect_draft.pdf

    Thank you so much.

    I hope my fractals are worthy Mark!

    :^o

  2. Thank you so much for this! :^)

    BTW, here is the source code for Xaos:

    http://sourceforge.net/projects/xaos/files/XaoS/3.5

    FWIW, here are some other fractals I am experimenting with that work in
    multiple programs, including my own software… This means they will
    completely work in your excellent software as well.

    Interesting Glynn-Like sets:

    F(Z) = Z^1.99 – 1.148823

    https://plus.google.com/101799841244447089430/posts/fPTxKry2xb5

    F(Z) = Z^1.87 – 0.44258

    https://plus.google.com/101799841244447089430/posts/CQYQisC1fk9

    F(Z) = Z^1.82 – 0.39

    https://plus.google.com/101799841244447089430/posts/fKJSpKVY6uC

    Dual Cantor spirals with sharp shooting, bifurcating antennae:

    F(Z) = Z^9 – 0.683

    https://plus.google.com/101799841244447089430/posts/3sZV3MqYmeM

    F(Z) = Z^8.0045 – 1.0925668989

    https://plus.google.com/101799841244447089430/posts/6uVNRmavvRx

    F(Z) = Z^16 – 1.047

    — Very intricate, almost biological-like antennae and plateau structures.
    https://plus.google.com/101799841244447089430/posts/ZF4Bat7tj33

    F(Z)=Z^6-1.1253355

    – Weird Mandelbrot like set…
    https://plus.google.com/101799841244447089430/posts/a83uAS9E7Zq

    F(Z) = Z^6 – 1.1253355

    – More shooting antennae bio looks.
    https://plus.google.com/101799841244447089430/posts/iLCcHfCG6h7

    Also, if you are interested, here are some fractals created by recursive
    intersecting circles:

    https://plus.google.com/101799841244447089430/posts/MV5qwHesS3u

    https://plus.google.com/101799841244447089430/posts/6bimsLsxqK4

    https://plus.google.com/101799841244447089430/posts/GpYfTxZbpzU

    https://plus.google.com/101799841244447089430/posts/LDKVqwsZy4G

    • Thanks for the link to the source code, I’ve downloaded it but I doubt I’ll have time to delve into it as I have bugs to fix in the next release of Saturn and Titan (4.1.0). Thanks for the formulae, they are all variations of Saturn’s Zcpac (z to complex power add constant), it’s always useful to have parameters as starting points for exploration.

      It’ll be interesting to see whether XaoS 3.5 built on Windows from the source code exhibits the same bug as the pre-built binary, if it does then there’s a chance of finding out how to produce those erroneous fractals. If it behaves as the Linux version the error is likely to be in some static library that’s built into the binary and then it won’t be possible to find the bug.

      The source code may contain contact details for the author or authors of the software (I haven’t looked yet), if so you can always ask them.

Leave a comment