| 128 | } |
| 129 | |
| 130 | template<class T, class Policies> inline |
| 131 | interval<T, Policies> acos(const interval<T, Policies>& x) |
| 132 | { |
| 133 | typedef interval<T, Policies> I; |
| 134 | if (interval_lib::detail::test_input(x) |
| 135 | || x.upper() < static_cast<T>(-1) || x.lower() > static_cast<T>(1)) |
| 136 | return I::empty(); |
| 137 | typename Policies::rounding rnd; |
| 138 | T l = (x.upper() >= static_cast<T>(1) ) |
| 139 | ? static_cast<T>(0) |
| 140 | : rnd.acos_down(x.upper()); |
| 141 | T u = (x.lower() <= static_cast<T>(-1)) |
| 142 | ? interval_lib::constants::pi_upper<T>() |
| 143 | : rnd.acos_up (x.lower()); |
| 144 | return I(l, u, true); |
| 145 | } |
| 146 | |
| 147 | template<class T, class Policies> inline |
| 148 | interval<T, Policies> atan(const interval<T, Policies>& x) |
nothing calls this directly
no test coverage detected