code 35027;
    procedure FRESNEL(X, C, S); value X; real X, C, S;
    begin real ABSX, X3, X4, A, P, Q, F, G, C1, S1;
        ABSX:= ABS(X);
        if ABSX <= 1.2 then 
        begin A:= X * X; X3:= A * X; X4:= A * A;
            P:= (((5.47711 38568 2687"-6  * X4 - 5.28079 65137 2623"-4)
            * X4 + 1.76193 95254 3491"-2) * X4 - 1.99460 89882 6184"-1)
            * X4 + 1;
            Q:= (((1.18938 90142 2876"-7  * X4 + 1.55237 88527 6994"-5)
            * X4 + 1.09957 21502 5642"-3) * X4 + 4.72792 11201 0453"-2)
            * X4 + 1;
            C:= X * P / Q;
            P:= (((6.71748 46662 5141"-7  * X4 - 8.45557 28435 2777"-5)
            * X4 + 3.87782 12346 3683"-3) * X4 - 7.07489 91514 4523"-2)
            * X4 + 5.23598 77559 8299"-1;
            Q:= (((5.95281 22767 8410"-8  * X4 + 9.62690 87593 9034"-6)
            * X4 + 8.17091 94215 2134"-4) * X4 + 4.11223 15114 2384"-2)
            * X4 + 1;
            S:= X3 * P / Q
        end else 
        if ABSX <= 1.6 then 
        begin A:= X * X; X3:= A * X; X4:= A * A;
           P:=((((-5.68293 31012 1871"-8  * X4 + 1.02365 43505 6106"-5)
            * X4 - 6.71376 03469 4922"-4) * X4 + 1.91870 27943 1747"-2)
            * X4 - 2.07073 36033 5324"-1) * X4 + 1.00000 00000 0111"+0;
            Q:=((((4.41701 37406 5010"-10 * X4 + 8.77945 37789 2369"-8)
            * X4 + 1.01344 63086 6749"-5) * X4 + 7.88905 24505 2360"-4)
            * X4 + 3.96667 49695 2323"-2) * X4 + 1;
            C:= X * P / Q;
           P:=((((-5.76765 81559 3089"-9  * X4 + 1.28531 04374 2725"-6)
            * X4 - 1.09540 02391 1435"-4) * X4 + 4.30730 52650 4367"-3)
            * X4 - 7.37766 91401 0191"-2) * X4 + 5.23598 77559 8344"-1;
            Q:=((((2.05539 12445 8580"-10 * X4 + 5.03090 58124 6612"-8)
            * X4 + 6.87086 26571 8620"-6) * X4 + 6.18224 62019 5473"-4)
            * X4 + 3.53398 34276 7472"-2) * X4 + 1;
            S:= X3 * P / Q
        end else 
        if ABSX < "15 then 
        begin FG(X, F, G);
            A:= X * X;
            A:= (A - ENTIER(A / 4) * 4) * 1.57079 63267 9490;
            C1:= COS(A); S1:= SIN(A);
            A:= if X < 0 then -0.5 else 0.5;
            C:=  F * S1 - G * C1 + A;
            S:= -F * C1 - G * S1 + A
        end else C:= S:= SIGN(X) * 0.5
    end FRESNEL;
        eop