![]() |
Shamrock 2025.10.0
Astrophysical Code
|
Batcher odd-even mergesort, native for any length. More...
#include "shambase/exception.hpp"#include "shamalgs/details/algorithm/batcherOddEvenSort.hpp"#include "shambackends/kernel_call.hpp"#include <algorithm>#include <stdexcept>#include <utility>#include <vector>Go to the source code of this file.
Classes | |
| struct | shamalgs::algorithm::details::OddEvenOrderingPrimitive< Tkey, Tval > |
| Device side primitives of the odd-even merge network. More... | |
Namespaces | |
| namespace | shamalgs |
| namespace to contain everything implemented by shamalgs | |
| namespace | shamalgs::algorithm |
| namespace to store algorithms implemented by shamalgs | |
| namespace | shamalgs::algorithm::details |
| namespace to store algorithms implemented by shamalgs | |
Functions | |
| template<class Tkey, class Tval> | |
| void | shamalgs::algorithm::details::sort_by_key_batcher_odd_even (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< Tkey > &buf_key, sham::DeviceBuffer< Tval > &buf_values, u32 len) |
| Sort key-value pairs of any length using a Batcher odd-even merge network. | |
| template<class Tkey, class Tval> | |
| void | shamalgs::algorithm::details::sort_by_key_batcher_odd_even_host_reference (std::vector< Tkey > &keys, std::vector< Tval > &values) |
| Host reference of sort_by_key_batcher_odd_even. | |
| template void | shamalgs::algorithm::details::sort_by_key_batcher_odd_even< u32, u32 > (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< u32 > &buf_key, sham::DeviceBuffer< u32 > &buf_values, u32 len) |
| template void | shamalgs::algorithm::details::sort_by_key_batcher_odd_even< u64, u32 > (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< u64 > &buf_key, sham::DeviceBuffer< u32 > &buf_values, u32 len) |
| template void | shamalgs::algorithm::details::sort_by_key_batcher_odd_even< f32, f32 > (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f32 > &buf_key, sham::DeviceBuffer< f32 > &buf_values, u32 len) |
| template void | shamalgs::algorithm::details::sort_by_key_batcher_odd_even< f64, f64 > (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f64 > &buf_key, sham::DeviceBuffer< f64 > &buf_values, u32 len) |
| template void | shamalgs::algorithm::details::sort_by_key_batcher_odd_even< f32, u32 > (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f32 > &buf_key, sham::DeviceBuffer< u32 > &buf_values, u32 len) |
| template void | shamalgs::algorithm::details::sort_by_key_batcher_odd_even< f64, u32 > (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f64 > &buf_key, sham::DeviceBuffer< u32 > &buf_values, u32 len) |
| template void | shamalgs::algorithm::details::sort_by_key_batcher_odd_even_host_reference< u32, u32 > (std::vector< u32 > &keys, std::vector< u32 > &values) |
| template void | shamalgs::algorithm::details::sort_by_key_batcher_odd_even_host_reference< u64, u32 > (std::vector< u64 > &keys, std::vector< u32 > &values) |
| template void | shamalgs::algorithm::details::sort_by_key_batcher_odd_even_host_reference< f32, f32 > (std::vector< f32 > &keys, std::vector< f32 > &values) |
| template void | shamalgs::algorithm::details::sort_by_key_batcher_odd_even_host_reference< f32, u32 > (std::vector< f32 > &keys, std::vector< u32 > &values) |
| template void | shamalgs::algorithm::details::sort_by_key_batcher_odd_even_host_reference< f64, u32 > (std::vector< f64 > &keys, std::vector< u32 > &values) |
| template void | shamalgs::algorithm::details::sort_by_key_batcher_odd_even_host_reference< f64, f64 > (std::vector< f64 > &keys, std::vector< f64 > &values) |
Batcher odd-even mergesort, native for any length.
Definition in file batcherOddEvenSort.cpp.