	.TITLE	.LOGS
/
/ INTERNAL GLOBALS
	.GLOBL	EXP,DEXP,ALOG,DLOG,ALOG10,DLOG10
	.GLOBL	.EXP,.DEXP,.ALOG,.DLOG
/ EXTERNAL GLOBALS
	.GLOBL	.GRAB,.SNGL,.DBLE,.ALG10
	.GLOBL	.SPLG2,.SPXP2,.SPRLD,.SPRDV,.SPRML
	.GLOBL	.DPRLD,.DPRDV,.DPRML,.DPXP2,.DPLG2
	.GLOBL	.LN2,.LOG2
/
/
/
/ EXP CALCULATES E**X
EXP     XX
	JMS*	.GRAB
	JMS	.EXP
	JMP*	EXP
/
.EXP	XX
        JMS*     .SNGL   /CHECK MODE
        LAC     .LN2    /LOAD LN 2 INTO
        JMS*    .SPRLD  /ACC B
        JMS*    .SPRDV  /DIVIDE X BY LN 2
        JMS*    .SPXP2
        JMP*    .EXP
/
/
/  DOUBLE PRECISION E**X
DEXP    XX
	JMS*	.GRAB
	JMS	.DEXP
	JMP*	DEXP
/
.DEXP	XX
        JMS*     .DBLE
        LAC     .LN2
        JMS*    .DPRLD
        JMS*    .DPRDV
        JMS*    .DPXP2
        JMP*    .DEXP
/
/ ALOG CALCULATES LOG X TO BASE E
ALOG	XX
	JMS*	.GRAB
	JMS	.ALOG
	JMP*	ALOG
/
.ALOG	XX
        JMS*     .SNGL   /CHECK MODE
        JMS*    .SPLG2  /CALCULATE LOG X TO BASE 2
        LAC     .LN2
        JMS*    .SPRLD
        JMS*    .SPRML  /MULTIPLY BY LOG 2 TO BASE E
        JMP*    .ALOG
/
/  DOUBLE PRECISION NATURAL LOG
DLOG    XX
	JMS*	.GRAB
	JMS	.DLOG
	JMP*	DLOG
/
.DLOG	XX
        JMS*     .DBLE   /ENSURE ARGUMENT IS DOUBLE PRECISION
        JMS*    .DPLG2
        LAC     .LN2
        JMS*    .DPRLD
        JMS*    .DPRML
        JMP*    .DLOG
/
/
/ ALOG10 CALCULATES LOG X TO BASE 10
ALOG10  XX
	JMS*	.GRAB
	JMS*	.ALG10
	JMP*	ALOG10
/
/  DOUBLE PRECISION LOG TO BASE 10
DLOG10  XX
	JMS*	.GRAB
        JMS*     .DBLE
        JMS*    .DPLG2
        LAC     .LOG2
        JMS*    .DPRLD
        JMS*    .DPRML
        JMP*    DLOG10
/
	.END
