SuperDex Physics C++ API
Loading...
Searching...
No Matches
superdex::NdArray< T, D0, DIMS > Class Template Referencefinal

#include <nd_array.h>

Public Types

using element_type = T
using value_type = typename std::conditional_t<num_dims == 1, T, NdArray<T, DIMS...>>

Public Member Functions

constexpr auto begin ()
constexpr auto begin () const
constexpr value_typedata ()
constexpr value_type const * data () const
constexpr auto end ()
constexpr auto end () const
constexpr NdArray ()=default
template<typename... U, std::enable_if_t<(sizeof...(U)==D0) &&std::conjunction_v< std::is_convertible< value_type, U >... >, void * > = nullptr>
constexpr NdArray (U const &... p)
constexpr value_typeoperator[] (size_t i)
constexpr value_type const & operator[] (size_t i) const

Static Public Member Functions

static constexpr int size ()

Static Public Attributes

static constexpr size_t dims [num_dims] = {D0, DIMS...}
static constexpr size_t flattened_size = MultiplyConstexpr(D0, DIMS...)
static constexpr size_t num_dims = 1 + sizeof...(DIMS)

Detailed Description

template<typename T, size_t D0 = 1, size_t... DIMS>
class superdex::NdArray< T, D0, DIMS >

Definition at line 51 of file nd_array.h.

Member Typedef Documentation

◆ element_type

template<typename T, size_t D0 = 1, size_t... DIMS>
using superdex::NdArray< T, D0, DIMS >::element_type = T

Definition at line 62 of file nd_array.h.

◆ value_type

template<typename T, size_t D0 = 1, size_t... DIMS>
using superdex::NdArray< T, D0, DIMS >::value_type = typename std::conditional_t<num_dims == 1, T, NdArray<T, DIMS...>>

Definition at line 59 of file nd_array.h.

Constructor & Destructor Documentation

◆ NdArray() [1/2]

template<typename T, size_t D0 = 1, size_t... DIMS>
superdex::NdArray< T, D0, DIMS >::NdArray ( )
inlineconstexprdefault

◆ NdArray() [2/2]

template<typename T, size_t D0 = 1, size_t... DIMS>
template<typename... U, std::enable_if_t<(sizeof...(U)==D0) &&std::conjunction_v< std::is_convertible< value_type, U >... >, void * > = nullptr>
superdex::NdArray< T, D0, DIMS >::NdArray ( U const &... p)
inlineconstexpr

Definition at line 74 of file nd_array.h.

Member Function Documentation

◆ begin() [1/2]

template<typename T, size_t D0 = 1, size_t... DIMS>
auto superdex::NdArray< T, D0, DIMS >::begin ( )
inlineconstexpr

Definition at line 81 of file nd_array.h.

◆ begin() [2/2]

template<typename T, size_t D0 = 1, size_t... DIMS>
auto superdex::NdArray< T, D0, DIMS >::begin ( ) const
inlineconstexpr

Definition at line 82 of file nd_array.h.

◆ data() [1/2]

template<typename T, size_t D0 = 1, size_t... DIMS>
value_type * superdex::NdArray< T, D0, DIMS >::data ( )
inlineconstexpr

Definition at line 79 of file nd_array.h.

◆ data() [2/2]

template<typename T, size_t D0 = 1, size_t... DIMS>
value_type const * superdex::NdArray< T, D0, DIMS >::data ( ) const
inlineconstexpr

Definition at line 80 of file nd_array.h.

◆ end() [1/2]

template<typename T, size_t D0 = 1, size_t... DIMS>
auto superdex::NdArray< T, D0, DIMS >::end ( )
inlineconstexpr

Definition at line 83 of file nd_array.h.

◆ end() [2/2]

template<typename T, size_t D0 = 1, size_t... DIMS>
auto superdex::NdArray< T, D0, DIMS >::end ( ) const
inlineconstexpr

Definition at line 84 of file nd_array.h.

◆ operator[]() [1/2]

template<typename T, size_t D0, size_t... DIMS>
NdArray< T, D0, DIMS... >::value_type & superdex::NdArray< T, D0, DIMS >::operator[] ( size_t i)
inlineconstexpr

Definition at line 221 of file nd_array.h.

◆ operator[]() [2/2]

template<typename T, size_t D0, size_t... DIMS>
NdArray< T, D0, DIMS... >::value_type const & superdex::NdArray< T, D0, DIMS >::operator[] ( size_t i) const
inlineconstexpr

Definition at line 214 of file nd_array.h.

◆ size()

template<typename T, size_t D0 = 1, size_t... DIMS>
constexpr int superdex::NdArray< T, D0, DIMS >::size ( )
inlinestaticconstexpr

Definition at line 78 of file nd_array.h.

Member Data Documentation

◆ dims

template<typename T, size_t D0 = 1, size_t... DIMS>
size_t superdex::NdArray< T, D0, DIMS >::dims[num_dims] = {D0, DIMS...}
staticconstexpr

Definition at line 55 of file nd_array.h.

◆ flattened_size

template<typename T, size_t D0 = 1, size_t... DIMS>
size_t superdex::NdArray< T, D0, DIMS >::flattened_size = MultiplyConstexpr(D0, DIMS...)
staticconstexpr

Definition at line 56 of file nd_array.h.

◆ num_dims

template<typename T, size_t D0 = 1, size_t... DIMS>
size_t superdex::NdArray< T, D0, DIMS >::num_dims = 1 + sizeof...(DIMS)
staticconstexpr

Definition at line 54 of file nd_array.h.


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