Lines Matching refs:F
5934 fmov.x %fp0,INARG(%a6) # +-2**K * F, 1 <= F < 2
6259 #--THE IDEA IS ATAN(X) = ATAN(F) + ATAN( [X-F] / [1+XF] ).
6260 #--SO IF F IS CHOSEN TO BE CLOSE TO X AND ATAN(F) IS STORED IN
6262 #--U = (X-F)/(1+XF) IS SMALL (REMEMBER F IS CLOSE TO X). IT IS
6265 #--FETCH F AND SAVING OF REGISTERS CAN BE ALL HIDED UNDER THE
6273 #--WE CHOSE F TO BE +-2^K * 1.BBBB1
6276 #--ARE ONLY 8 TIMES 16 = 2^7 = 128 |F|'S. SINCE ATAN(-|F|) IS
6298 and.l &0x7FFF0000,%d2 # EXPONENT OF F
6301 add.l %d2,%d1 # THE 7 BITS IDENTIFYING F
6302 asr.l &7,%d1 # INDEX INTO TBL OF ATAN(|F|)
6304 add.l %d1,%a1 # ADDRESS OF ATAN(|F|)
6307 mov.l (%a1)+,ATANFLO(%a6) # ATANF IS NOW ATAN(|F|)
6309 and.l &0x80000000,%d1 # SIGN(F)
6310 or.l %d1,ATANF(%a6) # ATANF IS NOW SIGN(F)*ATAN(|F|)
7985 # Step 2. X = 2**k * Y where 1 <= Y < 2. Define F to be the first #
7987 # F = 1.xxxxxx1 in base 2 where the six "x" match those #
7988 # of Y. Note that |Y-F| <= 2**(-7). #
7990 # Step 3. Define u = (Y-F)/F. Approximate log(1+u) by a #
7994 # log(X) = log( 2**k * Y ) = k*log(2) + log(F) + log(1+u) #
7995 # by k*log(2) + (log(F) + poly). The values of log(F) are #
8003 # Step 2: Let 1+X = 2**k * Y, where 1 <= Y < 2. Define F as done #
8005 # log(1+X) as k*log(2) + log(F) + poly where poly #
8006 # approximates log(1+u), u = (Y-F)/F. #
8009 # Note 1. There are 64 different possible values for F, thus 64 #
8010 # log(F)'s need to be tabulated. Moreover, the values of #
8240 #--WE DEFINE F = 1.XXXXXX1, I.E. FIRST 7 BITS OF Y AND ATTACH A 1.
8242 #-- = K*LOG2 + LOG(F) + LOG(1 + (Y-F)/F).
8243 #--NOTE THAT U = (Y-F)/F IS VERY SMALL AND THUS APPROXIMATING
8245 #--ALSO NOTE THAT THE VALUE 1/F IS STORED IN A TABLE SO THAT NO
8246 #--DIVISION IS NEEDED TO CALCULATE (Y-F)/F.
8248 #--GET K, Y, F, AND ADDRESS OF 1/F.
8253 lea LOGTBL(%pc),%a0 # BASE ADDRESS OF 1/F AND LOG(F)
8256 #--WHILE THE CONVERSION IS GOING ON, WE GET F AND ADDRESS OF 1/F
8260 or.l &0x01000000,FFRAC(%a6) # GET F: ATTACH A 1 AT THE EIGHTH BIT
8261 mov.l FFRAC(%a6),%d1 # READY TO GET ADDRESS OF 1/F
8266 add.l %d1,%a0 # A0 IS THE ADDRESS FOR 1/F
8269 mov.l &0x3fff0000,F(%a6)
8270 clr.l F+8(%a6)
8271 fsub.x F(%a6),%fp0 # Y-F
8273 #--SUMMARY: FP0 IS Y-F, A0 IS ADDRESS OF 1/F, FP1 IS K
8278 fmul.x (%a0),%fp0 # FP0 IS U = (Y-F)/F
8304 add.l &16,%a0 # ADDRESS OF LOG(F)
8310 fadd.x (%a0),%fp1 # LOG(F)+U*V*(A2+V*(A4+V*A6))
8312 fadd.x %fp1,%fp0 # FP0 IS LOG(F) + LOG(1+U)
8489 #--CASE 1: 1+Z < 1, THEN K = -1 AND Y-F = (2-F) + 2Z
8490 #--CASE 2: 1+Z > 1, THEN K = 0 AND Y-F = (1-F) + Z
8492 #--(1/F) IN A0, Y-F IN FP0, AND FP2 SAVED.
8496 or.l &0x01000000,FFRAC(%a6) # F OBTAINED
8502 mov.l &0x3fff0000,F(%a6)
8503 clr.l F+8(%a6)
8504 fsub.x F(%a6),%fp0 # 2-F
8509 asr.l &4,%d1 # D0 CONTAINS DISPLACEMENT FOR 1/F
8512 fadd.x %fp1,%fp0 # FP0 IS Y-F = (2-F)+2Z
8513 lea LOGTBL(%pc),%a0 # A0 IS ADDRESS OF 1/F
8520 mov.l &0x3fff0000,F(%a6)
8521 clr.l F+8(%a6)
8522 fsub.x F(%a6),%fp0 # 1-F
8528 fadd.x %fp1,%fp0 # FP0 IS Y-F
8531 add.l %d1,%a0 # A0 IS ADDRESS OF 1/F