/ 
/ 
/                   FIRST PRINTING, FEBRUARY 1974
/ 
/ THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO 
/ CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED
/ AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION.
/ DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPON-
/ SIBILITY FOR ANY ERRORS THAT MAY APPEAR IN THIS
/ DOCUMENT.
/ 
/ THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FUR-
/ NISHED TO THE PURCHASER UNDER A LICENSE FOR USE ON
/ A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH
/ INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR 
/ USE IN SUCH SYSTEM, EXCEPT AS MAY OTHERWISE BE PRO-
/ VIDED IN WRITING BY DIGITAL.
/ 
/ DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
/ FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIP-
/ MENT THAT IS NOT SUPPLIED BY DIGITAL.
/ 
/ COPYRIGHT (C) 1974, BY DIGITAL EQUIPMENT CORPORATION
/ 
/ 
        .EJECT
/COPYRIGHT 1970,1971, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
/EDIT 6 2-27-71
/FOR HARDWARE FLOATING POINT PROCESSOR (FPP), DEFINE % FPP,
       .TITLE .BE    RAISE REAL BASE (A) TO REAL POWER (B)  A**B
       .GLOBL .BE,.CB,.EE,.EF,.ER,
	.IFUND %FPP
	.GLOBL .AB,.AK
	.ENDC
	.IFUND %FPP
	.DEFIN FMP%,A
	JMS* A			/FLOATING MULTIPLY (.AK)
	.ENDM
	.ENDC
	.IFDEF %FPP
FMP=711440
	.DEFIN FMP%
	FMP
	.ENDM
	.ENDC
/             CALLING SEQUENCE   (A//B = EXP(B * LOGE(A)))
/      JMS*   (.BE)           SUBR CALL (A IN FLOAT ACC)
/      CAL/XCT ADDR           ADDR OF B (XCT IF INDIRECT)
/      NEXT   INSTRUCTION     SUBR RETURN (RESULT IN FLOAT ACC)
/DIRECT ASSIGN. FOR FPP
	.IFDEF %FPP
BNA=716610
	.ENDC
/
.BE    CAL    0              /ENTRY-EXIT
       JMS*   .CB            /SHORT GET ARG (.CB)
BE02   CAL    0              /ARG ADDR (B)
	.IFDEF %FPP
	BNA			/BR ON NON-0
	BE07
	.ENDC
	.IFUND %FPP
	LAC* .AB		/GET BASE
	SZA
	JMP BE07
	.ENDC
	ISZ BE02		/BUMP PAST EXP.
	LAC* BE02		/GET EXP. MANTISSA
	SPA!SNA!CLA		/GIVE 0 ANS. FOR EXP>-0
	JMS* .ER		/OTS 15
	AND 15			/DUMMY INSRUCT.
	JMP* .BE		/(50015). ANS=BASE
BE07       JMS*   .EE            /COMPUTE LOG2(A) (.EE)
       FMP%   .AK            /MULTIPLY REAL (.AK)
       .DSA   BE05           / (LOG2(A) * LOGE(2) = LOGE(A))
       FMP%   .AK            /MULTIPLY REAL (.AK)
       .DSA   BE02+400000    / (B X LOGE(A))
	JMS*   .EF            /COMPUTE EXP (.EF) (EXP(B * LOGE(A)))
       JMP*   .BE            /EXIT
BE05          140000         /LOGE(2) (1)  (0.6931471806)
              261344         /        (2)
       .END
