Documentation 6b54b78464
Loading...
Searching...
No Matches
C3DContainerDecorator< Storage > Class Template Reference

Decorate a matrix type (Storage) with 3 dimensions. More...

#include <container_decorators.hpp>

Inheritance diagram for C3DContainerDecorator< Storage >:
[legend]

Public Types

using Scalar = typename Storage::Scalar
 
using Index = typename Storage::Index
 
using Matrix = CMatrixView< Scalar >
 
using ConstMatrix = CMatrixView< const Scalar >
 
using CInnerIter = typename Storage::CInnerIter
 
template<class T , size_t N>
using CInnerIterGather = typename Storage::template CInnerIterGather< simd::Array< T, N > >
 

Public Member Functions

 C3DContainerDecorator ()=default
 
 C3DContainerDecorator (Index length, Index rows, Index cols, Scalar value=0) noexcept
 
void resize (Index length, Index rows, Index cols, Scalar value=0) noexcept
 
Index size () const noexcept
 Container sizes.
 
Index length () const noexcept
 
Index rows () const noexcept
 
Index cols () const noexcept
 
Scalar & operator() (Index i, Index j, Index k) noexcept
 Element-wise access.
 
const Scalar & operator() (Index i, Index j, Index k) const noexcept
 
Matrix operator[] (Index i) noexcept
 Matrix access.
 
ConstMatrix operator[] (Index i) const noexcept
 
Matrix operator() (Index i, Index j) noexcept
 Matrix access with an offset.
 
ConstMatrix operator() (Index i, Index j) const noexcept
 
CInnerIter innerIter (Index i, Index j) const noexcept
 Get a scalar iterator to the inner-most dimension of the container.
 
template<class T , size_t N>
CInnerIterGather< T, N > innerIter (simd::Array< T, N > i, Index j) const noexcept
 Get a SIMD gather iterator to the inner-most dimension of the container.
 
template<class StaticContainer , class Int >
StaticContainer get (Int i, Index j=0) const noexcept
 Return copy of data in a static size container (see C2DContainer::get).
 
Scalar * data ()
 Raw data access, for Python wrapper.
 

Static Public Attributes

static constexpr bool IsRowMajor = true
 
static constexpr bool IsColumnMajor = false
 

Detailed Description

template<class Storage>
class C3DContainerDecorator< Storage >

Decorate a matrix type (Storage) with 3 dimensions.

Member Typedef Documentation

◆ CInnerIter

template<class Storage >
using C3DContainerDecorator< Storage >::CInnerIter = typename Storage::CInnerIter

◆ CInnerIterGather

template<class Storage >
template<class T , size_t N>
using C3DContainerDecorator< Storage >::CInnerIterGather = typename Storage::template CInnerIterGather<simd::Array<T, N> >

◆ ConstMatrix

template<class Storage >
using C3DContainerDecorator< Storage >::ConstMatrix = CMatrixView<const Scalar>

◆ Index

template<class Storage >
using C3DContainerDecorator< Storage >::Index = typename Storage::Index

◆ Matrix

template<class Storage >
using C3DContainerDecorator< Storage >::Matrix = CMatrixView<Scalar>

◆ Scalar

template<class Storage >
using C3DContainerDecorator< Storage >::Scalar = typename Storage::Scalar

Constructor & Destructor Documentation

◆ C3DContainerDecorator() [1/2]

template<class Storage >
C3DContainerDecorator< Storage >::C3DContainerDecorator ( )
default

◆ C3DContainerDecorator() [2/2]

template<class Storage >
C3DContainerDecorator< Storage >::C3DContainerDecorator ( Index  length,
Index  rows,
Index  cols,
Scalar  value = 0 
)
inlinenoexcept

Member Function Documentation

◆ cols()

template<class Storage >
Index C3DContainerDecorator< Storage >::cols ( ) const
inlinenoexcept

◆ data()

template<class Storage >
Scalar * C3DContainerDecorator< Storage >::data ( )
inline

Raw data access, for Python wrapper.

◆ get()

template<class Storage >
template<class StaticContainer , class Int >
StaticContainer C3DContainerDecorator< Storage >::get ( Int  i,
Index  j = 0 
) const
inlinenoexcept

Return copy of data in a static size container (see C2DContainer::get).

Parameters
[in]i- Outer index.
[in]j- Starting middle index for the copy (amount determined by container size).

◆ innerIter() [1/2]

template<class Storage >
CInnerIter C3DContainerDecorator< Storage >::innerIter ( Index  i,
Index  j 
) const
inlinenoexcept

Get a scalar iterator to the inner-most dimension of the container.

◆ innerIter() [2/2]

template<class Storage >
template<class T , size_t N>
CInnerIterGather< T, N > C3DContainerDecorator< Storage >::innerIter ( simd::Array< T, N >  i,
Index  j 
) const
inlinenoexcept

Get a SIMD gather iterator to the inner-most dimension of the container.

◆ length()

template<class Storage >
Index C3DContainerDecorator< Storage >::length ( ) const
inlinenoexcept

◆ operator()() [1/4]

template<class Storage >
ConstMatrix C3DContainerDecorator< Storage >::operator() ( Index  i,
Index  j 
) const
inlinenoexcept

◆ operator()() [2/4]

template<class Storage >
Matrix C3DContainerDecorator< Storage >::operator() ( Index  i,
Index  j 
)
inlinenoexcept

Matrix access with an offset.

◆ operator()() [3/4]

template<class Storage >
const Scalar & C3DContainerDecorator< Storage >::operator() ( Index  i,
Index  j,
Index  k 
) const
inlinenoexcept

◆ operator()() [4/4]

template<class Storage >
Scalar & C3DContainerDecorator< Storage >::operator() ( Index  i,
Index  j,
Index  k 
)
inlinenoexcept

Element-wise access.

◆ operator[]() [1/2]

template<class Storage >
ConstMatrix C3DContainerDecorator< Storage >::operator[] ( Index  i) const
inlinenoexcept

◆ operator[]() [2/2]

template<class Storage >
Matrix C3DContainerDecorator< Storage >::operator[] ( Index  i)
inlinenoexcept

Matrix access.

◆ resize()

template<class Storage >
void C3DContainerDecorator< Storage >::resize ( Index  length,
Index  rows,
Index  cols,
Scalar  value = 0 
)
inlinenoexcept

◆ rows()

template<class Storage >
Index C3DContainerDecorator< Storage >::rows ( ) const
inlinenoexcept

◆ size()

template<class Storage >
Index C3DContainerDecorator< Storage >::size ( ) const
inlinenoexcept

Container sizes.

Member Data Documentation

◆ IsColumnMajor

template<class Storage >
constexpr bool C3DContainerDecorator< Storage >::IsColumnMajor = false
staticconstexpr

◆ IsRowMajor

template<class Storage >
constexpr bool C3DContainerDecorator< Storage >::IsRowMajor = true
staticconstexpr

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