/TRIG.V04 /8K FORTRAN LIBRARY /COPYRIGHT 1969 /DIGITAL EQUIPMENT CORP., MAYNARD, MASS. / / 8K FORTRAN TRIGNOMETRY ROUTINES ENTRY SIN ENTRY COS ENTRY TAN QUAD, 0 /CONTAINS ONE LESS THAN THE QUADRANT OF THE ARGUMENT Y, BLOCK 3 /TEMPORARY STORAGE FOR ARG CPAGE 22 COEF, 5476 /-2.39E-8 CONSTANTS FOR SIN 3246 2500 /2.7526E-6 1565 6134 5170 /-1.98409E-4 5646 4006 0026 /8.3333315E-3 1724 2104 2065 /-1.6666667E-1 5765 2525 2525 /1.0 2014 0000 0000 CPAGE 3 HALFPI, 2016 /1.5707963 2207 7324 CPAGE 3 QTRPI, 2006 /7.8539815E-1 2207 7324 CPAGE 25 TOEF, 1724 /9.5168091E-3 6766 1440 /2.9005250E-3 1705 7413 2741 /2.4565090E-2 1736 2236 2720 /5.3374060E-2 1746 6517 3023 /1.3339240E-1 1764 2114 0042 /3.3333140E-1 1775 2525 1517 /1.0 2014 0000 0000 TAN, BLOCK 2 DCA QUAD /SET QUADRANT OFFSET SWITCH TAD I TAN /PICK-UP CDF DCA TARG INC TAN# /POINT TO NEXT WORD TAD I TAN /PICK-UP ADDRESS DCA TARG# INC TAN# /POINT TO RETURN CALL 1,FAD /GET ARG IN FP-ACC TARG, ARG 0 BAC, TAD ACH /LOOK AT HIGH ORDER WORD SPA CLA /IF NEGATIVE JMP OVT /GO OM CALL 1,FSB /OTHERWISE SUBTRACT ARG QTRPI /PI/2 ISZ QUAD /AND INCREMENT QUADRANT COUNTER JMP BAC /UNTIL ARG IS NEGATIVE OVT, CALL 1,FAD /ADD PI/2 TO ARG UNTIL IT IS IN ARG QTRPI /THE FIRST QUADRANT CLA CMA TAD QUAD /BUT KEEP TRACK OF WHICH QUADRANT IT WAS IN DCA QUAD TAD ACH /GET HI ORDER WORD SPA CLA JMP OVT /IF NEGATIVE REPEAT TAD QUAD /FIND OUT WHAT QUAD IT WAS IN RTR SMA CLA JMP OM CALL 0,CHS /SUBTRACT FROM PI/2 IF QUAD 2 OR 4 CALL 1,FAD ARG QTRPI OM, TAD (7 /USE A 7 TERM SERIES CPAGE 3 JMS POL TOEF /ADRESS OF COEFICIENTS FOR THE SERIES CLA CMA TAD QUAD RTR SZL CLA JMP OM3 CALL 1,STO ARG Y TAD (2014 DCA ACH CALL 1,FDV ARG Y OM3, RETRN TAN / INTERNAL SUBROUTINE POL / / COMPUTES N TERMS OF POLYNOMIAL / N IN AC ... X IN FLOATING AC / COEFFICIENTS START IN LOCATION WHOSE ADDRESS FOLLOWS JMS TO POL / POL2, BLOCK 1 POL, BLOCK 1 CIA DCA POL2 CALL 1,STO /STORE ADJUSTED ARGUMENT ARG Y /IN A TEMPORARY CALL 1,FAD ARG Y /RESTORE FP AC CALL 1,FMP ARG Y /SQUARE IT CALL 1,STO ARG X TAD I POL INC POL ARG2, DCA ARG1# CALL 1,FAD ARG1, ARG COEF / ADDRESS STORED HERE ISZ POL2 JMP POL1 CALL 1,FMP /MULTIPLY AGAIN TO COMPLETE SERIES ARG Y TAD QUAD RTR SNL CLA /FIND OUT WHICH QUADRANT JMP POLEX CALL 0,CHS /IF IN QUADRANT 3 OR 4 SET NEGATIVE POLEX, JMP I POL POL1, CALL 1,FMP ARG X TAD ARG1# TAD (3 JMP ARG2 / X, BLOCK 3 /TEMPORARY FOR POL / / / 8K FORTRAN TRIGNOMETRY ROUTINES / / COS, BLOCK 2 TAD COS DCA SIN TAD COS# DCA SIN# /IT NOW APPEARS THAT SIN WAS CALLED CLA IAC /WITH QUADRANT OFFSET BY ONE JMP COSE SIN, BLOCK 2 COSE, DCA QUAD /SET QUADRANT OFFSET SWITCH TAD I SIN /PICK-UP CDF DCA SARG INC SIN# /POINT TO NEXT WORD TAD I SIN /PICK-UP ADDRESS DCA SARG# INC SIN# /POINT TO RETURN CALL 1,FAD /GET ARG IN FP-ACC SARG, ARG 0 BACK, TAD ACH /LOOK AT HIGH ORDER WORD SPA CLA /IF NEGATIVE JMP OVR /GO ON CALL 1,FSB /OTHERWISE SUBTRACT ARG HALFPI /PI/2 ISZ QUAD /AND INCREMENT QUADRANT COUNTER JMP BACK /UNTIL ARG IS NEGATIVE OVR, CALL 1,FAD /ADD PI/2 TO ARG UNTIL IT IS IN ARG HALFPI /THE FIRST QUADRANT CLA CMA TAD QUAD /BUT KEEP TRACK OF WHICH QUADRANT IT WAS IN DCA QUAD TAD ACH /GET HI ORDER WORD SPA CLA JMP OVR /IF NEGATIVE REPEAT TAD QUAD /FIND OUT WHAT QUAD IT WAS IN RTR SMA CLA JMP ON CALL 0,CHS /SUBTRACT FROM PI/2 IF QUAD 2 OR 4 CALL 1,FAD ARG HALFPI ON, TAD (6 /USE A 6 TERM SERIES CPAGE 3 JMS POL COEF /ADRESS OF COEFICIENTS FOR THE SERIES RETRN SIN END