Trustworthy Julia set source code

  • 8 Replies
  • 257 Views

0 Members and 1 Guest are viewing this topic.

Offline marcm200

  • *
  • Fractal Frogurt
  • ******
  • Posts: 470
« on: July 12, 2019, 12:00:03 PM »
I uploaded a first version of the source code for my implementation of the "trustworthy Julia sets algorithm" by Figueiredo et al.

https://github.com/marcm200/julia-tsa-core

The functionality is pretty simple for now, but images up to 2^18 pixel width have been generated by it:
  • command line version
  • generating a Julia set from scratch for the quadratic, cubic, quartic or pentic case.
  • resuming computation from temporary raw data
  • refinement simulation


Linkback: https://fractalforums.org/programming/11/trustworthy-julia-set-source-code/2930/

Offline gerson

  • *
  • Fractal Furball
  • ***
  • Posts: 225
« Reply #1 on: July 12, 2019, 06:31:02 PM »
Could you release the .exe file?

Offline marcm200

  • *
  • Fractal Frogurt
  • ******
  • Posts: 470
« Reply #2 on: July 12, 2019, 09:21:44 PM »
Yes, I will in a couple of days. I'm trying to understand the licensing of the tdm64 compiler I'm using and if I can just compile and upload the exe of my code or if there's more legal things to do beforehand.

Offline marcm200

  • *
  • Fractal Frogurt
  • ******
  • Posts: 470
« Reply #3 on: July 14, 2019, 11:48:18 AM »
I uploaded 64bit (tested on Windows 10 and Wine for ubuntu 12.04) and 32bit (tested on Windows 10, 8.1, XP and Wine for ubuntu 12.04) executables. Also included are some DOS-batch files to demonstrate automatic computation of increasingly large images.


Offline gerson

  • *
  • Fractal Furball
  • ***
  • Posts: 225
« Reply #4 on: July 15, 2019, 04:52:18 PM »
I edited BATCH CREATION file to render an image, see the result:

@echo off
juliatsacore_quadratic_win32.exe 4096 -0.78 -0.05 2 6
copy _tsa_juliaset_Y00X00.bmp julia-tsa-core_19071501.bmp
pause

Offline marcm200

  • *
  • Fractal Frogurt
  • ******
  • Posts: 470
« Reply #5 on: July 15, 2019, 05:48:51 PM »
Nice, and a relief for me that the binaries actually work outside my house.

The underlying double floating type in my code however cannot accurately represent your value -0.78 (To my knowledge, decimal fractions can only be represented if they end in 5 or zero (mandatory condition but not sufficient alone).

So the algorithm actually computes a slightly different set (whatever the compiler makes out of it), I doubt it makes any visible difference, but to still be on the side of mathematical guarantee, I usually correct any value I like by:

Code: [Select]
floor or ceil(DECIMAL_SEED_VALUE * 2^25) / 2^25

Offline marcm200

  • *
  • Fractal Frogurt
  • ******
  • Posts: 470
« Reply #6 on: October 11, 2019, 08:10:08 PM »
New version with added functionality (source and binaries):

https://github.com/marcm200/julia-tsa-core/releases

  • detecting basins of attraction
  • detecting periodicity and immediate basins of periodic points
  • polynomials z^n+A*z+C for n=2..6 implemented in one binary
  • binaries provided for C++ double, long double and __float128 precision
  • seed value c can be used as a single value or a complex interval
  • check for sufficient precision of data type under current screen width, formula, complex plane range


Offline Adam Majewski

  • *
  • Fractal Feline
  • **
  • Posts: 189
« Reply #7 on: October 11, 2019, 08:52:02 PM »
Can you check 89 petals:
https://www.math.univ-toulouse.fr/~cheritat/GalII/L34_89_b.png

Quadratic  polynomial with a parabolic fixed point with many petals : 34/89


Offline marcm200

  • *
  • Fractal Frogurt
  • ******
  • Posts: 470
« Reply #8 on: October 12, 2019, 01:37:07 PM »
I don't think this set is computable in a trustworthy manner to show interior cells.

The seed value I found in wikibooks is c=-0.390837354761211+0.586641524321638*i (I suspect it's a truncated/rounded value).
Julia sets with specific c values are only computable here if the real and imaginary parts both are dyadic fractions due to the underlying datatype.  Is the exact seed such a rational p/2^n ?

If not or if it is irrational I could only compute a set-family using a small complex box interval around the c seed. However since the actual seed is on the boundary of the Mandelbrot set, I think any complex interval would encompass both interior and exterior of the Mset and hence the set-family will contain both Cantor dust sets without interior and sets with interior. So the TSA algorithm would never show black cells (black when using c as an interval is the intersection of all black regions (2013 paper by Figueiredo, page 7).

A complex plane region where the whole set for the exact value resides, would be computable - if that is sufficient for your purposes. The image below shows such an interval Julia set family at level 16 (trustworthily downscaled 16-fold).

c=( [-13114327..-13114324] + i* [19684422..19684425] ) *2^-25


clip
Minuscule source code for Lyapunov images (ASCII style)

Started by marcm200 on Programming

8 Replies
481 Views
Last post March 20, 2019, 07:37:58 PM
by marcm200
question
GitHub source deployment

Started by ygidaslm on Kalles Fraktaler

5 Replies
270 Views
Last post May 20, 2018, 07:21:53 PM
by ygidaslm
xx
Code: (Select) not working?

Started by Anon on Forum Help And Support

3 Replies
170 Views
Last post February 19, 2018, 03:02:31 PM
by 3DickUlus
xx
Code Snippets for Fragmentarium

Started by Sabine62 on Code Snippets (fragments)

0 Replies
154 Views
Last post November 02, 2018, 01:23:11 PM
by Sabine62
xx
Mandelbrot Set Code in System RPL or User RPL

Started by WAUthethird on Programming

3 Replies
467 Views
Last post October 21, 2017, 09:11:54 AM
by WAUthethird