lin
|
Value backed tensor interface with resizing support. More...
#include <lin/core/types/base.hpp>
Public Types | |
typedef traits< D > | Traits |
Traits information for this type. More... | |
![]() | |
typedef traits< D > | Traits |
Traits information for this type. More... | |
![]() | |
typedef traits< D > | Traits |
Traits information for this type. More... | |
Public Member Functions | |
constexpr | Base (Base< D > const &)=default |
constexpr | Base (Base< D > &&)=default |
constexpr Base< D > & | operator= (Base< D > const &)=default |
constexpr Base< D > & | operator= (Base< D > &&)=default |
constexpr Traits::elem_t * | data () |
Retrives a pointer to the element backing array. More... | |
constexpr Traits::elem_t const * | data () const |
Retrives a constant pointer to the element backing array. More... | |
constexpr Traits::elem_t & | operator() (size_t i, size_t j) |
Provides read and write access to tensor elements. More... | |
constexpr Traits::elem_t & | operator() (size_t i) |
Provides read and write access to tensor elements. More... | |
![]() | |
constexpr | Mapping (Mapping< D > const &)=default |
constexpr | Mapping (Mapping< D > &&)=default |
constexpr Mapping< D > & | operator= (Mapping< D > const &)=default |
constexpr Mapping< D > & | operator= (Mapping< D > &&)=default |
constexpr Traits::elem_t & | operator() (size_t i, size_t j) |
Provides read and write access to tensor elements. More... | |
constexpr Traits::elem_t | operator() (size_t i, size_t j) const |
Provides read only access to tensor elements. More... | |
constexpr Traits::elem_t & | operator() (size_t i) |
Provides read and write access to tensor elements. More... | |
constexpr Traits::elem_t | operator() (size_t i) const |
Provides read only access to tensor elements. More... | |
constexpr Traits::elem_t & | operator[] (size_t i) |
Provides read and write access to tensor elements. More... | |
constexpr Traits::elem_t | operator[] (size_t i) const |
Provides read only access to tensor elements. More... | |
template<typename T , std::enable_if_t< is_detected< assign_expr, typename Traits::elem_t, T >::value, size_t > = 0> | |
constexpr D & | operator= (std::initializer_list< T > const &list) |
Copy an initializer list's elements into the tensor's elements. More... | |
template<class C , std::enable_if_t< conjunction< have_same_dimensions< D, C >, is_detected< assign_expr, typename Traits::elem_t, traits_elem_t< C >> >::value, size_t > = 0> | |
constexpr D & | operator= (Stream< C > const &s) |
Copy another tensor's elements into this tenosr's elements. More... | |
![]() | |
constexpr | Stream (Stream< D > const &)=default |
constexpr | Stream (Stream< D > &&)=default |
constexpr Stream< D > & | operator= (Stream< D > const &)=default |
constexpr Stream< D > & | operator= (Stream< D > &&)=default |
constexpr size_t | rows () const |
constexpr size_t | cols () const |
constexpr size_t | size () const |
constexpr Traits::elem_t | operator() (size_t i, size_t j) const |
Provides read only access to tensor elements. More... | |
constexpr Traits::elem_t | operator() (size_t i) const |
Provides read only access to tensor elements. More... | |
constexpr Traits::elem_t | operator[] (size_t i) const |
Provides read only access to tensor elements. More... | |
constexpr Traits::eval_t | eval () const |
Forces evaluation of this stream to a value backed type. More... | |
![]() | |
constexpr | Dimensions (Dimensions< D > const &)=default |
constexpr | Dimensions (Dimensions< D > &&)=default |
constexpr Dimensions< D > & | operator= (Dimensions< D > const &)=default |
constexpr Dimensions< D > & | operator= (Dimensions< D > &&)=default |
constexpr size_t | rows () const |
constexpr size_t | cols () const |
constexpr void | resize (size_t r, size_t c) |
Resizes a tensor's dimensions. More... | |
Additional Inherited Members | |
![]() | |
constexpr D & | derived () |
constexpr D const & | derived () const |
Value backed tensor interface with resizing support.
D | Derived type. |
This is the third of the three main entry points on the lin inheritance tree after internal::Mapping.
Here, direct tracking of runtime dimensions and the ability to resize is added. A getter to retrive a pointer to the element backing array is also included.
The main purpose is to provide an interface that supports value backed types
typedef traits<D> lin::internal::Base< D >::Traits |
Traits information for this type.
|
inline |
Retrives a pointer to the element backing array.
The elements of the tensor are layed out in row major order in the backing array. They are stored contiguously in memory.
|
inline |
Retrives a constant pointer to the element backing array.
The elements of the tensor are layed out in row major order in the backing array. They are stored contiguously in memory.
|
inline |
Provides read and write access to tensor elements.
i | Row index. |
j | Column index. |
If the indices are out of bounds as defined by the tensor's current dimensions, lin assertion errors will be triggered.
|
inline |
Provides read and write access to tensor elements.
i | Index |
Element access proceeds as if all the elements of the tensor stream were flattened into an array in row major order.
If the index is out of bounds as defined by the tensor's current size, lin lin assertion errors will be triggered.