Hi,
this (probably) is the final stage of Multifractal. There will be an
update if a bug is detected or if I find something which must be included
or changed.
One essential is still missing, and somehow I literally squeezed it in:
separate coloring of each channel. It simply adds a new dimension. To see
what I mean check Cottoncandyland. I named it after that beautiful ELVIS
song and for me it is a step further to fractal art. The input really is
simple: As first input, real(p2) you just type the number of the colour
to use for each channel. The colour (bailout) values supply a progressive
compression if used in their order, or a progressive expansion vv if
counted down. They also can be set according to the needs of the frm
which is used for the concerned channel. The many_mods frm always needs
the highest value as this will increase complexity.
Defining an inside image by the borders is a tricky business as no
autoswitch to the next channel is performed, which is the case with
iteration defined channels. So if only the channel number is checked
during the iterations this will cause the iteration to hang to the
border defined channel if the conditions for activation are not met.
In that case none of the following channels will be executed. To
avoid this channel1 switches off if maxiter1 is reached, even if it
is not active. With one testing image this meant about 25% less calculation
time. House_of_the_helmets of the last submission (a reproduction is
included) needs about 5 min less, inspite of 8 new inputs (p4/2giga
at 1600/1200).
If this is understood, it should be clear that channel3 (inside1) can be
borderdefined only if a previous switch is performed. This means channel1,
which applies the warpeffect to the basic shape must be checked
(real(p2) second input, last 5 digits. The first of them must read 5 or
7 if an iter reset is required).
Consequently, if channel3 is iteration defined channel4 can be border
defined. Type the numbers in brackets (7 or 8) to use maxiter and
bordervalues simultaneously.
Channel2 (outside) must remain bothways defined as two border values, in
and out, are used and an iteration switch would have to imply switching
on and off and that actually would cause a slow down.
The images:
Cottoncandyland should be your first choice, check it out.
The Galleries image shows a border defined mandel as inside2, which
nicely fits into the iteration frontiers. Although itïs a mandel there is
no mandel shape, maybe youïll find one on deep zooming, I have not
checked.
Mandelcross is an overnight fractal (4.5hours). Itïs so slow due to two
iteration resets and a very high iteration level at all pixels. The special
thing about this one (except the coloring) is that the m_m structures,
which usually build circles now support the mandel shape.
Multifractal has gone a long way, from the initial experiments
(Mandelmania) to a definetly (within the Fractint limitations) usable
product. In my first comment I said itïs a new country to explore and
thatïs what I did. I learned a lot of things and still do. Jim, youïre
wondering about my motivation - is there a better one then this?
Fractal greetings,
Al
------------------------------start-frm------------------------------------
FRM:Multifractal_9 { ; Albrecht Niekamp 280803
;p1 (spider)julia-seed
;real(p2) 5digits : (1)shape (2)outside (3)inside1 (4)inside2 (5)inside3
; 0_off 1_secant 2_mand 3_bees 4_jul 5_m_mods 6_phoen 7_newt 8_spider
; input2 : 2digits_many-mods 2digits_phoenix 2digits_spider
; 5digits_reset : 0_no 1_z-reset 2_iter-reset 3_both +5_warp
;imag(p2)(-) 5digits_colour(bailout) number
; input2 : 4digits(-)_mand/jul 2digits_secant 4digits_bees
;real(p3) 2digits_newt 4digits_colour1, 5digits_colour2 5digits_colour3
;imag(p3) shape : factor (fn1), 5digits_colour4 5digits_colour5
;real(p4) outside: factor (fn2), 4+1digits_bord-out 4digits+fract_bord-in
;imag(p4) inside1: maxit1, 1digit_use:1_maxit 2(7)_bord-out 3(8)_bord-in
; 5digits_factor1 (fn2) 4digits+fract_border1
;real(p5) inside2: maxit2, 1digit_use:1_maxit 2(7)_bord-out 3(8)_bord-in
; 5digits_factor2 (fn3) 4digits+fract_border2
;imag(p5) inside3: maxit3, 1digit_use:1_maxit 2(7)_bord-out 3(8)_bord-in
; 5digits_factor3 (fn4) 4digits+fract_border3
;fn(1) shared by many-mods+bees
;
da=real(p2)
dd=trunc(da)
da=round((da-dd)*100000000000)+11111
dd=dd+11111
d=trunc(dd/10000)
dd=dd-d*10000
d3=(d==4)+(d==5)+(d==8)+(d==9)
d4=(d3==0)
vb=d>5
ab=(d==3)+(d==5)+(d==7)+(d==9)
d=trunc(dd/1000)
dd=dd-d*1000
ex1=d>1
v1m=(d==6)+(d==7)
v1j=d>7
dd1=(d==4)+(d==5)+v1j
ab1=(d==3)+(d==5)+(d==7)+(d==9)
d=trunc(dd/100)
dd=dd-d*100
ex2=d>1
v2m=(d==6)+(d==7)
v2j=d>7
dd2=(d==4)+(d==5)+v2j
ab2=(d==3)+(d==5)+(d==7)+(d==9)
d=trunc(dd/10)
ex3=d>1
v3m=(d==6)+(d==7)
v3j=d>7
dd3=(d==4)+(d==5)+v3j
ab3=(d==3)+(d==5)+(d==7)+(d==9)
d=dd-d*10
ex4=d>1
v4m=(d==6)+(d==7)
v4j=d>7
dd4=(d==4)+(d==5)+v4j
ab4=(d==3)+(d==5)+(d==7)+(d==9)
;
mm=trunc(da/1000000000)
da=da-mm*1000000000
ph=trunc(da/10000000)/100
da=da-ph*1000000000
sp=trunc(da/100000)/100
da=da-sp*10000000
d=trunc(da/10000)
ex0=d>4
da=da-d*10000
d=d-5*ex0
ir0=(d==3)+(d==4)
d=trunc(da/1000)
w1=d>4
da=da-d*1000
d=d-5*w1
rs1=(d==2)+(d==4)
ir1=(d==3)+(d==4)
d=trunc(da/100)
w2=d>4
da=da-d*100
d=d-5*w2
rs2=(d==2)+(d==4)
ir2=(d==3)+(d==4)
d=trunc(da/10)
w3=d>4
da=da-d*10
d=d-5*w3
rs3=(d==2)+(d==4)
ir3=(d==3)+(d==4)
d=round(da)
w4=d>4
d=d-5*w4
rs4=(d==2)+(d==4)
tt=ex0+ex1+ex2+ex3+ex4
;
d=real(p3)
dd=trunc(d)
da=(d-dd)*10000000000
pp=trunc(dd/10000)
ba1=dd-10000*pp
ba2=trunc(da/100000)
ba3=da-100000*ba2
;
d=imag(p3)
sfac=trunc(d)
da=(d-sfac)*10000000000
ba4=trunc(da/100000)
ba5=da-ba4*100000
;
d=real(p4)
ofac=trunc(d)
da=(d-ofac)*10000000000
bh=trunc(da/100000)/10
bl=(da-bh*1000000)/10
bs=bl/2
;
d=imag(p2)
t=d<0
if (t)
d=-d
endif
dd=trunc(d)
da=round((d-dd)*10000000000)
d=trunc(dd/10000)
dd=dd-d*10000
bb0=ba1*(d==1)+ba2*(d==2)+ba3*(d==3)+ba4*(d==4)+ba5*(d==5)
d=trunc(dd/1000)
dd=dd-d*1000
bb1=ba1*(d==1)+ba2*(d==2)+ba3*(d==3)+ba4*(d==4)+ba5*(d==5)
d=trunc(dd/100)
dd=dd-d*100
bb2=ba1*(d==1)+ba2*(d==2)+ba3*(d==3)+ba4*(d==4)+ba5*(d==5)
d=trunc(dd/10)
dd=dd-d*10
bb3=ba1*(d==1)+ba2*(d==2)+ba3*(d==3)+ba4*(d==4)+ba5*(d==5)
d=round(dd)
bb4=ba1*(d==1)+ba2*(d==2)+ba3*(d==3)+ba4*(d==4)+ba5*(d==5)
;
d=da
p0=trunc(d/100000000)/10
d=d-p0*1000000000
p6=trunc(d/1000000)/10
d=d-p6*10000000
if (t)
p6=-p6
endif
p7=trunc(d/10000)/10
d=d-p7*100000
p8=trunc(d/100)/100
d=d-p8*10000
p9=d/100
;
d=imag(p4)
mi1=trunc(d)
da=(d-mi1)*100000000000
d=trunc(da/10000000000)
bt1=d>6
da=da-d*10000000000
d=d-5*bt1
dt1=d>1
iv1=(d==3)
fac1=trunc(da/100000)
da=da-fac1*100000
bo1=(da/100000)/10
;
d=real(p5)
mi2=trunc(d)
da=(d-mi2)*100000000000
d=trunc(da/10000000000)
bt2=d>6
da=da-d*10000000000
d=d-5*bt2
dt2=d>1
iv2=(d==3)
fac2=trunc(da/100000)
da=da-fac2*100000
bo2=(da/100000)/10
;
d=imag(p5)
mi3=trunc(d)
da=(d-mi3)*10000000000
d=trunc(da/1000000000)
bt3=d>6
da=da-d*10000000000
d=d-5*bt3
dt3=d>1
iv3=(d==3)
fac3=trunc(da/100000)
da=da-fac3*100000
bo3=(da/100000)/10
;
mo=vb>ab
mo1=v1m>ab1
mo2=v2m>ab2
mo3=v3m>ab3
mo4=v4m>ab4
;
sc=((ab+vb)==0)
sc1=((ab1+v1m)==0)
sc2=((ab2+v2m)==0)
sc3=((ab3+v3m)==0)
sc4=((ab4+v4m)==0)
;
px=((ab+vb)==2)
px1=((ab1+v1m)==2)
px2=((ab2+v2m)==2)
px3=((ab3+v3m)==2)
px4=((ab4+v4m)==2)
;
if (d4)
z=0
if (vb)
if (mo)
c=0.4*log(sqr(pixel^mm))
else
c=pixel
z=pixel
endif
else
c=pixel
z=pixel*sc
endif
else
c=p1
z=pixel
endif
t=0
bo=|z|
p=pp
z0=p7
zold=(0.0,0.0)
cb=p9
ba=bb0
:
if (tt)
t=t+1
if (ex0)
ex0=t<mi1
if (bo>bs)
u=2*(fn1(t/sfac))
ex0=0
if (ir0)
t=0
endif
if (d4)
z=z*u
if (mo)
c=0.4*log(sqr(pixel^mm))
else
c=pixel
endif
else
z=pixel
cb=p9*u
c=p1*u
p=pp*u
endif
endif
tt=tt-1+ex0
elseif ((ex1)&&bo>bl)
if (bo<bh)
d3=dd1
ba=bb1
ab=ab1
ex1=0
tt=tt-1
if (w1)
u=2*(fn2(t/ofac))
else
u=1,0
endif
if (ir1)
t=0
endif
if (d3)
vb=v1j
if (rs1)
z=pixel
cb=p9*u
c=p1*u
p=pp*u
else
c=p1
z=z*u
cb=p9
endif
else
vb=v1m
if (rs1)
c=z*u
z=pixel*(sc1+px1)
z0=p7*u
ph=ph*u
else
c=z
z=z*u
endif
if (mo1)
c=0.4*log(sqr(pixel^mm))
endif
endif
endif
elseif (ex2)
if (dt1)
if (iv1)
d=bo>bo1
else
d=bo<bo1
endif
if (bt1)
d=d+(t>mi1)
endif
else
d=t>mi1
endif
if (d)
ab=ab2
d3=dd2
ba=bb2
ex2=0
tt=tt-1
if (w2)
u=2*(fn2(t/fac1))
else
u=1,0
endif
if (ir2)
t=0
endif
if (d3)
vb=v2j
if (rs2)
z=pixel
cb=p9*u
c=p1*u
p=pp*u
else
cb=p9
c=p1
z=z*u
endif
else
vb=v2m
if (rs2)
c=z*u
z=pixel*(sc2+px2)
z0=p7*u
ph=ph*u
else
c=z
z=z*u
endif
if (mo2)
c=0.4*log(sqr(pixel^mm))
endif
endif
endif
elseif (ex3)
if (dt2)
if (iv2)
d=bo>bo2
else
d=bo<bo2
endif
if (bt2)
d=d+(t>mi2)
endif
else
d=t>mi2
endif
if (d)
ab=ab3
d3=dd3
ba=bb3
ex3=0
tt=tt-1
if (w3)
u=2*(fn3(t/fac2))
else
u=1,0
endif
if (ir3)
t=0
endif
if (d3)
vb=v3j
if (rs3)
z=pixel
cb=p9*u
c=p1*u
p=pp*u
else
cb=p9
c=p1
z=z*u
endif
else
vb=v3m
if (rs3)
c=z*u
z=pixel*(sc3+px3)
z0=p7*u
ph=ph*u
else
c=z
z=z*u
endif
vb=v3m
if (mo3)
c=0.4*log(sqr(pixel^mm))
endif
endif
endif
elseif (ex4)
if (dt3)
if (iv3)
d=bo>bo3
else
d=bo<bo3
endif
if (bt3)
d=d+(t>mi3)
endif
else
d=t>mi3
endif
if (d)
ab=ab4
d3=dd4
ba=bb4
ex4=0
tt=0
if (w4)
u=2*(fn4(t/fac3))
else
u=1,0
endif
if (d3)
vb=v4j
if (rs4)
z=pixel
cb=p9*u
c=p1*u
p=pp*u
else
cb=p9
c=p1
z=z*u
endif
else
vb=v4m
if (rs4)
c=z*u
z=pixel*(sc4+px4)
z0=p7*u
ph=ph*u
else
c=z
z=z*u
endif
if (mo4)
c=0.4*log(sqr(pixel^mm))
endif
endif
endif
endif
endif
if (vb)
if (d3)
if (ab)
z=z*z+c ;Spiderjul John Horner
c=c*sp+z
else
z1=z^p-1 ;Qusinewton Pusk s Istv n
z2=p*z*z
z=z-z1/z2
endif
elseif (ab)
z1=z*z+ph-0.5*zold ;Phoenix Mike Wareman
zold=z
z=z1
else
z2=fn1(z)+c ;Many_mods Linda Allison
z1=cos(z2)
z=c*(1-z1)/(1+z1)
endif
elseif (d3)
if (ab)
z2=z*z ;Julia Pusk s Istv n
z=z2*z2+p6*z2+c-p0
else
z1=fn1(z)-cb ;Bees Ray Girvan
z2=z1^p8-1
z3=p8*(z1^(p8-1))
z=z-(z2/z3)
endif
elseif (ab)
z2=z*z ;Mandel Pusk s Istv n
z=z2*z2+p6*z2+c-p0
else
z3=z ;Secant Mike Wareman
z1=z0*z0*z0*z0-1
z2=z*z*z*z-1
z=z-z2*(z-z0)/(z2-z1)
z0=z3
endif
bo=|z|
bo<ba
}
---------------------------------------start-par-------------------------
Galleries { ; Albrecht Niekamp Aug,03
; Time 0.37.33.93
;
;
; Version 2002 Patchlevel 5
reset=2002 type=formula formulafile=mfr.frm
formulaname=multifractal_9 function=sin/exp/exp/sin passes=t
center-mag=0.332423/0.00308737/1.230666/1/-90/3.88578058618804789e-016
params=-0.05825983458967864/0.3785210730307932/21222.32595705/15243.0506\
030602/152048.0404808048/384.1604894048/384.00482000595/256.100768999990\
1/384.8007680096201/512.1007689999901 float=y maxiter=3072
inside=maxiter outside=tdis logmap=4 periodicity=0 rseed=-2436
colors=200RRR<8>fffgggiiijjjlll<3>sss<25>BBB999777<2>222000012<24>0bo0cq\
0es<3>0kz<25>09C08A068<2>022000211<21>icNkeOmfP<3>unTwpVxqWzsX<25>CB7A96\
875<3>000400<23>o00q00s00<3>z00<25>C00A00800<3>000<13>PPP
}
Cottoncandyland { ; Time 1.49.41.94
; Albrecht Niekamp Aug,03
reset=2002 type=formula formulafile=mfr.frm
formulaname=multifractal_9 function=sin/exp/exp/sin passes=t
center-mag=-0.319529/0.0030641/4.851655/1/-90/-1.23373533611470521e-014
params=-0.05825983458967864/0.3785210730307932/21225.64595788025/14235.0\
506030602/152048.0404808048/384.1604894048/384.00482000595/256.100768300\
1/512.1007683001/768.1007683001 float=y maxiter=3072 inside=maxiter
outside=tdis periodicity=0 rseed=-2436
colors=200RRR<8>fffgggiiijjjlll<3>sss<25>BBB999777<2>222000012<24>0bo0cq\
0es<3>0kz<25>09C08A068<2>022000211<21>icNkeOmfP<3>unTwpVxqWzsX<25>CB7A96\
875<3>000400<23>o00q00s00<3>z00<25>C00A00800<3>000<13>PPP
}
The_mandelcross { ; Time 4.21.19.14
; Albrecht Niekamp Aug,03
; Version 2002 Patchlevel 5
reset=2002 type=formula formulafile=mfr.frm
formulaname=multifractal_9 function=sin/exp/exp/sin passes=t
center-mag=-0.42439526335446220/+0.00009247620495413/171.1872/1/-90/-1.2\
3373533611470521e-014
params=-0.05825983458967864/0.3785210730307932/21225.64595788025/14235.0\
506030602/152048.0404808048/384.1604894048/384.00482000595/256.100768300\
1/512.1007683001/768.1007683001 float=y maxiter=3072 inside=maxiter
outside=tdis periodicity=0 rseed=-2436
colors=200EEE<3>777555444222000<25>0bo0cq0es<3>0kz<25>09C08A068<2>022000\
211<21>icNkeOmfP<3>unTwpVxqWzsX<25>CB7A96875<3>000400<23>o00q00s00<3>z00\
<25>C00A00800<3>000<11>LLLNNNPPPQQQSSSUUU<6>fffgggiiijjjlll<3>sss<22>GGG
}
House_of_the { ; Helmets
; Time 2.27.56.08
; Albrecht Niekamp Aug,03
; Version 2002 Patchlevel 5
reset=2002 type=formula formulafile=mfr.frm
formulaname=multifractal_9 function=sin/exp/exp/sin passes=t
center-mag=0.332423/0.00308737/1.230666/1/-90/3.88578058618804789e-016
params=-0.05825983458967864/0.3785210730307932/21222.32595700021/12115.0\
506030602/152048.0409608192/384.1609649094/384.00482000595/256.100768300\
01/512.10076830001/768.10076830001 float=y maxiter=3072
inside=maxiter outside=tdis logmap=4 periodicity=0 rseed=-2436
colors=200999<20>iiijjjlll<3>sss<25>BBB999777<2>222000012<24>0bo0cq0es<3\
>0kz<25>09C08A068<2>022000211<21>icNkeOmfP<3>unTwpVxqWzsX<25>CB7A96875<3\
>000400<23>o00q00s00<3>z00<25>C00A00800<3>000<3>777
}