Logo by reallybigname - 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. April 27, 2024, 01:52:12 AM


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 [2] 3 4   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: Kalles Fraktaler 2.9.5  (Read 7400 times)
Description: New version
0 Members and 2 Guests are viewing this topic.
simon.snake
Fractal Bachius
*
Posts: 640


Experienced Fractal eXtreme plugin crasher!


simon.fez SimonSideBurns
« Reply #15 on: April 24, 2016, 05:28:38 PM »

So, what do we call the new formula from Simon Snake, is "FT_Simon100A_plain" a good name?

We do need a new name for this formula.  Suggestions welcome.  I thought of WIFIbrot, but that's only really describing one small part of the image (there are different looking areas towards the bottom middle for example).

I'm not all that imaginative (hence my user name on here still containing the word Simon), so thinking caps at the ready...   Go!

I started trying to look at all those algebraic equations and couldn't begin to understand them, so I'm mightily glad there are those out there who do.
 
Thanks.

Simon
« Last Edit: April 24, 2016, 05:55:04 PM by simon.snake » Logged

To anyone viewing my posts and finding missing/broken links to a website called www.needanother.co.uk, I still own the domain but recently cancelled my server (saving £30/month) so even though the domain address exists, it points nowhere.  I hope to one day sort something out but for now - sorry!
simon.snake
Fractal Bachius
*
Posts: 640


Experienced Fractal eXtreme plugin crasher!


simon.fez SimonSideBurns
« Reply #16 on: April 24, 2016, 05:53:40 PM »

I have eliminated the second pair of zrsqr and zisqr defines, because zrsqr and zisqr are not used in the top half of the equation.

I'm still quite a newbie at this but I recall the reason there has to be two sets of the equations is to optimise slightly.

The bottom ones are calculated just before returning to the for loop so the bailout can be performed at the right time with correct values.

In my case and also in the standard Mandelbrot, the top ones are used to assist when squaring Z so as to avoid creating additional temporary variables.

I do feel my code for Fractal eXtreme could have been optimised further to avoid creating expensive temporaries (especially when the high precision code is being called), just not the way you suggest.
Logged

To anyone viewing my posts and finding missing/broken links to a website called www.needanother.co.uk, I still own the domain but recently cancelled my server (saving £30/month) so even though the domain address exists, it points nowhere.  I hope to one day sort something out but for now - sorry!
Kalles Fraktaler
Fractal Senior
******
Posts: 1458



kallesfraktaler
WWW
« Reply #17 on: April 24, 2016, 07:12:26 PM »

I thought of WIFIbrot, but that's only really describing one small part of the image (there are different looking areas towards the bottom middle for example).
Indeed, it has seahorse valleys and and such!
Do you have more formulas?


* simonbrot1s.jpg (237.99 KB, 640x360 - viewed 108 times.)
Logged

Want to create DEEP Mandelbrot fractals 100 times faster than the commercial programs, for FREE? One hour or one minute? Three months or one day? Try Kalles Fraktaler http://www.chillheimer.de/kallesfraktaler
http://www.facebook.com/kallesfraktaler
stardust4ever
Fractal Bachius
*
Posts: 513



« Reply #18 on: April 24, 2016, 08:08:01 PM »

I can do any formula in perturbation as long as each term only contains one abs value.
abs(a)*abs(a) is equal to abs(a*a)
However for example "4th Celtic Real Quasi Heart" contains
zi = 4 * abs(zr) * zi * abs(zrsqr - zisqr) + JuliaI;
This is not the same as 4 * zi * abs(zr*zrsqr - zr*zisqr) + JuliaI so I don't know how to handle that.
It should be. I would like to add that per the laws of mathematics, in dealing with real numbers, abs(x) is always positive. X^2 is always positive regardless of whether X is positive or negative. I'm not going to write a rigorous proof, but suffice to say that X^2 = |X|^2 = |x^2| for all real numbers.

Also |X| * |Y| is always equal to |X * Y| for real numbers, again because both outputs will always be positive. I used two abs() commands in the quasi heart formula because it was easy to write.

