The Talis formulas, part of the "Switch Talis and friends" formula in tma.ulb,
as a Contraction.
class JLB_TalisContraction(mmf.ulb:Contraction) {
; The Talis formulas, part of the "Switch Talis and friends" formula in tma.ulb,
; as a Contraction.
public:
; @param pz
; @param pc
; @return the new pz
complex func Iterate(complex pz, complex pc)
complex tz = pz
complex tc = pc
if (!@p_std)
tz = tz - @p_zoffset
tc = tc - @p_coffset
endif
if @var == "Talis"
tz =@fn1((tz-@p1)*@p1a)*@fn2(tz)/@fn3(@p2+(@fn4(tz)*@p2a))+\
@fn5(tc-@p3)*@p3a
elseif @var == "Talis Var 1"
tz =@fn1(((tz-@p1)*@p1a)*@fn2(tz)-@fn6(tz)) /@fn3(@p2+(@fn4(tz)*@p2a))+\
@fn5(tc-@p3)*@p3a
elseif @var == "Talis Var 2"
tz =@fn1(((tz-@p1)*@p1a)*@fn2(tz)*@fn6(tz)) /@fn3(@p2+(@fn4(tz)*@p2a))+\
@fn5(tc-@p3)*@p3a
elseif @var == "Talis Var 3"
tz =@fn1(((tz-@p1)*@p1a)*@fn2(tz)*@fn6(tz)*tz) /@fn3(@p2+(@fn4(tz)*@p2a)\
*@fn7(tz)-@fn8(tz))+@fn5(tc-@p3)*@p3a
elseif @var == "Talis Var 4"
tz =@fn1(((tz-@p1)*@p1a)*@fn2(tz)*@fn6(tz)) /@fn3(@p2+(@fn4(tz)*@p2a)\
*@fn7(tz)-@fn8(tz))+@fn5(tc-@p3)*@p3a
elseif @var == "Talis Var 5"
tz =@fn1(((tz-@p1)*@p1a)*@fn2(tz)*@fn6(tz)) /@fn3(@p2+(@fn4(tz)*@p2a)\
*@fn7(tz)-@fn8(tz)-tz)+@fn5(tc-@p3)*@p3a
elseif @var == "Talis Var 6"
tz =@fn1(((tz-@p1)*@p1a)*@fn2(tz)*@fn6(tz)) /@fn3(@p2+(@fn4(tz)*@p2a)\
*@fn7(tz)-@fn8(tz)+tz)+@fn5(tc-@p3)*@p3a
endif
return tz
endfunc
private:
default:
title = "Talis"
int param v_Taliscontraction
caption = "Version (Talis_Contraction)"
default = 100
hint = "This version parameter is used to detect when a change has \
been made to the formula that is incompatible with the \
previous version. When that happens, this field will reflect \
the old version number to alert you to the fact that an \
alternate rendering is being used."
visible = @v_Taliscontraction < 100
endparam
bool param p_std
caption = "Standard"
default = true
endparam
param var
caption = "Formula Type"
enum = "Talis" "Talis Var 1" "Talis Var 2" "Talis Var 3" \
"Talis Var 4" "Talis Var 5" "Talis Var 6"
default = 0
endparam
complex param p1
caption = "1st Z Offset"
default = (0,0)
endparam
complex param p1a
caption = "1st Z Strength"
default = (1,0)
endparam
complex param p2
caption = "2nd Z Offset"
default = (1,0)
endparam
complex param p2a
caption = "2nd Z Strength"
default = (1,0)
endparam
complex param p3
caption = "C Offset"
default = (0,0)
endparam
complex param p3a
caption = "C Strength"
default = (1,0)
endparam
func fn1
caption = "1st Z Function"
default = ident ()
endfunc
func fn2
caption = "2nd Z Function"
default = ident ()
endfunc
func fn3
caption = "3rd Z Function"
default = ident ()
endfunc
func fn4
caption = "Another Function"
default = ident ()
endfunc
func fn5
caption = "C Function"
default = ident ()
endfunc
func fn6
caption = "Extra Z Function"
default = ident ()
visible = @var > 0
endfunc
func fn7
caption = "Extra Z2 Function"
default = ident ()
visible = @var > 2
endfunc
func fn8
caption = "Extra Z3 Function"
default = ident ()
visible = @var > 2
endfunc
complex param p_zoffset
caption = "pz offset"
default = (0,0)
visible = !@p_std
endparam
complex param p_coffset
caption = "pc offset"
default = (0,0)
visible = !@p_std
endparam
}