Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
Namespaces | Functions
shamalgs::algorithm Namespace Reference

namespace to store algorithms implemented by shamalgs More...

Namespaces

namespace  details
 namespace to store algorithms implemented by shamalgs
 

Functions

template<class Tkey , class Tval >
void sort_by_key (sycl::queue &q, sycl::buffer< Tkey > &buf_key, sycl::buffer< Tval > &buf_values, u32 len)
 Sort the buffer according to the key order.
 
template<class Tkey , class Tval >
void sort_by_key (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< Tkey > &buf_key, sham::DeviceBuffer< Tval > &buf_values, u32 len)
 
template<class Fct >
sycl::buffer< typename std::invoke_result_t< Fct, u32 > > gen_buffer_device (sycl::queue &q, u32 len, Fct &&func)
 generate a buffer from a lambda expression based on the indexes
 
template<class T >
sycl::buffer< T > index_remap (sycl::queue &q, sycl::buffer< T > &source_buf, sycl::buffer< u32 > &index_map, u32 len)
 remap a buffer according to a given index map result[i] = result[index_map[i]]
 
template<class T >
sycl::buffer< T > index_remap_nvar (sycl::queue &q, sycl::buffer< T > &source_buf, sycl::buffer< u32 > &index_map, u32 len, u32 nvar)
 remap a buffer (with multiple variable per index) according to a given index map result[i] = result[index_map[i]]
 
template<class T >
void index_remap (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< T > &source, sham::DeviceBuffer< T > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len)
 
template<class T >
void index_remap_nvar (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< T > &source, sham::DeviceBuffer< T > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len, u32 nvar)
 
template<class T >
sham::DeviceBuffer< T > index_remap (const sham::DeviceScheduler_ptr &sched_ptr, sham::DeviceBuffer< T > &source, sham::DeviceBuffer< u32 > &index_map, u32 len)
 
template<class T >
sham::DeviceBuffer< T > index_remap_nvar (const sham::DeviceScheduler_ptr &sched_ptr, sham::DeviceBuffer< T > &source, sham::DeviceBuffer< u32 > &index_map, u32 len, u32 nvar)
 
