.TITLE .EB COMPUTE SINE OF ARGUMENT IN FLOATING ACCUMULATOR /COPYRIGHT 1970, DIGITAL EQUIPMENT CORP., MAYNARD, MASS. /EDIT 2 10-22-70 .GLOBL .EB,.AB,.AK,.AH,.AX,.AW,.AM,.EC / CALLING SEQUENCE (SINGLE PRECISION) / JMS* (.EB) SUBR CALL (ARG IN FLT ACC) / NEXT INSTRUCTION SUBR RETURN (RESULT IN FLT ACC) / .EB CAL 0 /ENTRY-EXIT LAC* .AB /GET SIGN WORD (.AB) AND EB02 / (400000) DAC EB03 /STORE ANS SIGN LAC* .AB /GET SIGN WORD (.AB) AND EB04 / (377777) DAC* .AB /STORE POSITIVE SIGN WORD (.AB) JMS* .AK /MULTIPLY REAL (.AK) .DSA EB06 / ( 2/PI * ARG) JMS* .AH /STORE REAL (.AH) .DSA EB08 / (TEMP) JMS* .AX /FIX FOR INTEGER (.AX) DAC EB10 /STORE INTEGER FOR QUADRANT DETERMINATION JMS* .AW /FLOAT INTEGER ONLY (.AW) JMS* .AM /REVERSE SUBTRACT REAL (.AM) .DSA EB08 / FOR FRACTION (F) LAC EB10 /GET INTEGER TO DETERMINE QUAD RCR /B17 TO LINK SNL /IF SET, COMPUTE 1-F (QUAD II OR IV) JMP EB13 JMS* .AM /REVERSE SUBTRACT REAL (.AM) .DSA EB14 / (1-F) EB13 LAC EB10 RTR /B16 TO LINK SNL /IF SET, NEGATE ANS SIGN (QUAD III OR IV) JMP EB15 LAC EB02 /GET SIGN BIT XOR EB03 /XOR ANS SIGN DAC EB03 /STORE ANS SIGN EB15 JMS* .EC /POLYNOMIAL EVALUATE (.EC) .DSA EB17 /FWA OF CALL SEQUENCE LAC* .AB /GET SIGN WORD OF ANSWER (.AB) AND EB04 /STRIP SIGN XOR EB03 /INSERT ANS SIGN SAD EB02 /CHECK FOR -0.0 CASE CLA /YES. MAKE -0.0 A 0.0 DAC* .AB /RESTORE JMP* .EB /EXIT EB02 400000 EB03 CAL 0 /ANS SIGN EB04 377777 EB06 016000 / 2/PI (1) (0.63661977236) 242763 / (2) EB08 CAL 0 /TEMP (1) CAL 0 / (2) EB10 CAL 0 /INTEGER STORAGE EB14 1 /FLOATING 1 (1) 200000 / (2) EB17 777774 /NO. OF COEFFICIENTS (4) .DSA 351764 /C4 (1) (+0.00015148419) .DSA 236657 / (2) .DSA 615771 /C3 (1) (-0.00467376557) .DSA 631114 / (2) .DSA 537775 /C2 (1) (+0.07968967928) .DSA 243150 / (2) .DSA 603000 /C1 (1) (-0.6459637111) .DSA 645273 / (2) .DSA 552001 /(1)(1.570796318) 311037 /(2) .END