Logo by KRAFTWERK - 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: Support us via Flattr FLATTR Link
 
*
Welcome, Guest. Please login or register. April 17, 2024, 12:14:58 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]   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: Hyper-Dual Numbers  (Read 5959 times)
0 Members and 2 Guests are viewing this topic.
Aexion
Conqueror
*******
Posts: 116


The Fractal Hermit


WWW
« on: September 07, 2011, 06:36:37 PM »

Hello,

Here is a link that I have found on the web about Hyper-Dual Numbers..

http://www.stanford.edu/~jfike/hyperdual.html

Perhaps those numbers can create interesting fractals.. hmm..

Right now I don't have time to play with them, but if someone found something interesting, please let me know. smiley


Logged

Fractals all the way..
Incendia for 3D Fractals
Aural for Musical Fractals
Jesse
Download Section
Fractal Schemer
*
Posts: 1013


« Reply #1 on: September 07, 2011, 08:57:44 PM »

Just proofed that pow(fikequat, 2) equals fikequat*fikequat  wink

So i try it tomorrow for a bulb, if time let me.
Logged
Syntopia
Fractal Molossus
**
Posts: 681



syntopiadk
WWW
« Reply #2 on: September 07, 2011, 09:45:50 PM »

A quick test using the code below (essentially Quaternion Mandelbrot code)

Code:
vec4 mul(vec4 a, vec4 b) {
return vec4( a.x*b.x, a.x*b.y + a.y*b.x, a.x*b.z+a.z*b.x,  a.x*b.w+a.y*b.z+a.z*b.y+a.w*b.x);
}

float DE(vec3 pos) {
vec4 p = vec4(pos,C4);
vec4 dp = vec4(1.0,0.0,0.0,0.0);
for (int i = 0; i < Iterations; i++) {
dp = 2.0* mul(dp,p) + vec4(1.0,0.0,0.0,0.0);
p = mul(p,p) + vec4(pos,C4);
float p2 = dot(p,p);
orbitTrap = min(orbitTrap, abs(vec4(p.xyz,p2)));
if (p2 > Threshold) break;
}
float r = length(p);
return  0.5 * r * log(r) / length(dp);
}

The Mandelbrot seemed more interesting than the Julias, but I didn't explore it much.


* sketch-83.jpg (45.67 KB, 800x486 - viewed 436 times.)
Logged
cKleinhuis
Administrator
Fractal Senior
*******
Posts: 7044


formerly known as 'Trifox'


WWW
« Reply #3 on: September 07, 2011, 10:01:01 PM »

nice he has done a nice c++ implementation of the operators:


http://www.stanford.edu/~jfike/fikecomp.h

just the good ole map 3dimensions to 4 who has the first render?!


Logged

---

divide and conquer - iterate and rule - chaos is No random!
cKleinhuis
Administrator
Fractal Senior
*******
Posts: 7044


formerly known as 'Trifox'


WWW
« Reply #4 on: September 07, 2011, 10:04:18 PM »

@syntopia how did you do that DE that fast ? i was thinking about hackin it into fragmentarium, but was frightened of the DE implementation, and didnt knew how to force brute force rendering,
and while i am on it, i had severe problems defining new "user controllable" variables, they where just not recognized "Could not find: xxx" ...
Logged

---

divide and conquer - iterate and rule - chaos is No random!
Syntopia
Fractal Molossus
**
Posts: 681



syntopiadk
WWW
« Reply #5 on: September 07, 2011, 10:35:03 PM »

@syntopia how did you do that DE that fast ? i was thinking about hackin it into fragmentarium, but was frightened of the DE implementation, and didnt knew how to force brute force rendering,
and while i am on it, i had severe problems defining new "user controllable" variables, they where just not recognized "Could not find: xxx" ...

I just assumed the standard DE for the 2D Mandelbrot/4D Quaternion/Mandelbulb. It seems to work, but you have to multiply by a low constant to avoid noise.

If you send me a mail (mikael at hvidtfeldts.net) with your Fragmentarium code (and your OS and repository/build version), I'll take a look at the error.

Btw, dual numbers were constructed for doing automatic differentiation. I saw in an old post here on FF, that fpsunflower applied this to calculate the gradient of the DE (for getting a surface normal). But I wonder, whether automatic differentation could be used to calculate the gradient in Buddhi/Makin's four-point formula? You would get rid of an arbitrary delta, and get better precision.

Unfortunately, you cannot implement new types in GLSL, so it would be difficult to implement in Fragmentarium, but there are libraries out there for C++. Just a thought.

Logged
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #6 on: September 20, 2011, 11:49:45 PM »

The first render is quite discouraging,  undecided
Logged

No sweat, guardian of wisdom!
cKleinhuis
Administrator
Fractal Senior
*******
Posts: 7044


formerly known as 'Trifox'


WWW
« Reply #7 on: September 21, 2011, 08:48:29 AM »

@darkie just see it as a transform, adding additional spice to hybrid possibilities...
Logged

---

divide and conquer - iterate and rule - chaos is No random!
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #8 on: September 21, 2011, 11:38:49 AM »

@darkie just see it as a transform, adding additional spice to hybrid possibilities...


I made a transform with a similar effect, it screwed up almost all grin ... Hope it's not the same for the new baby!
Logged

No sweat, guardian of wisdom!
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #9 on: October 06, 2011, 06:07:56 PM »

Too bad the original formula gave too weird results. I had to adapt it (eg rewrite tease )

Description:

Code:
This formula was inspired by:
http://www.fractalforums.com/general-discussion-b77/hyper-dual-numbers/
It is mathematically meaningless - but can give cool fractals

 // original formula:
 // a.x*b.x, a.x*b.y + a.y*b.x, a.x*b.z+a.z*b.x,  a.x*b.w+a.y*b.z+a.z*b.y+a.w*b.x
 // was too unregular - especially x component so I fixed
 
 a=x, b=y, c=z, d=w,  pow = IntPower-1;
 do { // do allows you to choose a higher pow
 newa = xa - yb - ( zc + wd ) - ( zd + wc )*zwMul; // instead of xa
 // if you remove yb and ( zc + wd ) you get weird things...
 newb = xb + ya;
 newc = xc + za + ( yd + wb )*ywMul;
 newd = xd + wa + ( yc + zb )*yzMul;
 pow--, a=newa, ... d=newd;
 } while pow>=0;
 x=a+Cx, y=b+Cy, z=c+Cz, w=d+Cw

Thanks anyway Aexion grin
Logged

No sweat, guardian of wisdom!
Pages: [1]   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
Hyper threading General Discussion paolo 5 3073 Last post October 20, 2010, 08:29:07 AM
by rickz65
Dual numbers for creating distance estimators (new) Theories & Research Syntopia 2 1351 Last post December 14, 2011, 08:19:02 PM
by eiffie
Hyper-Crucifix Mandelbulb3D Gallery KRAFTWERK 0 714 Last post July 31, 2012, 03:56:36 PM
by KRAFTWERK
Ink in water, hyper-HD (4K resolution) Fluid Dynamics, Turbulence & Weather Prediction kram1032 3 4574 Last post February 03, 2013, 05:42:59 PM
by kram1032
Dual spine region in Mandelbulb The 3D Mandelbulb DarkBeam 0 3573 Last post March 14, 2017, 07:16:51 PM
by DarkBeam

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.118 seconds with 24 queries. (Pretty URLs adds 0.006s, 2q)