Logo by stardust4ever - Contribute your own Logo!

END OF AN ERA, FRACTALFORUMS.COM IS CONTINUED ON FRACTALFORUMS.ORG

it was a great time but no longer maintainable by c.Kleinhuis contact him for any data retrieval,
thanks and see you perhaps in 10 years again

this forum will stay online for reference
News: Visit us on facebook
 
*
Welcome, Guest. Please login or register. November 30, 2025, 07:33:52 PM


Login with username, password and session length


The All New FractalForums is now in Public Beta Testing! Visit FractalForums.org and check it out!


Pages: [1]   Go Down
  Print  
Share this topic on DiggShare this topic on FacebookShare this topic on GoogleShare this topic on RedditShare this topic on StumbleUponShare this topic on Twitter
Author Topic: Mandelbrot perturbator  (Read 785 times)
Description: Pseudo Code would help
0 Members and 1 Guest are viewing this topic.
Imagyx
Navigator
*****
Posts: 72


Finally 3D and more... Thank you !! ;-)


« on: December 12, 2016, 11:36:24 AM »

I read most of the ~40 pages from different threads about the perturbation of the mandelbrot. And i looked into three of the existing programs, but can't see the forest for the trees. There seems to be so much code for speed optimization  and  different formulas etc. that I don't see the essence of what is needed at least for a working program. If someone were kind enough to express in pseudocode the main routines necessary, I'd appreciate it a lot. I even tried to do the maths mentioned in the sft.pdf but reached different results for the approx. series.
I have an arbitrary calculation library at hand and the graphics routines. How would the simplest way to calculate the pixels values look like?
Logged

During difficult times, keep steady and play the match.
Imagyx
Navigator
*****
Posts: 72


Finally 3D and more... Thank you !! ;-)


« Reply #1 on: December 12, 2016, 03:42:32 PM »

I found this Program without series approximation but was wondering if the radius has to have arbitrary precision as well. As is the radius would be zero when zooming in and reaching doubles precision limit, or not?
Logged

During difficult times, keep steady and play the match.
cKleinhuis
Administrator
Fractal Senior
*******
Posts: 7044


formerly known as 'Trifox'


WWW
« Reply #2 on: December 12, 2016, 04:41:35 PM »

i have not implemented pertubation theory myself, i think the best resource is the original poster of this thread:
http://www.fractalforums.com/announcements-and-news/superfractalthing-arbitrary-precision-mandelbrot-set-rendering-in-java/

he provides a minimal java pertubation implementation, this should be your main reference, all  other implement various fallbacks and error correction, but yout main goal should be to implement original posters java implementation as reference!
Logged

---

divide and conquer - iterate and rule - chaos is No random!
Adam Majewski
Fractal Lover
**
Posts: 221


WWW
« Reply #3 on: December 12, 2016, 09:15:24 PM »

Hi,

https://en.wikibooks.org/wiki/Fractals/Iterations_in_the_complex_plane/Mandelbrot_set#Perturbation_theory
 http://code.mathr.co.uk/mandelbrot-perturbator/
http://mathr.co.uk/blog/2014-03-31_perturbation_glitches.html

HTH

Adam
Logged
Imagyx
Navigator
*****
Posts: 72


Finally 3D and more... Thank you !! ;-)


« Reply #4 on: December 12, 2016, 10:00:27 PM »

Thank you for your replies. I must say I read most of the 17 pages from the first link and the minimal solution doesn't look minimal  at all to me an looks really cryptic as well. Talking about variable names and commentary and the all the overhead for antialiasing and what else in there that's not necessary for the basic algorithm.
It's just too much code for understanding the basics. And as i found out the first paper indeed has some mistakes in them as written here: http://math.stackexchange.com/questions/939270/perturbation-of-mandelbrot-set-fractal
in  the midst of the 17 page thread was also someone asking for an explanation for someone that hadn't been around since the time this idea came up.
It's not my intention to whine or criticize, I just appreciated it to learn about this awesome  method without flooding my head with information that I cannot use yet. I do my own share of experimenting with quality and speed etc. when the basic thing works.
« Last Edit: December 12, 2016, 10:10:14 PM by Imagyx » Logged

During difficult times, keep steady and play the match.
quaz0r
Fractal Molossus
**
Posts: 652



« Reply #5 on: December 13, 2016, 02:21:07 AM »

