Grok 12.0.1
Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
hwy::AlignedNDArray< T, axes > Class Template Reference

#include <aligned_allocator.h>

Public Member Functions

 AlignedNDArray (AlignedNDArray &&other)=default
 
AlignedNDArrayoperator= (AlignedNDArray &&other)=default
 
 AlignedNDArray (std::array< size_t, axes > shape)
 
Span< T > operator[] (std::array< const size_t, axes - 1 > indices)
 
Span< const T > operator[] (std::array< const size_t, axes - 1 > indices) const
 
const std::array< size_t, axes > & shape () const
 
const std::array< size_t, axes > & memory_shape () const
 
size_t size () const
 
size_t memory_size () const
 
T * data ()
 
const T * data () const
 
void truncate (const std::array< size_t, axes > &new_shape)
 

Private Member Functions

size_t Offset (std::array< const size_t, axes - 1 > indices) const
 

Static Private Member Functions

static std::array< size_t, axes+1 > ComputeSizes (std::array< size_t, axes > shape)
 

Private Attributes

std::array< size_t, axes > shape_
 
std::array< size_t, axes > memory_shape_
 
std::array< size_t, axes+1 > sizes_
 
std::array< size_t, axes+1 > memory_sizes_
 
hwy::AlignedFreeUniquePtr< T[]> buffer_
 

Constructor & Destructor Documentation

◆ AlignedNDArray() [1/2]

template<typename T , size_t axes>
hwy::AlignedNDArray< T, axes >::AlignedNDArray ( AlignedNDArray< T, axes > && other)
default

◆ AlignedNDArray() [2/2]

template<typename T , size_t axes>
hwy::AlignedNDArray< T, axes >::AlignedNDArray ( std::array< size_t, axes > shape)
inlineexplicit

Member Function Documentation

◆ ComputeSizes()

template<typename T , size_t axes>
static std::array< size_t, axes+1 > hwy::AlignedNDArray< T, axes >::ComputeSizes ( std::array< size_t, axes > shape)
inlinestaticprivate

◆ data() [1/2]

template<typename T , size_t axes>
T * hwy::AlignedNDArray< T, axes >::data ( )
inline

◆ data() [2/2]

template<typename T , size_t axes>
const T * hwy::AlignedNDArray< T, axes >::data ( ) const
inline

◆ memory_shape()

template<typename T , size_t axes>
const std::array< size_t, axes > & hwy::AlignedNDArray< T, axes >::memory_shape ( ) const
inline

◆ memory_size()

template<typename T , size_t axes>
size_t hwy::AlignedNDArray< T, axes >::memory_size ( ) const
inline

◆ Offset()

template<typename T , size_t axes>
size_t hwy::AlignedNDArray< T, axes >::Offset ( std::array< const size_t, axes - 1 > indices) const
inlineprivate

◆ operator=()

template<typename T , size_t axes>
AlignedNDArray & hwy::AlignedNDArray< T, axes >::operator= ( AlignedNDArray< T, axes > && other)
default

◆ operator[]() [1/2]

template<typename T , size_t axes>
Span< T > hwy::AlignedNDArray< T, axes >::operator[] ( std::array< const size_t, axes - 1 > indices)
inline

◆ operator[]() [2/2]

template<typename T , size_t axes>
Span< const T > hwy::AlignedNDArray< T, axes >::operator[] ( std::array< const size_t, axes - 1 > indices) const
inline

◆ shape()

template<typename T , size_t axes>
const std::array< size_t, axes > & hwy::AlignedNDArray< T, axes >::shape ( ) const
inline

◆ size()

template<typename T , size_t axes>
size_t hwy::AlignedNDArray< T, axes >::size ( ) const
inline

◆ truncate()

template<typename T , size_t axes>
void hwy::AlignedNDArray< T, axes >::truncate ( const std::array< size_t, axes > & new_shape)
inline

Member Data Documentation

◆ buffer_

template<typename T , size_t axes>
hwy::AlignedFreeUniquePtr<T[]> hwy::AlignedNDArray< T, axes >::buffer_
private

◆ memory_shape_

template<typename T , size_t axes>
std::array<size_t, axes> hwy::AlignedNDArray< T, axes >::memory_shape_
private

◆ memory_sizes_

template<typename T , size_t axes>
std::array<size_t, axes + 1> hwy::AlignedNDArray< T, axes >::memory_sizes_
private

◆ shape_

template<typename T , size_t axes>
std::array<size_t, axes> hwy::AlignedNDArray< T, axes >::shape_
private

◆ sizes_

template<typename T , size_t axes>
std::array<size_t, axes + 1> hwy::AlignedNDArray< T, axes >::sizes_
private

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