Hi,
Although Multifractal has become much longer there is hardly any
slowdown due to some efficient speedups in the mainloop. The additional
inputs p3, p4 and p5 can be used up to the maximum number of digits if
only fractional values are concerned. If the total number is exceeded,
the last digits are truncated.
Three important changes this time. It now is possible to control
the coloring using an alternative bailout which can be applied to one or
two channels, imag(P2), last two digits of first input. Just type the
number of the channel(s). The first alt-bailout is applied to the first
choice, the second one is applied to the second choice. A high value
- real(p3) or real(p3) 2nd input, digits 6-11 - compresses, a value lower
then bailout expands the coloring of the concerned channel.
Another way is to use iter-reset, which causes the iterationcounter to
start from zero and so increases the number of iterations for the concerned
channel, - coloring is modified in a more subtle way. This of course
increases the calculation time, also the warp effect of the following
channels is concerned.
The second news is the real(p2) input, as now only the number of the
frm is needed, no more double choices. This means if you call the
"z" screen you can see at one glance which frms are used. The two
reset commands and the warpeffect switch are combined in the real(p2)
second input, last five digits, 1 digit for each channel. Scroll the
text for explanation.
(3) I have spend some efforts to get rid of distorted structures, so now
I can reintroduce them, but on a controlled basis. This means the
3 inside channels (3-5) now can use bordervalues if wanted. The first
digit, 2nd input, image(p4), real(p5), image (p5) controls use of maxiter
or border values. The bordervalues can be used bothways, "in" or "out".
"In" means that the concerned channel is switched on, if the border
value is higher then the input and vv. If the selection is "7" or "8"
both, maxiter and border-(both options) are used at the same
time. This possibly will cause chaos, if the same part of the image
is affected, but maybe thats ok in some cases.
Testing this frm I again experienced some difficulties with that
infamous fractint-bug (misreadings of the inputs under certain
conditions). "Debugflag=322" is activated, but itïs not on my office
computer, it does not make any difference. Btw against all rumours
fractint runs perfectly under WindowsNT (Gforce2 videocard). Concerned
is real(p2), first(!) input, where channel 2 (outside) was not read
correctly if zeros follow. I fixed it adding"1" to the last digit and
so avoid zero divisions. The second concerned input is real(p2) second
input, last 5 digits. I already added 11111 to the input in multifractal_7,
but I noticed that the last digit still was misread sometimes, so I used
the "round" function for this digit. After many tests all inputs are
executed correctly.
The images :
"House of the Helmets" is a four generations mandel and very beautiful,
rather slow though as the "secant" frm used inorder to get rid of the
tdis-sausages is very slow and I used iter reset to get the wanted
coloring for the helmets. The part of the sausages to be eaten by secant
is controlled by "image(p3)" 2nd input (outside border-in), a lower value
eats more.
"Mandel in the clouds" is an impressive zoom into this one, the new
coloring expansion is used to generate the clouds.
"Borderwatch" is another one, really extraordinary and worth waiting for.
As this was generated under Winnt I cannot tell the actual time needed.
"Ganymed" and "Islands" use the new inside border values, option1
(border-out). Btw Ganymed is the biggest Jupiter planet.
"Ikebana" is a japanese ornamental floral arrangement. The many different
shapes of the flowers are produced by the warp effect.
Same goes for the "Jellyfish armada".
Fractal Greetings,
Al
---------------------------------------start-frm--------------------------
FRM:Multifractal_8 { ; Albrecht Niekamp 090803
;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)(-) 2-4digits : newton input (max 2000)
; 2digits : channel_alt-bailout1 channel_alt-bailout2
; input2 : 4digits(-)_mand/jul 2digits_secant 4digits_bees
;real(p3) alt-bailout1, 5digits_bailout 6digits alt-bailout2
;imag(p3) shape : factor (fn1), outside : border-in (5digits+fract.)
;real(p4) outside: factor (fn2), outside : border-out (5digits+fract.)
;imag(p4) inside1: maxit1, 1digit_use:1_maxit 2_bord-in 3_bord-out +5_both
; 5digits_factor1 (fn2) 4digits+fract_border1
;real(p5) inside2: maxit2, 1digit_use:1_maxit 2_bord-in 3_bord-out +5_both
; 5digits_factor2 (fn3) 4digits+fract_border2
;imag(p5) inside3: maxit3, 1digit_use:1_maxit 2_bord-in 3_bord-out +5_both
; 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+1
d=trunc(dd/10000)
dd=dd-d*10000
d3=(d==3)+(d==4)+(d==7)+(d==8)
d4=(d3==0)
vb=d>4
ab=(d==2)+(d==4)+(d==6)+(d==8)
d=trunc(dd/1000)
dd=dd-d*1000
ex1=d>0
v1m=(d==5)+(d==6)
v1j=d>6
dd1=(d==3)+(d==4)+v1j
ab1=(d==2)+(d==4)+(d==6)+(d==8)
d=trunc(dd/100)
dd=dd-d*100
ex2=d>0
v2m=(d==5)+(d==6)
v2j=d>6
dd2=(d==3)+(d==4)+v2j
ab2=(d==2)+(d==4)+(d==6)+(d==8)
d=trunc(dd/10)
ex3=d>0
v3m=(d==5)+(d==6)
v3j=d>6
dd3=(d==3)+(d==4)+v3j
ab3=(d==2)+(d==4)+(d==6)+(d==8)
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=imag(p2)
t=d<0
if (t)
d=-d
endif
dd=trunc(d)
d=round((d-dd)*10000000000)
pp=trunc(dd/100)/10
dd=dd-1000*pp
ba1=trunc(dd/10)
ba2=dd-10*ba1
;
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=real(p3)
bb1=trunc(d)
da=(d-bb1)*10000000000
ba=trunc(da/100000)
bb2=da-100000*ba
;
d=imag(p3)
sfac=trunc(d)
b1=(d-sfac)*100000
b0=b1/2
;
d=real(p4)
ofac=trunc(d)
b2=(d-ofac)*100000
;
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)*100000000000
d=trunc(da/10000000000)
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)
;
mb0=(ba1==1)+(ba2==1)
mb1=(ba1==2)+(ba2==2)
mb2=(ba1==3)+(ba2==3)
mb3=(ba1==4)+(ba2==4)
mb4=(ba1==5)+(ba2==5)
;
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
u=d3
bo=z
p=pp
z0=p7
zold=(0.0,0.0)
cb=p9
bx=ba
if (mb0)
if (ba1==1)
ba=bb1
else
ba=bb2
endif
else
ba=bx
endif
:
If (tt)
t=t+1
if (ex0)
if (bo>b0)
u=2*(fn1(t/sfac))
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
if (ir0)
t=0
endif
ex0=0
tt=tt-1
endif
elseif ((ex1) && bo>b1)
if (b2>bo)
d3=dd1
if (w1)
u=2*(fn2(t/ofac))
else
u=1,0
endif
ab=ab1
if (d3)
if (rs1)
z=pixel
cb=p9*u
c=p1*u
p=pp*u
else
c=p1
z=z*u
cb=p9
endif
vb=v1j
else
if (rs1)
c=z*u
z=pixel*(sc1+px1)
z0=p7*u
ph=ph*u
else
c=z
z=z*u
endif
vb=v1m
if (mo1)
c=0.4*log(sqr(pixel^mm))
endif
endif
if (mb1)
if (ba1==2)
ba=bb1
else
ba=bb2
endif
else
ba=bx
endif
if (ir1)
t=0
endif
ex1=0
tt=tt-1
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)
if (w2)
u=2*(fn2(t/fac1))
else
u=1,0
endif
ab=ab2
d3=dd2
if (d3)
if (rs2)
z=pixel
cb=p9*u
c=p1*u
p=pp*u
else
cb=p9
c=p1
z=z*u
endif
vb=v2j
else
if (rs2)
c=z*u
z=pixel*(sc2+px2)
z0=p7*u
ph=ph*u
else
c=z
z=z*u
endif
vb=v2m
if (mo2)
c=0.4*log(sqr(pixel^mm))
endif
endif
if (mb2)
if (ba1==3)
ba=bb1
else
ba=bb2
endif
else
ba=bx
endif
if (ir2)
t=0
endif
ex2=0
tt=tt-1
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)
if (w3)
u=2*(fn3(t/fac2))
else
u=1,0
endif
ab=ab3
d3=dd3
if (d3)
if (rs3)
z=pixel
cb=p9*u
c=p1*u
p=pp*u
else
cb=p9
c=p1
z=z*u
endif
vb=v3j
else
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
if (mb3)
if (ba1==4)
ba=bb1
else
ba=bb2
endif
else
ba=bx
endif
if (ir3)
t=0
endif
ex3=0
tt=tt-1
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)
if (w4)
u=2*(fn4(t/fac3))
else
u=1,0
endif
if (mb4)
if (ba1==5)
ba=bb1
else
ba=bb2
endif
else
ba=bx
endif
ab=ab4
d3=dd4
if (d3)
if (rs4)
z=pixel
cb=p9*u
c=p1*u
p=pp*u
else
cb=p9
c=p1
z=z*u
endif
vb=v4j
else
if (rs4)
c=z*u
z=pixel*(sc4+px4)
z0=p7*u
ph=ph*u
else
c=z
z=z*u
endif
vb=v4m
if (mo4)
c=0.4*log(sqr(pixel^mm))
endif
endif
ex4=0
tt=0
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)
zt=z*z+ph-0.5*zold ;Phoenix Mike Wareman
zold=z
z=zt
else
z2=fn1(z)+c ;Many_mods Linda Allison
q=cos(z2)
z=c*(1-q)/(1+q)
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-------------------------------
Ganymed { ; Time 1.12.39.12
; Albrecht Niekamp aug, 03
; Version 2002 Patchlevel 5
reset=2002 type=formula formulafile=mfr.frm
formulaname=multifractal_8 function=sin/cosxx/cos/exp passes=t
center-mag=+0.50549305714185240/-0.61811095723667920/704.0072/1/142.4999\
99999998181/2.79927470092644626e-012
params=-0.02237006744590594/-0.07473982970671712/20685.64575300005/17053\
.0608020602/82048.03072420481/384.0000045/384.00024/128.3007680000451/25\
6.300768002431/512.2007680082311 float=y maxiter=3072 inside=maxiter
outside=tdis logmap=9 periodicity=0 rseed=-2436
colors=200034<23>0bo0cq0es<3>0kz<25>09C08A068<2>022000211<13>UQFWSGYTH<3\
>e`LgbMidN<3>qjRslSunT<2>zsX<25>CB7A96875<3>000400<23>o00q00s00<3>z00<25\
>C00A00800<3>000<23>eeegggiiijjjlllnnn<2>sss<25>BBB999777<2>222000012
}
Ikebana { ; Albrecht Niekamp Aug, 03
; Time 0.49.15.81
;
;
; Version 2002 Patchlevel 5
reset=2002 type=formula formulafile=mfr.frm
formulaname=multifractal_8 function=sin/cosxx/cos/sin passes=t
center-mag=+1.01296887343957000/-0.25355247435077240/268.8172/1/104.9999\
99999999417/4.71109262711877363e-013
params=-0.02237006744590594/-0.07473982970671712/20856.6459530051/5040.0\
608020602/82048.02048000001/384.0000045/384.00024/128.1007682048001/184.\
1007682048001/512.1007682048001 float=y maxiter=3072 inside=maxiter
outside=tdis logmap=11 periodicity=0 rseed=-2436
colors=2000NU<8>09C08A068<2>022000211<13>UQFWSGYTH<3>e`LgbMidN<3>qjRslSu\
nT<2>zsX<25>CB7A96875<3>000400<23>o00q00s00<3>z00<25>C00A00800<3>000<25>\
iiijjjlll<3>sss<25>BBB999777<2>222000012<24>0bo0cq0es<3>0kz<15>0OW
}
Islands { ; Time 0.47.07.67
; Albrecht Niekamp Aug,03
;
; Version 2002 Patchlevel 5
reset=2002 type=formula formulafile=mfr.frm
formulaname=multifractal_8 function=sin/cosxx/cos/exp passes=t
center-mag=+0.14743939138452520/-0.85700696310343770/988.7742/1/-177.500\
000000000938/8.0188633511113494e-013
params=-0.02237006744590594/-0.07473982970671712/20685.64575300005/17053\
.0608020602/82048.03072420481/384.0000045/384.00024/128.3007680000451/25\
6.300768002431/512.2007680082311 float=y maxiter=3072 inside=maxiter
outside=tdis logmap=9 periodicity=0 rseed=-2436
colors=200222<22>eeegggiiijjjlllnnn<2>sss<25>BBB999777<2>222000012<24>0b\
o0cq0es<3>0kz<25>09C08A068<2>022000211<13>UQFWSGYTH<3>e`LgbMidN<3>qjRslS\
unT<2>zsX<25>CB7A96875<3>000400<23>o00q00s00<3>z00<31>000
}
Jellyfish_armada { ; Albrecht Niekamp Aug, 03
; Time 0.46.44.55
;
;
; Version 2002 Patchlevel 5
reset=2002 type=formula formulafile=mfr.frm
formulaname=multifractal_8 function=sin/cosxx/cos/sin passes=t
center-mag=+1.05590865727923400/-0.26726304367583260/537.6344/1/-120.000\
000000001336/1.0563286356735091e-012
params=-0.02237006744590594/-0.07473982970671712/20854.6459530051/5040.0\
608020602/82048.02048000001/384.0000045/384.00024/128.1007682048001/184.\
1007682048001/512.1007682048001 float=y maxiter=3072 inside=maxiter
outside=tdis logmap=11 periodicity=0 rseed=-2436
colors=2000NU<8>09C08A068<2>022000211<13>UQFWSGYTH<3>e`LgbMidN<3>qjRslSu\
nT<2>zsX<25>CB7A96875<3>000400<23>o00q00s00<3>z00<25>C00A00800<3>000<25>\
iiijjjlll<3>sss<25>BBB999777<2>222000012<24>0bo0cq0es<3>0kz<15>0OW
}
Mandel_in_the { ; Clouds
; Albrecht Niekamp Aug, 03
; Time 2.57.35.27
; Version 2002 Patchlevel 5
reset=2002 type=formula formulafile=mfr.frm
formulaname=multifractal_8 function=sin/exp/exp/sin passes=t
center-mag=0.798692/0.00022867/24.61116/1/-90/3.88578058618804789e-016
params=-0.05825983458967864/0.3785210730307932/21222.32595700021/5025.05\
06030602/89094.02048000094/384.0000545/384.00048/256.1007683001/512.1007\
683001/768.1007683001 float=y maxiter=3072 inside=maxiter
outside=tdis logmap=4 periodicity=0 rseed=-2436
colors=200444<21>fffgggiiijjjlll<3>sss<25>BBB999777<2>222000012<24>0bo0c\
q0es<3>0kz<25>09C08A068<2>022000211<21>icNkeOmfP<3>unTwpVxqWzsX<25>CB7A9\
6875<3>000400<23>o00q00s00<3>z00<25>C00A00800<3>000222
}
Borderwatch { ; Albrecht Niekamp Aug, 03
;
;
; Version 2002 Patchlevel 5
reset=2002 type=formula formulafile=mfr.frm
formulaname=multifractal_8 function=sin/exp/exp/sin passes=t
center-mag=+0.76810386176090220/-0.04756578810250790/866.3365/1/90/-1.23\
373533611470521e-014
params=-0.05825983458967864/0.3785210730307932/21222.32595700021/5025.05\
06030602/89094.02048000094/384.0000545/384.00048/256.1007683001/512.1007\
683001/768.1007683001 float=y maxiter=3072 inside=maxiter
outside=tdis logmap=4 periodicity=0 rseed=-2436
colors=200444<21>fffgggiiijjjlll<3>sss<25>BBB999777<2>222000012<24>0bo0c\
q0es<3>0kz<25>09C08A068<2>022000211<21>icNkeOmfP<3>unTwpVxqWzsX<25>CB7A9\
6875<3>000400<23>o00q00s00<3>z00<25>C00A00800<3>000222
}
House_of_the { ; Helmets
; Time 2.31.23.87
; Albrecht Niekamp Aug,03
; Version 2002 Patchlevel 5
reset=2002 type=formula formulafile=mfr.frm
formulaname=multifractal_8 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/5025.05\
06030602/89094.02048049094/384.0000545/384.00048/256.1007683001/512.1007\
683001/768.1007683001 float=y maxiter=3072 inside=maxiter
outside=tdis logmap=4 periodicity=0 rseed=-2436
colors=200600<22>o00q00s00<3>z00<25>C00A00800<3>000<25>iiijjjlll<3>sss<2\
5>BBB999777<2>222000012<24>0bo0cq0es<3>0kz<25>09C08A068<2>022000211<21>i\
cNkeOmfP<3>unTwpVxqWzsX<25>CB7A96875<3>000400
}
--------------------------------------end----------------------------------