| 465 | |
| 466 | template <typename F> |
| 467 | inline F atan_full_(F u) FL_NOEXCEPT { |
| 468 | const F kPiHalf = F(1.57079632679489661923); |
| 469 | // Reduce to |u| <= 1 via the reciprocal identity. |
| 470 | if (u > F(1)) { |
| 471 | return kPiHalf - atan_poly_unit_(F(1) / u); |
| 472 | } else if (u < F(-1)) { |
| 473 | return -kPiHalf - atan_poly_unit_(F(1) / u); |
| 474 | } |
| 475 | return atan_poly_unit_(u); |
| 476 | } |
| 477 | |
| 478 | template <typename F> |
| 479 | inline F atan2_full_(F y, F x) FL_NOEXCEPT { |
no test coverage detected