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