Zrsqr and Zisqr will always be positive no matter what because they are the square of a real number, however this is not the case for Zrsqr - Zisqr which can be positive or negative depending on which coefficient is bigger. So abs(Zrsqr - Zisqr) will have a different effect on each equation.

4.0 * abs(Zr) * Zi * abs(Zrsqr - Zisqr)

should be identical to

4.0 * Zi * abs(Zr * (Zrsqr - Zisqr))

based on the distributive and associative properties of multiplication, and the identity

|x| * |y| = |x * y|

is always true because a rule states that the product of two positive real numbers is always positive.

Unless something weird is going on in your code, these expression should be identical. Forgive me for not rearranging the equation to include a single abs() operation because it was easier for me to visually check my equations for typos or logic errors when each formula has terms laid out in the same order. If you feel one of my formulas is in error please let me know so I can check it.
« Last Edit: April 24, 2016, 08:15:01 PM by stardust4ever » Logged
Kalles Fraktaler
Fractal Senior
******
Posts: 1458



kallesfraktaler
WWW
« Reply #19 on: April 24, 2016, 08:13:47 PM »

I would like to add that per the laws of mathematics, in dealing with real numbers, abs(x) is always positive. X^2 is always positive regardless of whether X is positive or negative. I'm not going to write a rigorous proof, but suffice to say that X^2 = |X|^2 = |x^2| for all real numbers.

Also |X| * |Y| is always equal to |X * Y| for real numbers, again because both outputs will always be positive. I used two abs() commands in the quasi heart formula because it was easy to write.

Zrsqr and Zisqr will always be positive no matter what because they are the square of a real number, however this is not the case for Zrsqr - Zisqr which can be positive or negative depending on which coefficient is bigger. So abs(Zrsqr - Zisqr) will have a different effect on each equation.

4.0 * abs(Zr) * Zi * abs(Zrsqr - Zisqr)

should be identical to

4.0 * Zi * abs(Zr * (Zrsqr - Zisqr))

based on the distributive and associative properties of multiplication, and the identity

|x| * |y| = |x * y|

is always true because a rule states that the product of two positive real numbers is always positive.

Unless something weird is going on in your code, these expression should be identical. Forgive me for not rearranging the equation to include a single abs() operation because it was easier for me to visually check my equations for typos or logic errors when each formula has terms laid out in the same order. If you feel one of my formulas is in error please let me know so I can check it.
I never attempted these formulas but yes,
4.0 * abs(Zr) * Zi * abs(Zrsqr - Zisqr) should be identical to 4.0 * Zi * abs(Zr * (Zrsqr - Zisqr))
So you are right smiley
Logged

Want to create DEEP Mandelbrot fractals 100 times faster than the commercial programs, for FREE? One hour or one minute? Three months or one day? Try Kalles Fraktaler http://www.chillheimer.de/kallesfraktaler
http://www.facebook.com/kallesfraktaler
stardust4ever
Fractal Bachius
*
Posts: 513



« Reply #20 on: April 24, 2016, 08:29:52 PM »

Sometimes unexplained consequences happen in software code that cannot be explained. For instance my "radiant" BS in the previous page, alternate version the 4th Mandelbrot BS formula created by subbing Zsqr for Z * abs(Z) in a "nested" powers resulted in "rays" emanating from the main brot because I placed the the Zsqr definition at the beginning of the code instead of the end. Copying these two code from beginning to end resulted in the same fractal without the ray artifacts. I attempted to duplicate this effect with the standard Mandelbrot and Burning Ship fractals for 2nd, 3rd, and 4th order by moving these two lines from end to beginning of the formula, with absolutely no percieved difference. Assuming all variables are zeroed out prior to the start of iteration, the results of placing Zsqr = Z * Z at the beinning or the end shouldn't matter, but it did have a dramatic effect for the alternate formula I discovered in trying to implement my own Snake brot.

