code 35028; procedure FG(X, F, G); value X; real X, F, G; begin real ABSX, C, S, C1, S1, A, XINV, X3INV, C4, P, Q; ABSX:= ABS(X); if ABSX <= 1.6 then begin FRESNEL(X, C, S); A:= X * X * 1.57079 63267 9490; C1:= COS(A); S1:= SIN(A); A:= if X < 0 then -0.5 else 0.5; P:= A - C; Q:= A - S; F:= Q * C1 - P * S1; G:= P * C1 + Q * S1 end else if ABSX <= 1.9 then begin XINV:= 1 / X; A:= XINV * XINV; X3INV:= A * XINV; C4:= A * A; P:= (((1.35304 23554 0388"+1 * C4 + 6.98534 26160 1021"+1) * C4 + 4.80340 65557 7925"+1) * C4 + 8.03588 12280 3942"+0) * C4 + 3.18309 26850 4906"-1; Q:= (((6.55630 64008 3916"+1 * C4 + 2.49561 99380 5172"+2) * C4 + 1.57611 00558 0123"+2) * C4 + 2.55491 61843 5795"+1) * C4 + 1; F:= XINV * P / Q; P:=((((2.05421 43249 8501"+1 * C4 + 1.96232 03797 1663"+2) * C4 + 1.99182 81867 8903"+2) * C4 + 5.31122 81348 0989"+1) * C4 + 4.44533 82755 0512"+0) * C4 + 1.01320 61881 0275"-1; Q:=((((1.01379 48339 6003"+3 * C4 + 3.48112 14785 6545"+3) * C4 + 2.54473 13318 1822"+3) * C4 + 5.83590 57571 6429"+2) * C4 + 4.53925 01967 3689"+1) * C4 + 1; G:= X3INV * P / Q end else if ABSX <= 2.4 then begin XINV:= 1 / X; A:= XINV * XINV; X3INV:= A * XINV; C4:= A * A; P:=((((7.17703 24936 5140"+2 * C4 + 3.09145 16157 4430"+3) * C4 + 1.93007 64078 6716"+3) * C4 + 3.39837 13492 6984"+2) * C4 + 1.95883 94102 1969"+1) * C4 + 3.18309 88182 2017"-1; Q:=((((3.36121 69918 0551"+3 * C4 + 1.09334 24898 8809"+4) * C4 + 6.33747 15585 1144"+3) * C4 + 1.08535 06750 0650"+3) * C4 + 6.18427 13817 2887"+1) * C4 + 1; F:= XINV * P / Q; P:=((((3.13330 16306 8756"+2 * C4 + 1.59268 00608 5354"+3) * C4 + 9.08311 74952 9594"+2) * C4 + 1.40959 61791 1316"+2) * C4 + 7.11205 00178 9783"+0) * C4 + 1.01321 16176 1805"-1; Q:=((((1.15149 83237 6261"+4 * C4 + 2.41315 56721 3370"+4) * C4 + 1.06729 67803 0581"+4) * C4 + 1.49051 92279 7329"+3) * C4 + 7.17128 59693 9302"+1) * C4 + 1; G:= X3INV * P / Q end else begin XINV:= 1 / X; A:= XINV * XINV; X3INV:= A * XINV; C4:= A * A; P:=((((2.61294 75322 5142"+4 * C4 + 6.13547 11361 4700"+4) * C4 + 1.34922 02817 1857"+4) * C4 + 8.16343 40178 4375"+2) * C4 + 1.64797 71284 1246"+1) * C4 + 9.67546 03296 7090"-2; Q:=((((1.37012 36481 7226"+6 * C4 + 1.00105 47890 0791"+6) * C4 + 1.65946 46262 1853"+5) * C4 + 9.01827 59623 1524"+3) * C4 + 1.73871 69067 3649"+2) * C4 + 1; F:= (C4 * (-P) / Q + 0.31830 98861 83791) * XINV; P:=(((((1.72590 22465 4837"+6 * C4 + 6.66907 06166 8636"+6) * C4 + 1.77758 95083 8030"+6) * C4 + 1.35678 86781 3756"+5) * C4 + 3.87754 14174 6378"+3) * C4 + 4.31710 15782 3358"+1) * C4 + 1.53989 73381 9769"-1; Q:=(((((1.40622 44112 3580"+8 * C4 + 9.38695 86253 1635"+7) * C4 + 1.62095 60050 0232"+7) * C4 + 1.02878 69305 6688"+6) * C4 + 2.69183 18039 6243"+4) * C4 + 2.86733 19497 5899"+2) * C4 + 1; G:= (C4 * (-P) / Q + 0.10132 11836 42338) * X3INV end end FG; eop