code 35080;
real procedure EI(X);value X;real X;
begin real array P,Q[0:7];
if X>24 then
begin P[0]:= +1.00000000000058 ;Q[1]:= 1.99999999924131 ;
P[1]:=X-3.00000016782085 ;Q[2]:=-2.99996432944446 ;
P[2]:=X-5.00140345515924 ;Q[3]:=-7.90404992298926 ;
P[3]:=X-7.49289167792884 ;Q[4]:=-4.31325836146628 ;
P[4]:=X-3.08336269051763"+1;Q[5]:= 2.95999399486831"+2;
P[5]:=X-1.39381360364405 ;Q[6]:=-6.74704580465832 ;
P[6]:=X+8.91263822573708 ;Q[7]:= 1.04745362652468"+3;
P[7]:=X-5.31686623494482"+1;
EI:=EXP(X)*(1+JFRAC(7,Q,P)/X)/X
end else if X>12 then
begin P[0]:= +9.99994296074708"-1;Q[1]:= 1.00083867402639 ;
P[1]:=X-1.95022321289660 ;Q[2]:=-3.43942266899870 ;
P[2]:=X+1.75656315469614 ;Q[3]:= 2.89516727925135"+1;
P[3]:=X+1.79601688769252"+1;Q[4]:= 7.60761148007735"+2;
P[4]:=X-3.23467330305403"+1;Q[5]:= 2.57776384238440"+1;
P[5]:=X-8.28561994140641 ;Q[6]:= 5.72837193837324"+1;
P[6]:=X-1.86545454883399"+1;Q[7]:= 6.95000655887434"+1;
P[7]:=X-3.48334653602853 ;
EI:=EXP(X)*JFRAC(7,Q,P)/X
end else if X>6 then
begin P[0]:= +1.00443109228078 ;Q[1]:= 5.27468851962908"-1;
P[1]:=X-4.32531132878135"+1;Q[2]:= 2.73624119889328"+3;
P[2]:=X+6.01217990830080"+1;Q[3]:= 1.43256738121938"+1;
P[3]:=X-3.31842531997221"+1;Q[4]:= 1.00367439516726"+3;
P[4]:=X+2.50762811293560"+1;Q[5]:=-6.25041161671876 ;
P[5]:=X+9.30816385662165 ;Q[6]:= 3.00892648372915"+2;
P[6]:=X-2.19010233854880"+1;Q[7]:= 3.93707701852715 ;
P[7]:=X-2.18086381520724 ;
EI:=EXP(X)*JFRAC(7,Q,P)/X
end else if X>0 then
begin real T,R,X0,XMX0;
P[0]:=-1.95773036904548"+8;Q[0]:=-8.26271498626055"+7;
P[1]:= 3.89280421311201"+6;Q[1]:= 8.91925767575612"+7;
P[2]:=-2.21744627758845"+7;Q[2]:=-2.49033375740540"+7;
P[3]:=-1.19623669349247"+5;Q[3]:= 4.28559624611749"+6;
P[4]:=-2.49301393458648"+5;Q[4]:=-4.83547436162164"+5;
P[5]:=-4.21001615357070"+3;Q[5]:= 3.57300298058508"+4;
P[6]:=-5.49142265521085"+2;Q[6]:=-1.60708926587221"+3;
P[7]:=-8.66937339951070 ;Q[7]:= 3.41718750000000"+1;
X0:=.372507410781367;
T:=X/3-1;
R:=CHEPOLSUM(7,T,P)/CHEPOLSUM(7,T,Q);
XMX0:=(X-409576229586/1099511627776)-.767177250199394"-12;
if ABS(XMX0)>.037 then T:=LN(X/X0) else
begin real Z,Z2;
P[0]:= .837207933976075"+1;Q[0]:= .418603966988037"+1;
P[1]:=-.652268740837103"+1;Q[1]:=-.465669026080814"+1;
P[2]:= .569955700306720 ;Q[2]:= .1"+1;
Z:=XMX0/(X+X0);Z2:=Z*Z;
T:=Z*POL(2,Z2,P)/POL(2,Z2,Q)
end;
EI:=T+XMX0*R
end else
if X>-1 then
begin real Y;
P[0]:=-4.41785471728217"+4;Q[0]:= 7.65373323337614"+4;
P[1]:= 5.77217247139444"+4;Q[1]:= 3.25971881290275"+4;
P[2]:= 9.93831388962037"+3;Q[2]:= 6.10610794245759"+3;
P[3]:= 1.84211088668000"+3;Q[3]:= 6.35419418378382"+2;
P[4]:= 1.01093806161906"+2;Q[4]:= 3.72298352833327"+1;
P[5]:= 5.03416184097568 ;Q[5]:= 1;
Y:=-X;
EI:=LN(Y)-POL(5,Y,P)/POL(5,Y,Q)
end else if X>-4 then
begin real Y;
P[0]:= 8.67745954838444"-8;Q[0]:= 1;
P[1]:= 9.99995519301390"-1;Q[1]:= 1.28481935379157"+1;
P[2]:= 1.18483105554946"+1;Q[2]:= 5.64433569561803"+1;
P[3]:= 4.55930644253390"+1;Q[3]:= 1.06645183769914"+2;
P[4]:= 6.99279451291003"+1;Q[4]:= 8.97311097125290"+1;
P[5]:= 4.25202034768841"+1;Q[5]:= 3.14971849170441"+1;
P[6]:= 8.83671808803844 ;Q[6]:= 3.79559003762122 ;
P[7]:= 4.01377664940665"-1;Q[7]:= 9.08804569188869"-2;
Y:=-1/X;
EI:=-EXP(X)*POL(7,Y,P)/POL(7,Y,Q)
end else
begin real Y;
P[0]:=-9.99999999998447"-1;Q[0]:= 1;
P[1]:=-2.66271060431811"+1;Q[1]:= 2.86271060422192"+1;
P[2]:=-2.41055827097015"+2;Q[2]:= 2.92310039388533"+2;
P[3]:=-8.95927957772937"+2;Q[3]:= 1.33278537748257"+3;
P[4]:=-1.29885688746484"+3;Q[4]:= 2.77761949509163"+3;
P[5]:=-5.45374158883133"+2;Q[5]:= 2.40401713225909"+3;
P[6]:=-5.66575206533869 ;Q[6]:= 6.31657483280800"+2;
Y:=-1/X;
EI:=-EXP(X)*Y*(1+Y*POL(6,Y,P)/POL(6,Y,Q))
end
end EI
eop