Lines Matching refs:EXP
2 # $NetBSD: fplsp.s,v 1.3 2021/12/05 03:10:53 msaitoh Exp $
5041 mov.l (%a0),%d1 # put exp in hi word
5534 mov.l &0x00003FFE,%d2 # BIASED EXP OF 2/PI
5535 sub.l %d1,%d2 # BIASED EXP OF 2**(-L)*(2/PI)
5561 add.l &0x00003FFF,%d2 # BIASED EXP OF 2**L * (PI/2)
5965 mov.l &0x00003FFE,%d2 # BIASED EXP OF 2/PI
5966 sub.l %d1,%d2 # BIASED EXP OF 2**(-L)*(2/PI)
5992 add.l &0x00003FFF,%d2 # BIASED EXP OF 2**L * (PI/2)
6305 mov.l %d1,%d2 # THE EXP AND 16 BITS OF X
6636 mov.l (%a0),%d1 # pack exp w/ upper 16 fraction
6701 # fp0 = exp(X) or exp(X)-1 #
6793 # Step 4. Approximate exp(R)-1 by a polynomial #
6800 # |p - (exp(R)-1)| < 2^(-68.8) for all |R| <= 0.0062. #
6808 # Step 5. Compute 2^(J/64)*exp(R) = 2^(J/64)*(1+p) by #
6820 # Step 6. Reconstruction of exp(X) #
6821 # exp(X) = 2^M * 2^(J/64) * exp(R). #
6827 # |M| <= 16380, and Scale = 2^M. Moreover, exp(X) will #
6831 # Hence, exp(X) may overflow or underflow or neither. #
6853 # Step 8. Handle exp(X) where |X| >= 16380log2. #
6866 # Step 9. Handle exp(X), |X| > 16480 log2. #
6872 # Notes: Exp(X) will surely overflow or underflow, depending on #
6897 # because EXPM1 is intended to evaluate exp(X)-1 #
6921 # Step 4. Approximate exp(R)-1 by a polynomial #
6928 # |p - (exp(R)-1)| < |R| * 2^(-72.7) #
6949 # Step 6. Reconstruction of exp(X)-1 #
6950 # exp(X)-1 = 2^M * ( 2^(J/64) + p - 2^(-M) ). #
6961 # Step 7. exp(X)-1 for |X| < 1/4. #
6965 # Step 8. Calculate exp(X)-1, |X| < 2^(-65). #
6979 # Step 9. Calculate exp(X)-1, |X| < 1/4, by a polynomial #
6986 # |p - (exp(X)-1)| < |X| 2^(-70.6) #
6998 # Step 10. Calculate exp(X)-1 for |X| >= 70 log 2. #
6999 # 10.1 If X >= 70log2 , exp(X) - 1 = exp(X) for all #
7001 # 10.2 If X <= -70log2, exp(X) - 1 = -1 for all practical #
7111 #--entry point for EXP(X), here X is finite, non-zero, and not NaN's
7160 #--WE NOW COMPUTE EXP(R)-1 BY A POLYNOMIAL
7191 fadd.x %fp2,%fp0 # fp0 is EXP(R) - 1
7195 #--EXP(X) = 2^M * ( 2^(J/64) + 2^(J/64)*(EXP(R)-1) )
7197 fmul.x %fp1,%fp0 # 2^(J/64)*(Exp(R)-1)
7261 #--entry point for EXP(X), X is denormalized
7323 #--WE NOW COMPUTE EXP(R)-1 BY A POLYNOMIAL
7361 fadd.x %fp2,%fp0 # fp0 IS EXP(R)-1
7368 fmul.x (%a1),%fp0 # 2^(J/64)*(Exp(R)-1)
7437 #--Step 9 exp(X)-1 by a simple polynomial
7529 fmov.w %d0,%fp0 # return exp in fp0
7540 neg.w %d0 # new exp = -(shft amt)
7542 fmov.w %d0,%fp0 # return exp in fp0
7548 mov.w SRC_EX(%a0),%d0 # get the exp
7549 ori.w &0x7fff,%d0 # clear old exp
7550 bclr &0xe,%d0 # make it the new exp +-3fff
7596 # y = |X|, z = exp(Y), and #
7603 # cosh(X) = sign(X) * exp(|X|)/2. #
7604 # However, invoking exp(|X|) may cause premature #
7609 # cosh(X) := Fact * exp(Y'). #
7633 #--COSH(X) = (1/2) * ( EXP(X) + 1/EXP(X) )
7641 bsr setox # FP0 IS EXP(|X|)
7643 fmul.s &0x3F000000,%fp0 # (1/2)EXP(|X|)
7647 fdiv.x %fp0,%fp1 # 1/(2 EXP(|X|))
7717 # sinh(X) = sign(X) * exp(|X|)/2. #
7718 # However, invoking exp(|X|) may cause premature overflow. #
7724 # sinh(X) := sgnFact * exp(Y'). #
7838 # sgn := sign(X), y := 2|X|, z := exp(Y), #
7910 #--TANH(X) = 1 - (2/[EXP(2X)+1]). LET Y = 2|X|, SGN = SIGN(X),
7911 #--TANH(X) = SGN - SGN*2/[EXP(Y)+1].
7926 bsr setox # FP0 IS EXP(Y)
7930 fadd.s &0x3F800000,%fp0 # EXP(Y)+1
7934 fdiv.x %fp0,%fp1 # -SIGN(X)2 / [EXP(Y)+1 ]
8479 #--NEXT SEE IF EXP(-1/16) < X < EXP(1/16)
8486 #--EXP(-1/16) < X < EXP(1/16). LOG(1+Z) = LOG(1+U/2) - LOG(1-U/2)
8849 # 2**X = 2**(M') * 2**(M) * 2**(j/64) * exp(r). #
8865 # 10**X = 2**(M') * 2**(M) * 2**(j/64) * exp(r). #
8876 # 3. Calculate P where 1 + P approximates exp(r): #
9160 #-- 2**(M'+M) * 2**(J/64) * EXP(R)
9182 fadd.x %fp2,%fp0 # FP0 IS EXP(R) - 1
9187 #--EXP(X) = 2^M*2^(J/64) + 2^M*2^(J/64)*(EXP(R)-1) - (1 OR 0)
9235 andi.l &0x00007fff,%d1 # strip sign from dst exp
9308 addi.w &0x3fff,%d0 # turn src amt into exp value
9534 mov.l %d3,L_SCR1(%a6) # save biased exp(Y)
9535 mov.l %d0,-(%sp) # save biased exp(X)
9552 addq.l &0x4,%sp # erase exp(X)
9784 cmpi.w %d0, &0x7fff # is (EXP == MAX)?
10929 cmp.w %d0, %d1 # will denorm push exp < 0?
10930 bgt.b unnorm_nrm_zero # yes; denorm only until exp = 0
10938 or.w %d0, %d1 # {sgn,new exp}
10947 # exponent would go < 0, so only denormalize until exp = 0
10950 cmp.b %d1, &32 # is exp <= 32?
10960 and.w &0x8000, FTEMP_EX(%a0) # set exp = 0
10977 and.w &0x8000, FTEMP_EX(%a0) # set exp = 0