DNDSR 0.1.0.dev1+gcd065ad
Distributed Numeric Data Structure for CFV
Loading...
Searching...
No Matches
DNDS::ArrayPairDeviceView_Base< Derived > Struct Template Reference

CRTP base implementing the unified-index accessors shared by ArrayPairDeviceView and ArrayPairDeviceViewConst. More...

#include <ArrayPair.hpp>

Inheritance diagram for DNDS::ArrayPairDeviceView_Base< Derived >:
[legend]

Public Member Functions

DNDS_DEVICE_CALLABLE index Size () const
 Combined father + son row count.
 
DNDS_DEVICE_CALLABLE auto RowSize () const
 Uniform row width (delegates to father; father/son share it).
 
DNDS_DEVICE_CALLABLE auto RowSize (index i) const
 Per-row width in the combined address space.
 
DNDS_DEVICE_CALLABLE auto operator[] (index i) const
 Row pointer for index i in the combined address space (const).
 
DNDS_DEVICE_CALLABLE auto operator[] (index i)
 Row pointer for index i (mutable).
 
template<class... TOthers>
DNDS_DEVICE_CALLABLE decltype(autooperator() (index i, TOthers... aOthers)
 N-ary element access in the combined address space (mutable). Forwards extra arguments to the underlying operator().
 
template<class... TOthers>
DNDS_DEVICE_CALLABLE decltype(autooperator() (index i, TOthers... aOthers) const
 N-ary element access (const).
 

Detailed Description

template<class Derived>
struct DNDS::ArrayPairDeviceView_Base< Derived >

CRTP base implementing the unified-index accessors shared by ArrayPairDeviceView and ArrayPairDeviceViewConst.

Indices in [0, father.Size()) map to the owned-side view; indices in [father.Size(), father.Size() + son.Size()) map to the ghost-side view with an offset subtraction. This lets stencil loops treat the father/son pair as one contiguous array. Device-callable.

Definition at line 30 of file ArrayPair.hpp.

Member Function Documentation

◆ operator()() [1/2]

template<class Derived >
template<class... TOthers>
DNDS_DEVICE_CALLABLE decltype(auto) DNDS::ArrayPairDeviceView_Base< Derived >::operator() ( index  i,
TOthers...  aOthers 
)
inline

N-ary element access in the combined address space (mutable). Forwards extra arguments to the underlying operator().

Definition at line 79 of file ArrayPair.hpp.

◆ operator()() [2/2]

template<class Derived >
template<class... TOthers>
DNDS_DEVICE_CALLABLE decltype(auto) DNDS::ArrayPairDeviceView_Base< Derived >::operator() ( index  i,
TOthers...  aOthers 
) const
inline

N-ary element access (const).

Definition at line 90 of file ArrayPair.hpp.

◆ operator[]() [1/2]

template<class Derived >
DNDS_DEVICE_CALLABLE auto DNDS::ArrayPairDeviceView_Base< Derived >::operator[] ( index  i)
inline

Row pointer for index i (mutable).

Definition at line 67 of file ArrayPair.hpp.

◆ operator[]() [2/2]

template<class Derived >
DNDS_DEVICE_CALLABLE auto DNDS::ArrayPairDeviceView_Base< Derived >::operator[] ( index  i) const
inline

Row pointer for index i in the combined address space (const).

Definition at line 57 of file ArrayPair.hpp.

◆ RowSize() [1/2]

template<class Derived >
DNDS_DEVICE_CALLABLE auto DNDS::ArrayPairDeviceView_Base< Derived >::RowSize ( ) const
inline

Uniform row width (delegates to father; father/son share it).

Definition at line 40 of file ArrayPair.hpp.

Here is the caller graph for this function:

◆ RowSize() [2/2]

template<class Derived >
DNDS_DEVICE_CALLABLE auto DNDS::ArrayPairDeviceView_Base< Derived >::RowSize ( index  i) const
inline

Per-row width in the combined address space.

Definition at line 47 of file ArrayPair.hpp.

◆ Size()

template<class Derived >
DNDS_DEVICE_CALLABLE index DNDS::ArrayPairDeviceView_Base< Derived >::Size ( ) const
inline

Combined father + son row count.

Definition at line 33 of file ArrayPair.hpp.

Here is the caller graph for this function:

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