Lines Matching full:atan
26 // atan(i/16) with i = 0..16, generated by Sollya with:
28 // a = round(atan(i/16), D, RN);
29 // b = round(atan(i/16) - a, D, RN);
95 // Compute atan( num_d / den_d ) in double-double precision.
111 // atan(n/d) - atan(idx/16) = atan((n/d - idx/16) / (1 + (n/d) * (idx/16))) in atan2f_double_double()
112 // = atan((n - d*(idx/16)) / (d + n*idx/16)) in atan2f_double_double()
175 // atan2(y, x) = atan( y/x ) if x >= 0 and y >= 0 (I-quadrant)
176 // = pi + atan( y/x ) if x < 0 and y >= 0 (II-quadrant)
177 // = -pi + atan( y/x ) if x < 0 and y < 0 (III-quadrant)
178 // = atan( y/x ) if x >= 0 and y < 0 (IV-quadrant)
179 // Since atan function is odd, we can use the formula:
180 // atan(-u) = -atan(u)
182 // atan2(y, x) = atan( |y|/|x| ) if x >= 0 and y >= 0 (I-quadrant)
183 // = pi - atan( |y|/|x| ) if x < 0 and y >= 0 (II-quadrant)
184 // = -pi + atan( |y|/|x| ) if x < 0 and y < 0 (III-quadrant)
185 // = -atan( |y|/|x| ) if x >= 0 and y < 0 (IV-quadrant)
187 // atan2(y, x) = sign(y) * atan( |y|/|x| ) if x >= 0
188 // = sign(y) * (pi - atan( |y|/|x| )) if x < 0
191 // Now that the argument inside atan is positive, we can use the formula:
192 // atan(1/x) = pi/2 - atan(x)
193 // to make the argument inside atan <= 1 as follow:
194 // atan2(y, x) = sign(y) * atan( |y|/|x|) if 0 <= |y| <= x
195 // = sign(y) * (pi/2 - atan( |x|/|y| ) if 0 <= x < |y|
196 // = sign(y) * (pi - atan( |y|/|x| )) if 0 <= |y| <= -x
197 // = sign(y) * (pi/2 + atan( |x|/|y| )) if 0 <= -x < |y|
201 // compute atan(u) with 0 <= u <= 1, or to be precise:
202 // atan( n / d ) where n = min(|x|, |y|) and d = max(|x|, |y|).
210 // atan( n/d ) ~ atan( idx/16 ) + (n/d - idx/16) * Q(n/d - idx/16)
212 // atan( n/d ) - atan( idx/16 ) = atan( (n/d - idx/16)/(1 + (n*idx)/(16*d)) )
213 // = atan( (n - d * idx/16)/(d + n * idx/16) )
215 // atan(u) ~ P(u) = u - u^3/3 + u^5/5 - u^7/7 + u^9/9 - u^11/11 + u^13/13 -
220 // > dirtyinfnorm(atan(x) - P, [-2^-5, 2^-5]);