Lines Matching full:atan
36 // atan(i/16) with i = 0..16, generated by Sollya with:
38 // a = round(atan(i/16), D, RN);
39 // b = round(atan(i/16) - a, D, RN);
105 // Compute atan( num_d / den_d ) in double-double precision.
121 // atan(n/d) - atan(idx/16) = atan((n/d - idx/16) / (1 + (n/d) * (idx/16))) in atan2f_double_double()
122 // = atan((n - d*(idx/16)) / (d + n*idx/16)) in atan2f_double_double()
187 // atan2(y, x) = atan( y/x ) if x >= 0 and y >= 0 (I-quadrant)
188 // = pi + atan( y/x ) if x < 0 and y >= 0 (II-quadrant)
189 // = -pi + atan( y/x ) if x < 0 and y < 0 (III-quadrant)
190 // = atan( y/x ) if x >= 0 and y < 0 (IV-quadrant)
191 // Since atan function is odd, we can use the formula:
192 // atan(-u) = -atan(u)
194 // atan2(y, x) = atan( |y|/|x| ) if x >= 0 and y >= 0 (I-quadrant)
195 // = pi - atan( |y|/|x| ) if x < 0 and y >= 0 (II-quadrant)
196 // = -pi + atan( |y|/|x| ) if x < 0 and y < 0 (III-quadrant)
197 // = -atan( |y|/|x| ) if x >= 0 and y < 0 (IV-quadrant)
199 // atan2(y, x) = sign(y) * atan( |y|/|x| ) if x >= 0
200 // = sign(y) * (pi - atan( |y|/|x| )) if x < 0
203 // Now that the argument inside atan is positive, we can use the formula:
204 // atan(1/x) = pi/2 - atan(x)
205 // to make the argument inside atan <= 1 as follow:
206 // atan2(y, x) = sign(y) * atan( |y|/|x|) if 0 <= |y| <= x
207 // = sign(y) * (pi/2 - atan( |x|/|y| ) if 0 <= x < |y|
208 // = sign(y) * (pi - atan( |y|/|x| )) if 0 <= |y| <= -x
209 // = sign(y) * (pi/2 + atan( |x|/|y| )) if 0 <= -x < |y|
213 // compute atan(u) with 0 <= u <= 1, or to be precise:
214 // atan( n / d ) where n = min(|x|, |y|) and d = max(|x|, |y|).
222 // atan( n/d ) ~ atan( idx/16 ) + (n/d - idx/16) * Q(n/d - idx/16)
224 // atan( n/d ) - atan( idx/16 ) = atan( (n/d - idx/16)/(1 + (n*idx)/(16*d)) )
225 // = atan( (n - d * idx/16)/(d + n * idx/16) )
227 // atan(u) ~ P(u) = u - u^3/3 + u^5/5 - u^7/7 + u^9/9 - u^11/11 + u^13/13 -
232 // > dirtyinfnorm(atan(x) - P, [-2^-5, 2^-5]);