Lines Matching refs:X
11 | Output: Arctan(X) returned in floating-point register Fp0.
19 | argument X such that 1/16 < |X| < 16. For the other arguments,
23 | Step 1. If |X| >= 16 or |X| < 1/16, go to Step 5.
25 | Step 2. Let X = sgn * 2**k * 1.xxxxxxxx...x. Note that k = -4, -3,..., or 3.
27 | of X with a bit-1 attached at the 6-th bit position. Define u
28 | to be u = (X-F) / (1 + X*F).
35 | Step 5. If |X| >= 16, go to Step 7.
37 | Step 6. Approximate arctan(X) by an odd polynomial in X. Exit.
39 | Step 7. Define X' = -1/X. Approximate arctan(X') by an odd polynomial in X'.
217 .set X,FP_SCR1 define
218 .set XDCARE,X+2
219 .set XFRAC,X+4
220 .set XFRACLO,X+8
232 |--ENTRY POINT FOR ATAN(X) FOR DENORMALIZED ARGUMENT
238 |--ENTRY POINT FOR ATAN(X), HERE X IS FINITE, NON-ZERO, AND NOT NAN'S
280 movew #0x0000,XDCARE(%a6) | ...CLEAN UP X JUST IN CASE
283 movel #0x00000000,XFRACLO(%a6) | ...LOCATION OF X IS NOW F
285 fmovex %fp0,%fp1 | ...FP1 IS X
286 fmulx X(%a6),%fp1 | ...FP1 IS X*F, NOTE THAT X*F > 0
287 fsubx X(%a6),%fp0 | ...FP0 IS X-F
288 fadds #0x3F800000,%fp1 | ...FP1 IS 1 + X*F
289 fdivx %fp1,%fp0 | ...FP0 IS U = (X-F)/(1+X*F)
296 movel %d0,%d2 | ...THE EXPO AND 16 BITS OF X
337 faddx ATANF(%a6),%fp0 | ...ATAN(X)
341 |--|X| IS IN d0 IN COMPACT FORM. FP1, d0 SAVED.
342 |--FP0 IS X AND |X| <= 1/16 OR |X| >= 16.
344 bgt ATANBIG | ...I.E. |X| >= 16
347 |--|X| <= 1/16
348 |--IF |X| < 2^(-40), RETURN X AS ANSWER. OTHERWISE, APPROXIMATE
349 |--ATAN(X) BY X + X*Y*(B1+Y*(B2+Y*(B3+Y*(B4+Y*(B5+Y*B6)))))
350 |--WHICH IS X + X*Y*( [B1+Z*(B3+Z*B5)] + [Y*(B2+Z*(B4+Z*B6)] )
351 |--WHERE Y = X*X, AND Z = Y*Y.
356 fmulx %fp0,%fp0 | ...FP0 IS Y = X*X
380 fmulx X(%a6),%fp0 | ...X*Y
385 fmulx %fp1,%fp0 | ...X*Y*([B1+Z*(B3+Z*B5)]+[Y*(B2+Z*(B4+Z*B6))])
388 faddx X(%a6),%fp0
393 |--|X| < 2^(-40), ATAN(X) = X
397 fmovex X(%a6),%fp0 |last inst - possible exception set
402 |--IF |X| > 2^(100), RETURN SIGN(X)*(PI/2 - TINY). OTHERWISE,
403 |--RETURN SIGN(X)*PI/2 + ATAN(-1/X).
407 |--APPROXIMATE ATAN(-1/X) BY
408 |--X'+X'*Y*(C1+Y*(C2+Y*(C3+Y*(C4+Y*C5)))), X' = -1/X, Y = X'*X'
410 |--X'+X'*Y*( [C1+Z*(C3+Z*C5)] + [Y*(C2+Z*C4)] ), Z = Y*Y.
419 fmulx %fp0,%fp0 | ...FP0 IS Y = X'*X'
420 fmovex %fp1,X(%a6) | ...X IS REALLY X'
443 fmulx %fp1,%fp0 | ...X'*Y*([B1+Z*(B3+Z*B5)]