you are right it is not easy; there are lots of aspects both to the algorithms and their implementation, and it all has to be perfect or it will blow up and not work right.  furthermore not all aspects to it necessarily even have the best possible solution worked out yet, nor have current techniques necessarily been set in stone or fully agreed upon even now, primarily regarding how to deal with precision loss (both in the perturbed iterations and in the computation of the series approximation) and also regarding how to approach implementing a stop condition for the iteration of the series coefficients.

i think a concise yet comprehensive writeup designed to actually teach and convey real understanding of the whole thing from the ground up (particularly for those who are not already a seasoned math/fractal/programming expert) is yet to appear, and any requests for such a thing will likely fall on deaf ears and disappear into the vacuum of exclusivity.  "i trudged through the 50000 pages of extraneous and poorly organized forum posts, and spent a bunch of time figuring a bunch of stuff out the hard way, i'll be damned if i see it made easy for you" is the general sentiment you are most likely to encounter.  of course that is just humans generally, not necessarily specific to mandelbrot perturbation  kiss

honestly what i did when i first started out was to trudge through the endless wasteland of forum posts in an attempt to sift for gold and copy-paste what looked to be the most relevant bits of actual information into a word processor and then use that to study from and refer to whilst attempting to understand it and implement it  roll eyes  i dont think im the only one with such a tale to tell either, though i am one of those not-an-expert-in-any-of-the-things people... maybe everyone here but me is an expert.
« Last Edit: December 13, 2016, 02:48:52 AM by quaz0r » Logged
Imagyx
Navigator
*****
Posts: 72


Finally 3D and more... Thank you !! ;-)


« Reply #6 on: December 13, 2016, 07:58:45 AM »

I understand. This process is not yet ready to be made into a recipe.
With the mandelbulb and the other 3d stuff I did exactly that, searching the forum and writing code fragments bit by bit. With some questions and great help from the pros i built myself a working raytracer. Somehow it was easier to put the pieces together in that matter.
I have the very basic perturbation part working for now without series approx and without deep zooming.
It's really fast and already a success until 10^-16. I'm not sure how to calculate the whole image without arbitrary precision yet. When I zoom in all points have to be precise to differ from each other. So what to do there? Upscale them?
I'll try to write that pseudocode here myself once I'm sure how to do it right.
Logged

During difficult times, keep steady and play the match.
quaz0r
Fractal Molossus
**
Posts: 652



« Reply #7 on: December 13, 2016, 08:42:35 AM »

Quote from: Imagyx
This process is not yet ready to be made into a recipe.

well, it is simply an area of ongoing research.  from time to time people are still coming up with interesting ideas for better ways to do things, like knighty's application of interval arithmetic to create a proper stop condition for the iteration of the series coefficients, and claude's novel approach to glitch handling.  one could certainly write up a nice article/tutorial/book/whatever if they were so inclined, it is just a matter of doing it.

Quote from: Imagyx
It's really fast and already a success until 10^-16. I'm not sure how to calculate the whole image without arbitrary precision yet. When I zoom in all points have to be precise to differ from each other. So what to do there?

as i said, up to 1016 or so people are doing the standard mandelbrot iterations with hardware floating point, as there is nothing to gain from series approximation or perturbation at those shallow depths.  in fact, the overhead is likely to be slower in comparison.  the perturbation stuff is what is employed to break the 1016 or so barrier.  with regard to your implementation, you indeed need to use arbitrary precision for the location and for the reference iteration, as this is limited by the precision of the mantissa as opposed to the exponent.
Logged
eiffie
Guest
« Reply #8 on: December 14, 2016, 11:36:02 PM »

@Imagyx I hope you will write up some basic preturbation psuedo code. I have been watching these threads from the sideline because I am only interested in the basic concept and how it could be used elsewhere (3d, whatever) but haven't seen a stripped down version to get started with. Good luck!
Logged
claude
Fractal Bachius
*
Posts: 563



WWW
« Reply #9 on: December 15, 2016, 01:31:37 AM »

Here is some C++ code that tries to be simple without lots of extra optimisations (but the trouble is the whole thing is quite complicated, so I guess it's still pretty hard to get to grips with):

https://code.mathr.co.uk/fractal-bits/blob/HEAD:/mandelbrot-series-approximation/m.cpp

It could do with lots more comments, to be sure.
Logged
Pages: [1]   Go Down
  Print  
 
Jump to:  


Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
Page created in 0.252 seconds with 24 queries. (Pretty URLs adds 0.012s, 2q)