Template Numerical Library version\ main:0c33d623
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
TNL::Algorithms::Segments::ChunkedEllpackBase< Device, Index, Organization > Class Template Reference
Inheritance diagram for TNL::Algorithms::Segments::ChunkedEllpackBase< Device, Index, Organization >:
Inheritance graph
[legend]
Collaboration diagram for TNL::Algorithms::Segments::ChunkedEllpackBase< Device, Index, Organization >:
Collaboration graph
[legend]

Public Types

using ConstOffsetsView = typename OffsetsView::ConstViewType
 
using ConstSliceInfoContainerView = typename SliceInfoContainerView::ConstViewType
 
using DeviceType = Device
 
using IndexType = std::remove_const_t< Index >
 
using OffsetsView = Containers::VectorView< Index, DeviceType, IndexType >
 
using SegmentViewType = ChunkedEllpackSegmentView< IndexType, Organization >
 
using SliceInfoContainerView = Containers::ArrayView< typename TNL::copy_const< SliceInfoType >::template from< Index >::type, DeviceType, IndexType >
 
using SliceInfoType = detail::ChunkedEllpackSliceInfo< IndexType >
 
template<typename Device_ , typename Index_ >
using ViewTemplate = ChunkedEllpackBase< Device_, Index_, Organization >
 

Public Member Functions

__cuda_callable__ ChunkedEllpackBase (ChunkedEllpackBase &&) noexcept=default
 
__cuda_callable__ ChunkedEllpackBase (const ChunkedEllpackBase &)=default
 
__cuda_callable__ ChunkedEllpackBase (IndexType size, IndexType storageSize, IndexType numberOfSlices, IndexType chunksInSlice, IndexType desiredChunkSize, OffsetsView rowToChunkMapping, OffsetsView rowToSliceMapping, OffsetsView chunksToSegmentsMapping, OffsetsView rowPointers, SliceInfoContainerView slices)
 
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 getChunksInSlice () const
 
__cuda_callable__ OffsetsView getChunksToSegmentsMappingView ()
 
__cuda_callable__ ConstOffsetsView getChunksToSegmentsMappingView () const
 
__cuda_callable__ IndexType getDesiredChunkSize () const
 
__cuda_callable__ IndexType getGlobalIndex (IndexType segmentIdx, IndexType localIdx) const
 
__cuda_callable__ IndexType getNumberOfSlices () const
 
__cuda_callable__ OffsetsView getRowPointersView ()
 
__cuda_callable__ ConstOffsetsView getRowPointersView () const
 
__cuda_callable__ OffsetsView getRowToChunkMappingView ()
 
__cuda_callable__ ConstOffsetsView getRowToChunkMappingView () const
 
__cuda_callable__ OffsetsView getRowToSliceMappingView ()
 
__cuda_callable__ ConstOffsetsView getRowToSliceMappingView () const
 
__cuda_callable__ IndexType getSegmentsCount () const
 
__cuda_callable__ IndexType getSegmentSize (IndexType segmentIdx) const
 
__cuda_callable__ SegmentViewType getSegmentView (IndexType segmentIdx) const
 
__cuda_callable__ IndexType getSize () const
 
__cuda_callable__ SliceInfoContainerView getSlicesView ()
 
__cuda_callable__ ConstSliceInfoContainerView getSlicesView () const
 
__cuda_callable__ IndexType getStorageSize () const
 
ChunkedEllpackBaseoperator= (ChunkedEllpackBase &&)=delete
 
ChunkedEllpackBaseoperator= (const ChunkedEllpackBase &)=delete
 
void printStructure (std::ostream &str) const
 

Static Public Member Functions

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

Protected Member Functions

__cuda_callable__ void bind (IndexType size, IndexType storageSize, IndexType numberOfSlices, IndexType chunksInSlice, IndexType desiredChunkSize, OffsetsView rowToChunkMapping, OffsetsView rowToSliceMapping, OffsetsView chunksToSegmentsMapping, OffsetsView rowPointers, SliceInfoContainerView slices)
 Re-initializes the internal attributes of the base class.
 

Protected Attributes

IndexType chunksInSlice = 256
 
OffsetsView chunksToSegmentsMapping
 
IndexType desiredChunkSize = 16
 
IndexType numberOfSlices = 0
 
OffsetsView rowPointers
 Keeps index of the first segment index.
 
OffsetsView rowToChunkMapping
 For each row, this keeps index of the first chunk within a slice.
 
OffsetsView rowToSliceMapping
 For each segment, this keeps index of the slice which contains the segment.
 
IndexType size = 0
 
SliceInfoContainerView slices
 
IndexType storageSize = 0
 

Member Function Documentation

◆ bind()

template<typename Device , typename Index , ElementsOrganization Organization>
__cuda_callable__ void TNL::Algorithms::Segments::ChunkedEllpackBase< Device, Index, Organization >::bind ( IndexType  size,
IndexType  storageSize,
IndexType  numberOfSlices,
IndexType  chunksInSlice,
IndexType  desiredChunkSize,
OffsetsView  rowToChunkMapping,
OffsetsView  rowToSliceMapping,
OffsetsView  chunksToSegmentsMapping,
OffsetsView  rowPointers,
SliceInfoContainerView  slices 
)
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: