
hypercomplexj

    HyperComplex Julia set.

      h(0)   = (xpixel,ypixel,zj,zk)
      h(n+1) = fn(h(n)) + C.
      where "fn" is sin, cos, log, sqr etc.

    Six parameters: c1, ci, cj, ck

    C = (c1,ci,cj,ck)


These fractals are based on hypercomplex numbers, which like quaternions
are a four dimensional generalization of complex numbers. It is not
possible to fully generalize the complex numbers to four dimensions without
sacrificing some of the algebraic properties shared by real and complex
numbers. Quaternions violate the commutative law of multiplication, which
says z1*z2 = z2*z1. Hypercomplex numbers fail the rule that says all non-zero
elements have multiplicative inverses - that is, if z is not 0, there
should be a number 1/z such that (1/z)*(z) = 1. This law holds most of the
time but not all the time for hypercomplex numbers.

However hypercomplex numbers have a wonderful property for fractal purposes.
Every function defined for complex numbers has a simple generalization
to hypercomplex numbers. xmfract's implementation takes advantage of this
by using "fn" variables - the iteration formula is

    h(n+1) = fn(h(n)) + C

where "fn" is the hypercomplex generalization of sin, cos, log, sqr etc.

You can see 3D versions of these fractals using fractal type Julibrot.
Hypercomplex numbers were brought to our attention by Clyde Davenport,
author of "A Hypercomplex Calculus with Applications to Relativity",
ISBN 0-9623837-0-8.

