LegalizeAdulthood / iterated-dynamics

Iterated Dynamics is an open source fractal generator with support for many fractal types.
https://legalizeadulthood.github.io/iterated-dynamics/
GNU General Public License v3.0
21 stars 8 forks source link

Buffer overrun #18

Closed LegalizeAdulthood closed 2 months ago

LegalizeAdulthood commented 9 years ago

Albrechtx[CodePlex]
Hi Richard,

maybe you have read my mails about multifractals. As preliminary versions run well with fractint for windows I wonder, if it is possible to increase the size of the internal buffer, as I get a quotBuffer overrunquot error if I try to load multifractal_10.

Sincerely, Albrecht

LegalizeAdulthood commented 9 years ago

legalize[CodePlex]
The parm file supplied generates an image using only 1 frm (magnet) and consequently is the best source.

LegalizeAdulthood commented 9 years ago

legalize[CodePlex]
Reference image rendered from supplied parameter set and mfr_13.frm

LegalizeAdulthood commented 9 years ago

legalize[CodePlex]
Updated formula file. Use these parameters:

80000-16           { ; Patterns
                      ; Time 0.12.04.86  Reso 1280/1024
                      ; Deep Zoom into 80000-03
                      ; First image from DOSBOX SVN-Daum X64
   reset=2004 type=formula formulafile=mfr_13.frm
   formulaname=multifractal_13 function=sin/exp/exp/sin passes=t
   center-mag=-1.27390770772130300/-0.00000022474730471/24945.14/1/-90
   params=4.123234345456565/0.3785210730307932/80000.64595749994/14235.4911\
   0306016/152048.0404808001/384.1604894012091/384.0048200059491/256.100768\
   3000996/512.1007683000993/768.1007683000987 float=y maxiter=3071
   inside=maxiter periodicity=0 rseed=-2436
   colors=000A803540430220110zh335A708607503110wON3_EDUCBO992622D\
   L62351gy238AF09E08D035805704503010LKXEDM76BSQO38433333322300\
   0pOa3MAGF6A735eFo2A3DJ573612301pUn496365354243000VO213C90
   }
LegalizeAdulthood commented 9 years ago

MFR10.txt