sycl::buffer< u32gen_buffer_index (sycl::queue &q, u32 len)
 generate a buffer such that for i in [0,len[, buf[i] = i
 
template sycl::buffer< f32index_remap (sycl::queue &q, sycl::buffer< f32 > &buf, sycl::buffer< u32 > &index_map, u32 len)
 
template sycl::buffer< f32index_remap_nvar (sycl::queue &q, sycl::buffer< f32 > &buf, sycl::buffer< u32 > &index_map, u32 len, u32 nvar)
 
template void index_remap (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f32 > &source, sham::DeviceBuffer< f32 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len)
 
template void index_remap_nvar (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f32 > &source, sham::DeviceBuffer< f32 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len, u32 nvar)
 
template sycl::buffer< f32_2 > index_remap (sycl::queue &q, sycl::buffer< f32_2 > &buf, sycl::buffer< u32 > &index_map, u32 len)
 
template sycl::buffer< f32_2 > index_remap_nvar (sycl::queue &q, sycl::buffer< f32_2 > &buf, sycl::buffer< u32 > &index_map, u32 len, u32 nvar)
 
template void index_remap (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f32_2 > &source, sham::DeviceBuffer< f32_2 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len)
 
template void index_remap_nvar (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f32_2 > &source, sham::DeviceBuffer< f32_2 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len, u32 nvar)
 
template sycl::buffer< f32_3 > index_remap (sycl::queue &q, sycl::buffer< f32_3 > &buf, sycl::buffer< u32 > &index_map, u32 len)
 
template sycl::buffer< f32_3 > index_remap_nvar (sycl::queue &q, sycl::buffer< f32_3 > &buf, sycl::buffer< u32 > &index_map, u32 len, u32 nvar)
 
template void index_remap (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f32_3 > &source, sham::DeviceBuffer< f32_3 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len)
 
template void index_remap_nvar (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f32_3 > &source, sham::DeviceBuffer< f32_3 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len, u32 nvar)
 
template sycl::buffer< f32_4 > index_remap (sycl::queue &q, sycl::buffer< f32_4 > &buf, sycl::buffer< u32 > &index_map, u32 len)
 
template sycl::buffer< f32_4 > index_remap_nvar (sycl::queue &q, sycl::buffer< f32_4 > &buf, sycl::buffer< u32 > &index_map, u32 len, u32 nvar)
 
template void index_remap (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f32_4 > &source, sham::DeviceBuffer< f32_4 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len)
 
template void index_remap_nvar (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f32_4 > &source, sham::DeviceBuffer< f32_4 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len, u32 nvar)
 
template sycl::buffer< f32_8 > index_remap (sycl::queue &q, sycl::buffer< f32_8 > &buf, sycl::buffer< u32 > &index_map, u32 len)
 
template sycl::buffer< f32_8 > index_remap_nvar (sycl::queue &q, sycl::buffer< f32_8 > &buf, sycl::buffer< u32 > &index_map, u32 len, u32 nvar)
 
template void index_remap (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f32_8 > &source, sham::DeviceBuffer< f32_8 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len)
 
template void index_remap_nvar (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f32_8 > &source, sham::DeviceBuffer< f32_8 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len, u32 nvar)
 
template sycl::buffer< f32_16 > index_remap (sycl::queue &q, sycl::buffer< f32_16 > &buf, sycl::buffer< u32 > &index_map, u32 len)
 
template sycl::buffer< f32_16 > index_remap_nvar (sycl::queue &q, sycl::buffer< f32_16 > &buf, sycl::buffer< u32 > &index_map, u32 len, u32 nvar)
 
template void index_remap (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f32_16 > &source, sham::DeviceBuffer< f32_16 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len)
 
template void index_remap_nvar (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f32_16 > &source, sham::DeviceBuffer< f32_16 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len, u32 nvar)
 
template sycl::buffer< f64index_remap (sycl::queue &q, sycl::buffer< f64 > &buf, sycl::buffer< u32 > &index_map, u32 len)
 
template sycl::buffer< f64index_remap_nvar (sycl::queue &q, sycl::buffer< f64 > &buf, sycl::buffer< u32 > &index_map, u32 len, u32 nvar)
 
template void index_remap (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f64 > &source, sham::DeviceBuffer< f64 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len)
 
template void index_remap_nvar (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f64 > &source, sham::DeviceBuffer< f64 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len, u32 nvar)
 
template sycl::buffer< f64_2 > index_remap (sycl::queue &q, sycl::buffer< f64_2 > &buf, sycl::buffer< u32 > &index_map, u32 len)
 
template sycl::buffer< f64_2 > index_remap_nvar (sycl::queue &q, sycl::buffer< f64_2 > &buf, sycl::buffer< u32 > &index_map, u32 len, u32 nvar)
 
template void index_remap (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f64_2 > &source, sham::DeviceBuffer< f64_2 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len)
 
template void index_remap_nvar (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f64_2 > &source, sham::DeviceBuffer< f64_2 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len, u32 nvar)
 
template sycl::buffer< f64_3 > index_remap (sycl::queue &q, sycl::buffer< f64_3 > &buf, sycl::buffer< u32 > &index_map, u32 len)
 
template sycl::buffer< f64_3 > index_remap_nvar (sycl::queue &q, sycl::buffer< f64_3 > &buf, sycl::buffer< u32 > &index_map, u32 len, u32 nvar)
 
template void index_remap (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f64_3 > &source, sham::DeviceBuffer< f64_3 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len)
 
template void index_remap_nvar (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f64_3 > &source, sham::DeviceBuffer< f64_3 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len, u32 nvar)
 
template sycl::buffer< f64_4 > index_remap (sycl::queue &q, sycl::buffer< f64_4 > &buf, sycl::buffer< u32 > &index_map, u32 len)
 
template sycl::buffer< f64_4 > index_remap_nvar (sycl::queue &q, sycl::buffer< f64_4 > &buf, sycl::buffer< u32 > &index_map, u32 len, u32 nvar)
 
template void index_remap (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f64_4 > &source, sham::DeviceBuffer< f64_4 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len)
 
template void index_remap_nvar (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f64_4 > &source, sham::DeviceBuffer< f64_4 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len, u32 nvar)
 
template sycl::buffer< f64_8 > index_remap (sycl::queue &q, sycl::buffer< f64_8 > &buf, sycl::buffer< u32 > &index_map, u32 len)
 
template sycl::buffer< f64_8 > index_remap_nvar (sycl::queue &q, sycl::buffer< f64_8 > &buf, sycl::buffer< u32 > &index_map, u32 len, u32 nvar)
 
template void index_remap (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f64_8 > &source, sham::DeviceBuffer< f64_8 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len)
 
template void index_remap_nvar (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f64_8 > &source, sham::DeviceBuffer< f64_8 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len, u32 nvar)
 
template sycl::buffer< f64_16 > index_remap (sycl::queue &q, sycl::buffer< f64_16 > &buf, sycl::buffer< u32 > &index_map, u32 len)
 
template sycl::buffer< f64_16 > index_remap_nvar (sycl::queue &q, sycl::buffer< f64_16 > &buf, sycl::buffer< u32 > &index_map, u32 len, u32 nvar)
 
template void index_remap (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f64_16 > &source, sham::DeviceBuffer< f64_16 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len)
 
template void index_remap_nvar (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f64_16 > &source, sham::DeviceBuffer< f64_16 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len, u32 nvar)
 
template sycl::buffer< u32index_remap (sycl::queue &q, sycl::buffer< u32 > &buf, sycl::buffer< u32 > &index_map, u32 len)
 
template sycl::buffer< u32index_remap_nvar (sycl::queue &q, sycl::buffer< u32 > &buf, sycl::buffer< u32 > &index_map, u32 len, u32 nvar)
 
template void index_remap (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< u32 > &source, sham::DeviceBuffer< u32 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len)
 
template void index_remap_nvar (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< u32 > &source, sham::DeviceBuffer< u32 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len, u32 nvar)
 
template sycl::buffer< u64index_remap (sycl::queue &q, sycl::buffer< u64 > &buf, sycl::buffer< u32 > &index_map, u32 len)
 
template sycl::buffer< u64index_remap_nvar (sycl::queue &q, sycl::buffer< u64 > &buf, sycl::buffer< u32 > &index_map, u32 len, u32 nvar)
 
template void index_remap (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< u64 > &source, sham::DeviceBuffer< u64 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len)
 
template void index_remap_nvar (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< u64 > &source, sham::DeviceBuffer< u64 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len, u32 nvar)
 
template sycl::buffer< u32_3 > index_remap (sycl::queue &q, sycl::buffer< u32_3 > &buf, sycl::buffer< u32 > &index_map, u32 len)
 
template sycl::buffer< u32_3 > index_remap_nvar (sycl::queue &q, sycl::buffer< u32_3 > &buf, sycl::buffer< u32 > &index_map, u32 len, u32 nvar)
 
template void index_remap (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< u32_3 > &source, sham::DeviceBuffer< u32_3 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len)
 
template void index_remap_nvar (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< u32_3 > &source, sham::DeviceBuffer< u32_3 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len, u32 nvar)
 
template sycl::buffer< u64_3 > index_remap (sycl::queue &q, sycl::buffer< u64_3 > &buf, sycl::buffer< u32 > &index_map, u32 len)
 
template sycl::buffer< u64_3 > index_remap_nvar (sycl::queue &q, sycl::buffer< u64_3 > &buf, sycl::buffer< u32 > &index_map, u32 len, u32 nvar)
 
template void index_remap (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< u64_3 > &source, sham::DeviceBuffer< u64_3 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len)
 
template void index_remap_nvar (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< u64_3 > &source, sham::DeviceBuffer< u64_3 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len, u32 nvar)
 
template sycl::buffer< i64_3 > index_remap (sycl::queue &q, sycl::buffer< i64_3 > &buf, sycl::buffer< u32 > &index_map, u32 len)
 
template sycl::buffer< i64_3 > index_remap_nvar (sycl::queue &q, sycl::buffer< i64_3 > &buf, sycl::buffer< u32 > &index_map, u32 len, u32 nvar)
 
template void index_remap (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< i64_3 > &source, sham::DeviceBuffer< i64_3 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len)
 
template void index_remap_nvar (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< i64_3 > &source, sham::DeviceBuffer< i64_3 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len, u32 nvar)
 
template sycl::buffer< i64index_remap (sycl::queue &q, sycl::buffer< i64 > &buf, sycl::buffer< u32 > &index_map, u32 len)
 
template sycl::buffer< i64index_remap_nvar (sycl::queue &q, sycl::buffer< i64 > &buf, sycl::buffer< u32 > &index_map, u32 len, u32 nvar)
 
template void index_remap (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< i64 > &source, sham::DeviceBuffer< i64 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len)
 
template void index_remap_nvar (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< i64 > &source, sham::DeviceBuffer< i64 > &dest, sham::DeviceBuffer< u32 > &index_map, u32 len, u32 nvar)
 

Detailed Description

namespace to store algorithms implemented by shamalgs

Function Documentation

◆ gen_buffer_device()

template<class Fct >
sycl::buffer< typename std::invoke_result_t< Fct, u32 > > shamalgs::algorithm::gen_buffer_device ( sycl::queue &  q,
u32  len,
Fct &&  func 
)
inline

generate a buffer from a lambda expression based on the indexes

Template Parameters
Fct
Parameters
q
len
func
Returns
sycl::buffer<typename std::invoke_result_t<Fct,u32>>

Definition at line 65 of file algorithm.hpp.

◆ gen_buffer_index()

sycl::buffer< u32 > shamalgs::algorithm::gen_buffer_index ( sycl::queue &  q,
u32  len 
)

generate a buffer such that for i in [0,len[, buf[i] = i

Parameters
qthe queue to run on
lenlength of the buffer to generate
Returns
sycl::buffer<u32> the returned buffer

Definition at line 25 of file algorithm.cpp.

+ Here is the call graph for this function:

◆ index_remap() [1/3]

template<class T >
void shamalgs::algorithm::index_remap ( const sham::DeviceScheduler_ptr &  sched,
sham::DeviceBuffer< T > &  source,
sham::DeviceBuffer< T > &  dest,
sham::DeviceBuffer< u32 > &  index_map,
u32  len 
)

Definition at line 77 of file algorithm.cpp.

◆ index_remap() [2/3]

template<class T >
sham::DeviceBuffer< T > shamalgs::algorithm::index_remap ( const sham::DeviceScheduler_ptr &  sched_ptr,
sham::DeviceBuffer< T > &  source,
sham::DeviceBuffer< u32 > &  index_map,
u32  len 
)

Definition at line 138 of file algorithm.hpp.

◆ index_remap() [3/3]

template<class T >
sycl::buffer< T > shamalgs::algorithm::index_remap ( sycl::queue &  q,
sycl::buffer< T > &  source_buf,
sycl::buffer< u32 > &  index_map,
u32  len 
)

remap a buffer according to a given index map result[i] = result[index_map[i]]

This function can be used to apply a sort to another object

Template Parameters
Ttype of the buffer
Parameters
qthe sycl queue
bufthe buffer to apply the remapping on
index_mapthe index map
lenlength of the index map

Definition at line 32 of file algorithm.cpp.

◆ index_remap_nvar() [1/3]

template<class T >
void shamalgs::algorithm::index_remap_nvar ( const sham::DeviceScheduler_ptr &  sched,
sham::DeviceBuffer< T > &  source,
sham::DeviceBuffer< T > &  dest,
sham::DeviceBuffer< u32 > &  index_map,
u32  len,
u32  nvar 
)

Definition at line 104 of file algorithm.cpp.

◆ index_remap_nvar() [2/3]

template<class T >
sham::DeviceBuffer< T > shamalgs::algorithm::index_remap_nvar ( const sham::DeviceScheduler_ptr &  sched_ptr,
sham::DeviceBuffer< T > &  source,
sham::DeviceBuffer< u32 > &  index_map,
u32  len,
u32  nvar 
)

Definition at line 150 of file algorithm.hpp.

◆ index_remap_nvar() [3/3]

template<class T >
sycl::buffer< T > shamalgs::algorithm::index_remap_nvar ( sycl::queue &  q,
sycl::buffer< T > &  source_buf,
sycl::buffer< u32 > &  index_map,
u32  len,
u32  nvar 
)

remap a buffer (with multiple variable per index) according to a given index map result[i] = result[index_map[i]]

This function can be used to apply a sort to another object

Template Parameters
Ttype of the buffer
Parameters
qthe sycl queue
bufthe buffer to apply the remapping on
index_mapthe index map
lenlength of the index map
nvarthe number of variable per index

Definition at line 51 of file algorithm.cpp.

◆ sort_by_key() [1/2]

template<class Tkey , class Tval >
void shamalgs::algorithm::sort_by_key ( const sham::DeviceScheduler_ptr &  sched,
sham::DeviceBuffer< Tkey > &  buf_key,
sham::DeviceBuffer< Tval > &  buf_values,
u32  len 
)

Definition at line 47 of file algorithm.hpp.

◆ sort_by_key() [2/2]

template<class Tkey , class Tval >
void shamalgs::algorithm::sort_by_key ( sycl::queue &  q,
sycl::buffer< Tkey > &  buf_key,
sycl::buffer< Tval > &  buf_values,
u32  len 
)

Sort the buffer according to the key order.

Template Parameters
T
Parameters
q
buf_key
buf_values
len

Definition at line 41 of file algorithm.hpp.

+ Here is the call graph for this function: