.TITLE .SPHYP / / SINGLE PRECISION HYPERBOLIC FUNCTIONS / .GLOBL SINH,COSH,TANH,.SINH,.COSH .GLOBL .SNGL,.EXP,.SPRST,.SPRLD,.LODBS,.SPRML,.SPRDV,.SPADD .GLOBL .LDPT5,.ADDR1,.EXPB,.EXPA,.CMPLA,.LOAD1,.MODEA,.SIGNA .GLOBL .GRAB / SINH XX JMS* .GRAB JMS .SINH JMP* SINH / COSH XX JMS* .GRAB JMS .COSH JMP* COSH / .SINH XX JMS* .SNGL /SET MODE LAC (400000 /SET SIGN TO MINUS DAC SIGN HYPTIE LAC* .MODEA JMS* .EXP /E**X LAC .ADDR1 JMS* .SPRST JMS* .LODBS JMS* .SPRML /E**2*X LAC SIGN JMS* .LDPT5 ISZ* .EXPB /+ OR - 1.0 JMS* .SPADD /E**2*X (+ OR -) 1.0 LAC .ADDR1 JMS* .SPRLD ISZ* .EXPB /2*E**X JMS* .SPRDV JMP* .SINH / .COSH XX JMS* .SNGL /SET MODE DZM SIGN /SET SIGN TO POSITIVE LAC .COSH DAC .SINH JMP HYPTIE / TANH XX JMS* .GRAB / FETCH THE ARGUMENT JMS* .SNGL /SET MODE LAW -5 TAD* .EXPA SMA!CLA!STL JMP TANH1 /X.GT.16., TANH=1.0 ISZ* .EXPA /MULTIPLY X BY 2 SKP!RTR /RESTORE MODE JMP .-2 /-0 TO +0, TRY AGAIN JMS* .EXP /CALCULATE E**2X CLA JMS* .LDPT5 ISZ* .EXPB /LOAD 1.0 JMS* .SPADD JMS* .LODBS /ACC A TO ACC B JMS* .LOAD1 ISZ* .EXPA /ACC A=2.0 JMS* .SPRDV CLA JMS* .LDPT5 ISZ* .EXPB /ACC B=1.0 JMS* .CMPLA JMS* .SPADD JMP* TANH / TANH1 LAC* .SIGNA DAC SIGN JMS* .LOAD1 LAC SIGN DAC* .SIGNA JMP* TANH / SIGN / .END