Multifractal_10    { ;  Albrecht Niekamp  Jan2005
;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
;          1digit_shapereset:0_no 1_dblmandel 2_iter-reset 3_both +5_warp
;          4digits 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  6digits_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
;  optional:  1_lake effect, 2digits_frquency 2digits_level 2digits_ampl 
;fn(1) shared by many-mods+bees
;
le=0
z=pixel
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
sc=d==2
mo=d==6
px=d==7
ab=px+(d==3)+(d==5)+(d==9)
d=trunc(dd/1000)
dd=dd-d*1000
ex1=d>1
sc1=d==2
mo1=d==6
px1=d==7
v1m=mo1+px1
v1j=d>7
dd1=v1j+(d==4)+(d==5)
ab1=px1+(d==3)+(d==5)+(d==9)
d=trunc(dd/100)
dd=dd-d*100
ex2=d>1
sc2=d==2
mo2=d==6
px2=d==7
v2m=mo2+px2
v2j=d>7
dd2=v2j+(d==4)+(d==5)
ab2=px2+(d==3)+(d==5)+(d==9)
d=trunc(dd/10)
ex3=d>1
sc3=d==2
mo3=d==6
px3=d==7
v3m=mo3+px3
v3j=d>7
dd3=v3j+(d==4)+(d==5)
ab3=px3+(d==3)+(d==5)+(d==9)
d=dd-d*10
ba=imag(p5)
mi3=trunc(ba)
dd=(d>1)+(mi3>1)
ex4=dd==2
sc4=d==2
mo4=d==6
px4=d==7
v4m=mo4+px4
v4j=d>7
dd4=v4j+(d==4)+(d==5)
ab4=px4+(d==3)+(d==5)+(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
dm=(d==2)+(d==4)
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=ex1+ex0+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)*100000000000
ba4=trunc(da/1000000)
ba5=da-ba4*1000000
;
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
dp=p6+p0/100
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
;
if (mi3==1)
 d=(ba-mi3)*1000000
 fr=round((trunc(d/10000))*10)     ;lake effect by S.Gallet
 d=d-fr*1000
 lv=(trunc(d/100))/100            
 d=d-lv*10000
 am=d/100                          
 u=real(rotskew*pi/180)
 t=exp(-flip(u))
 bo=1/real(magxmag)
 q=bo/0.75*imag(magxmag)
 dd=tan(imag(rotskew*pi/180))
 da=2*q*t
 rs=2*bo*(dd+flip(1))*t
 zz=center+(-q-bo*dd-flip(bo))*t
 z=z-zz
 d=imag(conj(da)*z)/imag(conj(da)*rs)
 le=d<=lv
 if (le)
  dd=lv-d
  z=z+2*dd*(1+am*sin(fr*dd^0.2))*rs
 endif  
 z=z+zz
else
 da=(ba-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
endif
;
if (vb)
 if (d3)                                 
  if (ab)
   z=z*le+pixel*(le==0)                                ;Spider
   c=p1
  else
   z=z*le+pixel*(le==0)
   c=p1                                                ;newton
  endif
 elseif (ab)
   c=z                                                 ;Phoenix      
   z=z*le+pixel*(le==0)
  else
   c=0.4*log(sqr(z^mm))                                ;many mods
   z=0 
 endif
elseif (d3)
 if (ab)
  c=p1                                                 ;Julia        
  z=z*le+pixel*(le==0)
 else                                                  ;bees
  c=p1
  z=z*le+pixel*(le==0)                               
 endif
elseif (ab)
 c=z                                                   ;Mandel
 z=0
else
 c=z                                                    ;Secant     
 z=z*le+pixel*(le==0)
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(z^mm))
    else
     c=pixel
    endif
   else
    z=z*le+pixel*(le==0)
    cb=p9*u
    c=p1*u
    p=pp*u
   endif
   tt=tt-1+ex0
  endif
 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(z^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(z^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(z^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(z^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+0.56+ph/100-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)
 if (dm)
   z=z*z+c+c*c-dp                     ;Double Mandel
 else 
  z2=z*z                              ;Mandel        Puskás István 
  z=z2*z2+p6*z2+c-p0
 endif      
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
}
LegalizeAdulthood commented 9 years ago

mfr_13.frm


multifractal_13 { ;  Albrecht Niekamp  Dec07, 2014
;P1      spider-julia-seed
;RP2 Left: 5 Digit_Channels: (1)shape (2)out (3)ins_1 (4)ins_2 (5)ins_3
;     Frm: 0_off 1_Secant 2_Mand(2) 3_Bees 4_Jul/Manowar 5_Mmods
;          6_Phoenix 7_Newton 8_Lambda/Magnet
;   Right: 2 Digit_ManyMods_Number of sides  2 Digit_Phoen  2 Digit_Lambd
;          1 Digit_TransReset-Shape: 0_no 1_DblMan 2_Iter 3_both +5_nowarp
;          4 Digit_TransReset-Ch 2-5: 0_no 1_z 2_Iter 3_both +5_warp
;IP2 Left: 5 Digit_Bailout Number for Channels 1 to 5
;   Right: Variables: 4 Digit_Mand/Jul (2var)  2 Digit_Secant 4 Digit_Bees
;RP3 Left: 2 Digit_Newtonvariable  4 Digits_bailout1
;   Right: 4 Digit_bailout2 4 Digit_bailout3 1 Digit_Magnet 
;IP3 Left: 4 Digit_Shape:  Warp-factor (fn1 is used)
;   Right: 4 Digit_bailout4 4 Digit_bailout5 1 digit_mow=2 1 digit_mag=2
;RP4 Left: 4 Digit_Outside:  Warp-factor (fn2 used)
;   Right: Outside: 4 Digit+fractdig_Border-out 4 Digit+fractdig_border-in
;IP4 Left: Inside1_Maxiter
;   Right: Inside1_Transit: 1_maxit 2_borderout 3_borderin +5_maxit+bord
;          5 Digit_warp factor (fn2 used)  4 Digit+fractaldigit_border1
;RP5 Left: Inside2_Maxiter
;   Right: Inside2_Transit: 1_maxit 2_borderout 3_borderin +5_maxit+bord
;          5 Digit_warp factor (fn3 used)  4 Digit+fractaldigit_border2
;IP5 Left: Inside3_Maxiter
;   Right: Inside3_Transit: 1_maxit 2_borderout 3_borderin +5_maxit+bord
;          5 Digits_Warp factor (fn4 used)  4 Digit+fractaldigit_border3
;fn(1) shared by many-mods + bees
;
z=pixel
da=real(p2)
dd=trunc(da)
tt=dd>0
da=trunc(((da-dd)*100000000000)+11111)
dd=trunc(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
ex0=(d>1)
sc=d==2
mo=d==6
po=d==7
sx=d==9
ab=po+(d==3)+(d==5)+(d==9)
d=trunc(dd/1000)
dd=dd-d*1000
ex1=(d>1)
sc1=d==2
mo1=d==6
po1=d==7
sx1=d==9
v1m=mo1+po1
v1j=d>7
dd1=v1j+(d==4)+(d==5)
ab1=po1+(d==3)+(d==5)+(d==9)
d=trunc(dd/100)
dd=dd-d*100
ex2=(d>1)
sc2=d==2
mo2=d==6
po2=d==7
sx2=d==9
v2m=mo2+po2
v2j=d>7
dd2=v2j+(d==4)+(d==5)
ab2=po2+(d==3)+(d==5)+(d==9)
d=trunc(dd/10)
ex3=(d>1)
sc3=d==2
mo3=d==6
po3=d==7
sx3=d==9
v3m=mo3+po3
v3j=d>7
dd3=v3j+(d==4)+(d==5)
ab3=po3+(d==3)+(d==5)+(d==9)
d=dd-d*10
ba=imag(p5)
mi3=trunc(ba)
dd=(d>1)+(mi3>1)
ex4=(dd==2)
sc4=d==2
mo4=d==6
po4=d==7
sx4=d==9
v4m=mo4+po4
v4j=d>7
dd4=v4j+(d==4)+(d==5)
ab4=po4+(d==3)+(d==5)+(d==9)
tt=ex1+ex0+ex2+ex3+ex4
;
mm=trunc(da/1000000000)
da=da-mm*1000000000
ph=trunc(da/10000000)
da=da-ph*10000000
sp=trunc(da/100000)
da=da-sp*100000
d=trunc(da/10000)
da=da-d*10000
wx=(d>4)
d=d-5*wx
dm=(d==2)+(d==4)
ir0=(d==3)+(d==4)
d=trunc(da/1000)
da=da-d*1000
w1=d>4
d=d-5*w1
rs1=(d==2)+(d==4)
ir1=(d==3)+(d==4)
d=trunc(da/100)
da=da-d*100
w2=d>4
d=d-5*w2
rs2=(d==2)+(d==4)
ir2=(d==3)+(d==4)
d=trunc(da/10)
da=da-d*10
w3=d>4
d=d-5*w3
rs3=(d==2)+(d==4)
ir3=(d==3)+(d==4)
w4=da>4
da=da-5*w4
rs4=(da==2)+(da==3)+(da==4)
ph=ph/10
w0=(wx==0)
If (1<sp)
d=(trunc(sp/10))/9
da=fn4(sp-100*d)
d=sp/73,37
sp=d+sqr(-da)
else
sp=p1
endif
;
d=real(p3)
dd=trunc(d)
da=trunc((d-dd)*10000000000)
pp=trunc(dd/10000)
ba1=dd-10000*pp
ba2=trunc(da/1000000)
da=da-1000000*ba2
ba3=trunc(da/100)
da=da-100*ba3-4
mg=da/10
if (mg<1)
mg=real(p1)
endif
;
d=imag(p3)
sfac=trunc(d)
da=trunc((d-sfac)*10000000000)
ba4=trunc(da/1000000)
da=da-ba4*1000000
ba5=trunc(da/100)
da=da-ba5*100
d=trunc(da/10)
da=da-d*10
mow=d==2
mag=da==2
px0=((sx*mag)==0)*p1
px1=((sx1*mag)==0)*p1
px2=((sx2*mag)==0)*p1
px3=((sx3*mag)==0)*p1
px4=((sx4*mag)==0)*p1
;
d=real(p4)
ofac=trunc(d)
da=trunc((d-ofac)*10000000000)
bh=trunc(da/100000)/10
bl=(da-bh*1000000)/10
bs=bl/2
;
d=imag(p2)
dd=trunc(d)
da=trunc((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=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
p7=trunc(d/10000)/10
d=d-p7*100000
dp=p6+p0/100
p8=trunc(d/100)/100
d=d-p8*10000
p9=d/100
;
d=imag(p4)
mi1=trunc(d)
da=trunc((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=trunc((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=trunc((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
;
if (vb)
 if (d3)
  if (ab)
   if (mag)
    c=z
    z=pixel
    x=mg
    x=x+(x==0)*3            ;magnet
   else
    z=pixel                 ;lambdafn
    x = ((1, 0.4) * (|sp|<=0) + sp)
    m = (64 * (real(ba1)<=0) + real(ba1) * (0<ba1) )
   endif
  else
   c=z
   z=pixel                 ;newton
  endif
 elseif (ab)
   c=z                     ;Phoenix
   z=pixel
  else
   c=0.4*log(sqr(z^mm))     ;many mods
   z=0
 endif
elseif (d3)
 if (ab)
   if (mow)                  ;manowar
     mt = (4 * (real(p2)<=0) + real(p2) * (0<p2) )
     c=p1
     z=pixel
   else
    c=p1                      ;Julia
    z=pixel
   endif
 else                         ;bees
  c=p1
  z=pixel
 endif
elseif (ab)
 c=z                          ;Mandel
 z=0
else
 c=z                           ;Secant
 z=pixel
endif
t=0
bo=|z|
p=pp
z0=p7
zold=(0.0,0.0)
cb=p9
ba=bb0
:
if (tt>0)
 t=t+1
 if (ex0)
  ex0=t<mi1
  if (bo>bs)
   u0=2*(fn1(t/sfac))
   if (w0)
    u=u0
   else
    u=1.0
   endif
   ex0=0
   if (ir0)
    t=0
   endif
    if (d3)
    z=pixel
    cb=p9*u
    c=px0*u
    p=pp*u
    x=x*u
   else
    z=z*u
    if (mo)
     c=0.4*log(sqr(z^mm))
    else
     c=pixel
    endif
    tt=tt-1+ex0
  endif
endif
 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=px1*u
     p=pp*u
     x=x*u
    else
     c=px1
     z=z*u
     cb=p9
    endif
   else
    vb=v1m
    if (rs1)
     c=z*u
     z=pixel*(sc1+po1)
     z0=p7*u
     ph=ph*u
    else
     c=z
     z=z*u
    endif
    if (mo1)
     c=0.4*log(sqr(z^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=px2*u
     p=pp*u
     x=x*u
    else
     cb=p9
     c=px2
     z=z*u
    endif
   else
    vb=v2m
    if (rs2)
     c=z*u
     z=pixel*(sc2+po2)
     z0=p7*u
     ph=ph*u
    else
     c=z
     z=z*u
    endif
    if (mo2)
     c=0.4*log(sqr(z^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=px3*u
     p=pp*u
     x=x*u
    else
     cb=p9
     c=px3
     z=z*u
    endif
   else
    vb=v3m
    if (rs3)
     c=z*u
     z=pixel*(sc3+po3)
     z0=p7*u
     ph=ph*u
    else
     c=z
     z=z*u
    endif
    vb=v3m
    if (mo3)
     c=0.4*log(sqr(z^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=px4*u
     p=pp*u
     x=x*u
    else
     cb=p9
     c=px4
     z=z*u
    endif
   else
    vb=v4m
    if (rs4)
     c=z*u
     z=pixel*(sc4+po4)
     z0=p7*u
     ph=ph*u
    else
     c=z
     z=z*u
    endif
    if (mo4)
     c=0.4*log(sqr(z^mm))
    endif
   endif
  endif
 endif
endif
if (vb)
 if (d3)
  if (ab)
   if (mag)                      ;magnet
    z=((z^x+c-1)/(2*z+c-2))^(x-1)
   else
    z=fn2(z)*fn3(x)              ;Lambdafn
    abs(imag(z)) <=x && abs(real(z)) <=m
   endif
  else
   z1=z^p-1                      ;newton
   z2=p*z*z
   z=z-z1/z2
  endif
 elseif (ab)
   z1=z*z+0.56+ph/100-0.5*zold  ;Phoenix
   zold=z
   z=z1
 else
  z2=fn1(z)+c                   ;Many_mods
  z1=cos(z2)
  z=c*(1-z1)/(1+z1)
 endif
elseif (d3)
 if (ab)
  if (mow)
   z1 = z                       ;manowar
   oldz = z
   z = sqr(oldz) + z1 + c
   z1 = oldz
  else
   z2=z*z                       ;Julia
   z=z2*z2+p6*z2+c-p0
  endif
 else
  z1=fn1(z)-cb                  ;Bees
  z2=z1^p8-1
  z3=p8*(z1^(p8-1))
  z=z-(z2/z3)
 endif
elseif (ab)
 if (dm)
   z=z*z+c+c*c-dp               ;Double Mandel
 else
  z2=z*z                        ;Mandel
  z=z2*z2+p6*z2+c-p0
 endif
else
 z3=z                           ;Secant
 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
}

lambdafn {; Chuck Ebbert.
          ; P1 is lambda, P2 = bailout (default 64).
          ; lambda default is (1,.4)
  z = pixel
   ; CAE added leading zero below in (1,.4)   12 Jan 1993
  m = ((1, 0.4) * (|p1|<=0) + p1 )   ; force (1,.4) when p1=0
  t = (64 * (real(p2)<=0) + real(p2) * (0<p2) ):
  z = fn1(z) * m
  abs(imag(z)) <= t && abs(real(z)) <= t
  ;SOURCE: builtn2.frm
}

LambdaFn (ORIGIN) {; v7.x/9.1 - Chuck Ebbert - from BUILTN.FRM
   ; p1 is lambda (default = 1.0,0.4), 
   ; real(p2) changes bailout (default = 64).
   ; float=yes, set co-ords = -4/3/4/-3              - JH
  z = pixel
   ; CAE added leading zero below in (1,.4)                 12 Jan 1993
  m = ((1, 0.4) * (|p1|<=0) + p1 )            ; force (1,0.4) when p1=0
  t = (64 * (real(p2)<=0) + real(p2) * (0<p2) ):
  z = fn1(z) * m
  abs(imag(z)) <= t && abs(real(z)) <= t
  ;SOURCE: parser.frm
}

lambdafn { 
  z = pixel
  m = ((1, 0.4) * (|p1|<=0) + p1 )  
  t = (64 * (real(p2)<=0) + real(p2) * (0<p2) ):
  z = fn1(z) * fn2(m)
  abs(imag(z)) <= t && abs(real(z)) <= t
  ;SOURCE: bejones.frm
}
LegalizeAdulthood commented 9 years ago

Reference image

image

LegalizeAdulthood commented 2 months ago

This long formula is overflowing the fixed-size arrays in the parser; making them dynamically sized as needed should clear up the issue.

LegalizeAdulthood commented 2 months ago

The colormap in the above PAR set was corrupted in the migration from codeplex, but Id can now render this image correctly modulo colormap without any buffer overruns. fract001