segmented_array< T > Struct Template Reference

segmented_array&lt; T &gt; Struct Template Reference#

Reference API: gko::segmented_array< T > Struct Template Reference
Reference API
gko::segmented_array< T > Struct Template Reference

A minimal interface for a segmented array. More...

#include <ginkgo/core/base/segmented_array.hpp>

Inheritance diagram for gko::segmented_array< T >:
[legend]

Public Member Functions

 segmented_array (std::shared_ptr< const Executor > exec)
 
 segmented_array (std::shared_ptr< const Executor > exec, const segmented_array &other)
 
 segmented_array (std::shared_ptr< const Executor > exec, segmented_array &&other)
 
 segmented_array (const segmented_array &other)
 
 segmented_array (segmented_array &&other) noexcept(false)
 
segmented_arrayoperator= (const segmented_array &other)
 
segmented_arrayoperator= (segmented_array &&) noexcept(false)
 
size_type get_size () const
 
size_type get_segment_count () const
 
T * get_flat_data ()
 
const T * get_const_flat_data () const
 
const gko::array< int64 > & get_offsets () const
 
std::shared_ptr< const Executorget_executor () const
 

Static Public Member Functions

static segmented_array create_from_sizes (const gko::array< int64 > &sizes)
 
static segmented_array create_from_sizes (gko::array< T > buffer, const gko::array< int64 > &sizes)
 
static segmented_array create_from_offsets (gko::array< int64 > offsets)
 
static segmented_array create_from_offsets (gko::array< T > buffer, gko::array< int64 > offsets)
 

Detailed Description

template<typename T>
struct gko::segmented_array< T >

A minimal interface for a segmented array.

The segmented array is stored as a flat buffer with an offsets array. The segment i contains the index range [offset[i], offset[i + 1]) of the flat buffer.

Template Parameters
Tvalue type stored in the arrays

Constructor & Destructor Documentation

◆ segmented_array() [1/3]

template<typename T >
gko::segmented_array< T >::segmented_array ( std::shared_ptr< const Executor exec)
explicit

Create an empty segmented array

Parameters
execexecutor for storage arrays

◆ segmented_array() [2/3]

template<typename T >
gko::segmented_array< T >::segmented_array ( std::shared_ptr< const Executor exec,
const segmented_array< T > &  other 
)

Copies a segmented array to a different executor.

Parameters
execthe executor to copy to
otherthe segmented array to copy from

◆ segmented_array() [3/3]

template<typename T >
gko::segmented_array< T >::segmented_array ( std::shared_ptr< const Executor exec,
segmented_array< T > &&  other 
)

Moves a segmented array to a different executor.

Parameters
execthe executor to move to
otherthe segmented array to move from

Member Function Documentation

◆ create_from_offsets() [1/2]

template<typename T >
static segmented_array gko::segmented_array< T >::create_from_offsets ( gko::array< int64 offsets)
static

Creates an uninitialized segmented array from offsets.

Parameters
offsetsthe index offsets for each segment, and the total size of the buffer as last element

◆ create_from_offsets() [2/2]

template<typename T >
static segmented_array gko::segmented_array< T >::create_from_offsets ( gko::array< T >  buffer,
gko::array< int64 offsets 
)
static

Creates a segmented array from a flat buffer and offsets.

Parameters
bufferthe flat buffer whose size has to match the last element of offsets
offsetsthe index offsets for each segment, and the total size of the buffer as last element

◆ create_from_sizes() [1/2]

template<typename T >
static segmented_array gko::segmented_array< T >::create_from_sizes ( const gko::array< int64 > &  sizes)
static

Creates an uninitialized segmented array with predefined segment sizes.

Parameters
execexecutor for storage arrays
sizesthe sizes of each segment

◆ create_from_sizes() [2/2]

template<typename T >
static segmented_array gko::segmented_array< T >::create_from_sizes ( gko::array< T >  buffer,
const gko::array< int64 > &  sizes 
)
static

Creates a segmented array from a flat buffer and segment sizes.

Parameters
bufferthe flat buffer whose size has to match the sum of sizes
sizesthe sizes of each segment

◆ get_const_flat_data()

template<typename T >
const T * gko::segmented_array< T >::get_const_flat_data ( ) const

Const-access to the flat buffer

Returns
the flat buffer

Referenced by gko::segmented_array< T >::get_executor().

◆ get_executor()

template<typename T >
std::shared_ptr< const Executor > gko::segmented_array< T >::get_executor ( ) const

◆ get_flat_data()

template<typename T >
T * gko::segmented_array< T >::get_flat_data ( )

Access to the flat buffer.

Returns
the flat buffer

Referenced by gko::segmented_array< T >::get_executor().

◆ get_offsets()

template<typename T >
const gko::array< int64 > & gko::segmented_array< T >::get_offsets ( ) const

Access to the segment offsets.

Returns
the segment offsets

Referenced by gko::segmented_array< T >::get_executor().

◆ get_segment_count()

template<typename T >
size_type gko::segmented_array< T >::get_segment_count ( ) const

Get the number of segments.

Returns
the number of segments

◆ get_size()

template<typename T >
size_type gko::segmented_array< T >::get_size ( ) const

Get the total size of the stored buffer.

Returns
the total size of the stored buffer.

Referenced by gko::segmented_array< T >::get_executor().


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