.TITLE .CDPLG / / DOUBLE PRECISION COMPLEX LOGARITHM / .GLOBL CDLOG .GLOBL .DLOG,.DATAN,.DPRLD,.DPRST,.DPRDV,.ERROR,.LDDBL,.LODBD .GLOBL .CHKMD,.SPBAI,.MODCN,.DPCAB,.SWPIT,.SWPBI,.SPBIA .GLOBL .MODEA,.SIGNA,.MOSTA,.SGNIA,.MSTIA,.ADDR1 / .GLOBL .GRAB / CDLOG XX JMS* .GRAB / FETCH THE ARGUMENTS JMS* .CHKMD /SET MODE LAC* .MOSTA SZA JMP CLGANZ SAD* .MSTIA JMP CLOGER /ERROR, ARGUMENT IS ZERO JMS* .SWPIT /AI TO A, A WAS ZERO LAC (PIBY2 JMS* .DPRLD JMS* .SPBAI /PI/2 TO AI LAC* .SIGNA DAC* .SGNIA /SET SIGN OF IMAGINARY PART DZM* .SIGNA JMP CLREL CLGANZ JMS* .SWPBI /A TO BI JMS* .LODBD /A TO B JMS* .SWPIT /AI TO A JMS* .DPRDV /AI/A LAC* .MODEA JMS* .DATAN /ATAN(AI/A) LAC .ADDR1 JMS* .DPRST /STORE IMAGINARY PART JMS* .SPBIA /BI TO A JMS* .DPCAB /TAKE MAGNITUDE OF A,AI LAC .ADDR1 JMS* .DPRLD /GET IMAGINARY PART JMS* .SPBAI /B TO AI CLREL LAC* .MODEA JMS* .DLOG /LOG(ABS(Z)) CLGEXT JMS* .MODCN /RESET MODE JMP* CDLOG / CLOGER LAW 32 JMS* .ERROR /ZERO ARGUMENT , ISSUE ERROR JMP CLGEXT / PIBY2 1; 444176; 325042; 055060; 432305 / .END