Title: Triplex algebra Post by: bugman on November 09, 2009, 09:41:16 AM .
Title: Non-Trigonometric Expansions for Sine Formula Post by: bugman on November 17, 2009, 05:53:18 PM .
Title: Non-Trigonometric Expansions for Cosine Formula Post by: bugman on November 23, 2009, 09:40:55 AM You can see see the non-trigonometric expansions for the "sine" formula here:
http://www.fractalforums.com/3d-fractal-generation/true-3d-mandlebrot-type-fractal/msg8680/#msg8680 (no longer, post was moved here. Note by DarkBeam) I still think the "sine" formula makes the most sense because it gives {x, y, z}^0 = {1, 0, 0}. However, if I understand correctly, Daniel White and Garth Thornton have been experimenting with a "cosine" formula. The non-trigonometric expansions for the "cosine" formula are as follows: Title: Re: Non-Trigonometric Expansions for Cosine Formula Post by: xenodreambuie on November 23, 2009, 11:27:03 AM Thanks, Paul. One correction for the cosine formula: phi=n.arccos(z/r). It doesn't affect the rest.
I like the sine formula for the most part because it has the 2D Julia or Mandelbrot set in the Z=0 plane, and this works especially well for power -2. I stumbled on the cosine option initially because it didn't require any parity tricks to work in inverse iteration with the trig formulas, and I like the power 2 Julias it creates. It's worth reiterating that there are two variants of the cosine; one with correct roots and one with some flipped roots, depending on whether one uses forward or inverse iteration, and whether parity is checked. The one I prefer aesthetically has some flipped roots. For higher powers the sine and cosine Julias look increasingly similar, except for the symmetry of the bulbs. For even powers the cosine has rows of bulbs aligned with longitudinal lines, while the sine formula has them alternating. Title: Re: Non-Trigonometric Expansions for Cosine Formula Post by: bugman on November 23, 2009, 08:52:19 PM Thank you for drawing that to my attention Garth. I have updated my previous post accordingly. The formula makes more sense now.
Title: Triplex Algebra Post by: bugman on December 04, 2009, 11:22:16 PM Some people have requested for a more complete definition of the triplex. Unfortunately, it doesn't exactly form a complete algebra, but I will try to summarize the most consistent formulas here. I will only focus on the positive z-component formula here, because that is the most consistent formula.
Title: Re: Triplex Algebra Post by: bugman on December 04, 2009, 11:24:18 PM The nth root of the power formula has nē unique valid roots (branches) if n is an integer. If n is not an integer, then depending on the values of {x, y, z}, some of the roots will not be valid.
Here is some C++ code in case you have difficulty following the math formulas below: //Arbitrary integer roots, allows for nē branches //this code is written for ease of understanding and is not intended to be efficient //all unique valid roots can be found using all possible combinations of: // ktheta=0,1,...abs(n)-1 // kphi=0,1,...abs(n)-1 triplex TriplexRoot(triplex p, int n, int ktheta, int kphi) { int k1=(abs(n)-(p.z<0?0:1))/4, k2=(3*abs(n)+(p.z<0?4:2))/4, dk=0; if(abs(n)%2==0 && kphi>k1 && kphi<k2) dk=sign(p.z)*(abs(n)%4==0?-1:1); double r=sqrt(sqr(p.x)+sqr(p.y)+sqr(p.z)); double theta=(atan2(p.y,p.x)+(2*ktheta+dk)*pi)/n; double phi=(asin(p.z/r)+(2*kphi-dk)*pi)/n; return pow(r,1.0/n)*triplex(cos(theta)*cos(phi),sin(theta)*cos(phi),sin(phi)); } Also, here is some Mathematica code in case that is easier for you to understand: TriplexRoot[ {x_, y_, z_}, n_, ktheta_, kphi_] := Module[ {dk = If[ Mod[ n, 2] == 0 && Abs[ n] < 4kphi + If[ z < 0, 0, 1] <= 3Abs[ n], Sign[ z]If[ Mod[ n, 4] == 0, -1, 1], 0], r = Sqrt[ x^2 + y^2 + z^2],theta, phi}, theta = (ArcTan[ x, y] + (2ktheta + dk)Pi)/n; phi = (ArcSin[ z/r] + (2kphi - dk)Pi)/n; r^(1/n){Cos[ theta] Cos[ phi], Sin[ theta]Cos[ phi], Sin[ phi]}]; Title: Re: Triplex Algebra Post by: David Makin on December 04, 2009, 11:53:59 PM Thanks Paul !
Title: Re: Triplex Algebra Post by: BradC on December 05, 2009, 04:37:47 AM Have you tried defining transcendental functions by their Taylor series, such as
Title: Re: Triplex Algebra Post by: bugman on December 05, 2009, 06:42:38 AM Have you tried defining transcendental functions by their Taylor series, such as <Quoted Image Removed> where <Quoted Image Removed> is a triplex, to see if that makes any kind of sense? That's an interesting idea, but it looks difficult. The triplex power function is rather complicated. I'll think about it and see if I come up with any ideas. Title: Re: Triplex Algebra Post by: Paolo Bonzini on December 05, 2009, 08:43:25 PM FWIW, the triplex numbers do not even form an alternative algebra, and there is no distributivity either. They only have power associativity (which is no big news) .
Title: Re: Triplex Algebra Post by: Paolo Bonzini on December 05, 2009, 11:39:07 PM Another little thing, it is enough that one of the three factors be complex (z=0) to have associativity (it is obvious that one is enough, since there is commutativity).
Also, it is enough that a is complex to have a(b+c) = ab+ac. This may make it a bit easier to manipulate power series... Title: Re: Triplex Algebra Post by: zee on December 06, 2009, 01:47:50 AM Thank you for this definition! I think you added this to wikipedia?! (http://en.wikipedia.org/wiki/Hypercomplex_number#Three-dimensional_complex_numbers_based_on_spherical_coordinates)
But I can't see why the third dimension can be called hypercomplex. In the normal Mandelbrot you have the simple multiplication z² in complex and only because of i² = -1 you get the mandelbrot iteration very simple; its the property that complex numbers can do a rotation and rescaling. So I think the 3rd dimension can't be a second complex dimension, and the multiplication and result shows that a second complex number like j will not be used (and makes no sense) because the result is more than multiplying 2 hypercomplex numbers (which are sums)! In 2D it works, but try to multiply quarternions - you can't get terms with x y and z in one component. This is impossible by squaring. I see that the 2D mandelbrot equations are still in there... But it looks like that the "triplex" is something that can't be understand in calling it hypercomplex... there must be somthing more/other... Title: Re: Triplex Algebra Post by: David Makin on December 06, 2009, 02:29:04 AM @bugman: There's a mistake on the Wikipedia page - you have the 3rd value for the multiply as sin(theta2+theta2).
Title: Re: Triplex Algebra Post by: Paolo Bonzini on December 06, 2009, 03:43:57 AM I fixed the mistake in Wikipedia. BTW, I think it can be called a hypercomplex number if the third axis is taken to have j^2=0 (or maybe not because unlike dual numbers, here you have to count z^2 when you compute the norm; these numbers are strange...). You can also say that (x,-y,-z) is the conjugate.
Also, here is a closed form expression for powers of the triplex numbers based on Chebyshev polynomials Tn(x) and Un-1(x). These give I initially assume that x^2+y^2+z^2 = 1. I express the angles in terms of arccos and use the Chebyshev polynomials: From this formula, the various pieces in http://www.fractalforums.com/index.php?action=dlattach;topic=742.0;attach=436;image (http://www.fractalforums.com/index.php?action=dlattach;topic=742.0;attach=436;image) should be more or less identifiable. Since (x,y,z) does not usually have unary modulus, you should divide the arguments by Title: Re: Triplex Algebra Post by: bugman on December 06, 2009, 06:05:09 AM Disclaimer: I'm not a mathematician, and I can't say exactly what constitutes an "alternative algebra" or what constitutes a "hypercomplex" number. I also haven't added anything to Wikipedia, but I am impressed with Paolo's contributions on this topic.
There are other ways of defining multiplication and power operators for the "triplex", and I am not entirely convinced that the method I outlined here is the best way. For example, I was wondering if applying the rotational matrix about the y-axis was really the most logical choice. I have been experimenting with some other rotations, but so far it hasn't produced a very good looking 3D Mandelbrot set. Of course, the most natural method of applying a single rotation about the axis that is perpendicular to both the x-axis and the point in question, reduces to the quaternion method with w = 0, which isn't very interesting. Title: Re: Triplex Algebra Post by: zee on December 06, 2009, 07:38:03 AM I think I got it!
There are maybe some small problems because this is not a full definition, but there is enought defined to derive the non-trigometric equation. The 3rd dimension j is a very complicated thing because i*j = -1 but jē is something else... Title: Re: Triplex Algebra Post by: Paolo Bonzini on December 06, 2009, 11:14:02 AM Heh, I don't really think it is a great contribution, at least I don't know really enough math to move it ahead. You can read on Wikipedia for alternative algebra, it's not hard. Hypercomplex is a bit over my head though. :-) I am not a mathematician either, I just dabble more in paper than in graphics.
Anyway, here is my little conjecture: :) It's not totally out of thin air. Since Of course you could just read the equalities from right to left and turn the conjecture into a definition :) but proving the above (especially Title: Re: Triplex Algebra Post by: Paolo Bonzini on December 06, 2009, 04:51:27 PM And one more thing. I said above that (0,0,1)^2=0, but that's not true. I was trusting the Cartesian formulas too much, but they are clearly undefined if one of the rho_xy is zero, and the simplification is not at all trivial.
In particular: for (0,0,z1)*(0,0,z2), the result is (-z1 z2,0,0). This is particularly important because it basically gives the required proof for the value of e^(0,0,z). The idea is that powers alternate between (0,0,(-1)^n z^2n+1) and ((-1)^n z^2n+2,0,0), so that the series can be split to sines and cosines. for (0,0,z1)*(x2,y2,z2), I got It may mean that we have abandoned of power associativity too (bad!), or maybe we're just complicating the formulas unnecessarily and the real underlying space is 4D, such as As far as fractals are concerned, it's not too bad because there is a definition of power that can be used for Mandelbrot and Newton fractals at least! Also, the results seem to vary in sign only if you change cartesian vs. trigonometric computation of powers, so it is fine if the non-trig formulas are used for drawing! (After this detour, the third special case is trivial from commutativity). Title: Re: Triplex Algebra Post by: zee on December 06, 2009, 07:07:21 PM I'm not a mathematician, too, but a theoretical physicist and I want to write my master thesis about that. I'll try to define the whole set mathematically.
I think my solution is okay (providet that the equations I derived are correct) because its more than only using math till it works; There is an idea that says the 3rd basis is not only a hypercomplex basis but it's the (normalized) rotation of the 1st and 2nd coordinate (the 2d complex number) because it has to know the first rotation. I think that makes much sense! http://www.inlage.com/download/triplex.pdf (http://www.inlage.com/download/triplex.pdf) EDIT: I like to call Triplex a "Spherical Complex Number" Title: Re: Triplex Algebra Post by: bugman on December 06, 2009, 07:24:19 PM Perhaps a better title for this thread would have been "Triplex Arithmetic"?
Title: Re: Triplex Algebra Post by: Paolo Bonzini on December 06, 2009, 09:25:33 PM I'm not a mathematician, too, but a theoretical physicist and I want to write my master thesis about that. I'll try to define the whole set mathematically. That would be really cool. Good luck! It's more than only using math till it works LOL :-) I hope it's not a totally accurate definition of what I'm doing (though it's close). Note however that j^2=-1, it's just not clear from the Cartesian formulas. My impression is that any time you move away from the trig definition you are complicating your life with these numbers. It may be more accurate to first define as much as possible on spherical coordinates (since even things like e^x and ln x seem to work), and then define the Cartesian formulas more or less qualitatively (e.g. does the cartesian multiplication preserve modulus? what about the angles?) etc. The bare minimum that you need to get the moduli of polynomials i.e. to draw fractals. Having done this, extensions to >3D are probably much less complex, ehm, complicated. However, even though with fractals things seems to mostly work, a serious treatment of the topic should also understand why... Title: Re: Triplex Algebra Post by: bugman on December 06, 2009, 10:06:36 PM Here is the solution for the exponential function:
Title: Re: Triplex Algebra Post by: Paolo Bonzini on December 06, 2009, 10:09:58 PM OK, I think I found the exponential function, but I'm not sure how to check it yet... Can you explain the derivation? Looks pretty different from mine...Title: Re: Triplex Algebra Post by: zee on December 06, 2009, 11:10:28 PM Note however that j^2=-1, it's just not clear from the Cartesian formulas. Why j^2 must be -1? Okay, this would explain calling it hypercomplex but I think that can't work to get those equations! (and I tried a lot of things) In my definition it's something else BECAUSE of the imaginary IN the imaginary! If you calculate j^2 with my definition you'll get the -1 but not alone... and we should remember that if j is the 3rd dimension, every number has an own 3rd direction! So are we talking about I think I have to ask: Did you read and understood what I wrote down? And do you see that the 3rd dimension must be something more complex than a definition of a basis such as quarternions? Title: Re: Triplex Algebra Post by: David Makin on December 06, 2009, 11:38:56 PM Perhaps someone reading this thread can clear up an issue related to the non-trig calculations.
I'm using a mix of complex and real to calculate the formula, in the case below for the "-sine" version (first iteration initial value of magn is zero): r = cabs(zri) magn = sqrt(magn)^@mpwr zjk = r + flip(zj) if r>0.0 zri = (zri/r)^@mpwr endif if (ph=cabs(zjk))>0.0 zjk = (zjk/ph)^@mpwr endif zj = cj - magn*imag(zjk) zri = magn*real(zjk)*zri + cri magn = |zri| + sqr(zj) where zri, zjk, and cri are complex and the rest are real. cabs(zri) is sqrt(x^2 + y^2) where zri is (x+i*y) and |zri| is just x^2+y^2 You'll note that when zri is (0,0) and when zjk is (0,0) then I assume the sine/cosine calculation done by raising the normalised complex value to a power should return (0,0) i.e. it leaves the values unchanged. It would be equally valid to return (1,0) - would that be a better option mathematically speaking ? Title: Re: Triplex Algebra Post by: Paolo Bonzini on December 07, 2009, 12:33:42 AM Note however that j^2=-1, it's just not clear from the Cartesian formulas. Why j^2 must be -1? [...] are we talking about Sorry, I was talking about one particular j, the one that is not associated to any i (because it has 0+0i as the complex part). In spherical coordinates (0,0,1) is (1,0,pi/2) so j^2=(1,0,pi) which becomes (-1,0,0) when converted back to cartesian. I understood your definition and I liked it, still it does not explain (AFAICT) what happens when the complex parts are zero, hence my observation above. If you can explain that, that'd be great. You also have a bit of handwaving in how the j's cancel with z's (z's are reals, so I didn't really understand that part), but that's fine for now. I still think that it is better to milk as much as possible from the spherical definitions first (including an exponential and logarithm), though. Cartesian representation is turning out to be much more tricky. Perhaps someone reading this thread can clear up an issue related to the non-trig calculations. You'll note that when zri is (0,0) and when zjk is (0,0) then I assume the sine/cosine calculation done by raising the normalised complex value to a power should return (0,0) i.e. it leaves the values unchanged. It would be equally valid to return (1,0) - would that be a better option mathematically speaking ? I don't know for the sign-reversed calculation, but I gave above the correct formulas for zri and/or zjk being (0,0): for (0,0,z1)*(0,0,z2), the result is (-z1 z2,0,0). for (0,0,z1)*(x2,y2,z2), I got (-z1 z2 x2 / rho2, -z1 z2 y2 / rho2, z1 rho2) where rho2 is sqrt(x2^2+y2^2). The third special case is trivial due to commutativity. It should be easy to reconcile the difference between these definitions and the sign-reversal. BTW, I encountered some inconsistencies here, so I suggest that you compute z^n directly rather than through repeated multiplication. Title: Re: Triplex Algebra Post by: zee on December 07, 2009, 12:51:33 AM In spherical coordinates (0,0,1) is (1,0,pi/2) so j^2=(1,0,pi) which becomes (-1,0,0) when converted back to cartesian. How can you follow this? Is everybody convinced that the equations (by wikipedia and bugman) for triplex multilplication are correct? So it's easy to show that j^2 can't be -1: like in other hypercomplex numbers. But the "from heaven falling" rule for Triplex multiplication says that the first component have to be: This is something other I'll work to understand that problem in the origins. I just started yesterday to think about that equations. Maybe I should write my program on and try to compare cartesian values with the spherical, too. But I didn't occupy myself very much with simulating 3d mandelbulbs after understanding that it works. I've got an 3d array with for example 1 and 0 and don't know how to get the surface with triangles instead of showing voxels. (I'm creating an .obj file and render with Bryce). I'm sorry, this is not the topic but I think I'll create a topic or read something about that and I hope you can help me a lot if I'm welcome in this amazing active community! Title: Re: Triplex Algebra Post by: Paolo Bonzini on December 07, 2009, 01:13:46 AM Is everybody convinced that the equations (by wikipedia and bugman) for triplex multilplication are correct? Yes, they are (at least as correct as they can be, given the issue with range of elevation that I mentioned earlier). But if the x and y is zero, they are undefined and you need a different definition. BTW on wikipedia there's no reference to the cartesian formulas (luckily; they would be likely copied without all these details...). But the "from heaven falling" rule for Triplex multiplication says that the first component have to be: (x^2 - y^2) (1 - \frac{z^2}{r^2}) Basically, the (x^2 - y^2) * 1 factor is eliminated. But (x^2 - y^2) / (r^2) is 0 / 0, so you have to find its value in some way. I couldn't compute it with limits, but I could compute it with trigonometry and its value is 1. So you get that the first component of (0,0,1)^2 is -z^2 = -1. The formulas do not fall from heaven. They come from the spherical coordinate definition of powers and multiplications, and can be derived from there. Try doing that on paper (it's not totally trivial, but since you know what the result must look like... ;-) ). Note that I've written some quick Maxima functions, but no 3D stuff. I'm looking at it only from a theoretic point of view. I think we can continue discussing here in this topic. Title: Re: Triplex Algebra Post by: David Makin on December 07, 2009, 01:47:21 AM Perhaps someone reading this thread can clear up an issue related to the non-trig calculations. You'll note that when zri is (0,0) and when zjk is (0,0) then I assume the sine/cosine calculation done by raising the normalised complex value to a power should return (0,0) i.e. it leaves the values unchanged. It would be equally valid to return (1,0) - would that be a better option mathematically speaking ? I don't know for the sign-reversed calculation, but I gave above the correct formulas for zri and/or zjk being (0,0): I think I deduce from that, that the answer is yes I should use (1,0) instead of (0,0) when normalising (0,0) - I guess the answer was in the question anyway since if it's normalised then the magnitude *has* to be 1 :) Title: Re: Triplex Algebra Post by: Paolo Bonzini on December 07, 2009, 01:54:05 AM Perhaps someone reading this thread can clear up an issue related to the non-trig calculations. You'll note that when zri is (0,0) and when zjk is (0,0) then I assume the sine/cosine calculation done by raising the normalised complex value to a power should return (0,0) i.e. it leaves the values unchanged. It would be equally valid to return (1,0) - would that be a better option mathematically speaking ? I think I deduce from that, that the answer is yes I should use (1,0) instead of (0,0) when normalising (0,0) - I guess the answer was in the question anyway since if it's normalised then the magnitude *has* to be 1 :) I'm not sure. You should probably use an if-then-else and use totally different formulas when zri and/or zjk are zero, I don't think normalising would work. Title: Re: Triplex Algebra Post by: zee on December 07, 2009, 02:01:00 AM There is an error in my PDF because that equations:
http://www.fractalforums.com/3d-fractal-generation/true-3d-mandlebrot-type-fractal/msg8680/#msg8680 there r is only the length of the (x,y) vector but in Wikipedia and in this thread bugman wrote it's the length of the (x,y,z) vector. I wanted so compare the results by myself but I crashed my program :( But please tell me what equation is correct? I think I did it without the z^2 and got the same result like with the trigonometric equations... Title: Re: Triplex Algebra Post by: David Makin on December 07, 2009, 02:04:03 AM Perhaps someone reading this thread can clear up an issue related to the non-trig calculations. You'll note that when zri is (0,0) and when zjk is (0,0) then I assume the sine/cosine calculation done by raising the normalised complex value to a power should return (0,0) i.e. it leaves the values unchanged. It would be equally valid to return (1,0) - would that be a better option mathematically speaking ? I think I deduce from that, that the answer is yes I should use (1,0) instead of (0,0) when normalising (0,0) - I guess the answer was in the question anyway since if it's normalised then the magnitude *has* to be 1 :) I'm not sure. You should probably use an if-then-else and use totally different formulas when zri and/or zjk are zero, I don't think normalising would work. Actually I just noticed that according to your version above it looks like I should have zri/mag(zri) as (-1,0) when zri is (0,0) :) Title: Re: Triplex Algebra Post by: David Makin on December 07, 2009, 02:10:33 AM There is an error in my PDF because that equations: http://www.fractalforums.com/3d-fractal-generation/true-3d-mandlebrot-type-fractal/msg8680/#msg8680 there r is only the length of the (x,y) vector but in Wikipedia and in this thread bugman wrote it's the length of the (x,y,z) vector. I wanted so compare the results by myself but I crashed my program :( But please tell me what equation is correct? I think I did it without the z^2 and got the same result like with the trigonometric equations BUT if there is no z^2 you'll get a sigularity at (0,0,1) and I think your simulations say something others... There are 2 "r's" in the link you quoted, one is in the trig version and is sqrt(x^2+y^2+z^2) (that's plain R) and the other is used in the non-trig versions of the formula and that's sqrt(x^2 + y^2) (that's Rxy). Title: Re: Triplex Algebra Post by: zee on December 07, 2009, 02:13:36 AM I'm sorry - the definition in this thread is correct but
http://en.wikipedia.org/wiki/Hypercomplex_number#Three-dimensional_complex_numbers_based_on_spherical_coordinates is missing a second definition for r? Title: Re: Triplex Algebra Post by: David Makin on December 07, 2009, 02:19:55 AM I'm sorry - the definition in this thread is correct but http://en.wikipedia.org/wiki/Hypercomplex_number#Three-dimensional_complex_numbers_based_on_spherical_coordinates is missing a second definition for r? Hmmm I should be able to work it out but I'm too lazy - you are correct that it is unclear as to what r1 and r2 should be but all the Rk's are sqrt(x^2+y^2+z^2). Title: Re: Triplex Algebra Post by: Paolo Bonzini on December 07, 2009, 02:24:28 AM I'm sorry - the definition in this thread is correct but http://en.wikipedia.org/wiki/Hypercomplex_number#Three-dimensional_complex_numbers_based_on_spherical_coordinates is missing a second definition for r? Yeah, I removed the Cartesian definition from wikipedia. I was sure it wasn't there but I was wrong. :-) The cartesian definition indeed uses only sqrt(x^2+y^2), while the trig definition uses sqrt(x^2+y^2+z^2). In the non-trigometric equations ((0,0,1)2 = (0,0,0)! Not (0,0,0), but rather (undefined,undefined,0). But I fell into that trap too, so I understand your (and David's) surprise.Actually I just noticed that according to your version above it looks like I should have zri/mag(zri) as (-1,0) when zri is (0,0) :) Hmm, no you should have (-1,0) as the magnitude of the complex part of the product when both zri and zjk are (0,0). Here is my Maxima code: r(a):=sqrt(a[1]^2+a[2]^2); Of course you should use comparison with a very small value rather than 0 (I need 0 because I'm doing symbolic calculations). Going to bed now. :-) Title: Re: Triplex Algebra Post by: zee on December 07, 2009, 02:29:50 AM I forgot to say:
With falling from heaven I meant that I bugman wrote to me he got that equation with mathematica by the trigometric but there is no evidence why it should be that. They didn't fall from heaven for sure because they work! In the non-trigometric equations ((0,0,1)^2 = (0,0,0)! But that j^2 must be -1 is not a result of this if we assume that j is something like a second complex number/dimension/basis. But it's amazing that j^2 seems to be zero. Title: Re: Triplex Algebra Post by: David Makin on December 07, 2009, 02:35:56 AM Actually I just noticed that according to your version above it looks like I should have zri/mag(zri) as (-1,0) when zri is (0,0) :) Hmm, no you should have (-1,0) as the magnitude of the complex part of the product when both zri and zjk are (0,0). Here is my Maxima code: r(a):=sqrt(a[1]^2+a[2]^2); Of course you should use comparison with a very small value rather than 0 (I need 0 because I'm doing symbolic calculations). Going to bed now. :-) Looking back at the trig, I'm still not sure.... will think about it more :) When my zri is (0,0) if I use the normalised value as (1,0) then for the full triplex: (0,0,z)^2 = (-z^2,0,0) (0,0,z)^3 = (0,0,-z^3) (0,0,z)^4 = (z^4,0,0) (0,0,z)^5 = (0,0,z^5) etc. Is that correct ? I think the only real alternative is having the normalised value of zri as (0,0) if zri is (0,0) but that gives (0,0,z)^p = (0,0,0). Title: Re: Triplex Algebra Post by: zee on December 07, 2009, 03:12:50 AM I think I got the solution for j^2 by my definition without changing it:
For x = 0 and y = 0: follows j = 0! So j^2 is also zero. What means that x = y = 0 is something like a limiting case of the "Spherical Complex Numbers" to Hypercomplex Numbers. And I think you already know For z = 0: Its the limiting case to Complex Numbers (0,0,1)^2 = (0,0,0) is no problem of my definition because j depents on x and y! (and I think (0,0,1)^2 = (0,0,0) must be correct because 0*infinity = 0) Title: Re: Triplex Algebra Post by: David Makin on December 07, 2009, 04:47:19 AM I just had a look around for definitions of atan2(0,0) and the choices seem to be 0 or undefined or +0, pi, -0, -pi (if using signed zero).
Basically I think assuming atan2(0,0) is zero is the best option which gives us (1,0) for my normalised zri i.e. when both x and y are zero then we have 1 for the cos(n*theta) and 0 for sin(n*thete). Also using (0,0) for my normalised zri would make all (0,0,z)^p zero which in fractal terms would give us an infinite line (the z axis) as part of the attractor in some Julia sets, something I think should be avoided :) Title: Re: Triplex Algebra Post by: Paolo Bonzini on December 07, 2009, 10:21:06 AM (and I think (0,0,1)^2 = (0,0,0) must be correct because 0*infinity = 0) No, 0*infinity is not zero. It's undefined and depends on the particular cases. That's calculus 101. Please try to understand that before going on. I went through the same, please accept my advice... Another example why (0,0,1)^2 = 0 is not good, is that in that case solving z^N=1 with Newton's method gives a division by zero (see my post in Mandelbrot Renderings, before I "saw the light" :) ). If you set (0,0,1)^2=-1, it works fine. Also using (0,0) for my normalised zri would make all (0,0,z)^p zero which in fractal terms would give us an infinite line (the z axis) as part of the attractor in some Julia sets, something I think should be avoided :) Agreed. But, have you tried my implementation? It should be easy to turn it into the complex+real form that you have. I think a Newton fractal would be a good test for the formulas. If it gives you lines or something like that, as you said, the formulas are wrong... Title: Re: Triplex Algebra Post by: David Makin on December 07, 2009, 12:49:05 PM Also using (0,0) for my normalised zri would make all (0,0,z)^p zero which in fractal terms would give us an infinite line (the z axis) as part of the attractor in some Julia sets, something I think should be avoided :) Agreed. But, have you tried my implementation? It should be easy to turn it into the complex+real form that you have. I think a Newton fractal would be a good test for the formulas. If it gives you lines or something like that, as you said, the formulas are wrong... The problem with your non-trig version is that it's based on a*a*a... rather than a^p - this is fine for integer powers but for non-integer powers we need the a^p version. Also I think the a^p version matches the trig version and the a*a*a.... doesn't. If you can come up with a method for a^p that matches the equivalent a*a*a..... (or vice-versa) then I think you'll have made a major breakthrough ;) Also which actually matches your investigation into the exponent formula - the a^p or the a*a*a.... ? (I'm thinking that it's the a^p version :) Title: Re: Triplex Algebra Post by: Paolo Bonzini on December 07, 2009, 01:38:12 PM Also which actually matches your investigation into the exponent formula - the a^p or the a*a*a.... ? (I'm thinking that it's the a^p version :) If you compute a^n, it matches the spherical coordinates exponentiation formula. If you compute a*a*a, sometimes the first two components come out with the wrong signs (both of them). a^n is easy for zri=0: it is the same as raising a pure imaginary to a power: (0,0,a)^1 = (0,0,a) (0,0,a)^2 = (-a^2,0,0) (0,0,a)^3 = (0,0,-a^3) (0,0,a)^4 = (a^4,0,0) (0,0,a)^5 = (0,0,a^5) and so on. For zri not zero you can use Paul's formulas at the head of this topic. Title: Re: Triplex Algebra Post by: zee on December 07, 2009, 06:16:36 PM was the equation I tried to calculate because it stands in the top of this thread or here: http://www.fractalforums.com/3d-fractal-generation/true-3d-mandlebrot-type-fractal/?action=dlattach;attach=436;image - but its false, isn't it? I get an other result than by using the trig equation If you already said this I'm sorry Title: Re: Triplex Algebra Post by: Paolo Bonzini on December 07, 2009, 06:24:55 PM <Quoted Image Removed> Once more: these formula are okay only as long as their input does not make them undefined. If x=y=0 you get a division by zero, not (0,0,0).was the equation I tried to calculate because it stands in the top of this thread - but its false, isn't it? Then, you have to solve the indetermination. Solving it can be done by plugging spherical coordinates (z,0,pi/2) into the trig formula, and this gives spherical coordinates (z^2, 0, pi) which in cartesian form are (-z^2,0,0). I also stumbled on this problem, but now that I have explained it (multiple times), it shouldn't be hard. If you do not understand what I mean by 0/0 and indetermination, look up limits in a basic (high-school level) calculus book. (Note that limits do not help solving this, but they should help you understanding). Title: Re: Triplex Algebra Post by: zee on December 07, 2009, 06:39:30 PM I'm sorry, I didn't saw the magnitude of this problem, because I though I can use it like the trig equations (and my C# didn't said that its dividing by zero)
Title: Re: Triplex Algebra Post by: David Makin on December 07, 2009, 08:37:07 PM Just to add the obvious - that using the trig version just hides the atan2(0,0) issue and the actual results will vary from one implimentation to another (hardware and software).
According to Wiki Intel's FPU should return +/-0 or +/-pi depending on the signs of the zeroes, but in fact when I check atan2(0+flip(0)) in Ultra Fractal it actually returns -pi/2 !! I'd be interested if anyone doing FPU coding can confirm the Wiki - and is the case the same for ARM ? Also it would be interesting to know what GPU/CUDA return for atan2(0,0) :) Obviously even the trig version needs special casing for (0,0,z) if it's to be consistent. Title: Re: Triplex Algebra Post by: Paolo Bonzini on December 07, 2009, 09:15:38 PM Just to add the obvious - that using the trig version just hides the atan2(0,0) issue and the actual results will vary from one implimentation to another (hardware and software). According to Wiki Intel's FPU should return +/-0 or +/-pi depending on the signs of the zeroes, but in fact when I check atan2(0+flip(0)) in Ultra Fractal it actually returns -pi/2 !! That's true, and it's a bit ugly indeed. It's also a division by zero problem, just like with non-trig versions. By using the trig version for the power, you can just check zri though, and special case it as mentioned earlier. For multiplication it's a bit worse, but I think normalizing to 0.0 should be good (signed zeros appear only if you do 1/-Inf which shouldn't happen for Mandelbulbs...). Title: Re: Triplex Algebra Post by: zee on December 07, 2009, 11:01:56 PM Did you take a look at the "Epsilon-neighborhood " of (0,0,z)^2 ?
with So the singularity will look like: This is really hard! I hope you see the problem that (0,0, z)^2 is only one number if z=0! Else its always an other number, depending from which (x,y) direction you are coming! Title: Re: Triplex Algebra Post by: Paolo Bonzini on December 08, 2009, 01:38:24 AM Did you take a look at the "Epsilon-neighborhood " of (0,0,z)^2 ? Uhm, no. :-) Or actually, I tried using limits but discarded them quickly... Good idea tabulating it like that (though of course there are infinite directions, not just those eight). It's, at the very least, interesting. ;-) It's related more or less to the fact that atan2(0,0) is undefined, I guess. I hope you see the problem that (0,0, z)^2 is only one number if z=0! Else its always an other number, depending from which (x,y) direction you are coming! I am still not certain that it means that. It may mean, simply, that (x,y,z)^2 is not continuous around the singularity, except on the y=0 line. I don't know enough math to understand what this means, and it's hard to visualize it, too many dimensions!(BTW, your table is inverted: (eps,0,z) denotes the horizontal direction, not the vertical direction. Once you fix that I'll delete this line!) :-) Before going on, I suggest you take a look at http://www.fractalforums.com/theory/the-real-math-of-the-mandelbulb/ Title: Re: Triplex Algebra Post by: Paolo Bonzini on December 09, 2009, 02:42:19 AM All,
I started working on a paper summing up the current state of the Mandelbulb theory. I'm pretty sure it is a bit biased and collaboration is not easy, nevertheless I am open to contributions from anyone. You can read the current PDF at http://github.com/bonzini/mbulb/raw/master/mbulb.pdf and, if you have or create a github account, you can fork the repository at http://github.com/bonzini/mbulb The plan is: 1) triplex numbers: what is necessary to draw nice pictures (more or less done); 2) quaternion representation of the Mandelbrot set (WIP); 3) back to triplex numbers: see if they make more sense now :-) (planned); 4) extensions to 4D and beyond (maybe); (I won't be doing any consulting on git and LaTeX, but there's plenty of material around on both). Title: Re: Triplex Algebra Post by: David Makin on December 09, 2009, 02:55:23 AM All, I started working on a paper summing up the current state of the Mandelbulb theory. I'm pretty sure it is a bit biased and collaboration is not easy, nevertheless I am open to contributions from anyone. You can read the current PDF at http://github.com/bonzini/mbulb/raw/master/mbulb.pdf and, if you have or create a github account, you can fork the repository at http://github.com/bonzini/mbulb The plan is: 1) triplex numbers: what is necessary to draw nice pictures (more or less done); 2) quaternion representation of the Mandelbrot set (WIP); 3) back to triplex numbers: see if they make more sense now :-) (planned); 4) extensions to 4D and beyond (maybe); (I won't be doing any consulting on git and LaTeX, but there's plenty of material around on both). Hi Paolo, did you see Paul's (bugman's) earlier version of the Mandelbulb extended to 4D ? (I think it's somewhere in the original "true 3D" Mandelbrot thread). Title: Re: Triplex Algebra Post by: Paolo Bonzini on December 09, 2009, 02:57:49 AM Hi Paolo, did you see Paul's (bugman's) earlier version of the Mandelbulb extended to 4D ? (I think it's somewhere in the original "true 3D" Mandelbrot thread). Hmm, no, I saw the Hopf map though. Title: Re: Triplex Algebra Post by: David Makin on December 09, 2009, 03:18:21 AM Hi Paolo, did you see Paul's (bugman's) earlier version of the Mandelbulb extended to 4D ? (I think it's somewhere in the original "true 3D" Mandelbrot thread). Hmm, no, I saw the Hopf map though. I didn't realise how far back it was, anyway it's here: http://www.fractalforums.com/3d-fractal-generation/true-3d-mandlebrot-type-fractal/msg7711/#msg7711 (http://www.fractalforums.com/3d-fractal-generation/true-3d-mandlebrot-type-fractal/msg7711/#msg7711) Title: Re: Triplex Algebra Post by: cbuchner1 on December 09, 2009, 02:37:47 PM Hi,
rather than opening a new thread for this trivial idea, I thought I could post it into this thread and ask whether or not this has been considered before. This is using euclidean coordinates. Let us pick an arbitrary unit vector (0,0,1), let's call it the pole vector (north pole vector, as it points upwards in my coordinate system). The coordinate origin (0,0,0), the end point of the pole vector and the point z span up a plane in space. Define the squaring of z such that it entirely takes place in this plane, in total analogy to the 2D complex multiplication. This would also work nicely with higher exponents for z. In other words (not necessarily the most efficient for an actual implementation): Rotate the world space such that above mentioned plane comes to rest in the x,y plane, perform a complex 2D multiplication in the x,y plane, and rotate the world space back. If I am not mistaken, the original Mandelbrot set is contained in the x,y plane. This is so trivial, it's probably been thought of already. Would the resulting fractals look fractal at all? ;) Christian Title: Re: Triplex Algebra Post by: Paolo Bonzini on December 09, 2009, 04:38:05 PM My wild guess is that it "lathes" the Mandelbrot set around its axis...
Title: Re: Triplex Algebra Post by: fractalrebel on December 09, 2009, 05:57:21 PM Hi everyone,
I may have missed it somewhere in this long thread, but is there a treatment for derivatives (both 1st and 2nd) somewhere in the thread? Title: Re: Triplex Algebra Post by: David Makin on December 09, 2009, 10:47:38 PM Hi everyone, I may have missed it somewhere in this long thread, but is there a treatment for derivatives (both 1st and 2nd) somewhere in the thread? The first derivative as works for the analytical DE is given in several places in the forums... The second was mentioned around here: http://www.fractalforums.com/3d-fractal-generation/true-3d-mandlebrot-type-fractal/msg8694/#msg8694 (http://www.fractalforums.com/3d-fractal-generation/true-3d-mandlebrot-type-fractal/msg8694/#msg8694) Title: Re: Triplex Algebra Post by: cbuchner1 on December 09, 2009, 11:47:54 PM My wild guess is that it "lathes" the Mandelbrot set around its axis... I am so glad that you are wrong. The 4 hours I invested paid off. I modified a CUDA based voxel renderer, however the computation of the iterative formula is fully CPU based - and slow. I have to make a correction to my method description above. The pole vector must point in the direction of the x axis, then you get the Mandelbrot in the x,y plane. The results when you point it someplace else are also interesting, but I wanted to see a 3D mandelbrot first. I am in fact getting the familiar mandelbrot shape, but in three dimensions. It's probably not the extraordinary sensational thing that you've all been waiting for because the fractal detail is concentrated mostly in the x,y plane as far as I can tell. I am currently trying to get a voxel render of 512x512x512 resolution done and may record a youtube clip or something. Here is a 3D voxelbrot previews. (http://img42.imageshack.us/img42/2805/voxelfront.jpg) Christian Title: Re: Triplex Algebra Post by: kram1032 on December 10, 2009, 12:23:48 AM congratulation, you found the 3D Mandel-heart :D
Title: Re: Triplex Algebra Post by: cbuchner1 on December 10, 2009, 12:49:17 AM congratulation, you found the 3D Mandel-heart :D I am going to post more images in the Mandelbulb Renders forum - in particular what happens when one points the pole vector in some other direction. Title: Re: Triplex Algebra Post by: cbuchner1 on December 11, 2009, 03:04:29 AM My wild guess is that it "lathes" the Mandelbrot set around its axis... I am so glad that you are wrong. How embarassing. You were right. The Mandelbrot is lathed around its axis. I should never again claim that someone is wrong so qickly. I must have made a severe mistake in the trigonometric code that performed the rotations. After I implemented a non-trigonometric version (based on some results I got with the help of a Mathematica trial version) I get this. Wonderfully lathed indeed. (http://img294.imageshack.us/img294/6845/lathedvoxel.jpg) Now i need to investigate what kind of malfunction I have in my approach to rotation because indeed it gave nicer results ;) Title: Re: Triplex Algebra Post by: Paolo Bonzini on December 11, 2009, 12:42:04 PM My wild guess is that it "lathes" the Mandelbrot set around its axis... I am so glad that you are wrong. How embarassing. You were right. LOL, no problem at all! Talk about serendipity. :-) Title: Re: Triplex Algebra Post by: BradC on December 15, 2009, 02:39:21 AM Here is the solution for the exponential function: Awesome! I had Mathematica sum this in terms of x, y, z instead of r, theta, phi, and I got results that numerically match yours. I tested my results with 100k points where x, y, and z were randomly chosen between -4 and 4, and our answers always agreed to at least ~12 digits. In terms of x, y, z: Title: Re: Triplex Algebra Post by: David Makin on December 15, 2009, 03:12:30 AM Here is the solution for the exponential function: Awesome! I had Mathematica sum this in terms of x, y, z instead of r, theta, phi, and I got results that numerically match yours. I tested my results with 100k points where x, y, and z were randomly chosen between -4 and 4, and our answers always agreed to at least ~12 digits. In terms of x, y, z: Most excellent ! log() anybody ? Title: Re: Triplex Algebra Post by: BradC on December 15, 2009, 07:36:15 AM Here's what I get for the natural log:
where I derived this by analogy with the series expansion for ln(z) about z=1, which is o o Raising to power o For multiplying by o Sum each component of the triplex separately. o Feed the whole mess to Mathematica and have it simplify the result as much as possible. I tested these results by comparing a large number of random points within 1/4 unit of (1,0,0) to this triplex series truncated to 1000 terms. The results all matched to 16 digits. I only used sample points near (1,0,0) because this series has a limited radius of convergence. Using this formula, we get the following: Unfortunately, for most triplex numbers, this log formula and the exp formulas above don't appear to be inverses of one another. Title: Re: Triplex Algebra Post by: bugman on December 15, 2009, 07:52:32 PM Here is the solution for the exponential function: Awesome! I had Mathematica sum this in terms of x, y, z instead of r, theta, phi, and I got results that numerically match yours. I tested my results with 100k points where x, y, and z were randomly chosen between -4 and 4, and our answers always agreed to at least ~12 digits. In terms of x, y, z: Good work BradC. I just tried to further simplify my formula and indeed it exactly reduces to your formula. I don't know why I didn't see this before. Here is the simplified formula using the notation from my original formula: Title: Re: Triplex Algebra Post by: BradC on December 16, 2009, 02:23:53 AM I've done some numerical experiments regarding a triplex^triplex power function...
If we identify the complex number Note that since triplex multiplication is commutative, we don't have the same ambiguity when defining the power function that quaternions have (see http://www.fractalforums.com/theory/rasing-a-quaternion-to-a-quaternionic-power/ (http://www.fractalforums.com/theory/rasing-a-quaternion-to-a-quaternionic-power/)). Title: Re: Triplex Algebra Post by: BradC on December 16, 2009, 02:31:33 AM A picture of the triplex exponential map:
Title: Re: Triplex Algebra Post by: cbuchner1 on December 16, 2009, 02:38:22 AM A picture of the triplex exponential map: Beautiful! Title: Re: Triplex Algebra Post by: kram1032 on December 16, 2009, 04:56:31 PM very nice map which looks pretty much analogous :)
Title: Re: Triplex Algebra Post by: bugman on December 16, 2009, 06:24:37 PM That is really interesting. I would like to examine your formulas when I have more time. I also found a formula for ln({x, y, z}} and sin({x, y, z}) but they were very long and I haven't had time to see if I could simplify them.
Title: Re: Triplex Algebra Post by: kram1032 on December 16, 2009, 07:33:36 PM ln is the only thing that would be missing to have a nice formula for "true" exponentiation :)
Title: Re: Triplex Algebra Post by: David Makin on December 16, 2009, 08:10:06 PM ln is the only thing that would be missing to have a nice formula for "true" exponentiation :) I think you missed this ?http://www.fractalforums.com/theory/triplex-algebra/msg9962/#msg9962 (http://www.fractalforums.com/theory/triplex-algebra/msg9962/#msg9962) Title: Re: Triplex Algebra Post by: kram1032 on December 16, 2009, 08:34:26 PM wait...
Quote Unfortunately, for most triplex numbers, this log formula and the exp formulas above don't appear to be inverses of one another. That could be a problem...Or was that an error? Title: Re: Triplex Algebra Post by: David Makin on December 16, 2009, 08:41:40 PM wait... Quote Unfortunately, for most triplex numbers, this log formula and the exp formulas above don't appear to be inverses of one another. That could be a problem...Or was that an error? I think it's probably correct, given that for fully triplex numbers (z*z)*z != z^3 :) Title: Re: Triplex Algebra Post by: BradC on December 16, 2009, 08:52:21 PM Quote Unfortunately, for most triplex numbers, this log formula and the exp formulas above don't appear to be inverses of one another. That could be a problem...Or was that an error? I think that's just the way it comes out. If you use power series to define exp and ln for triplex numbers, then the resulting functions don't turn out to be inverses of each other. For example, Title: Re: Triplex Algebra Post by: kram1032 on December 16, 2009, 09:05:48 PM hmmm...
could you do the plane-analogy you did for e^z with ln(z), ln(e^z) and e^(ln(z)) ? :) this could visually express the error :) Title: Re: Triplex Algebra Post by: bugman on December 16, 2009, 09:59:28 PM I expect the log of the triplex to have an infinite number of valid solutions because that is true of the complex case:
"every nonzero complex number z has infinitely many logarithms" http://en.wikipedia.org/wiki/Complex_logarithm "If z = re^iθ with r > 0 (polar form), then w = ln r + iθ is one logarithm of z; adding integer multiples of 2πi gives all the others" Title: Re: Triplex Algebra Post by: kram1032 on December 16, 2009, 10:12:44 PM yeah, an infinite number of solutions but with a fixed distance.
And there is one solution considered as main solution... Title: Re: Triplex Algebra Post by: BradC on December 16, 2009, 10:59:44 PM I expect the log of the triplex to have an infinite number of valid solutions because that is true of the complex case: That's true, but exp(ln(z)) in particular would ideally still reduce to the identity function because in the complex case, all the various possible branches of ln all get mapped to the same point by exp, since exp is periodic with period 2 pi i. I wonder if it would be possible, rather than defining ln as a series, to define it by solving (a,b,c)=exp(x,y,z) for x, y, and z. It looks hard, and Mathematica (32-bit) ran out of memory. Title: Re: Triplex Algebra Post by: BradC on December 17, 2009, 08:02:23 AM The "z <- exp(z) + c" fractal looks kinda like stretched foam outside of the xy-plane. :/ My ray tracer couldn't deal with this one so I had to resort to animating 2D slices. The slices are parallel to the xy-plane:
(http://www.fractalforums.com/gallery/1/938_17_12_09_7_48_43.gif) I let z animate through the interval [0, 2 pi). Two frames stand out, z=0 and z=pi. The z=0 plane is just the complex exp fractal. The z=pi plane is unique because of the sin(z) factor in the 3rd component of the exp formula: with z=pi, this just maps everything into the xy-plane. Title: Re: Triplex Algebra Post by: Snakehand on December 17, 2009, 12:01:11 PM A picture of the triplex exponential map: (http://www.fractalforums.com/index.php?action=dlattach;topic=2134.0;attach=850;image)I think this figure might explain how the isopotential surface of the power 8 bulb transforms from genus=0 (no holes) at 3 iteration, to being full of holes (genus > 0) at 4 iterations. The exact mechanism is still unclear, but I am somewhat less puzzled by this transformation now that I have seen this figure. Title: Re: Triplex Algebra Post by: kram1032 on December 17, 2009, 01:54:14 PM BradC could you do a triplex log picture as you did a triplex exponential one?
(and also a gif animation of the two other planes :)) Could be interesting :) Title: Re: Triplex Algebra Post by: vancefab on December 23, 2009, 05:26:00 PM I am confused why the standard quaternions confined to the three dimensional sphere don't work just fine for what you are doing. They are defined by:
a+b*i+c*j+d*k with i*j=k, j*k=i, k*i=j, and reversing the products negates the results and i*i=j*j=k*k=-1 and b^2 + c^2 +d^2 = 1. the idea is that the vector (b,c,d) is the axis of the rotation and a is the cosine of the angle. If you raise a single one to a power, you get the Chebyshev polynomials in the first term. If you multiply them together, after normalization, it produces the new axis and the new angle. Title: Re: Triplex Algebra Post by: BradC on December 23, 2009, 09:53:32 PM How do you mean exactly? If you mean that the rotations could be expressed as quaternions instead of rotation matrices Ry and Rz to derive this stuff, then I think you're right. I think Paolo Bonzini did something along these lines here http://www.fractalforums.com/theory/the-real-math-of-the-mandelbulb/
Title: Re: Triplex Algebra Post by: BradC on December 23, 2009, 10:03:46 PM BradC could you do a triplex log picture as you did a triplex exponential one? (and also a gif animation of the two other planes :)) The log formula posted above has some discontinuities in it that are making it hard to plot. They look like they're probably branch cuts. The exp formula had a discontinuity along the z-axis, but the log is more complicated... Title: Re: Triplex Algebra Post by: kram1032 on December 24, 2009, 11:44:27 AM so it basically looks like a mess?
And would a ln(exp(x,y,z)) or an exp(ln(x,y,z)) work? - in theory they should give x,y,z but you said they kinda don't... would be interesting to see the exact difference... Title: Re: Triplex Algebra Post by: fractalrebel on December 27, 2009, 08:34:49 PM Hi everyone,
In my Ultrafractal 5 library I have a fairly complete set of quaternion and hypercomplex functions. I am starting a project to build functions for triplex algebra. Simple power, multiplication and division functions are already in the library, as these are the ones I use to generate my UF 5 raytraced images. I am adding BradC's expoential and log functions, along with a triplex power function. There will actually be two triplex power functions since multiplication doesn't commute. Does anyone have thoughts of transcendental functions that use triplex variables? Title: Re: Triplex Algebra Post by: vancefab on December 27, 2009, 10:14:08 PM Yes, I meant that the quaternions could be used to express the rotations. I thought that there were comments that implied quaternions could not be used. It seems to me that not only can they be used but they simplify the notation and the computations significantly. I think they eliminate all the complicated trignometric formulas in the code and leave only multiplication, addition and square roots.
Title: Re: Triplex Algebra Post by: David Makin on December 28, 2009, 12:11:21 AM Hi everyone, In my Ultrafractal 5 library I have a fairly complete set of quaternion and hypercomplex functions. I am starting a project to build functions for triplex algebra. Simple power, multiplication and division functions are already in the library, as these are the ones I use to generate my UF 5 raytraced images. I am adding BradC's expoential and log functions, along with a triplex power function. There will actually be two triplex power functions since multiplication doesn't commute. Does anyone have thoughts of transcendental functions that use triplex variables? Hi Ron, but for the triplex functions multiplication does commute since to multiply you just multiply the magnitudes and sum the angles. Edit: Just to add that although it is commutative triplex multiplication is neither associative nor distributive and the triplex also suffers in that multiplication and division are generally not inverses of each other and apparently neither are log and exp. Title: Re: Triplex Algebra Post by: fractalrebel on December 28, 2009, 07:16:48 PM Hi Ron, but for the triplex functions multiplication does commute since to multiply you just multiply the magnitudes and sum the angles. Edit: Just to add that although it is commutative triplex multiplication is neither associative nor distributive and the triplex also suffers in that multiplication and division are generally not inverses of each other and apparently neither are log and exp. Right - my bad - brain cramp :D Title: Re: Triplex Algebra Post by: fractalrebel on December 29, 2009, 09:45:12 PM I have tried implementing the exp and ln triplex functions in order to raise a mandelbulb to a triplex power. Its possible I have a typo somethwere :'( but I am not getting images that are of much value.
Title: Re: Triplex Algebra Post by: fractalrebel on December 29, 2009, 10:04:52 PM I have tried implementing the exp and ln triplex functions in order to raise a mandelbulb to a triplex power. Its possible I have a typo somethwere :'( but I am not getting images that are of much value. Either its a typo or a result of the fact that the triplex exp and ln functions are not inverses of each other ::) Title: Re: Triplex Algebra Post by: kram1032 on December 30, 2009, 11:36:31 PM BradC:
Which sum did you use for ln? I'm not sure but Wolfram Alpha gives me several sums where only one seems to be fully defined and that one is pretty complex.... - a triplex one might actually require an even further extension of the definition and thus a whole new sum... Also, what exactly does mathematica return if you throw exp(ln(a,b,c)) on it and simplify the results? Or the other way round, ln(exp(a,b,c))? Title: Re: Triplex Algebra Post by: BradC on January 01, 2010, 09:45:46 PM BradC: Which sum did you use for ln? I used the series expansion at z=1 since it seems like a pretty simple one. See the second paragraph in http://www.fractalforums.com/theory/triplex-algebra/msg9962/#msg9962 (http://www.fractalforums.com/theory/triplex-algebra/msg9962/#msg9962) for details. Also, what exactly does mathematica return if you throw exp(ln(a,b,c)) on it and simplify the results? Or the other way round, ln(exp(a,b,c))? For both exp(ln(z)) and ln(exp(z)), it simplifies to something that's still really complicated - a few pages long when written out. Title: Re: Triplex Algebra Post by: kram1032 on January 04, 2010, 03:29:55 AM outch... lol
I'm not sure for mathematica as I don't have it but in case of wolfram alpha I noticed that for very complex results, I can simplify them quite some bits by hand (if you're willing to go through pages of maths-code and search for such spots lol) and then, if I put that hand-simplified code back into wolfram alpha, it magically simplifies that even furhter although it didn't find a simpler solution before.... log definitely is quite complex if you go out of the bounds of R+ so you might need to take care to use the correct sum (if you're unlucky, even find a totally new one) to correctly define the log.... :) look here (scroll down, click more) http://www.wolframalpha.com/input/?i=series+ln%28x%2By*i%29 you'll see that only two series expansions of log are defined for the whole complex plane directly. - and both need the log function themselves... maybe there are others, wolfram alpha isn't aware of... or the definitions aren't as strict as it claims them to be... but I'm afraid not :'( Title: Re: Triplex Algebra Post by: BradC on January 05, 2010, 11:22:07 PM I derived these formulas using Mathematica, and tested them with 1000 random points When z=0, these formulas match those for complex sin and cos: Title: Re: Triplex Algebra Post by: kram1032 on January 05, 2010, 11:43:50 PM nice, so now we can see a kind of triplex sine and/or cosine bulb :D
Title: Re: Triplex Algebra Post by: Timeroot on January 19, 2010, 04:32:13 AM How about when you square them and add? Do they equal 1? That would seem like an important property to me.
I was thinking that maybe the Triplex sine and cosine could be defined using some patterns in other functions. First off, Title: Re: Triplex Algebra Post by: Timeroot on January 20, 2010, 03:09:23 AM Okay, I was thinking some more, and I was just wondering what the agreed upon defintion(s) or exponentiation. This thread is tooo looong and messed up. As far as I can tell, if A and B are two three-dimensional numbers, then A^B=Result, where Result.Radius=A.Radius^B.X, Result.Theta=A.Theta*B.X + B.Theta, and Result.Phi=A.Theta*B.X + B.Theta. From what I hear, multiplication is commutative and associative, and is done by multiplying radii and adding angles. Addition is commutative and associative, and you add x, y, and z. In that case, cos should be defined just fine by using the regular imaginary-exponent formula above.
I'm wondering how feasible it is do define a derivative on the triplex volume. If one can, then that could give an alternative (or possibly confirmative) definition of the exponential function / trigonometric functions. It could even be used to define something like the Airy/Bessel functions... not that they'd be used very often in fractal formulas. Title: Re: Triplex Algebra Post by: David Makin on January 20, 2010, 02:16:10 PM Okay, I was thinking some more, and I was just wondering what the agreed upon defintion(s) or exponentiation. This thread is tooo looong and messed up. As far as I can tell, if A and B are two three-dimensional numbers, then A^B=Result, where Result.Radius=A.Radius^B.X, Result.Theta=A.Theta*B.X + B.Theta, and Result.Phi=A.Theta*B.X + B.Theta. From what I hear, multiplication is commutative and associative, and is done by multiplying radii and adding angles. Addition is commutative and associative, and you add x, y, and z. In that case, cos should be defined just fine by using the regular imaginary-exponent formula above. I'm wondering how feasible it is do define a derivative on the triplex volume. If one can, then that could give an alternative (or possibly confirmative) definition of the exponential function / trigonometric functions. It could even be used to define something like the Airy/Bessel functions... not that they'd be used very often in fractal formulas. Ermm - I think you'll find that multiplication is commutative but neither associative nor distributive. Also the multiply and divide are not inverses of each other and apparently neither are log() and exp(). Title: Re: Triplex Algebra Post by: Paolo Bonzini on January 20, 2010, 03:44:40 PM Sorry for pointing to my paper again, but Timeroot is somewhat correct about the multiplication.
Addition on cartesian coordinates works great, indeed you can only express it on cartesian coordinates (maybe there is a closed form on quaternions, but I haven't looked for it yet). Multiplication on cartesian coordinates is not associative or distributive *because first and foremost it makes no sense*. Multiplication on spherical coordinates (i.e. multiply radius, sum angles) or triplex-expressed-as-quaternion is commutative and associative, not sure about distributive. Exponentiation on cartesian coordinates gives the correct values only when you compute the formula in advance, because in that case you are doing a "hidden" conversion (to quaternions or spherical coordinates) and back. So, for Mandelbulbs you can take the shortcut, but otherwise you need to be explicit about your domain being a point (elevation in -pi/2...pi/2) or a rotation (elevation in -pi...pi). Title: Re: Triplex Algebra Post by: David Makin on January 20, 2010, 04:13:38 PM Multiplication on cartesian coordinates is not associative or distributive *because first and foremost it makes no sense*. Multiplication on spherical coordinates (i.e. multiply radius, sum angles) or triplex-expressed-as-quaternion is commutative and associative, not sure about distributive. I'm afraid you've lost me there. For the triplex maths as applied in the Mandelbulb, the following are *not* true for all values: a*(b*c) = a*b*c = (a*b)*c a*(b+c) = a*b + a*c a*(b/a) = b exp(ln(a)) = a If for your quaternion form any of these *do* hold true then it's not the same mathematical form as that used for the original Mandelbulb - I'm not saying it can't produce similar fractals though. Note that I think however that the above equalities obviously do hold true if in a, b and c the "j" component is zero i.e. we're reduced to complex numbers. Title: Re: Triplex Algebra Post by: David Makin on January 20, 2010, 04:34:48 PM Multiplication on cartesian coordinates is not associative or distributive *because first and foremost it makes no sense*. Multiplication on spherical coordinates (i.e. multiply radius, sum angles) or triplex-expressed-as-quaternion is commutative and associative, not sure about distributive. I'm afraid you've lost me there. For the triplex maths as applied in the Mandelbulb, the following are *not* true for all values: a*(b*c) = a*b*c = (a*b)*c a*(b+c) = a*b + a*c a*(b/a) = b exp(ln(a)) = a If for your quaternion form any of these *do* hold true then it's not the same mathematical form as that used for the original Mandelbulb - I'm not saying it can't produce similar fractals though. Note that I think however that the above equalities obviously do hold true if in a, b and c the "j" component is zero i.e. we're reduced to complex numbers. I should add that even: (a^2)*a = a^3 does not hold true for all values. Title: Re: Triplex Algebra Post by: David Makin on January 21, 2010, 12:06:26 AM Multiplication on cartesian coordinates is not associative or distributive *because first and foremost it makes no sense*. Multiplication on spherical coordinates (i.e. multiply radius, sum angles) or triplex-expressed-as-quaternion is commutative and associative, not sure about distributive. I'm afraid you've lost me there. For the triplex maths as applied in the Mandelbulb, the following are *not* true for all values: a*(b*c) = a*b*c = (a*b)*c a*(b+c) = a*b + a*c a*(b/a) = b exp(ln(a)) = a If for your quaternion form any of these *do* hold true then it's not the same mathematical form as that used for the original Mandelbulb - I'm not saying it can't produce similar fractals though. Note that I think however that the above equalities obviously do hold true if in a, b and c the "j" component is zero i.e. we're reduced to complex numbers. I should add that even: (a^2)*a = a^3 does not hold true for all values. Just been thinking about it and realised that the Paolo is correct with respect to treating the triplex in polar terms when dealing solely with multiplication/division since if you convert all the terms to polar first and then perform the calculations then associativity works and a*(b/a)=a *but* as soon as you need to include addition/subtraction then things break down because however you do the calculations (in 3 dimensions only) the distributive law does not apply. I'm just wondering if the derivations done in this thread for the higher functions using Mathematica etc. were done in such a way that Mathematica took into account that the distributive law does not apply ? Or were they all done using Paolo's quaternion form ? An obvious problem is something as basic as the derivation of the derivative of y = x^2 where: y+dy = (x+dx)^2 y + dy = x^2 + 2*x*dx + dx^2 x^2 + dy = x^2 +2*x*dx + dx^2 dy = 2*x*dx + dx^2 dy/dx = 2*x + dx So as dx->0: Dy/Dx = 2*x The problem being that for the triplex you cannot expand (x+dx)^2 as x^2 + 2*x*dx + dx^2 for all x/dx. This may be part of the reason why the analytical DE seems to break down in certain areas. Title: Re: Triplex Algebra Post by: Timeroot on January 21, 2010, 02:03:31 AM Okay, so it *is* associative, since you're keeping it in spherical coordinates and only using addition/multiplication. Also, the division/multiplication inverse *does* work, agreed? I can understand, though, why the distributive property doesn't work. I'm curious as to how exactly exp(a) is defined - you could use taylor series, or the exponentiation formula I suggested with A=2.71..., or exp(x)=e^x * (cos x,sin y,0) * (cos z, 0, sin z) [or WHATEVER that was on the first page].... it seems there is an agreed upon definition for Mandelbulb purposes, can someone please tell me what it is?
With regard to derivatives, I think it would be interesting how exactly (x+dx)^2 can be expanded [that is, if it can be]. EDIT: Forgive me if I'm being a pain with having all this explained, but why doesn't (z*z)*z=z^3? I'd think that z^3=Result, where Result.Radius=z.Radius^3, Result.Theta=z.Theta*3, and Result.Phi=z.Phi*3. z*z=ResultA, where ResultA.Radius=z.Radius*z.Radius, ResultA.Theta=z.Theta + z.Theta, and and ResultA.Phi=z.Phi + z.Phi. Then (z*z)*z=ResultA*z=Result B, where ResultB.Radius=z.Radius * ResultA.Radius = (substituting here) z.Radius * z.Radius * z.Radius = z.Radius^3. ResultB.Theta=z.Theta + ResultA.Theta = z.Theta + z.Theta + z.Theta = z.Theta*3. Same goes for Result.Phi Clearly, z^3=Result should equal (z*z)*z=ResultB. Can somebody explain to me why it is not? Title: Re: Triplex Algebra Post by: David Makin on January 21, 2010, 02:59:14 AM Okay, so it *is* associative, since you're keeping it in spherical coordinates and only using addition/multiplication. Also, the division/multiplication inverse *does* work, agreed? I can understand, though, why the distributive property doesn't work. I'm curious as to how exactly exp(a) is defined - you could use taylor series, or the exponentiation formula I suggested with A=2.71..., or exp(x)=e^x * (cos x,sin y,0) * (cos z, 0, sin z) [or WHATEVER that was on the first page].... it seems there is an agreed upon definition for Mandelbulb purposes, can someone please tell me what it is? With regard to derivatives, I think it would be interesting how exactly (x+dx)^2 can be expanded [that is, if it can be]. EDIT: Forgive me if I'm being a pain with having all this explained, but why doesn't (z*z)*z=z^3? I'd think that z^3=Result, where Result.Radius=z.Radius^3, Result.Theta=z.Theta*3, and Result.Phi=z.Phi*3. z*z=ResultA, where ResultA.Radius=z.Radius*z.Radius, ResultA.Theta=z.Theta + z.Theta, and and ResultA.Phi=z.Phi + z.Phi. Then (z*z)*z=ResultA*z=Result B, where ResultB.Radius=z.Radius * ResultA.Radius = (substituting here) z.Radius * z.Radius * z.Radius = z.Radius^3. ResultB.Theta=z.Theta + ResultA.Theta = z.Theta + z.Theta + z.Theta = z.Theta*3. Same goes for Result.Phi Clearly, z^3=Result should equal (z*z)*z=ResultB. Can somebody explain to me why it is not? I guess it's my fault for not following Paolo's comments well enough - I was describing the issue if you calculate z^2 getting the result in cartesian form then back to polar to multiply by the original z giving z^2*z in cartesian form at the end or using the fully cartesian calculation to get z^2 and then say polar and back for z^2*z. These do not result in the same value as doing the calculation of z^3 in polar form and only converting to cartesian at the end (at least not for all z). Title: Re: Triplex Algebra Post by: Paolo Bonzini on January 21, 2010, 10:18:40 AM Okay, so it *is* associative, since you're keeping it in spherical coordinates and only using addition/multiplication. Only using multiplication/division, actually. Addition requires cartesian coordinates, so it is associative but not distributive.Also, the division/multiplication inverse *does* work, agreed? I can understand, though, why the distributive property doesn't work. I'm curious as to how exactly exp(a) is defined - you could use taylor series, or the exponentiation formula I suggested with A=2.71..., or exp(x)=e^x * (cos x,sin y,0) * (cos z, 0, sin z) [or WHATEVER that was on the first page].... it seems there is an agreed upon definition for Mandelbulb purposes, can someone please tell me what it is? I have no idea. The whatever was on the first page probably does not agree with the Taylor series, which is a problem. Maybe quaternions could help, I don't have much time now.Forgive me if I'm being a pain with having all this explained, but why doesn't (z*z)*z=z^3? When you do z*z*z*z*z in cartesian form, every multiplication includes an implicit conversion to and from spherical coordinates. It's a bit hard to visualize, but the conversion loses information because of the different range of the elevation vs. the y-axis rotation term. Instead, you have to use specially crafted formulas for each exponent(*) that include exactly one conversion to spherical coordinates and one from, which is what is called z^n.(*)I had a generic exponentiation formula expressed using Chebyshev polynomials, but I haven't looked at it for a while and I'm not sure I had no calculation errors since I did it on paper. Title: Re: Non-Trigonometric Expansions for Cosine Formula Post by: twinbee on August 12, 2010, 04:51:49 PM Thanks to Paul for these! I had another crack at getting this to work, and finally managed to get it work yesterday. Ages ago, I tried replacing all y variables inside the If section with zero (apart from the main If condition obviously). But it turns out that replacing them with the same VeryLow number will make it work.
Here below is the code I use. It's tricky to tell because of overhead, but I find the Mandelbulb function with the below non-trig code generally around twice as fast as the trig version despite how long-winded it seems. Replacing the repetitive multiplications with precalculated variables doesn't seem to speed it up at all. I get another 10%+ speed boost, if in the: "if( fabs(y) < 0.000001 )" section, I use instead: a.x=0; a.y=0; a.z=0; though this seems to produce a line across the center if the rotation of the scene is zero. The fact that I can replace x,y,z with such trivial numbers and it produce such nearly perfect results makes me believe there's a better way than this. Code: point tpow8(double x, double y, double z) { Title: Re: Non-Trigonometric Expansions for Cosine Formula Post by: Jesse on August 12, 2010, 06:46:10 PM hi twinbee,
i also made just the quadratic temporary values, multiplications are done very fast (about 4 clks) on the cpu. Going through memory is often slower, and i did for the cosine and sine versions also pure x87 asm, to do it with sse2 was a bit to much work for me :) If you need fast code and can get use of asm, then i can send you also the cosine code, on this computer i have only the sine version. The pow8 anniversary is upcoming.. Code: asm //Sine pow8 bulb forgot to mention that i dont do a div0 test at all, i masked the exceptions and slightly rotated the bulb on startup, so this is not really a problem for me :dink: Title: Re: Non-Trigonometric Expansions for Cosine Formula Post by: twinbee on August 13, 2010, 12:36:55 AM Hey that looks promising. Any idea how much faster the SS2 version would run?
I haven't started learning assembler yet (I know to inline with __asm {...} ). How can I communicate the C++ x,y,z variables to the asm code? And does the asm code produce nx,ny,nz variables by the end or something? Title: Re: Non-Trigonometric Expansions for Cosine Formula Post by: Jesse on August 13, 2010, 07:07:19 PM Hey that looks promising. Any idea how much faster the SS2 version would run? A wild guess would be 50%, that depends a lot of how the code can be optimized for sse2. Cant predict it because i just tried a minute and then had, or wanted to have, other things to do. :) Wish i had a smart compiler that could do it for me. Quote I haven't started learning assembler yet (I know to inline with __asm {...} ). How can I communicate the C++ x,y,z variables to the asm code? And does the asm code produce nx,ny,nz variables by the end or something? In my case the code is a whole procedure with the beginning: //P8 sine bulb x:eax, y:edx, z:ecx, w:esp->ebp+12, PIt:ebp+8 procedure HybridIntP8(var x, y, z, w: Double; PIteration3D: TPIteration3D); asm .. end You can also inline code and use variables and constants directly, for example with fadd qword Cx where Cx is a double const or var, instead of fadd qword [esi + 24] where esi is as example a pointer to an array of double values, and +24 selects the fourth value. I had to do it the last way because of the independence of the code, the PIteration3D points to fixed structure. If you also want to do a whole procedure, then you need to know some points: The parameters are submitted by specific registers that are depending on the calling conventions of the operating system and/or compiler language, just know the one i use... but that can be estimated for example by looking at some assembled code. For the procedure above, the inputs are 4 pointer to the double values plus a pointer to a structure with constants like Cx,Cy,Cz and also another pointer to formula dependend variables and constants. Hint: it may be better to use only one pointer to a 4d vector, so you need only 1 register instead of 4. Once tested it in an older program version that was not asm optimized and did not get a speed benefit. Maybe with handwritten code it would be better, but i cannot change it all now. OK, for first tests the inline variant would be easier i guess. :dink: Maybe this a good starting point, though c is not my main language... try and pray Code: double Zx, Zy, Zz, Cx, Cy, Cz; Title: Re: Non-Trigonometric Expansions for Cosine Formula Post by: Jesse on August 14, 2010, 04:31:23 PM 1e-20 was way to big, 1e-40 is better but it does not really prevent from overflows, i fear.
I changed this in the previous post. Here is the cosine code, you may not have to write qword in front of the double values because the compiler does know the length. But my compiler is not very smart, so i better tell him what to do. This code is on my PC 43% faster then the pascal version... Code: __asm{ // cosine pow8Title: Re: Non-Trigonometric Expansions for Cosine Formula Post by: twinbee on August 15, 2010, 10:29:57 PM I wonder how much faster your asm code runs compared to the C version. Anyway, like you hinted at, I removed any "qword" commands as this gave errors like "error C2400: inline assembler syntax error in 'first operand'; found 'Zx'".
However, now I'm getting errors like "warning C4410: illegal size for operand" for commands like "fmul C6". I also got multiple errors for "fmulp" commands like: "error C2414: illegal number of operands". I'm guessing this is because there are slightly different flavours of assembly language, and Visual C++ obviously uses its own. No worries though if it's awkward to convert... Title: Re: Non-Trigonometric Expansions for Cosine Formula Post by: Jesse on August 16, 2010, 12:01:17 AM Visual c++ is afaik using masm, maybe someone can correct the code for it!
I did not found very much helpful things on the net, so it could be something like fmul qword ptr [c6] or c6 is not a valid name to choose, or dunno. fmulp or other x87 instructions with omitted operands means fmulp st(0), st(1) An operation on the first and second register. But here must be several people who knows it! Title: Re: Triplex Algebra Post by: soler on September 19, 2010, 04:15:35 AM Bugman has defined a triplex polar form using a particular matrix product. I have extended this idea to give 48 different polar forms. If you are interested then please have a look at: http://soler7.com/Fractals/Matrices%20to%20Triplex.pdf
Title: Re: Triplex Algebra Post by: M Benesi on September 20, 2010, 05:42:37 AM Something a hell of a lot easier is.. the complex triplex (from another post of mine elsewhere in the forums). It really makes the mathematical relationship to the original 2d set apparent:
Quote from: M Benesi You don't need anything too complex** to do triplex "algebra". You simply require: A) a square root function to calculate a magnitude: r1= sqrt(y^2+z^2) B) a complex power function: complex_1= (x + i r1)^n complex_2= (y + i z)^n C) a real power function: r3=r1^-n (you are applying the magnitude of y and z two times (once in each complex number), so need to divide it out once) D) the ability to directly access the real and imaginary components of the complex numbers: new x = real part of complex 1 + x pixel value OR x Julia seed (for Julias use the seed, Mandys use the pixel value) new y = imaginary part of complex_1 * real part of complex 2 * r3 + y pixel value OR y Julia seed new z = imaginary part of complex_1 * imaginary part of complex 2 * r3 + z pixel value OR z Julia seed It's easily extended to higher dimensions... and is faster than the trig version in certain compilers (although I haven't tried them all). ** pun was and is still intended.... 2 complex.. although I didn't mention that it was intentional in the original post, as I felt it was a bit heavy handed to point out the pun. This, however, has changed. Title: Re: Triplex Algebra Post by: soler on September 22, 2010, 02:33:45 AM Here is an image from one of the 48 variations:
(http://soler7.com/Fractals/3D17/Mandelbulb1585.JPG) Many more are at http://soler7.com/Fractals/3D0.html All were made using Visins of Chaos. Title: Re: Triplex Algebra Post by: Tglad on September 22, 2010, 03:11:26 AM "I have extended this idea to give 48 different polar forms"
I think you could say there are an infinity of polar forms, and I think it is right to say there is one for each rotation, which is equivalent to rotating the point by this rotation each iteration. Title: Re: Triplex Algebra Post by: Softology on September 26, 2010, 07:25:52 AM Have a look at Soler's PDF. It does show variations that do cover 48 possible variations. Some of them do match the orginal +SIN -SIN COS etc variations, but the rest are new and do give unique bulb types. I have included Phase, Theta and Phi scaling/shifting in all the existing bulb formulas and these 48 do give new/unique variations.
Anyway, I hope the next 3D fractal that gets as much publicity as the Mandelbulb comes from these forums. Keep going guys. The Mandelbulb and Kaleidoscopic IFS were great examples of someone thinking "what if" outside the scientific community. Jason. Title: Re: Triplex Algebra Post by: Nahee_Enterprises on September 27, 2010, 02:23:11 PM Bugman has defined a triplex polar form using a particular matrix product. I have extended this idea to give 48 different polar forms. If you are interested then please have a look at: http://soler7.com/Fractals/Matrices%20to%20Triplex.pdf Here is an image from one of the 48 variations: //soler7.com/Fractals/3D17/Mandelbulb1585.JPG Many more are at: http://soler7.com/Fractals/3D0.html All were made using Visins of Chaos. Greetings, and Welcome to this particular Forum !!! :) Some nice work you have there. Looking forward to your future contributions. Title: Re: Triplex Algebra Post by: KRAFTWERK on November 23, 2010, 10:45:23 AM Here is an image from one of the 48 variations: (http://soler7.com/Fractals/3D17/Mandelbulb1585.JPG) Many more are at http://soler7.com/Fractals/3D0.html All were made using Visins of Chaos. Wow, nice image! Very interesting! Title: Re: Triplex Algebra Post by: Softology on July 23, 2011, 07:05:41 AM Here are another 20 new variations.
http://softologyblog.wordpress.com/2011/07/21/new-mandelbulb-variations/ A few sample images... (http://farm7.static.flickr.com/6147/5959659997_07f6a64d07_o.png) (http://farm7.static.flickr.com/6149/5963277622_b5717705a3_o.png) Jason. Title: Re: Triplex Algebra Post by: Softology on July 27, 2011, 12:00:11 AM 27 more new variations
http://softologyblog.wordpress.com/2011/07/27/more-new-mandelbulb-variations/ (http://farm7.static.flickr.com/6146/5952795103_983a045d93_o.png) (http://farm7.static.flickr.com/6138/5976666802_0068e4ba04_o.png) (http://farm7.static.flickr.com/6130/5976767688_7357024615_o.png) Jason. Title: Re: Triplex Algebra Post by: jehovajah on July 27, 2011, 01:57:16 PM Very nice! Paticularly like the plant analogue. :elvis:
Title: Re: Triplex Algebra Post by: Softology on August 01, 2011, 02:59:45 AM And yet another 16 new varieties.
http://softologyblog.wordpress.com/2011/08/01/even-more-new-mandelbulb-variations/ Jason. Title: Re: Triplex algebra Post by: DarkBeam on February 26, 2017, 11:34:25 AM Note: For usability sake I merged "Cosine power expansions", "Sine power expansions" and "Triplex algebra" posts and topics because it's incredibly useful to have it all in one topic. Thanks bugman :beer: Also, the multiplication rule for Cosine formula should be like that; Code: a = (z1/r1 + z2/r2); or a = (z1/r2 + z2/r1) ??? |