| 179 | */ |
| 180 | template <typename T, ARM_COMPUTE_REQUIRES_TA(traits::is_floating_point<T>::value)> |
| 181 | inline T round(T value, RoundingMode rounding_mode) |
| 182 | { |
| 183 | switch (rounding_mode) |
| 184 | { |
| 185 | case RoundingMode::TO_ZERO: |
| 186 | return round_to_zero(value); |
| 187 | case RoundingMode::AWAY_FROM_ZERO: |
| 188 | return round_away_from_zero(value); |
| 189 | case RoundingMode::HALF_TO_ZERO: |
| 190 | return round_half_to_zero(value); |
| 191 | case RoundingMode::HALF_AWAY_FROM_ZERO: |
| 192 | return round_half_away_from_zero(value); |
| 193 | case RoundingMode::HALF_UP: |
| 194 | return round_half_up(value); |
| 195 | case RoundingMode::HALF_DOWN: |
| 196 | return round_half_down(value); |
| 197 | case RoundingMode::HALF_EVEN: |
| 198 | return round_half_even(value); |
| 199 | default: |
| 200 | ARM_COMPUTE_ERROR("Unsupported rounding mode!"); |
| 201 | } |
| 202 | } |
| 203 | } // namespace rounding |
| 204 | } // namespace utils |
| 205 | } // namespace arm_compute |
no test coverage detected