Mundy: Multibody Nonlocal Dynamics Version of the Day
Loading...
Searching...
No Matches
mundy::TransposedView< T, N, M, Accessor > Class Template Reference

An accessor that represents the transpose of a row-major (NxM) matrix represented by a contiguous accessor. More...

#include <TransposedView.hpp>

Public Member Functions

constexpr TransposedView (const Accessor &accessor)
 Constructor from a given accessor.
constexpr TransposedView (Accessor &&accessor)
 Constructor from a given accessor.
constexpr TransposedView (const TransposedView< T, N, M, Accessor > &other)
 Shallow copy constructor.
constexpr TransposedView (TransposedView< T, N, M, Accessor > &&other)
 Shallow move constructor.
constexpr decltype(auto) operator[] (size_t idx)
 Element access operator.
constexpr decltype(auto) operator[] (size_t idx) const

Public Attributes

storage< Accessor > accessor_

Detailed Description

template<typename T, size_t N, size_t M, ValidAccessor< T > Accessor>
class mundy::TransposedView< T, N, M, Accessor >

Concept: Sometimes we'd like to access the transpose of a row-major matrix represented by a contiguous accessor without copying the underlying data. This class provides a way to do that.

The resulting transpose has size MxN.

Template Parameters
TThe type of the elements
NThe number of rows in the matrix
MThe number of columns in the matrix
AccessorThe type of the contiguous accessor

Constructor & Destructor Documentation

◆ TransposedView() [1/4]

template<typename T, size_t N, size_t M, ValidAccessor< T > Accessor>
mundy::TransposedView< T, N, M, Accessor >::TransposedView ( const Accessor & accessor)
inlineexplicitconstexpr

◆ TransposedView() [2/4]

template<typename T, size_t N, size_t M, ValidAccessor< T > Accessor>
mundy::TransposedView< T, N, M, Accessor >::TransposedView ( Accessor && accessor)
inlineexplicitconstexpr

◆ TransposedView() [3/4]

template<typename T, size_t N, size_t M, ValidAccessor< T > Accessor>
mundy::TransposedView< T, N, M, Accessor >::TransposedView ( const TransposedView< T, N, M, Accessor > & other)
inlineconstexpr

◆ TransposedView() [4/4]

template<typename T, size_t N, size_t M, ValidAccessor< T > Accessor>
mundy::TransposedView< T, N, M, Accessor >::TransposedView ( TransposedView< T, N, M, Accessor > && other)
inlineconstexpr

Member Function Documentation

◆ operator[]() [1/2]

template<typename T, size_t N, size_t M, ValidAccessor< T > Accessor>
decltype(auto) mundy::TransposedView< T, N, M, Accessor >::operator[] ( size_t idx)
inlineconstexpr
Parameters
[in]idxThe index of the element.

◆ operator[]() [2/2]

template<typename T, size_t N, size_t M, ValidAccessor< T > Accessor>
decltype(auto) mundy::TransposedView< T, N, M, Accessor >::operator[] ( size_t idx) const
inlineconstexpr

Member Data Documentation

◆ accessor_

template<typename T, size_t N, size_t M, ValidAccessor< T > Accessor>
storage<Accessor> mundy::TransposedView< T, N, M, Accessor >::accessor_