code 35085;
    procedure SINCOSFG(X,F,G); value X; real X,F,G;
    begin real ABSX,SI,CI;

        ABSX:= ABS(X);
        if ABSX <= 4 then 
        begin real CX,SX;
           SINCOSINT(X,SI,CI);
           CX:= COS(X); SX:= SIN(X); SI:= SI - 1.570796326794897;
           F:= CI * SX - SI * CX;
           G:=-CI * CX - SI * SX
        end else 
        begin real array A[0:23];
            A[0] :=+9.6578828035185"-01; A[1] :=-4.3060837778597"-02;
            A[2] :=-7.3143711748104"-03; A[3] :=+1.4705235789868"-03;
            A[4] :=-9.8657685732702"-05; A[5] :=-2.2743202204655"-05;
            A[6] :=+9.8240257322526"-06; A[7] :=-1.8973430148713"-06;
            A[8] :=+1.0063435941558"-07; A[9] :=+8.0819364822241"-08;
            A[10]:=-3.8976282875288"-08; A[11]:=+1.0335650325497"-08;
            A[12]:=-1.4104344875897"-09; A[13]:=-2.5232078399683"-10;
            A[14]:=+2.5699831325961"-10; A[15]:=-1.0597889253948"-10;
            A[16]:=+2.8970031570214"-11; A[17]:=-4.1023142563083"-12;
            A[18]:=-1.0437693730018"-12; A[19]:=+1.0994184520547"-12;
            A[20]:=-5.2214239401679"-13; A[21]:=+1.7469920787829"-13;
            A[22]:=-3.8470012979279"-14;
            F:= CHEPOLSUM(22, 8/ABSX-1, A) / X;
            A[0] :=+2.2801220638241"-01; A[1] :=-2.6869727411097"-02;
            A[2] :=-3.5107157280958"-03; A[3] :=+1.2398008635186"-03;
            A[4] :=-1.5672945116862"-04; A[5] :=-1.0664141798094"-05;
            A[6] :=+1.1170629343574"-05; A[7] :=-3.1754011655614"-06;
            A[8] :=+4.4317473520398"-07; A[9] :=+5.5108696874463"-08;
            A[10]:=-5.9243078711743"-08; A[11]:=+2.2102573381555"-08;
            A[12]:=-5.0256827540623"-09; A[13]:=+3.1519168259424"-10;
            A[14]:=+3.6306990848979"-10; A[15]:=-2.2974764234591"-10;
            A[16]:=+8.5530309424048"-11; A[17]:=-2.1183067724443"-11;
            A[18]:=+1.7133662645092"-12; A[19]:=+1.7238877517248"-12;
            A[20]:=-1.2930281366811"-12; A[21]:=+5.7472339223731"-13;
            A[22]:=-1.8415468268314"-13; A[23]:=+3.5937256571434"-14;
            G:= 4 * CHEPOLSUM(23, 8/ABSX-1, A) / ABSX /ABSX
        end 
    end SINCOSFG;
        eop