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 }
participants (1)
-
Albrecht.Niekamp@t-online.de