.TITLE .ED COMPUTE ARCTANGENT FOR ARG IN FLOATING ACCUMULATOR L /COPYRIGHT 1970, DIGITAL EQUIPMENT CORP., MAYNARD, MASS. /EDIT 2 10-22-70 .GLOBL .ED,.AB,.AA,.AN,.EC,.AM / CALLING SEQUENCE (SINGLE PRECISION) / JMS* (.ED) SUBR CALL (ARG IN FLOAT ACC) / NEXT INSTRUCTION SUBR RETURN (RESULT IN FLOAT ACC) / .ED CAL 0 /ENTRY-EXIT LAC* .AB /GET SIGN WORD (.AB) DAC ED02 /SAVE AS ANS SIGN AND ED03 /STRIP SIGN DAC* .AB /RESTORE IN (.AB) LAC* .AA /GET EXPONENT (.AA) DAC ED05 /SAVE FOR LATER TEST SNA!SPA /IF EXP .GT. ZERO (ARG .GT. 1) TAKE 1/ARG JMP ED06 /OR SKIP JMS* .AN /REVERSE DIVIDE REAL (.AN) .DSA ED08 / (1/ARG) ED06 JMS* .EC /POLYNIMIAL EVALUATE (.EC) 0.LT. ARG .LT. .DSA ED11 / (FWA OF CALLING SEQUENCE) LAC ED05 /TEST EXP AGAIN FOR ARG .GT.1 (EXP .GT. 0) SNA!SPA JMP ED12 /NOT .GT. 1, SKIP JMS* .AM /REVERSE SUBTRACT REAL (.AM) .DSA ED14 / (PI/2 - ANS) ED12 LAC ED02 /GET ORIGINAL SIGN WORD AND ED09 /KEEP SIGN ONLY XOR* .AB /SET ANS SIGN IN SIGN WORD (.AB) SAD ED09 /CHECK FOR -0.0 CASE CLA /YES. MAKE -0.0 A 0.0 DAC* .AB JMP* .ED /EXIT ED02 CAL 0 /ANS SIGN ED03 377777 ED05 CAL 0 /EXP STORAGE ED08 1 /FLOATING 1 (1) 200000 / (2) ED09 400000 ED11 777771 / NO OF COEFFICIENTS (6) 635771 /C6 (1) (-0.0040540580) 604657 / (2) 507773 /C5 (1) (0.0218612288) 263054 / (2) 417774 /C4 (1) (-0.0559098861) 745003 / (2) 575775 /C3 (1) (0.0964200441) 305357 / (2) 613776 /C2 (1) (-0.1390853351) 616330 / (2) 227776 /C1 (1) (0.1994653599) 314201 / (2) 160777 / (1) (-0.3332985605) 652514 / (2) 723000 / (1) (+0.9999993329) 377777 / (2) ED14 553001 / PI/2 (1) (1.570796327) 311037 / (2) .END