|
RAJA
RAJA provides a collection of platform portability abstractions for C++ HPC applications.
|
Header file providing RAJA sort templates. More...
#include "RAJA/config.hpp"#include <iterator>#include <memory>#include "RAJA/pattern/detail/algorithm.hpp"#include "RAJA/util/macros.hpp"#include "RAJA/util/concepts.hpp"#include "RAJA/util/math.hpp"Go to the source code of this file.
Classes | |
| struct | RAJA::detail::intro_sort_device_max_depth |
| max recursion depth for intro sort when compiling device code. More... | |
| struct | RAJA::detail::intro_sort_insertion_sort_cutoff |
| cutoff for intro sort to use insertion sort on small ranges. More... | |
Namespaces | |
| RAJA | |
| RAJA::detail | |
Functions | |
| template<typename Iter , typename Predicate > | |
| RAJA_HOST_DEVICE RAJA_INLINE Iter | RAJA::detail::partition (Iter begin, Iter end, Predicate pred) |
| unstable partition given range inplace using predicate function and using O(N) predicate evaluations and O(1) memory More... | |
| template<typename Iter , typename Compare > | |
| RAJA_HOST_DEVICE RAJA_INLINE void | RAJA::detail::insertion_sort (Iter begin, Iter end, Compare comp) |
| stable insertion sort given range inplace using comparison function and using O(N^2) comparisons and O(1) memory More... | |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE size_t | RAJA::detail::num_shell_strides () |
| get number of strides for shell sort More... | |
| RAJA_HOST_DEVICE constexpr RAJA_INLINE long long unsigned | RAJA::detail::get_shell_stride (int i) |
| get strides for shell sort More... | |
| template<typename Iter , typename Compare > | |
| RAJA_HOST_DEVICE RAJA_INLINE void | RAJA::detail::shell_sort (Iter begin, Iter end, Compare comp) |
| unstable shell sort given range inplace using comparison function and using O(N^?) comparisons and O(1) memory More... | |
| template<typename Iter , typename Compare > | |
| RAJA_HOST_DEVICE RAJA_INLINE void | RAJA::detail::heapify (Iter begin, Iter root, Iter end, Compare comp) |
| insert the given element into the heaps below it using comparison function and using O(lg(N)) comparisons and O(1) memory More... | |
| template<typename Iter , typename Compare > | |
| RAJA_HOST_DEVICE void | RAJA::detail::heap_sort (Iter begin, Iter end, Compare comp) |
| unstable heap sort given range inplace using comparison function and using O(N*lg(N)) comparisons and O(1) memory More... | |
| template<typename Iter , typename Compare > | |
| RAJA_HOST_DEVICE void | RAJA::detail::intro_sort_depth (Iter begin, Iter end, Compare comp, unsigned depth) |
| unstable intro sort given range inplace using comparison function and using O(N*lg(N)) comparisons and O(lg(N)) memory, with limited depth. More... | |
| template<typename Iter , typename Compare > | |
| RAJA_HOST_DEVICE void | RAJA::detail::intro_sort (Iter begin, Iter end, Compare comp) |
| unstable intro sort given range inplace using comparison function and using O(N*lg(N)) comparisons and O(lg(N)) memory More... | |
| template<typename Iter , typename Compare > | |
| void RAJA_INLINE | RAJA::detail::inplace_merge (Iter first, Iter middle, Iter last, Compare comp) |
| merge a range with midpoint using comparison function with local range/2 copy More... | |
| template<typename Iter1 , typename Iter2 , typename OutIter , typename Compare > | |
| void RAJA_INLINE | RAJA::detail::merge_like_std (Iter1 first1, Iter1 last1, Iter2 first2, Iter2 last2, OutIter d_first, Compare comp) |
| merge given two ranges using comparison function while copies are outside, somewhat follows STL API More... | |
| template<typename Iter , typename Compare > | |
| RAJA_INLINE void | RAJA::detail::merge_sort (Iter begin, Iter end, Compare comp) |
| stable merge sort given range inplace using comparison function and using O(N*lg(N)) comparisons and O(N) memory More... | |
| template<typename Container , typename Compare = operators::less<detail::ContainerVal<Container>>> | |
| RAJA_HOST_DEVICE RAJA_INLINE concepts::enable_if< type_traits::is_range< Container > > | RAJA::insertion_sort (Container &&c, Compare comp=Compare {}) |
| stable insertion sort given range inplace using comparison function and using O(N^2) comparisons and O(1) memory More... | |
| template<typename Container , typename Compare = operators::less<detail::ContainerVal<Container>>> | |
| RAJA_HOST_DEVICE RAJA_INLINE concepts::enable_if< type_traits::is_range< Container > > | RAJA::shell_sort (Container &&c, Compare comp=Compare {}) |
| unstable shell sort given range inplace using comparison function and using O(N^?) comparisons and O(1) memory More... | |
| template<typename Container , typename Compare = operators::less<detail::ContainerVal<Container>>> | |
| RAJA_HOST_DEVICE RAJA_INLINE concepts::enable_if< type_traits::is_range< Container > > | RAJA::heap_sort (Container &&c, Compare comp=Compare {}) |
| unstable heap sort given range inplace using comparison function and using O(N*lg(N)) comparisons and O(1) memory More... | |
| template<typename Container , typename Compare = operators::less<detail::ContainerVal<Container>>> | |
| RAJA_HOST_DEVICE RAJA_INLINE concepts::enable_if< type_traits::is_range< Container > > | RAJA::intro_sort (Container &&c, Compare comp=Compare {}) |
| unstable intro sort given range inplace using comparison function and using O(N*lg(N)) comparisons and O(lg(N)) memory More... | |
| template<typename Container , typename Compare = operators::less<detail::ContainerVal<Container>>> | |
| RAJA_INLINE concepts::enable_if< type_traits::is_range< Container > > | RAJA::merge_sort (Container &&c, Compare comp=Compare {}) |
| stable merge sort given range inplace using comparison function and using O(N*lg(N)) comparisons and O(N) memory More... | |
Header file providing RAJA sort templates.