tesseract++ 0.0.1
N-dimensional tensor library for embedded systems
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Attributes | List of all members
DenseAccess< T, PaddingPolicy, StoragePolicy, Dims > Class Template Reference

Dense storage access with padding policy. More...

#include <dense_access.h>

Inheritance diagram for DenseAccess< T, PaddingPolicy, StoragePolicy, Dims >:
Inheritance graph
[legend]

Public Types

using PadPolicy = PaddingPolicy< T, Dims... >
 

Public Member Functions

 DenseAccess ()=default
 
 DenseAccess (T initValue)
 
 DenseAccess (const DenseAccess &)=default
 
 DenseAccess (DenseAccess &&) noexcept=default
 
DenseAccessoperator= (const DenseAccess &)=default
 
DenseAccessoperator= (DenseAccess &&) noexcept=default
 
 ~DenseAccess ()=default
 
FORCE_INLINE constexpr T & operator[] (my_size_t idx) noexcept
 
FORCE_INLINE constexpr const T & operator[] (my_size_t idx) const noexcept
 
FORCE_INLINE constexpr T & at (my_size_t idx) TESSERACT_CONDITIONAL_NOEXCEPT
 
FORCE_INLINE constexpr const T & at (my_size_t idx) const TESSERACT_CONDITIONAL_NOEXCEPT
 
FORCE_INLINE constexpr T * data () noexcept
 
FORCE_INLINE constexpr const T * data () const noexcept
 
FORCE_INLINE constexpr T * begin () noexcept
 
FORCE_INLINE constexpr const T * begin () const noexcept
 
FORCE_INLINE constexpr T * end () noexcept
 
FORCE_INLINE constexpr const T * end () const noexcept
 

Static Public Attributes

static constexpr my_size_t PhysicalSize = PadPolicy::PhysicalSize
 

Detailed Description

template<typename T, template< typename, my_size_t... > class PaddingPolicy, template< typename, my_size_t > class StoragePolicy, my_size_t... Dims>
class DenseAccess< T, PaddingPolicy, StoragePolicy, Dims >

Dense storage access with padding policy.

Template Parameters
TElement type
PaddingPolicyPadding policy (e.g., SimdPaddingPolicy, NoPaddingPolicy)
StoragePolicyStorage backend (e.g., StaticStorage)
DimsLogical dimensions of the tensor

Member Typedef Documentation

◆ PadPolicy

template<typename T , template< typename, my_size_t... > class PaddingPolicy, template< typename, my_size_t > class StoragePolicy, my_size_t... Dims>
using DenseAccess< T, PaddingPolicy, StoragePolicy, Dims >::PadPolicy = PaddingPolicy<T, Dims...>

Constructor & Destructor Documentation

◆ DenseAccess() [1/4]

template<typename T , template< typename, my_size_t... > class PaddingPolicy, template< typename, my_size_t > class StoragePolicy, my_size_t... Dims>
DenseAccess< T, PaddingPolicy, StoragePolicy, Dims >::DenseAccess ( )
default

◆ DenseAccess() [2/4]

template<typename T , template< typename, my_size_t... > class PaddingPolicy, template< typename, my_size_t > class StoragePolicy, my_size_t... Dims>
DenseAccess< T, PaddingPolicy, StoragePolicy, Dims >::DenseAccess ( initValue)
inlineexplicit
Here is the call graph for this function:

◆ DenseAccess() [3/4]

template<typename T , template< typename, my_size_t... > class PaddingPolicy, template< typename, my_size_t > class StoragePolicy, my_size_t... Dims>
DenseAccess< T, PaddingPolicy, StoragePolicy, Dims >::DenseAccess ( const DenseAccess< T, PaddingPolicy, StoragePolicy, Dims > &  )
default

◆ DenseAccess() [4/4]

template<typename T , template< typename, my_size_t... > class PaddingPolicy, template< typename, my_size_t > class StoragePolicy, my_size_t... Dims>
DenseAccess< T, PaddingPolicy, StoragePolicy, Dims >::DenseAccess ( DenseAccess< T, PaddingPolicy, StoragePolicy, Dims > &&  )
defaultnoexcept

◆ ~DenseAccess()

template<typename T , template< typename, my_size_t... > class PaddingPolicy, template< typename, my_size_t > class StoragePolicy, my_size_t... Dims>
DenseAccess< T, PaddingPolicy, StoragePolicy, Dims >::~DenseAccess ( )
default

Member Function Documentation

◆ at() [1/2]

