News: Visit the official fractalforums.com Youtube Channel

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

 Pages: [1]   Go Down
 Author Topic: Octonions in ChaosPro - how to?  (Read 1933 times) Description: 0 Members and 1 Guest are viewing this topic.
snayperx
Forums Newbie

Posts: 3

 « on: April 06, 2013, 12:27:37 AM »

Hello guys,

As I saw many of you used ChaosPro and probably used the programming module. I tried to use the Octonion module in the Math library. As I understood, ChaosPro operates on quaternions, so the output of each operation on octonions (addition, multiplication, division) was resulted in two parts of octonion. I tried to implement the executable code for visualizing octonions, but obtained quaternions. Is the operations should consider projection of the octonion on quaternionic complex hyperplane in order to render it using existed functions? Please guide me how to define first four variables (parts of two octonions) in the math operations in Octonion module in the Math library and how to render it. Thanks!

Best regards,
snayperx
 Logged
Alef
Fractal Supremo

Posts: 1174

 « Reply #1 on: April 07, 2013, 04:57:41 PM »

You are right. IMHO "projection of the octonion on quaternionic complex hyperplane" is oversophistication. It still is quaternion based engine, so there is no way to deffine octanion variables. But two quaternion variables are just like one octonion variable.

Its how I did a hyperbolic sine with quaternions.
quaternion C, Ch;
import Math.Hypercomplex as hmath;
void init(void)
z= 0;
C= pixel;
void loop(void)
{
Ch = hmath.cosh(z);
z= z*Ch*z -sqr(C);
}
bool bailout(void)
{
return(  |z|  <= bailout);
}

Since there are multiplication, maybe a mandelbrot set on octonions. Could be like this:
import Math.Octonion as omath;

omath.mult (z,Z1,z,Z1,z,Z1);
z=z+C;

z, z1, C both are quaternion variables, of them z are predefined. z=z+C is in quaternions of corse, and with k=0. Maybe with some combination of z and pixel coordinates you can get something.
 Logged

fractal catalisator
laser blaster
Iterator

Posts: 178

 « Reply #2 on: April 07, 2013, 05:08:50 PM »

Probably a dumb question, but what good are octonions for making fractals? We can only visualize 3-dimensional objects, so what's the point of the other 5?
 Logged
Alef
Fractal Supremo

Posts: 1174

 « Reply #3 on: April 07, 2013, 05:29:57 PM »

So far I hadn't seen a single fractal on octonions, even the most ugly one;) Maybe if 3 dimensions would be put twice, there would be just 2 left as 0.
 Logged

fractal catalisator
M Benesi
Fractal Schemer

Posts: 1075

 « Reply #4 on: May 06, 2013, 07:44:41 PM »

I've done a few higher dimensional fractals- using the higher dimensions (dimensions past 3) as points in time.  As you can trap the orbits of the various dimensions, you can create some cool coloring schemes.  This one is just 4 dimensions (3 space, one time).  Think it's a simple z^5 "complex compound" (xmas tree mandy) type fractal extended to a 4th dimension.

As to the octonion math module in ChaosPro, haven't taken a gander at it as of yet.

Should be easy to write, but might require a ton of code, which would take a lot of time I don't have available at the moment.

I've noticed that a lot of the fractals lose detailed sections at various points in the higher dimensions.  <note to self: think about this>
 Logged

kram1032
Fractal Senior

Posts: 1863

 « Reply #5 on: May 06, 2013, 09:27:03 PM »

It's pretty straight forward to do all this via the Cayley-Disckon construction
Basically, addition is always defined per element and multiplication like this:
given two pairs of numbers (a,b) and (c,d), the pairs are multiplied like this:
$\left(ac-d^*b,da+bc^*\right)$(*) - note, the order of multiplication is important. You cannot reorder these structures.

You can do this for ANY pair of ANY numbers, e.g. if a,b,c and d are all reals, you get the complex numbers.
If you repeat this for where a,b,c and d are complex numbers, you get quaternions.
If you repeat it for them being quaternions, you get octronions and so on.

That way, you obtain a recursive definition which you can carry out ad infinitum. It would probably require only very little code to write something like that.

Given a vector with $2^n$ elements, split it into two vectors with $2^{n-1}$ elements and multiply them according to the rule above. Repeat until you arrive at vectors with exactly 1 element in which case the multiplication trivially reduces to the normal kind of multiplication.

That would be a recursive divide-and-conquer type algorithm for multiplying arbitrary octonions, sedenions or any higher order number defined in such a way. The only constraint is to have the number of elements be $2^n$ where $n \in \mathbb{N}$.

(*) the $x^*$ just is complex conjugation: $\left(a,b\right)^*=\left(a*,-b\right)$ - just like multiplication, it's defined recursively. Note the $a^*$ after the =. It means that you have to apply it to the part vector again, so it keeps being applied until you reach individual reals which, of course, don't change under conjugation.

Since you already have quaternions defined, you could just define octonions as vectors of two quaternions which you use those rules on, as described here.
 « Last Edit: February 04, 2014, 12:25:25 AM by kram1032 » Logged
snayperx
Forums Newbie

Posts: 3

 « Reply #6 on: January 23, 2014, 05:27:22 PM »

2 kram1032:
The application of Cayley-Dickson construction is for sure the right approach in this task. The Octonion library available in ChaosPro allows for basic operations on octinions and works exactly as you describe. But the problem is as follows: as a result you obtain two quaternions being the parts of the octonion, but it is still 2 quaternions, the question is how to visualize the composite octonion from these 2 quaternions?
 « Last Edit: January 28, 2014, 07:48:44 AM by snayperx » Logged
kram1032
Fractal Senior

Posts: 1863

 « Reply #7 on: February 04, 2014, 12:30:16 AM »

This might be rather useless, but just visualize them the way you like - preferably in a way that gives interesting results.
You can really only visualize 3 or less Dimensions, so even with a Quaternion it's not clear what to choose.
Take any three directions and plot them as any of the various subspaces you could choose.

You could "just" go through all possible 3D subspaces to find which one are most interesting.
Alternatively, you could do 2D subspaces as demonstrated by M Benesi's video above.

It's just impossible to do better than that in our world, and even 3D is kind of a hack for the screens we use to show 3D objects on are themselves flat.
 « Last Edit: February 04, 2014, 12:33:07 AM by kram1032 » Logged
Fractal Molossus

Posts: 703

 « Reply #8 on: February 04, 2014, 04:32:39 AM »

Quote
I've noticed that a lot of the fractals lose detailed sections at various points in the higher dimensions.  <note to self: think about this>

Multiplication of Quaternions, Octonions and beyond are non-conformal.

You can visualise any number of dimensions on a 2d screen, 3d being an example of how you do this. For >3d you have more axes oriented based on the camera's orientation, which gets more complicated in >3d.

It may look like items intersect each other in >3d as you rotate them, but this is just a higher dimension equivalent of how a solar eclipse looks like the moon is intersecting the sun in 2d. As with an eclipse, if you change your viewpoint they no longer intersect.

In 4 dimensions rotations can be considered to be made up of normal rotations around x,y,z axes and an 'inside out' rotation which is like a rotation around a circle rather than around an axis.
 Logged
kram1032
Fractal Senior

Posts: 1863

 « Reply #9 on: February 04, 2014, 10:38:28 AM »

The difference really just is that, if you show a 3D (or higher) object on a screen, you'll do a projection down to 2D, while if you do a 2D image, what you do is a cut through your object.
 Logged
 Pages: [1]   Go Down