Lines Matching full:y

22  *	Scale x to y in [1,4) with even powers of 2:
23 * find an integer k such that 1 <= (y=x*2^(2k)) < 4, then
24 * sqrt(x) = 2^k * sqrt(y)
26 * Let q = sqrt(y) truncated to i bit after binary point (q = 1),
29 * s = 2*q , and y = 2 * ( y - q ). (1)
36 * (q + 2 ) <= y. (2)
45 * s + 2 <= y (3)
48 * The advantage of (3) is that s and y can be computed by
53 * s = s , y = y ; (4)
58 * s = s + 2 , y = y - s - 2 (5)
240 y0 := k - T1[31&(k>>15)]. ... y ~ sqrt(x) to 8 bits
242 correction terms. Now magically the floating value of y (y's
255 Apply Heron's rule three times to y, we have y approximates
258 y := (y+x/y)/2 ... almost 17 sig. bits
259 y := (y+x/y)/2 ... almost 35 sig. bits
260 y := y-(y-x/y)/2 ... within 1 ulp
264 Another way to improve y to within 1 ulp is:
266 y := (y+x/y) ... almost 17 sig. bits to 2*sqrt(x)
267 y := y - 0x00100006 ... almost 18 sig. bits to sqrt(x)
270 (x-y )*y
271 y := y + 2* ---------- ...within 1 ulp
273 3y + x
279 expression 3y*y+x. Hence it is not recommended uless division
285 By twiddling y's last bit it is possible to force y to be
289 use the expression y+-ulp for the next representable floating
290 numbers (up and down) of y. Note that y+-ulp = either fixed
291 point y+-1, or multiply y by nextafter(1,+-inf) in chopped
296 z := x/y; ... chopped quotient, possibly inexact
298 if(z=y) {
301 return sqrt(x):=y.
309 y = y+ulp; z=z+ulp;
311 y := y+z; ... chopped sum
312 y0:=y0-0x00100000; ... y := y/2 is correctly rounded.
315 return sqrt(x):=y.
333 y0:= k - T2[63&(k>>14)]. ... y ~ 1/sqrt(x) to 7.8 bits
337 value of y (y's leading 32-bit word is y0, the value of
354 Apply Reciproot iteration three times to y and multiply the
360 y := y*(1.5-0.5*x*y*y) ... almost 15 sig. bits to 1/sqrt(x)
361 y := y*((1.5-2^-30)+0.5*x*y*y)... about 29 sig. bits to 1/sqrt(x)
363 z := x*y ... 29 bits to sqrt(x), with z*y<1
364 z := z + 0.5*z*(1-z*y) ... about 1 ulp to sqrt(x)
367 (a) the term z*y in the final iteration is always less than 1;
374 By twiddling y's last bit it is possible to force y to be
378 use the expression y+-ulp for the next representable floating
379 numbers (up and down) of y. Note that y+-ulp = either fixed
380 point y+-1, or multiply y by nextafter(1,+-inf) in chopped