Template Numerical Library version\ main:4e58ea6
Loading...
Searching...
No Matches
TNL::Algorithms::Segments::ChunkedEllpack< Device, Index, IndexAllocator, Organization > Class Template Reference
Inheritance diagram for TNL::Algorithms::Segments::ChunkedEllpack< Device, Index, IndexAllocator, Organization >:
Collaboration diagram for TNL::Algorithms::Segments::ChunkedEllpack< Device, Index, IndexAllocator, Organization >:

Public Types

using ConstViewType = typename ViewType::ConstViewType
 
using OffsetsContainer = Containers::Vector< Index, Device, typename Base::IndexType, IndexAllocator >
 
using SliceInfoAllocator = typename Allocators::Default< Device >::template Allocator< typename Base::SliceInfoType >
 
using SliceInfoContainer
 
template<typename Device_ , typename Index_ >
using ViewTemplate = ChunkedEllpackView< Device_, Index_, Organization >
 
using ViewType = ChunkedEllpackView< Device, Index, Organization >
 
- Public Types inherited from TNL::Algorithms::Segments::ChunkedEllpackBase< Device, Index, Algorithms::Segments::DefaultElementsOrganization< Device >::getOrganization() >
using ConstOffsetsView
 
using ConstSliceInfoContainerView
 
using DeviceType
 
using IndexType
 
using OffsetsView
 
using SegmentViewType
 
using SliceInfoContainerView
 
using SliceInfoType
 
using ViewTemplate
 

Public Member Functions

 ChunkedEllpack (ChunkedEllpack &&segments) noexcept=default
 
 ChunkedEllpack (const ChunkedEllpack &segments)
 
template<typename SizesContainer >
 ChunkedEllpack (const SizesContainer &segmentsSizes)
 
template<typename ListIndex >
 ChunkedEllpack (const std::initializer_list< ListIndex > &segmentsSizes)
 
ConstViewType getConstView () const
 
ViewType getView ()
 
void load (File &file)
 
ChunkedEllpackoperator= (ChunkedEllpack &&) noexcept(false)
 Move-assignment operator.
 
ChunkedEllpackoperator= (const ChunkedEllpack &segments)
 Copy-assignment operator (makes a deep copy).
 
template<typename Device_ , typename Index_ , typename IndexAllocator_ , ElementsOrganization Organization_>
ChunkedEllpackoperator= (const ChunkedEllpack< Device_, Index_, IndexAllocator_, Organization_ > &segments)
 
template<typename Device_ , typename Index_ , typename IndexAllocator_ , ElementsOrganization Organization_>
ChunkedEllpack< Device, Index, IndexAllocator, Organization > & operator= (const ChunkedEllpack< Device_, Index_, IndexAllocator_, Organization_ > &segments)
 
void reset ()
 
template<typename SegmentsSizes >
void resolveSliceSizes (SegmentsSizes &segmentsSizes)
 
void save (File &file) const
 
template<typename SizesContainer >
void setSegmentsSizes (const SizesContainer &segmentsSizes)
 
- Public Member Functions inherited from TNL::Algorithms::Segments::ChunkedEllpackBase< Device, Index, Algorithms::Segments::DefaultElementsOrganization< Device >::getOrganization() >
__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 segmentToChunkMapping, OffsetsView segmentToSliceMapping, OffsetsView chunksToSegmentsMapping, OffsetsView segmentPointers, SliceInfoContainerView slices)
 
void forAllElements (Function &&function) const
 
void forAllSegments (Function &&function) const
 
void forElements (IndexType begin, IndexType end, Function &&function) const
 
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 getSegmentPointersView ()
 
__cuda_callable__ ConstOffsetsView getSegmentPointersView () const
 
__cuda_callable__ IndexType getSegmentsCount () const
 
__cuda_callable__ IndexType getSegmentSize (IndexType segmentIdx) const
 
__cuda_callable__ OffsetsView getSegmentToChunkMappingView ()
 
__cuda_callable__ ConstOffsetsView getSegmentToChunkMappingView () const
 
__cuda_callable__ OffsetsView getSegmentToSliceMappingView ()
 
__cuda_callable__ ConstOffsetsView getSegmentToSliceMappingView () 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
 

Protected Member Functions

template<typename SizesContainer >
void resolveSliceSizes (SizesContainer &segmentsSizes)
 
template<typename SizesContainer >
bool setSlice (SizesContainer &segmentsSizes, Index sliceIndex, Index &elementsToAllocation)
 
- Protected Member Functions inherited from TNL::Algorithms::Segments::ChunkedEllpackBase< Device, Index, Algorithms::Segments::DefaultElementsOrganization< Device >::getOrganization() >
__cuda_callable__ void bind (IndexType size, IndexType storageSize, IndexType numberOfSlices, IndexType chunksInSlice, IndexType desiredChunkSize, OffsetsView segmentToChunkMapping, OffsetsView segmentToSliceMapping, OffsetsView chunksToSegmentsMapping, OffsetsView segmentPointers, SliceInfoContainerView slices)
 Re-initializes the internal attributes of the base class.
 

Protected Attributes

OffsetsContainer chunksToSegmentsMapping
 
OffsetsContainer segmentPointers
 Keeps index of the first segment index.
 
OffsetsContainer segmentToChunkMapping
 For each segment, this keeps index of the first chunk within a slice.
 
OffsetsContainer segmentToSliceMapping
 For each segment, this keeps index of the slice which contains the segment.
 
SliceInfoContainer slices
 
- Protected Attributes inherited from TNL::Algorithms::Segments::ChunkedEllpackBase< Device, Index, Algorithms::Segments::DefaultElementsOrganization< Device >::getOrganization() >
IndexType chunksInSlice
 
OffsetsView chunksToSegmentsMapping
 
IndexType desiredChunkSize
 
IndexType numberOfSlices
 
OffsetsView segmentPointers
 Keeps index of the first segment index.
 
OffsetsView segmentToChunkMapping
 For each segment, this keeps index of the first chunk within a slice.
 
OffsetsView segmentToSliceMapping
 For each segment, this keeps index of the slice which contains the segment.
 
IndexType size
 
SliceInfoContainerView slices
 
IndexType storageSize
 

Additional Inherited Members

- Static Public Member Functions inherited from TNL::Algorithms::Segments::ChunkedEllpackBase< Device, Index, Algorithms::Segments::DefaultElementsOrganization< Device >::getOrganization() >
static constexpr ElementsOrganization getOrganization ()
 
static std::string getSegmentsType ()
 
static std::string getSerializationType ()
 
static constexpr bool havePadding ()
 

Member Typedef Documentation

◆ SliceInfoContainer

template<typename Device , typename Index , typename IndexAllocator = typename Allocators::Default< Device >::template Allocator< Index >, ElementsOrganization Organization = Algorithms::Segments::DefaultElementsOrganization< Device >::getOrganization()>
using TNL::Algorithms::Segments::ChunkedEllpack< Device, Index, IndexAllocator, Organization >::SliceInfoContainer
Initial value:
Containers::Array< typename TNL::copy_const< typename Base::SliceInfoType >::template from< Index >::type,
Device,
Index,
SliceInfoAllocator >

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