How about timing? This 640*640 image took 35 seconds to render onscreen (so no anti-aliasing)
Using my program it takes 20 seconds to render 640x640 image (step distance was 0.3*DE).
Hi guys, just to point out that if you're comparing timings you really need to state the computing power used
Managed to get a similar view of the same Julia...
Rendered within UF @640*640 in 27secs on my 3GHz P4HT using the current optimised version of my formula, just to put that in context exactly the same image rendered using full trig for both the iterate and the derivative takes nearly 5 minutes.
Rendered using analytical DE, threshold 1e-3, step sizes = 0.45*DE.
Here's part of the optimised code:
magn = sqrt(magn)
dr = @mpwr*(ph=sqrt((th=|dzri|) + sqr(dzj)))
if (r=|zri|)>0.0
zjk = ((r=sqrt(r)) + flip(zj))/magn
dr = dr*magn^(@mpwr-1.0)
zri = zri/r
if @mpwr==round(@mpwr) && abs(@mpwr-1.0)<32
if @mpwr==1.0
zri1 = (1,0)
zjk1 = (1,0)
elseif @mpwr==0.0
zri1 = 1.0/zri
zjk1 = 1.0/zjk
else
if @mpwr-1.0<0.0
zri1 = 1.0/zri
zjk1 = 1.0/zjk
else
zri1 = zri
zjk1 = zjk
endif
if abs(@mpwr-1.0)==2.0
zri1 = sqr(zri1)
zjk1 = sqr(zjk1)
elseif abs(@mpwr-1.0)==3.0
zri1 = zri1^3
zjk1 = zjk1^3
elseif abs(@mpwr-1.0)==4.0
zri1 = zri1^4
zjk1 = zjk1^4
else
if (abs(@mpwr-1.0)%4)>1
zp2 = sqr(zri1)
z1p2 = sqr(zjk1)
endif
if (abs(@mpwr-1)%8)>3
if (abs(@mpwr-1)%4)>1
zp4 = sqr(zp2)
z1p4 = sqr(z1p2)
else
zp4 = zri1^4
z1p4 = zjk1^4
endif
endif
if (abs(@mpwr-1)%16)>7
if (abs(@mpwr-1)%8)>3
zp8 = sqr(zp4)
z1p8 = sqr(z1p4)
elseif (abs(@mpwr-1)%4)>1
zp8 = zp2^4
z1p8 = z1p2^4
else
zp8 = sqr(zri1^4)
z1p8 = sqr(zjk1^4)
endif
endif
if abs(@mpwr-1)>15
if (abs(@mpwr-1)%16)>7
zp16 = sqr(zp8)
z1p16 = sqr(z1p8)
elseif (abs(@mpwr-1)%8)>3
zp16 = zp4^4
z1p16 = z1p4^4
elseif (abs(@mpwr-1)%4)>1
zp16 = sqr(zp2^4)
z1p16 = sqr(z1p2^4)
else
zp16 = (zri1^4)^4
z1p16 = (zjk1^4)^4
endif
endif
if abs(@mpwr-1)==31
zri1 = zp16*zp8*zp4*zp2*zri1
zjk1 = z1p16*z1p8*z1p4*z1p2*zjk1
elseif abs(@mpwr-1)==30
zri1 = zp16*zp8*zp4*zp2
zjk1 = z1p16*z1p8*z1p4*z1p2
elseif abs(@mpwr-1)==29
zri1 = zp16*zp8*zp4*zri1
zjk1 = z1p16*z1p8*z1p4*zjk1
elseif abs(@mpwr-1)==28
zri1 = zp16*zp8*zp4
zjk1 = z1p16*z1p8*z1p4
elseif abs(@mpwr-1)==27
zri1 = zp16*zp8*zp2*zri1
zjk1 = z1p16*z1p8*z1p2*zjk1
elseif abs(@mpwr-1)==26
zri1 = zp16*zp8*zp2
zjk1 = z1p16*z1p8*z1p2
elseif abs(@mpwr-1)==25
zri1 = zp16*zp8*zri1
zjk1 = z1p16*z1p8*zjk1
elseif abs(@mpwr-1)==24
zri1 = zp16*zp8
zjk1 = z1p16*z1p8
elseif abs(@mpwr-1)==23
zri1 = zp16*zp4*zp2*zri1
zjk1 = z1p16*z1p4*z1p2*zjk1
elseif abs(@mpwr-1)==22
zri1 = zp16*zp4*zp2
zjk1 = z1p16*z1p4*z1p2
elseif abs(@mpwr-1)==21
zri1 = zp16*zp4*zri1
zjk1 = z1p16*z1p4*zjk1
elseif abs(@mpwr-1)==20
zri1 = zp16*zp4
zjk1 = z1p16*z1p4
elseif abs(@mpwr-1)==19
zri1 = zp16*zp2*zri1
zjk1 = z1p16*z1p2*zjk1
elseif abs(@mpwr-1)==18
zri1 = zp16*zp2
zjk1 = z1p16*z1p2
elseif abs(@mpwr-1)==17
zri1 = zp16*zri1
zjk1 = z1p16*zjk1
elseif abs(@mpwr-1)==16
zri1 = zp16
zjk1 = z1p16
elseif abs(@mpwr-1)==15
zri1 = zp8*zp4*zp2*zri1
zjk1 = z1p8*z1p4*z1p2*zjk1
elseif abs(@mpwr-1)==14
zri1 = zp8*zp4*zp2
zjk1 = z1p8*z1p4*z1p2
elseif abs(@mpwr-1)==13
zri1 = zp8*zp4*zri1
zjk1 = z1p8*z1p4*zjk1
elseif abs(@mpwr-1)==12
zri1 = zp8*zp4
zjk1 = z1p8*z1p4
elseif abs(@mpwr-1)==11
zri1 = zp8*zp2*zri1
zjk1 = z1p8*z1p2*zjk1
elseif abs(@mpwr-1)==10
zri1 = zp8*zp2
zjk1 = z1p8*z1p2
elseif abs(@mpwr-1)==9
zri1 = zp8*zri1
zjk1 = z1p8*zjk1
elseif abs(@mpwr-1)==8
zri1 = zp8
zjk1 = z1p8
elseif abs(@mpwr-1)==7
zri1 = zp4*zp2*zri1
zjk1 = z1p4*z1p2*zjk1
elseif abs(@mpwr-1)==6
zri1 = zp4*zp2
zjk1 = z1p4*z1p2
elseif abs(@mpwr-1)==5
zri1 = zp4*zri1
zjk1 = z1p4*zjk1
elseif abs(@mpwr-1)==4
zri1 = zp4
zjk1 = z1p4
elseif abs(@mpwr-1)==3
zri1 = zp2*zri1
zjk1 = z1p2*zjk1
elseif abs(@mpwr-1)==2
zri1 = zp2
zjk1 = z1p2
endif
endif
endif
else
zri1 = zri^(@mpwr-1.0)
zjk1 = zjk^(@mpwr-1.0)
endif
r = sqrt(th)
zri = zri*zri1
dzjk = r + flip(dzj)
zjk = zjk*zjk1
if r>0.0
dzri = zri1*dzri/r
else
dzri = zri1
endif
if ph>0.0
dzjk = zjk1*dzjk/ph
else
dzjk = zjk1
endif
magn = magn^@mpwr
dzri = dr*real(dzjk)*dzri
if @plus
dzj = dr*imag(dzjk)
else
dzj = -dr*imag(dzjk)
endif
if @fractaltype==1
dzri = dzri + 1.0
endif
if @plus
zj = cj + magn*imag(zjk)
else
zj = cj - magn*imag(zjk)
endif
zri = magn*real(zjk)*zri + cri