Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
shamtree::KarrasRadixTree Class Reference

A data structure representing a Karras Radix Tree. More...

#include <shamtree/include/shamtree/KarrasRadixTree.hpp>

+ Collaboration diagram for shamtree::KarrasRadixTree:

Public Member Functions

u32 get_internal_cell_count () const
 Get internal cell count.
 
u32 get_leaf_count () const
 Get leaf count.
 
u32 get_total_cell_count () const
 
 KarrasRadixTree (sham::DeviceBuffer< u32 > &&buf_lchild_id, sham::DeviceBuffer< u32 > &&buf_rchild_id, sham::DeviceBuffer< u8 > &&buf_lchild_flag, sham::DeviceBuffer< u8 > &&buf_rchild_flag, sham::DeviceBuffer< u32 > &&buf_endrange, u32 tree_depth)
 CTOR.
 
KarrasTreeTraverser get_structure_traverser () const
 
KarrasTreeTraverserHost get_structure_traverser_host () const
 
bool is_root_leaf () const
 is the root a leaf ?
 

Static Public Member Functions

static KarrasRadixTree make_empty (sham::DeviceScheduler_ptr dev_sched)
 

Public Attributes

sham::DeviceBuffer< u32buf_lchild_id
 left child id (size = internal_count)
 
sham::DeviceBuffer< u32buf_rchild_id
 right child id (size = internal_count)
 
sham::DeviceBuffer< u8buf_lchild_flag
 left child flag (size = internal_count)
 
sham::DeviceBuffer< u8buf_rchild_flag
 right child flag (size = internal_count)
 
sham::DeviceBuffer< u32buf_endrange
 endrange (size = internal_count)
 
u32 tree_depth
 

Detailed Description

A data structure representing a Karras Radix Tree.

This class encapsulates the structure of a Karras Radix Tree, which is used for efficiently handling hierarchical data based on Morton codes. It manages buffers for left and right child identifiers and flags, as well as end ranges.

Definition at line 37 of file KarrasRadixTree.hpp.

Constructor & Destructor Documentation

◆ KarrasRadixTree()

shamtree::KarrasRadixTree::KarrasRadixTree ( sham::DeviceBuffer< u32 > &&  buf_lchild_id,
sham::DeviceBuffer< u32 > &&  buf_rchild_id,
sham::DeviceBuffer< u8 > &&  buf_lchild_flag,
sham::DeviceBuffer< u8 > &&  buf_rchild_flag,
sham::DeviceBuffer< u32 > &&  buf_endrange,
u32  tree_depth 
)
inline

CTOR.

Definition at line 57 of file KarrasRadixTree.hpp.

Member Function Documentation

◆ get_internal_cell_count()

u32 shamtree::KarrasRadixTree::get_internal_cell_count ( ) const
inline

Get internal cell count.

Definition at line 41 of file KarrasRadixTree.hpp.

+ Here is the call graph for this function:

◆ get_leaf_count()

u32 shamtree::KarrasRadixTree::get_leaf_count ( ) const
inline

Get leaf count.

Definition at line 44 of file KarrasRadixTree.hpp.

+ Here is the call graph for this function:

◆ get_structure_traverser()

KarrasTreeTraverser shamtree::KarrasRadixTree::get_structure_traverser ( ) const
inline

Definition at line 68 of file KarrasRadixTree.hpp.

◆ get_structure_traverser_host()

KarrasTreeTraverserHost shamtree::KarrasRadixTree::get_structure_traverser_host ( ) const
inline

Definition at line 77 of file KarrasRadixTree.hpp.

◆ get_total_cell_count()

u32 shamtree::KarrasRadixTree::get_total_cell_count ( ) const
inline

Definition at line 46 of file KarrasRadixTree.hpp.

◆ is_root_leaf()

bool shamtree::KarrasRadixTree::is_root_leaf ( ) const
inline

is the root a leaf ?

Definition at line 97 of file KarrasRadixTree.hpp.

+ Here is the call graph for this function:

◆ make_empty()

static KarrasRadixTree shamtree::KarrasRadixTree::make_empty ( sham::DeviceScheduler_ptr  dev_sched)
inlinestatic

Definition at line 86 of file KarrasRadixTree.hpp.

Member Data Documentation

◆ buf_endrange

sham::DeviceBuffer<u32> shamtree::KarrasRadixTree::buf_endrange

endrange (size = internal_count)

Definition at line 52 of file KarrasRadixTree.hpp.

◆ buf_lchild_flag

sham::DeviceBuffer<u8> shamtree::KarrasRadixTree::buf_lchild_flag

left child flag (size = internal_count)

Definition at line 50 of file KarrasRadixTree.hpp.

◆ buf_lchild_id

sham::DeviceBuffer<u32> shamtree::KarrasRadixTree::buf_lchild_id

left child id (size = internal_count)

Definition at line 48 of file KarrasRadixTree.hpp.

◆ buf_rchild_flag

sham::DeviceBuffer<u8> shamtree::KarrasRadixTree::buf_rchild_flag

right child flag (size = internal_count)

Definition at line 51 of file KarrasRadixTree.hpp.

◆ buf_rchild_id

sham::DeviceBuffer<u32> shamtree::KarrasRadixTree::buf_rchild_id

right child id (size = internal_count)

Definition at line 49 of file KarrasRadixTree.hpp.

◆ tree_depth

u32 shamtree::KarrasRadixTree::tree_depth

Definition at line 54 of file KarrasRadixTree.hpp.


The documentation for this class was generated from the following file: