Ginkgo  Generated from pipelines/1554403166 branch based on develop. Ginkgo version 1.9.0
A numerical linear algebra library targeting many-core architectures
Public Member Functions | Static Public Member Functions | List of all members
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)
 Create an empty segmented array. More...
 
 segmented_array (std::shared_ptr< const Executor > exec, const segmented_array &other)
 Copies a segmented array to a different executor. More...
 
 segmented_array (std::shared_ptr< const Executor > exec, segmented_array &&other)
 Moves a segmented array to a different executor. More...
 
 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
 Get the total size of the stored buffer. More...
 
size_type get_segment_count () const
 Get the number of segments. More...
 
T * get_flat_data ()
 Access to the flat buffer. More...
 
const T * get_const_flat_data () const
 Const-access to the flat buffer. More...
 
const gko::array< int64 > & get_offsets () const
 Access to the segment offsets. More...
 
std::shared_ptr< const Executorget_executor () const
 Access the executor. More...
 

Static Public Member Functions

static segmented_array create_from_sizes (const gko::array< int64 > &sizes)
 Creates an uninitialized segmented array with predefined segment sizes. More...
 
static segmented_array create_from_sizes (gko::array< T > buffer, const gko::array< int64 > &sizes)
 Creates a segmented array from a flat buffer and segment sizes. More...
 
static segmented_array create_from_offsets (gko::array< int64 > offsets)
 Creates an uninitialized segmented array from offsets. More...
 
static segmented_array create_from_offsets (gko::array< T > buffer, gko::array< int64 > offsets)
 Creates a segmented array from a flat buffer and offsets. More...
 

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

◆ get_executor()

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

Access the executor.

Returns
the executor

◆ get_flat_data()

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

Access to the flat buffer.

Returns
the flat buffer

◆ 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

◆ 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.

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