| | |
| | | switch(m) { |
| | | case 0: return pi_o_4+tiny;/* atan(+INF,+INF) */ |
| | | case 1: return -pi_o_4-tiny;/* atan(-INF,+INF) */ |
| | | case 2: return 3.0*pi_o_4+tiny;/* atan(+INF,-INF) */ |
| | | case 3: return -3.0*pi_o_4-tiny;/* atan(-INF,-INF) */ |
| | | case 2: return 3.0*pi_o_4+tiny;/*atan(+INF,-INF)*/ |
| | | case 3: return -3.0*pi_o_4-tiny;/*atan(-INF,-INF)*/ |
| | | } |
| | | } else { |
| | | switch(m) { |
| | |
| | | return (z-pi_lo)-pi;/* atan(-,-) */ |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * wrapper atan2(y,x) |
| | | */ |
| | | #ifndef _IEEE_LIBM |
| | | double atan2(double y, double x) |
| | | { |
| | | double z = __ieee754_atan2(y, x); |
| | | if (_LIB_VERSION == _IEEE_ || isnan(x) || isnan(y)) |
| | | return z; |
| | | if (x == 0.0 && y == 0.0) |
| | | return __kernel_standard(y,x,3); /* atan2(+-0,+-0) */ |
| | | return z; |
| | | } |
| | | #else |
| | | strong_alias(__ieee754_atan2, atan2) |
| | | #endif |
| | | libm_hidden_def(atan2) |