And Simon.Snake, the Snake brot you provided is indeed forth order even though it has twofold symmetry. In my quick two minute zoom movie I produced, I made my last fork in the path around 90 zooms and hit the minibrot at 120. A second order equation would have placed the mini around 180 zooms if my last fork was at 90. afro
Logged
Kalles Fraktaler
Fractal Senior
******
Posts: 1458



kallesfraktaler
WWW
« Reply #21 on: April 24, 2016, 09:16:11 PM »

Yes the snake-brot is 4th order. I see it clearly because to get smooth gradients with high-bailout, log(power) is used, and there bands are clearly visible for other values
(If you see any bands in my movie, it's because the codec...)
Logged

Want to create DEEP Mandelbrot fractals 100 times faster than the commercial programs, for FREE? One hour or one minute? Three months or one day? Try Kalles Fraktaler http://www.chillheimer.de/kallesfraktaler
http://www.facebook.com/kallesfraktaler
simon.snake
Fractal Bachius
*
Posts: 640


Experienced Fractal eXtreme plugin crasher!


simon.fez SimonSideBurns
« Reply #22 on: April 24, 2016, 09:16:25 PM »

Do you have more formulas?

Lots, but whether any of them are suitable candidates for conversion to Perturbation is another matter.  I am happy to upload a FractInt formula database that I have been writing since time immemorial.  Some are good, a lot are rubbish, some require mathematical operations such as cos, abs, sqrt etc. and some behave in strange ways or contain conditional branching to achieve different things.

I play about, and don't often know the consequences of my trial and error approach.

I'll upload it in a new thread, as it will be easier to find in the future.
Logged

To anyone viewing my posts and finding missing/broken links to a website called www.needanother.co.uk, I still own the domain but recently cancelled my server (saving £30/month) so even though the domain address exists, it points nowhere.  I hope to one day sort something out but for now - sorry!
stardust4ever
Fractal Bachius
*
Posts: 513



« Reply #23 on: April 25, 2016, 12:01:42 AM »

Lots, but whether any of them are suitable candidates for conversion to Perturbation is another matter.  I am happy to upload a FractInt formula database that I have been writing since time immemorial.  Some are good, a lot are rubbish, some require mathematical operations such as cos, abs, sqrt etc. and some behave in strange ways or contain conditional branching to achieve different things.

I play about, and don't often know the consequences of my trial and error approach.

I'll upload it in a new thread, as it will be easier to find in the future.
Anything involving irrational functions or long division probably would not be a good candidate. Long division in arbitrary precision is a pain or so I've heard. At least I know it's super annoying to do base ten longhand on paper.

Irrational functions such as square roots, fractional powers, and trig functions require iteration to compute even at float precision so these would be a royal pain in the ass to do in arbitrary. Each iteration of said function would require many sub-iterations.

I presume absolute value works nicely because it is possible to create separate cases in code if the operand is negative or positive, and adjust the formula acordingly.
Logged
stardust4ever
Fractal Bachius
*
Posts: 513



« Reply #24 on: April 25, 2016, 12:20:54 AM »


<a href="http://www.youtube.com/v/x5aAbEoQuM8&rel=1&fs=1&hd=1" target="_blank">http://www.youtube.com/v/x5aAbEoQuM8&rel=1&fs=1&hd=1</a>
Beat you to it by a few hours, LOL! wink

So, what do we call the new formula from Simon Snake, is "FT_Simon100A_plain" a good name?
Expanding this function, also to be used for calculating the high precision reference, gives:
xn = y*y*abs(y*y)-4*y*abs(x*y)*x-x*x*abs(y*y)-y*y*abs(x*x)+x*x*abs(x*x) + x0;
yn = - 2*x*y*abs(y*y)-2*y*y*abs(x*y)+2*x*x*abs(x*y)+2*x*y*abs(x*x) + y0;
Adding perturbation, (reference+delta)-reference, gives:
xn = (y+b)*(y+b)*abs((y+b)*(y+b))-4*(y+b)*abs((x+a)*(y+b))*(x+a)-(x+a)*(x+a)*abs((y+b)*(y+b))-(y+b)*(y+b)*abs((x+a)*(x+a))+(x+a)*(x+a)*abs((x+a)*(x+a))
   - y*y*abs(y*y)+4*y*abs(x*y)*x+x*x*abs(y*y)+y*y*abs(x*x)-x*x*abs(x*x) + x0;
yn = - 2*(x+a)*(y+b)*abs((y+b)*(y+b))-2*(y+b)*(y+b)*abs((x+a)*(y+b))+2*(x+a)*(x+a)*abs((x+a)*(y+b))+2*(x+a)*(y+b)*abs((x+a)*(x+a))
   + 2*x*y*abs(y*y)+2*y*y*abs(x*y)-2*x*x*abs(x*y)-2*x*y*abs(x*x) + y0;
Analyzing the first term, we have (reference+delta)=(y+b)*(y+b)*abs((y+b)*(y+b)) and reference=y*y*abs(y*y)
Expand gives (y*y+2*b*y+b*b)*abs(y*y+2*b*y+b*b) - y*y*abs(y*y)
Rearranging so that we can identify what's in laser-blaster's abs-method and what's the rest:
y*y*abs(y*y+2*b*y+b*b) - y*y*abs(y*y) + (2*b*y+b*b)*abs(y*y+2*b*y+b*b)
y*y is the ref for laser-blaster's abs-method and 2*b*y+b*b is the delta:
y*y*lb_abs_db(y*y,2*b*y+b*b) + (2*b*y+b*b)*abs(y*y+2*b*y+b*b)
Repeat for the next 8 terms, and you get:
xn = y*y*lb_abs_db(y*y,2*b*y+b*b)-4*y*x*lb_abs_db(x*y,x*b+a*y+a*b)-x*x*lb_abs_db(y*y,2*b*y+b*b)-y*y*lb_abs_db(x*x,2*x*a+a*a)+x*x*lb_abs_db(x*x,2*x*a+a*a)
   + (2*b*y+b*b)*abs(y*y+2*b*y+b*b)-4*(y*a+b*x+b*a)*abs(x*y+x*b+a*y+a*b)-(2*x*a+a*a)*abs(y*y+2*b*y+b*b)-(2*b*y+b*b)*abs(x*x+2*x*a+a*a)+(2*x*a+a*a)*abs(x*x+2*x*a+a*a) + a0;
yn = 2*x*x*lb_abs_db(x*y,x*b+a*y+a*b)+2*x*y*lb_abs_db(x*x,2*x*a+a*a)-2*x*y*lb_abs_db(y*y,2*b*y+b*b)-2*y*y*lb_abs_db(x*y,x*b+a*y+a*b)
   + 2*(2*x*a+a*a)*abs(x*y+x*b+a*y+a*b) +2*(x*b+a*y+a*b)*abs(x*x+2*x*a+a*a)-2*(x*b+a*y+a*b)*abs(y*y+2*b*y+b*b)-2*(2*b*y+b*b)*abs(x*y+x*b+a*y+a*b)  + b0;
And the result is stunning:
<a href="http://www.youtube.com/v/ENS4r4fdyKE&rel=1&fs=1&hd=1" target="_blank">http://www.youtube.com/v/ENS4r4fdyKE&rel=1&fs=1&hd=1</a>
I finally read the full post. I was on a mobile device without flash capability when I made my first reply and missed the embedded video! Fractal forums needs to update their embed code to support HTML5... tongue stuck out

But seriously, this is awesome! wink

Kalles, are you doing repetitious multiplies? Defining common terms such as x*x or y*y by creating variables like Xsqr and Ysqr so you only have to compute them once, and using the distributive property when possible as I did in my FX float codes would reduce render time by eliminating unnecessary calculations.
cop
« Last Edit: April 25, 2016, 12:40:01 AM by stardust4ever » Logged
panzerboy
Fractal Lover
**
Posts: 242


« Reply #25 on: April 25, 2016, 01:47:44 AM »

...
I've been waiting for Microsoft to release a new version of VS with 64-bit support included for free, and then I'll try again.
...

https://www.visualstudio.com/en-us/products/free-developer-offers-vs.aspx
Visual Studio community is free and supports 64 bit. I haven't as yet tried to build a FX plugin with it so no promises.
Logged
Kalles Fraktaler
Fractal Senior
******
Posts: 1458



kallesfraktaler
WWW
« Reply #26 on: April 25, 2016, 10:49:26 AM »

I have uploaded a version 2.9.6 which includes simon.snake's wonderful formula smiley
Logged

Want to create DEEP Mandelbrot fractals 100 times faster than the commercial programs, for FREE? One hour or one minute? Three months or one day? Try Kalles Fraktaler http://www.chillheimer.de/kallesfraktaler
http://www.facebook.com/kallesfraktaler
simon.snake
Fractal Bachius
*
Posts: 640


Experienced Fractal eXtreme plugin crasher!


simon.fez SimonSideBurns
« Reply #27 on: April 25, 2016, 05:13:35 PM »

Visual Studio community is free and supports 64 bit. I haven't as yet tried to build a FX plugin with it so no promises.
I downloaded and installed VS Community 2015 yesterday, and when I attempt to load one of the solution files it says that the solution is Incompatible, and that "The Application is not Installed".

I think I read somewhere that the Community 2015 will allow you to edit and build incompatible sources if you have the appropriate Visual Studio version installed, which means I am no further forward.  sad
Logged

To anyone viewing my posts and finding missing/broken links to a website called www.needanother.co.uk, I still own the domain but recently cancelled my server (saving £30/month) so even though the domain address exists, it points nowhere.  I hope to one day sort something out but for now - sorry!
simon.snake
Fractal Bachius
*
Posts: 640


Experienced Fractal eXtreme plugin crasher!


simon.fez SimonSideBurns
« Reply #28 on: April 25, 2016, 05:52:07 PM »

I have uploaded a version 2.9.6 which includes simon.snake's wonderful formula smiley

I'm happily zooming in to somewhere magical right now, and it's so quick it is unbelievable.

One thing I would like to ask is this:  For those who understand the mathematics involved in my formula, could you attempt to explain in reasonably simple terms what is going on with the values, and, with regard to the fractal's properties, why it generates images that it does?

I don't know why it looks the way it does, and can't fathom it out, but I'd love to learn something about it, however basic.
Logged

To anyone viewing my posts and finding missing/broken links to a website called www.needanother.co.uk, I still own the domain but recently cancelled my server (saving £30/month) so even though the domain address exists, it points nowhere.  I hope to one day sort something out but for now - sorry!
TheRedshiftRider
Fractalist Chemist
Global Moderator
Fractal Iambus
******
Posts: 854



WWW
« Reply #29 on: April 26, 2016, 01:26:48 PM »

I think I found a similar formula:

f(z)=(absre(z)*absim(z))^2+c

Logged

Motivation is like a salt, once it has been dissolved it can react with things it comes into contact with to form something interesting. nerd
Pages: 1 [2] 3 4   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
Kalles Fraktaler 2 Kalles Fraktaler « 1 2 ... 29 30 » Kalles Fraktaler 438 139863 Last post July 31, 2014, 12:29:56 AM
by cKleinhuis
Kalles Fraktaler 2.5.7 Kalles Fraktaler « 1 2 » Kalles Fraktaler 20 23922 Last post October 25, 2017, 07:26:34 PM
by Mrz00m
Kalles Fraktaler 2.7 Kalles Fraktaler « 1 2 3 » Kalles Fraktaler 35 36441 Last post October 13, 2014, 04:45:04 PM
by youhn
Kalles Fraktaler 2.7.4 available Kalles Fraktaler Kalles Fraktaler 10 7463 Last post November 30, 2014, 01:40:48 PM
by ratcat65
Kalles Fraktaler 2.7.6 available Kalles Fraktaler Kalles Fraktaler 14 11772 Last post December 15, 2014, 03:15:31 AM
by quaz0r

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.266 seconds with 26 queries. (Pretty URLs adds 0.014s, 2q)