![]() |
Shamrock 2025.10.0
Astrophysical Code
|
#include "shamalgs/details/numeric/numeric.hpp"#include "shambase/assert.hpp"#include "shambase/integer.hpp"#include "shambase/numeric_limits.hpp"#include "shamalgs/details/algorithm/algorithm.hpp"#include "shamalgs/details/numeric/exclusiveScanAtomic.hpp"#include "shamalgs/details/numeric/exclusiveScanGPUGems39.hpp"#include "shamalgs/details/numeric/numericFallback.hpp"#include "shamalgs/details/numeric/scanDecoupledLookback.hpp"#include "shamalgs/details/numeric/streamCompactExclScan.hpp"#include "shambackends/DeviceBuffer.hpp"#include "shambackends/kernel_call.hpp"#include <utility>
Include dependency graph for numeric.cpp:Go to the source code of this file.
Namespaces | |
| namespace | shamalgs |
| namespace to contain everything implemented by shamalgs | |
| namespace | shamalgs::numeric |
| namespace containing the numeric algorithms of shamalgs | |
Functions | |
| template<class T > | |
| sycl::buffer< T > | shamalgs::numeric::scan_exclusive (sycl::queue &q, sycl::buffer< T > &buf1, u32 len) |
| Computes the exclusive sum of elements in a SYCL buffer. | |
| template<class T > | |
| sham::DeviceBuffer< T > | shamalgs::numeric::scan_exclusive (sham::DeviceScheduler_ptr sched, sham::DeviceBuffer< T > &buf1, u32 len) |
| Compute the exclusive sum of a buffer on the device. | |
| template<class T > | |
| sycl::buffer< T > | shamalgs::numeric::scan_inclusive (sycl::queue &q, sycl::buffer< T > &buf1, u32 len) |
| template<class T > | |
| void | shamalgs::numeric::scan_exclusive_in_place (sycl::queue &q, sycl::buffer< T > &buf, u32 len) |
| template<class T > | |
| void | shamalgs::numeric::scan_inclusive_in_place (sycl::queue &q, sycl::buffer< T > &buf, u32 len) |
| template sycl::buffer< u32 > | shamalgs::numeric::scan_exclusive (sycl::queue &q, sycl::buffer< u32 > &buf1, u32 len) |
| template sham::DeviceBuffer< u32 > | shamalgs::numeric::scan_exclusive (sham::DeviceScheduler_ptr sched, sham::DeviceBuffer< u32 > &buf1, u32 len) |
| template sycl::buffer< u32 > | shamalgs::numeric::scan_inclusive (sycl::queue &q, sycl::buffer< u32 > &buf1, u32 len) |
| template void | shamalgs::numeric::scan_exclusive_in_place (sycl::queue &q, sycl::buffer< u32 > &buf1, u32 len) |
| template void | shamalgs::numeric::scan_inclusive_in_place (sycl::queue &q, sycl::buffer< u32 > &buf1, u32 len) |
| std::tuple< std::optional< sycl::buffer< u32 > >, u32 > | shamalgs::numeric::stream_compact (sycl::queue &q, sycl::buffer< u32 > &buf_flags, u32 len) |
| Stream compaction algorithm. | |
| sham::DeviceBuffer< u32 > | shamalgs::numeric::stream_compact (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< u32 > &buf_flags, u32 len) |
| Stream compaction algorithm. | |
| template<class Tret , class T > | |
| sham::DeviceBuffer< Tret > | shamalgs::numeric::device_histogram (const sham::DeviceScheduler_ptr &sched, const sham::DeviceBuffer< T > &bin_edges, u64 nbins, const sham::DeviceBuffer< T > &values, u32 len) |
| Compute the histogram of values between bin_edges. | |
| template sham::DeviceBuffer< u64 > | shamalgs::numeric::device_histogram< u64, f64 > (const sham::DeviceScheduler_ptr &sched, const sham::DeviceBuffer< f64 > &bin_edges, u64 nbins, const sham::DeviceBuffer< f64 > &values, u32 len) |
| template sham::DeviceBuffer< u64 > | shamalgs::numeric::device_histogram< u64, f32 > (const sham::DeviceScheduler_ptr &sched, const sham::DeviceBuffer< f32 > &bin_edges, u64 nbins, const sham::DeviceBuffer< f32 > &values, u32 len) |
| template sham::DeviceBuffer< u32 > | shamalgs::numeric::device_histogram< u32, f64 > (const sham::DeviceScheduler_ptr &sched, const sham::DeviceBuffer< f64 > &bin_edges, u64 nbins, const sham::DeviceBuffer< f64 > &values, u32 len) |
| template sham::DeviceBuffer< u32 > | shamalgs::numeric::device_histogram< u32, f32 > (const sham::DeviceScheduler_ptr &sched, const sham::DeviceBuffer< f32 > &bin_edges, u64 nbins, const sham::DeviceBuffer< f32 > &values, u32 len) |
| template<class T > | |
| BinnedCompute< T > | shamalgs::numeric::binned_init_compute (const sham::DeviceScheduler_ptr &sched, const sham::DeviceBuffer< T > &bin_edges, u64 nbins, const sham::DeviceBuffer< T > &values, const sham::DeviceBuffer< T > &keys, u32 len) |
| Prepare binned data for per-bin computation. | |
| template BinnedCompute< f64 > | shamalgs::numeric::binned_init_compute (const sham::DeviceScheduler_ptr &sched, const sham::DeviceBuffer< f64 > &bin_edges, u64 nbins, const sham::DeviceBuffer< f64 > &values, const sham::DeviceBuffer< f64 > &keys, u32 len) |
| template BinnedCompute< f32 > | shamalgs::numeric::binned_init_compute (const sham::DeviceScheduler_ptr &sched, const sham::DeviceBuffer< f32 > &bin_edges, u64 nbins, const sham::DeviceBuffer< f32 > &values, const sham::DeviceBuffer< f32 > &keys, u32 len) |
Definition in file numeric.cpp.