	.TITLE	.CSPLG
/
/ SINGLE PRECISION COMPLEX LOGARITHM
/
	.GLOBL	CLOG
	.GLOBL	.ALOG,.ATAN,.SPRLD,.SPRST,.SPRDV,.ERROR,.LDREL,.LODBS
	.GLOBL	.CHKMS,.SPBAI,.MODCN,.SPCAB,.SWPIT,.SWPBI,.SPBIA
	.GLOBL	.MODEA,.SIGNA,.MOSTA,.SGNIA,.MSTIA,.ADDR1
	.GLOBL	.GRAB
/
CLOG	XX
	JMS*	.GRAB
	JMS*	.CHKMS	/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*	.SPRLD
	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*	.LODBS	/A TO B
	JMS*	.SWPIT	/AI TO A
	JMS*	.SPRDV	/AI/A
	LAC*	.MODEA
	JMS*	.ATAN	/ATAN(AI/A)
	LAC	.ADDR1
	JMS*	.SPRST	/STORE IMAGINARY PART
	JMS*	.SPBIA	/BI TO A
	JMS*	.SPCAB	/TAKE MAGNITUDE OF A,AI
	LAC	.ADDR1
	JMS*	.SPRLD	/GET IMAGINARY PART
	JMS*	.SPBAI	/B TO AI
CLREL	LAC*	.MODEA
	JMS*	.ALOG	/LOG(ABS(Z))
CLGEXT	JMS*	.MODCN	/RESET MODE
	JMP*	CLOG
/
CLOGER	LAW	32
	JMS*	.ERROR	/ZERO ARGUMENT , ISSUE ERROR
	JMP	CLGEXT
/
PIBY2	1; 444176; 325042; 055060; 432305
/
	.END
