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