Template Numerical Library version\ main:bb09b17
Loading...
Searching...
No Matches
TNL::Algorithms::Segments::BiEllpackBase< Device, Index, Organization, WarpSize > Class Template Reference
Collaboration diagram for TNL::Algorithms::Segments::BiEllpackBase< Device, Index, Organization, WarpSize >:

Public Types

using ConstOffsetsView = typename OffsetsView::ConstViewType
 
using DeviceType = Device
 
using IndexType = std::remove_const_t< Index >
 
using OffsetsView = Containers::VectorView< Index, DeviceType, IndexType >
 
using SegmentViewType = BiEllpackSegmentView< IndexType, Organization, WarpSize >
 

Public Member Functions

__cuda_callable__ BiEllpackBase (BiEllpackBase &&) noexcept=default
 
__cuda_callable__ BiEllpackBase (const BiEllpackBase &)=default
 
__cuda_callable__ BiEllpackBase (IndexType size, IndexType storageSize, OffsetsView segmentsPermutation, OffsetsView groupPointers)
 
template<typename Function >
void forAllElements (Function &&function) const
 
template<typename Function >
void forAllSegments (Function &&function) const
 
template<typename Function >
void forElements (IndexType begin, IndexType end, Function &&function) const
 
template<typename Function >
void forSegments (IndexType begin, IndexType end, Function &&function) const
 
__cuda_callable__ IndexType getGlobalIndex (Index segmentIdx, Index localIdx) const
 
__cuda_callable__ OffsetsView getGroupPointersView ()
 
__cuda_callable__ ConstOffsetsView getGroupPointersView () const
 
__cuda_callable__ IndexType getSegmentsCount () const
 
__cuda_callable__ IndexType getSegmentSize (IndexType segmentIdx) const
 
__cuda_callable__ OffsetsView getSegmentsPermutationView ()
 
__cuda_callable__ ConstOffsetsView getSegmentsPermutationView () const
 
__cuda_callable__ SegmentViewType getSegmentView (IndexType segmentIdx) const
 
__cuda_callable__ IndexType getSize () const
 
__cuda_callable__ IndexType getStorageSize () const
 
__cuda_callable__ IndexType getVirtualSegments () const
 
BiEllpackBaseoperator= (BiEllpackBase &&)=delete
 
BiEllpackBaseoperator= (const BiEllpackBase &)=delete
 
void printStructure (std::ostream &str) const
 

Static Public Member Functions

static constexpr int getLogWarpSize ()
 
static constexpr ElementsOrganization getOrganization ()
 
static std::string getSegmentsType ()
 
static std::string getSerializationType ()
 
static constexpr int getWarpSize ()
 
static constexpr bool havePadding ()
 

Protected Member Functions

__cuda_callable__ void bind (IndexType size, IndexType storageSize, OffsetsView segmentsPermutation, OffsetsView groupPointers)
 Re-initializes the internal attributes of the base class.
 
__cuda_callable__ IndexType getVirtualSegments (IndexType segmentsCount) const
 

Protected Attributes

OffsetsView groupPointers
 
OffsetsView segmentsPermutation
 
IndexType size = 0
 
IndexType storageSize = 0
 

Member Function Documentation

◆ bind()

template<typename Device , typename Index , ElementsOrganization Organization, int WarpSize>
__cuda_callable__ void TNL::Algorithms::Segments::BiEllpackBase< Device, Index, Organization, WarpSize >::bind ( IndexType size,
IndexType storageSize,
OffsetsView segmentsPermutation,
OffsetsView groupPointers )
protected

Re-initializes the internal attributes of the base class.

Note that this function is protected to ensure that the user cannot modify the base class of segments. For the same reason, in future code development we also need to make sure that all non-const functions in the base class return by value and not by reference.


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