File: EXP3.RA of Tape: Sources/Fortran/os8-f4-3
(Source file text)
/R=EXP3(B,E) INTERNAL FUNCTION CALLED BY EXPIR FOR R=B**E / / / VERSION 40A 27-MAY-80 WVDM / / SECT EXP3 JA #EXP3 EXTERN #ARGER EXP3ER, TRAP4 #ARGER TEXT +EXP3 + EXP3XR, SETX XREXP3 SETB BPEXP3 BPEXP3, FNOP 0 0 XREXP3, F 0.0 EXP31, F 0.0 EXP32, F 0.0 FP1XP3, F 1. ORG 10*3+BPEXP3 FNOP JA EXP3XR 0 XP3RTN, JA . / BASE 0 #EXP3, STARTD FLDA 10*3 FSTA XP3RTN FLDA 0 SETX XREXP3 SETB BPEXP3 BASE BPEXP3 LDX 1,1 FSTA BPEXP3 FLDA% BPEXP3,1 /ADDR OF B FSTA EXP31 FLDA% BPEXP3,1+ /ADDR OF E FSTA EXP32 STARTF FLDA% EXP31 /GET B JEQ XP3RTN /0 ^ X = 0 FSTA EXP31 /SAVE BASE FLDA% EXP32 /GET E JEQ EXP3ON /X ^ 0 = 1 FSTA EXP32 /SAVE EXPONENT FLDA EXP31 JLT EXP3ER /ALL IS NOT WELL EXTERN ALOG JSR ALOG /CALL LOG JA .+4 /TAKE LOG (B) JA EXP31 FMUL EXP32 /MULT BY EXPONENT-E FSTA EXP31 EXTERN EXP JSR EXP /CALL EXP. JA .+4 JA EXP31 JA XP3RTN / EXP3ON, FLDA FP1XP3 /X^0 = 1 JA XP3RTN