code 35023; procedure INVERSE ERROR FUNCTION(X, ONEMINX, INVERF); value X, ONEMINX; real X, ONEMINX, INVERF; begin real ABSX, P, BETAX; real array A[0 : 23]; ABSX:= ABS(X); if ABSX > 0.8 and ONEMINX > 0.2 then ONEMINX:= 0; if ABSX <= 0.8 then begin A[ 0]:= 0.99288 53766 18941; A[ 1]:= 0.12046 75161 43104; A[ 2]:= 0.01607 81993 42100; A[ 3]:= 0.00268 67044 37162; A[ 4]:= 0.00049 96347 30236; A[ 5]:= 0.00009 88982 18599; A[ 6]:= 0.00002 03918 12764; A[ 7]:= 0.00000 43272 71618; A[ 8]:= 0.00000 09380 81413; A[ 9]:= 0.00000 02067 34720; A[10]:= 0.00000 00461 59699; A[11]:= 0.00000 00104 16680; A[12]:= 0.00000 00023 71501; A[13]:= 0.00000 00005 43928; A[14]:= 0.00000 00001 25549; A[15]:= 0.00000 00000 29138; A[16]:= 0.00000 00000 06795; A[17]:= 0.00000 00000 01591; A[18]:= 0.00000 00000 00374; A[19]:= 0.00000 00000 00088; A[20]:= 0.00000 00000 00021; A[21]:= 0.00000 00000 00005; INVERF:= CHEPOLSUM(21, X * X / 0.32 - 1, A) * X end else if ONEMINX >= 25"-4 then A[ 0]:= 0.91215 88034 17554; A[ 1]:= -0.01626 62818 67664; A[ 2]:= 0.00043 35564 72949; A[ 3]:= 0.00021 44385 70074; A[ 4]:= 0.00000 26257 51076; A[ 5]:= -0.00000 30210 91050; A[ 6]:= -0.00000 00124 06062; A[ 7]:= 0.00000 00624 06609; A[ 8]:= -0.00000 00005 40125; A[ 9]:= -0.00000 00014 23208; A[10]:= 0.00000 00000 34384; A[11]:= 0.00000 00000 33584; A[12]:= -0.00000 00000 01458; A[13]:= -0.00000 00000 00810; A[14]:= 0.00000 00000 00053; A[15]:= 0.00000 00000 00020; BETAX:= SQRT(- LN((1 + ABSX) * ONEMINX)); P:= -1.54881 30423 7326 * BETAX + 2.56549 01231 4782; P:= CHEPOLSUM(15, P, A); INVERF:= if X < 0 then - BETAX * P else BETAX * P end else if ONEMINX >= 5"-16 then begin A[ 0]:= 0.95667 97090 20493; A[ 1]:= -0.02310 70043 09065; A[ 2]:= -0.00437 42360 97508; A[ 3]:= -0.00057 65034 22651; A[ 4]:= -0.00001 09610 22307; A[ 5]:= 0.00002 51085 47025; A[ 6]:= 0.00001 05623 36068; A[ 7]:= 0.00000 27544 12330; A[ 8]:= 0.00000 04324 84498; A[ 9]:= -0.00000 00205 30337; A[10]:= -0.00000 00438 91537; A[11]:= -0.00000 00176 84010; A[12]:= -0.00000 00039 91289; A[13]:= -0.00000 00001 86932; A[14]:= 0.00000 00002 72923; A[15]:= 0.00000 00001 32817; A[16]:= 0.00000 00000 31834; A[17]:= 0.00000 00000 01670; A[18]:= -0.00000 00000 02036; A[19]:= -0.00000 00000 00965; A[20]:= -0.00000 00000 00220; A[21]:= -0.00000 00000 00010; A[22]:= 0.00000 00000 00014; A[23]:= 0.00000 00000 00006; BETAX:= SQRT(- LN((1 + ABSX) * ONEMINX)); P:= -0.55945 76313 29832 * BETAX + 2.28791 57162 6336; P:= CHEPOLSUM(23, P, A); INVERF:= if X < 0 then - BETAX * P else BETAX * P end else if not UNDERFLOW(ONEMINX) then begin A[ 0]:= 0.98857 50640 66189; A[ 1]:= 0.01085 77051 84599; A[ 2]:= -0.00175 11651 02763; A[ 3]:= 0.00002 11969 93207; A[ 4]:= 0.00001 56648 71404; A[ 5]:= -0.00000 05190 41687; A[ 6]:= -0.00000 00371 35790; A[ 7]:= 0.00000 00012 17431; A[ 8]:= -0.00000 00001 76812; A[ 9]:= -0.00000 00000 11937; A[10]:= 0.00000 00000 00380; A[11]:= -0.00000 00000 00066; A[12]:= -0.00000 00000 00009; BETAX:= SQRT(- LN((1 + ABSX) * ONEMINX)); P:= -9.19999 23588 3015 / SQRT(BETAX) + 2.79499 08201 2460; P:= CHEPOLSUM(12, P, A); INVERF:= if X < 0 then - BETAX * P else BETAX * P end else INVERF:= SIGN(X) * 26 end INVERSE ERROR FUNCTION eop