template<typename T , template< typename, my_size_t... > class PaddingPolicy, template< typename, my_size_t > class StoragePolicy, my_size_t... Dims>
FORCE_INLINE constexpr const T & DenseAccess< T, PaddingPolicy, StoragePolicy, Dims >::at ( my_size_t  idx) const
inlineconstexpr

◆ at() [2/2]

template<typename T , template< typename, my_size_t... > class PaddingPolicy, template< typename, my_size_t > class StoragePolicy, my_size_t... Dims>
FORCE_INLINE constexpr T & DenseAccess< T, PaddingPolicy, StoragePolicy, Dims >::at ( my_size_t  idx)
inlineconstexpr

◆ begin() [1/2]

template<typename T , template< typename, my_size_t... > class PaddingPolicy, template< typename, my_size_t > class StoragePolicy, my_size_t... Dims>
FORCE_INLINE constexpr const T * DenseAccess< T, PaddingPolicy, StoragePolicy, Dims >::begin ( ) const
inlineconstexprnoexcept

◆ begin() [2/2]

template<typename T , template< typename, my_size_t... > class PaddingPolicy, template< typename, my_size_t > class StoragePolicy, my_size_t... Dims>
FORCE_INLINE constexpr T * DenseAccess< T, PaddingPolicy, StoragePolicy, Dims >::begin ( )
inlineconstexprnoexcept

◆ data() [1/2]

template<typename T , template< typename, my_size_t... > class PaddingPolicy, template< typename, my_size_t > class StoragePolicy, my_size_t... Dims>
FORCE_INLINE constexpr const T * DenseAccess< T, PaddingPolicy, StoragePolicy, Dims >::data ( ) const
inlineconstexprnoexcept

◆ data() [2/2]

template<typename T , template< typename, my_size_t... > class PaddingPolicy, template< typename, my_size_t > class StoragePolicy, my_size_t... Dims>
FORCE_INLINE constexpr T * DenseAccess< T, PaddingPolicy, StoragePolicy, Dims >::data ( )
inlineconstexprnoexcept

◆ end() [1/2]

template<typename T , template< typename, my_size_t... > class PaddingPolicy, template< typename, my_size_t > class StoragePolicy, my_size_t... Dims>
FORCE_INLINE constexpr const T * DenseAccess< T, PaddingPolicy, StoragePolicy, Dims >::end ( ) const
inlineconstexprnoexcept

◆ end() [2/2]

template<typename T , template< typename, my_size_t... > class PaddingPolicy, template< typename, my_size_t > class StoragePolicy, my_size_t... Dims>
FORCE_INLINE constexpr T * DenseAccess< T, PaddingPolicy, StoragePolicy, Dims >::end ( )
inlineconstexprnoexcept

◆ operator=() [1/2]

template<typename T , template< typename, my_size_t... > class PaddingPolicy, template< typename, my_size_t > class StoragePolicy, my_size_t... Dims>
DenseAccess & DenseAccess< T, PaddingPolicy, StoragePolicy, Dims >::operator= ( const DenseAccess< T, PaddingPolicy, StoragePolicy, Dims > &  )
default

◆ operator=() [2/2]

template<typename T , template< typename, my_size_t... > class PaddingPolicy, template< typename, my_size_t > class StoragePolicy, my_size_t... Dims>
DenseAccess & DenseAccess< T, PaddingPolicy, StoragePolicy, Dims >::operator= ( DenseAccess< T, PaddingPolicy, StoragePolicy, Dims > &&  )
defaultnoexcept

◆ operator[]() [1/2]

template<typename T , template< typename, my_size_t... > class PaddingPolicy, template< typename, my_size_t > class StoragePolicy, my_size_t... Dims>
FORCE_INLINE constexpr const T & DenseAccess< T, PaddingPolicy, StoragePolicy, Dims >::operator[] ( my_size_t  idx) const
inlineconstexprnoexcept

◆ operator[]() [2/2]

template<typename T , template< typename, my_size_t... > class PaddingPolicy, template< typename, my_size_t > class StoragePolicy, my_size_t... Dims>
FORCE_INLINE constexpr T & DenseAccess< T, PaddingPolicy, StoragePolicy, Dims >::operator[] ( my_size_t  idx)
inlineconstexprnoexcept

Member Data Documentation

◆ PhysicalSize

template<typename T , template< typename, my_size_t... > class PaddingPolicy, template< typename, my_size_t > class StoragePolicy, my_size_t... Dims>
constexpr my_size_t DenseAccess< T, PaddingPolicy, StoragePolicy, Dims >::PhysicalSize = PadPolicy::PhysicalSize
staticconstexpr

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