|
| template<typename Container , typename T = detail::ContainerVal<Container>, typename BinaryOp = operators::plus<T>> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE concepts::enable_if_t< T, type_traits::is_range< Container > > | RAJA::left_fold_reduce (Container &&c, T init=BinaryOp::identity(), BinaryOp op=BinaryOp {}) |
| | Accumulate given range to a single value using a left fold algorithm in O(N) operations and O(1) extra memory see https://en.cppreference.com/w/cpp/algorithm/accumulate. More...
|
| |
| template<typename Container , typename T = detail::ContainerVal<Container>, typename BinaryOp = operators::plus<T>> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE concepts::enable_if_t< T, type_traits::is_range< Container > > | RAJA::binary_tree_reduce (Container &&c, T init=BinaryOp::identity(), BinaryOp op=BinaryOp {}) |
| | Reduce given range to a single value using a binary tree algorithm in O(N) operations and O(lg(N)) extra memory see https://en.cppreference.com/w/cpp/algorithm/reduce. More...
|
| |
| template<typename Container , typename T = detail::ContainerVal<Container>> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE concepts::enable_if_t< T, type_traits::is_range< Container >, std::is_floating_point< T > > | RAJA::kahan_sum (Container &&c, T init=T()) |
| | Accumulate given range to a single value using a kahan summation algorithm in O(N) operations and O(1) extra memory see https://en.cppreference.com/w/cpp/algorithm/accumulate. More...
|
| |
| template<typename Container , typename T = detail::ContainerVal<Container>> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE concepts::enable_if_t< T, type_traits::is_range< Container >, std::is_floating_point< T > > | RAJA::kahan_sum_volatile (Container &&c, T init=T()) |
| | Accumulate given range to a single value using a kahan summation algorithm in O(N) operations and O(1) extra memory see https://en.cppreference.com/w/cpp/algorithm/accumulate. More...
|
| |
| template<typename Container , typename T = detail::ContainerVal<Container>, typename BinaryOp = operators::plus<T>> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE concepts::enable_if_t< T, type_traits::is_range< Container > > | RAJA::high_accuracy_reduce (Container &&c, T init=BinaryOp::identity(), BinaryOp op=BinaryOp {}) |
| | Reduce given range to a single value using an algorithm with high accuracy when floating point round off is a concern see https://en.cppreference.com/w/cpp/algorithm/reduce. More...
|
| |
| template<typename Container , typename T = detail::ContainerVal<Container>, typename BinaryOp = operators::plus<T>> |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE concepts::enable_if_t< T, type_traits::is_range< Container > > | RAJA::accumulate (Container &&c, T init=BinaryOp::identity(), BinaryOp op=BinaryOp {}) |
| | Accumulate given range to a single value using a left fold algorithm in O(N) operations and O(1) extra memory see https://en.cppreference.com/w/cpp/algorithm/accumulate. More...
|
| |
Header file providing RAJA sort templates.