![]() |
Low-Level Abstraction of Memory Access
|
#include <RecordRef.hpp>
Classes | |
struct | Loader |
struct | LoaderConst |
Public Types | |
using | View = TView |
View this record reference points into. More... | |
using | BoundRecordCoord = TBoundRecordCoord |
Record coords into View::RecordDim which are already bound by this RecordRef. More... | |
using | AccessibleRecordDim = GetType< RecordDim, BoundRecordCoord > |
Public Member Functions | |
RecordRef () | |
Creates an empty RecordRef. Only available for if the view is owned. Used by llama::One. More... | |
RecordRef (ArrayIndex ai, std::conditional_t< OwnView, View &&, View & > view) | |
RecordRef (const RecordRef &)=default | |
auto | operator= (const RecordRef &other) -> RecordRef & |
RecordRef (RecordRef &&) noexcept=default | |
auto | operator= (RecordRef &&) noexcept -> RecordRef &=default |
~RecordRef ()=default | |
constexpr auto | arrayIndex () const -> ArrayIndex |
template<typename OtherView , typename OtherBoundRecordCoord , bool OtherOwnView> | |
RecordRef (const RecordRef< OtherView, OtherBoundRecordCoord, OtherOwnView > &recordRef) | |
template<typename T , typename = std::enable_if_t<!isRecordRef<T>>> | |
RecordRef (const T &scalar) | |
Create a RecordRef from a scalar. Only available for if the view is owned. Used by llama::One. More... | |
template<std::size_t... Coord> | |
auto | operator() (RecordCoord< Coord... >) const -> decltype(auto) |
template<std::size_t... Coord> | |
auto | operator() (RecordCoord< Coord... >) -> decltype(auto) |
template<typename... Tags> | |
auto | operator() (Tags...) const -> decltype(auto) |
template<typename... Tags> | |
auto | operator() (Tags...) -> decltype(auto) |
template<typename T > | |
auto | operator= (const T &other) -> RecordRef & |
template<typename T > | |
auto | operator+= (const T &other) -> RecordRef & |
template<typename T > | |
auto | operator-= (const T &other) -> RecordRef & |
template<typename T > | |
auto | operator*= (const T &other) -> RecordRef & |
template<typename T > | |
auto | operator/= (const T &other) -> RecordRef & |
template<typename T > | |
auto | operator%= (const T &other) -> RecordRef & |
auto | asTuple () |
auto | asTuple () const |
auto | asFlatTuple () |
auto | asFlatTuple () const |
template<std::size_t I> | |
auto | get () -> decltype(auto) |
template<std::size_t I> | |
auto | get () const -> decltype(auto) |
template<typename TupleLike > | |
auto | loadAs () -> TupleLike |
template<typename TupleLike > | |
auto | loadAs () const -> TupleLike |
auto | load () -> Loader |
auto | load () const -> LoaderConst |
template<typename TupleLike > | |
void | store (const TupleLike &t) |
Friends | |
template<typename T > | |
auto | operator+ (const RecordRef &vd, const T &t) |
template<typename T , typename = std::enable_if_t<!isRecordRef<T>>> | |
auto | operator+ (const T &t, const RecordRef &vd) |
template<typename T > | |
auto | operator- (const RecordRef &vd, const T &t) |
template<typename T > | |
auto | operator* (const RecordRef &vd, const T &t) |
template<typename T , typename = std::enable_if_t<!isRecordRef<T>>> | |
auto | operator* (const T &t, const RecordRef &vd) |
template<typename T > | |
auto | operator/ (const RecordRef &vd, const T &t) |
template<typename T > | |
auto | operator% (const RecordRef &vd, const T &t) |
template<typename T > | |
auto | operator== (const RecordRef &vd, const T &t) -> bool |
template<typename T , typename = std::enable_if_t<!isRecordRef<T>>> | |
auto | operator== (const T &t, const RecordRef &vd) -> bool |
template<typename T > | |
auto | operator!= (const RecordRef &vd, const T &t) -> bool |
template<typename T , typename = std::enable_if_t<!isRecordRef<T>>> | |
auto | operator!= (const T &t, const RecordRef &vd) -> bool |
template<typename T > | |
auto | operator< (const RecordRef &vd, const T &t) -> bool |
template<typename T , typename = std::enable_if_t<!isRecordRef<T>>> | |
auto | operator< (const T &t, const RecordRef &vd) -> bool |
template<typename T > | |
auto | operator<= (const RecordRef &vd, const T &t) -> bool |
template<typename T , typename = std::enable_if_t<!isRecordRef<T>>> | |
auto | operator<= (const T &t, const RecordRef &vd) -> bool |
template<typename T > | |
auto | operator> (const RecordRef &vd, const T &t) -> bool |
template<typename T , typename = std::enable_if_t<!isRecordRef<T>>> | |
auto | operator> (const T &t, const RecordRef &vd) -> bool |
template<typename T > | |
auto | operator>= (const RecordRef &vd, const T &t) -> bool |
template<typename T , typename = std::enable_if_t<!isRecordRef<T>>> | |
auto | operator>= (const T &t, const RecordRef &vd) -> bool |
void | swap (std::conditional_t< OwnView, RecordRef &, RecordRef > a, std::conditional_t< OwnView, RecordRef &, RecordRef > b) noexcept |
template<typename T , typename Simd , typename SrcRC , typename DstRC > | |
void | internal::loadSimdFromField (const T &srcRef, Simd &dstSimd, SrcRC srcRC, DstRC dstRC) |
template<typename Simd , typename TFwd , typename SrcRC , typename DstRC > | |
void | internal::storeSimdToField (const Simd &srcSimd, TFwd &&dstRef, SrcRC srcRC, DstRC dstRC) |
Record reference type returned by View after resolving an array dimensions coordinate or partially resolving a RecordCoord. A record reference does not hold data itself, it just binds enough information (array dimensions coord and partial record coord) to retrieve it later from a View. Records references should not be created by the user. They are returned from various access functions in View and RecordRef itself.
Definition at line 345 of file RecordRef.hpp.
using llama::RecordRef< TView, TBoundRecordCoord, OwnView >::AccessibleRecordDim = GetType<RecordDim, BoundRecordCoord> |
Subtree of the record dimension of View starting at BoundRecordCoord. If BoundRecordCoord is RecordCoord<>
(default) AccessibleRecordDim is the same as Mapping::RecordDim
.
Definition at line 360 of file RecordRef.hpp.
using llama::RecordRef< TView, TBoundRecordCoord, OwnView >::BoundRecordCoord = TBoundRecordCoord |
Record coords into View::RecordDim which are already bound by this RecordRef.
Definition at line 348 of file RecordRef.hpp.
using llama::RecordRef< TView, TBoundRecordCoord, OwnView >::View = TView |
View this record reference points into.
Definition at line 347 of file RecordRef.hpp.
|
inline |
Creates an empty RecordRef. Only available for if the view is owned. Used by llama::One.
Definition at line 363 of file RecordRef.hpp.
|
inline |
Definition at line 372 of file RecordRef.hpp.
|
default |
|
defaultnoexcept |
|
default |
|
inline |
Create a RecordRef from a different RecordRef. Only available for if the view is owned. Used by llama::One.
Definition at line 401 of file RecordRef.hpp.
|
inlineexplicit |
Create a RecordRef from a scalar. Only available for if the view is owned. Used by llama::One.
Definition at line 416 of file RecordRef.hpp.
|
inlineconstexpr |
Definition at line 392 of file RecordRef.hpp.
|
inline |
Definition at line 650 of file RecordRef.hpp.
|
inline |
Definition at line 655 of file RecordRef.hpp.
|
inline |
Definition at line 640 of file RecordRef.hpp.
|
inline |
Definition at line 645 of file RecordRef.hpp.
|
inline |
Definition at line 661 of file RecordRef.hpp.
|
inline |
Definition at line 667 of file RecordRef.hpp.
|
inline |
Definition at line 722 of file RecordRef.hpp.
|
inline |
Definition at line 727 of file RecordRef.hpp.
|
inline |
Definition at line 673 of file RecordRef.hpp.
|
inline |
Definition at line 686 of file RecordRef.hpp.
|
inline |
Definition at line 521 of file RecordRef.hpp.
|
inline |
Definition at line 442 of file RecordRef.hpp.
|
inline |
Access a record in the record dimension underneath the current record reference using a RecordCoord. If the access resolves to a leaf, an l-value reference to a variable inside the View storage is returned, otherwise another RecordRef.
Definition at line 430 of file RecordRef.hpp.
|
inline |
Definition at line 464 of file RecordRef.hpp.
|
inline |
Access a record in the record dimension underneath the current record reference using a series of tags. If the access resolves to a leaf, an l-value reference to a variable inside the View storage is returned, otherwise another RecordRef.
Definition at line 456 of file RecordRef.hpp.
|
inline |
Definition at line 509 of file RecordRef.hpp.
|
inline |
Definition at line 497 of file RecordRef.hpp.
|
inline |
Definition at line 503 of file RecordRef.hpp.
|
inline |
Definition at line 515 of file RecordRef.hpp.
|
inline |
Definition at line 381 of file RecordRef.hpp.
|
inline |
Definition at line 490 of file RecordRef.hpp.
|
defaultnoexcept |
|
inline |
Definition at line 733 of file RecordRef.hpp.
|
friend |
|
friend |
|
friend |
Definition at line 581 of file RecordRef.hpp.
|
friend |
Definition at line 587 of file RecordRef.hpp.
|
friend |
Definition at line 563 of file RecordRef.hpp.
|
friend |
Definition at line 545 of file RecordRef.hpp.
|
friend |
Definition at line 551 of file RecordRef.hpp.
|
friend |
Definition at line 527 of file RecordRef.hpp.
|
friend |
Definition at line 533 of file RecordRef.hpp.
|
friend |
Definition at line 539 of file RecordRef.hpp.
|
friend |
Definition at line 557 of file RecordRef.hpp.
|
friend |
Definition at line 593 of file RecordRef.hpp.
|
friend |
Definition at line 599 of file RecordRef.hpp.
|
friend |
Definition at line 605 of file RecordRef.hpp.
|
friend |
Definition at line 611 of file RecordRef.hpp.
|
friend |
Definition at line 569 of file RecordRef.hpp.
|
friend |
Definition at line 575 of file RecordRef.hpp.
|
friend |
Definition at line 617 of file RecordRef.hpp.
|
friend |
Definition at line 623 of file RecordRef.hpp.
|
friend |
Definition at line 629 of file RecordRef.hpp.
|
friend |
Definition at line 635 of file RecordRef.hpp.
|
friend |
Definition at line 739 of file RecordRef.hpp.