Best Code Ever
<cfif abiliest LTE -3>
<cfset infoforselection = info_3>
<cfelseif abiliest LT -2>
<cfset infoforselection = (1 - (abiliest-(-3))) * info_3 + (1-((-2) - abiliest)) * info_2>
<cfelseif abiliest LT -1>
<cfset infoforselection = (1 - (abiliest-(-2))) * info_2 + (1-((-1) - abiliest)) * info_1>
<cfelseif abiliest LT 0>
<cfset infoforselection = (1 - (abiliest-(-1))) * info_1 + (1-((+0) - abiliest)) * info0>
<cfelseif abiliest LT 1>
<cfset infoforselection = (1 - (abiliest-(+0))) * info0 + (1-((+1) - abiliest)) * info1>
<cfelseif abiliest LT 2>
<cfset infoforselection = (1 - (abiliest-(+1))) * info1 + (1-((+2) - abiliest)) * info2>
<cfelseif abiliest LT 3>
<cfset infoforselection = (1 - (abiliest-(+2))) * info2 + (1-((+3) - abiliest)) * info3>
<cfelseif abiliest GTE 3>
<cfset infoforselection = info3>
</cfif>
...
initprobtarget is a session variable that gets assigned to 0.5 and never changes,
initabil is a session variable that gets assigned to 1 and never changes,
This code is repeatedly run.
=1 - ln(.5/.5)
=1 - 0
=1
difftarget gets set to 1.0000 every time.
<cfif NOT isDefined("session.difftarget")><!--- Is this the first question? (YES) --->
<cfset session.difftarget = session.initabil - log(session.initprobtarget / (1 - session.initprobtarget))>
<!--- Round the number --->
<cfset session.difftarget = numberFormat(session.difftarget, ".9999")>
<cfelse>