/COPYRIGHT 1970, DIGITAL EQUIPMENT CORP., MAYNARD, MASS. /EDIT 2 9-25-70 .TITLE .BC RAISE REAL BASE (A) TO INTEGER POWER (B) A**B .GLOBL .BC,.EE,.AK,.AH,.AW,.EF,.AB,.ER / CALLING SEQUENCE (A**B = EXP(BLOGE(A))) / JMS* (.BC) SUBR CALL (A IN FLOAT ACC) / LAC(*) ADDR ADDR OF B (* IF INDIRECT) / NEXT INSTRUCTION SUBR RETURN (RESULT IN FLOAT ACC) / .BC CAL 0 /ENTRY-EXIT LAC* .AB DAC BC01 /SAVE BASE SIGN AND (377777) SZA JMP BC10 XCT* .BC /GET EXPONENT SPA!SNA!CLA JMS* .ER AND 15 /DUMMY INSTR (500015) JMP BC11 /ANS=BASE BC10 DAC* .AB /ABSOLUTE BASE JMS* .EE /COMPUTE LOG2(A) (.EE) JMS* .AK /MULTIPLY REAL (.AK) .DSA BC05 / (LOG2(A)*LOGE(2)= LOGE(A)) JMS* .AH /STORE REAL IN TEMP (.AH) .DSA BC07 XCT* .BC /GET EXP JMS* .AW /FLOAT TO ACC JMS* .AK /MULTIPLY REAL (.AK) .DSA BC07 / (B * LOGE(A)) JMS* .EF /COMPUTE EXP (.EF) (EXP(B * LOGE(A))) XCT* .BC RTR AND BC01 /DETERMINE ANSWER SIGN AND (400000) /AS (-1) ** POWER XOR* .AB DAC* .AB /SET ANSWER SIGN BC11 ISZ .BC /BUMP EXIT JMP* .BC /EXIT BC05 140000 /LOGE(2) (1) (0.6931471806) 261344 / (2) BC07 CAL 0 /TEMP(1) CAL 0 / (2) BC01 .DSA 0 .END