| 35 | } |
| 36 | |
| 37 | template<class T, class Policies> inline |
| 38 | interval<T, Policies> log(const interval<T, Policies>& x) |
| 39 | { |
| 40 | typedef interval<T, Policies> I; |
| 41 | if (interval_lib::detail::test_input(x) || |
| 42 | !interval_lib::user::is_pos(x.upper())) |
| 43 | return I::empty(); |
| 44 | typename Policies::rounding rnd; |
| 45 | typedef typename Policies::checking checking; |
| 46 | T l = !interval_lib::user::is_pos(x.lower()) |
| 47 | ? checking::neg_inf() : rnd.log_down(x.lower()); |
| 48 | return I(l, rnd.log_up(x.upper()), true); |
| 49 | } |
| 50 | |
| 51 | template<class T, class Policies> inline |
| 52 | interval<T, Policies> cos(const interval<T, Policies>& x) |
nothing calls this directly
no test coverage detected