DNDSR 0.1.0.dev1+gcd065ad
Distributed Numeric Data Structure for CFV
Loading...
Searching...
No Matches
DNDS::ArrayEigenUniMatrixBatchDeviceView< B, real_T, _n_row, _n_col > Class Template Reference

Device-callable view onto ArrayEigenUniMatrixBatch rows. More...

#include <ArrayEigenUniMatrixBatch_DeviceView.hpp>

Inheritance diagram for DNDS::ArrayEigenUniMatrixBatchDeviceView< B, real_T, _n_row, _n_col >:
[legend]
Collaboration diagram for DNDS::ArrayEigenUniMatrixBatchDeviceView< B, real_T, _n_row, _n_col >:
[legend]

Public Types

using t_self = ArrayEigenUniMatrixBatchDeviceView< B, real_T, _n_row, _n_col >
 extra data!
 
- Public Types inherited from DNDS::ArrayLayout< T, _row_size, _row_max, _align >
using value_type = T
 

Public Member Functions

DNDS_DEVICE_CALLABLE ArrayEigenUniMatrixBatchDeviceView (const t_base &base_view, int n_row_dynamic, int n_col_dynamic, int n_m_size)
 
DNDS_DEVICE_CALLABLE int Rows () const
 
DNDS_DEVICE_CALLABLE int Cols () const
 
DNDS_DEVICE_CALLABLE int MSize () const
 
DNDS_DEVICE_CALLABLE rowsize BatchSize (index i) const
 
DNDS_DEVICE_CALLABLE rowsize RowSize (index i) const
 
DNDS_DEVICE_CALLABLE t_EigenMap operator() (index i, rowsize j)
 
DNDS_DEVICE_CALLABLE t_EigenMap_const operator() (index i, rowsize j) const
 
- Public Member Functions inherited from DNDS::ArrayDeviceView< B, real_T, NonUniformSize >
 ArrayDeviceView ()=delete
 
- Public Member Functions inherited from DNDS::ArrayView< T, _row_size, _row_max, _align >
DNDS_DEVICE_CALLABLE ArrayView (index n_size, T *n_data, index n_data_size, const index *n_rowstart, index n_rowstart_size, const rowsize *n_rowsizes, index n_rowsizes_size, rowsize n_row_size_dynamic, bool n_isCompressed, t_dataUncompressed *n_p_dataUncompressed)
 Construct a view from raw pointers. Intended for internal use by Array::view().
 
DNDS_DEVICE_CALLABLE bool isCompressed () const
 Whether the underlying array is in the compressed (flat) form (always true for non-CSR).
 
DNDS_DEVICE_CALLABLE index Size () const
 Number of rows in the viewed array.
 
DNDS_DEVICE_CALLABLE rowsize RowSize () const
 Uniform row width for fixed layouts (asserts otherwise).
 
DNDS_DEVICE_CALLABLE rowsize RowSize (index iRow) const
 Per-row width. Handles CSR compressed and decompressed modes.
 
DNDS_DEVICE_CALLABLE rowsize RowSizeMax () const
 Maximum row width (TABLE_*Max only).
 
DNDS_DEVICE_CALLABLE rowsize RowSizeField () const
 "Logical" row-field width used by derived Eigen arrays; see Array::RowSizeField.
 
DNDS_DEVICE_CALLABLE rowsize RowSizeField (index iRow) const
 Per-row "field" size for CSR (= actual row width).
 
const T & at (index iRow, rowsize iCol) const
 Bounds-checked element read (not device-callable because CSR decompressed uses std::vector::at which throws on the host).
 
T & operator() (index iRow, rowsize iCol=0)
 2D indexed access (writable). See at.
 
const T & operator() (index iRow, rowsize iCol=0) const
 2D indexed access (read-only).
 
T * operator[] (index iRow)
 Raw row pointer. iRow == Size() is allowed for past-the-end queries (useful for computing buffer end in sweeps).
 
const T * operator[] (index iRow) const
 Const row pointer; see the non-const overload.
 
DNDS_DEVICE_CALLABLE T * data ()
 Raw pointer to the start of the flat data buffer.
 
DNDS_DEVICE_CALLABLE size_t DataSize () const
 Size of the flat data buffer in T elements.
 
DNDS_DEVICE_CALLABLE bool operator== (const self_type &R) const
 Pointer equality (two views referring to the same buffer).
 

Additional Inherited Members

- Static Public Member Functions inherited from DNDS::ArrayLayout< T, _row_size, _row_max, _align >
static constexpr DataLayout _GetDataLayout ()
 Deduce the DataLayout tag from the template parameters.
 
static std::string GetArrayName ()
 Human-readable type identifier including element typeid, sizes, and alignment.
 
static std::string GetArraySignature ()
 Compiler-independent identifier used by serializers to tag an array.
 
static std::string GetArraySignatureRelaxed ()
 Signature with _row_size / _row_max replaced by DynamicSize.
 
static std::tuple< int, int, int, int > ParseArraySignatureTuple (const std::string &v)
 Parse a signature string into (sizeof_T, row_size, row_max, align).
 
static bool ArraySignatureIsCompatible (const std::string &v)
 Whether a stored signature can be read into this array type.
 
- Static Public Attributes inherited from DNDS::ArrayLayout< T, _row_size, _row_max, _align >
static const rowsize al = _align
 
static const rowsize rs = _row_size
 
static const rowsize rm = _row_max
 
static const size_t sizeof_T = sizeof(value_type)
 
static const rowsize s_T = al == NoAlign ? sizeof_T : (sizeof_T / al + 1) * al
 
static const DataLayout _dataLayout = _GetDataLayout()
 
static const bool isCSR = _dataLayout == CSR
 
- Protected Types inherited from DNDS::ArrayView< T, _row_size, _row_max, _align >
using self_type = ArrayView< T, _row_size, _row_max, _align >
 
using t_Layout = ArrayLayout< T, _row_size, _row_max, _align >
 
using t_dataUncompressed = std::vector< std::vector< T > >
 
- Protected Member Functions inherited from DNDS::ArrayView< T, _row_size, _row_max, _align >
DNDS_DEVICE_CALLABLE rowsize RowSize_Compressed (index iRow) const
 
DNDS_DEVICE_CALLABLE const T & at_compressed (index iRow, rowsize iCol) const
 
DNDS_DEVICE_CALLABLE T * get_rowstart_pointer_compressed (index iRow)
 
- Protected Attributes inherited from DNDS::ArrayView< T, _row_size, _row_max, _align >
index _size
 
T * _data = nullptr
 
index _data_size = 0
 
std::conditional_t< _dataLayout==CSR, const index *, std::conditional_t< _dataLayout==TABLE_Max||_dataLayout==TABLE_StaticMax, const rowsize *, EmptyNoDefault > > _rowstart_or_rowsize = nullptr
 
bool _isCompressed = true
 
std::conditional_t< _dataLayout==TABLE_Max||_dataLayout==TABLE_Fixed, rowsize, EmptyNoDefault_row_size_dynamic = 0
 
std::conditional_t< _dataLayout==CSR, t_dataUncompressed *, EmptyNoDefault_p_dataUncompressed = nullptr
 

Detailed Description

template<DeviceBackend B, class real_T, int _n_row, int _n_col>
class DNDS::ArrayEigenUniMatrixBatchDeviceView< B, real_T, _n_row, _n_col >

Device-callable view onto ArrayEigenUniMatrixBatch rows.

operator()(i, j) returns an Eigen::Map<Matrix<real, _n_row, _n_col>> pointing at the j-th matrix of row i's batch. BatchSize(i) reports the batch count (not the raw CSR width).

Definition at line 38 of file ArrayEigenUniMatrixBatch_DeviceView.hpp.

Member Typedef Documentation

◆ t_self

template<DeviceBackend B, class real_T , int _n_row, int _n_col>
using DNDS::ArrayEigenUniMatrixBatchDeviceView< B, real_T, _n_row, _n_col >::t_self = ArrayEigenUniMatrixBatchDeviceView<B, real_T, _n_row, _n_col>

extra data!

Definition at line 64 of file ArrayEigenUniMatrixBatch_DeviceView.hpp.

Constructor & Destructor Documentation

◆ ArrayEigenUniMatrixBatchDeviceView()

template<DeviceBackend B, class real_T , int _n_row, int _n_col>
DNDS_DEVICE_CALLABLE DNDS::ArrayEigenUniMatrixBatchDeviceView< B, real_T, _n_row, _n_col >::ArrayEigenUniMatrixBatchDeviceView ( const t_base base_view,
int  n_row_dynamic,
int  n_col_dynamic,
int  n_m_size 
)
inline

Definition at line 68 of file ArrayEigenUniMatrixBatch_DeviceView.hpp.

Member Function Documentation

◆ BatchSize()

template<DeviceBackend B, class real_T , int _n_row, int _n_col>
DNDS_DEVICE_CALLABLE rowsize DNDS::ArrayEigenUniMatrixBatchDeviceView< B, real_T, _n_row, _n_col >::BatchSize ( index  i) const
inline

Definition at line 82 of file ArrayEigenUniMatrixBatch_DeviceView.hpp.

Here is the call graph for this function:

◆ Cols()

template<DeviceBackend B, class real_T , int _n_row, int _n_col>
DNDS_DEVICE_CALLABLE int DNDS::ArrayEigenUniMatrixBatchDeviceView< B, real_T, _n_row, _n_col >::Cols ( ) const
inline

Definition at line 73 of file ArrayEigenUniMatrixBatch_DeviceView.hpp.

Here is the caller graph for this function:

◆ MSize()

template<DeviceBackend B, class real_T , int _n_row, int _n_col>
DNDS_DEVICE_CALLABLE int DNDS::ArrayEigenUniMatrixBatchDeviceView< B, real_T, _n_row, _n_col >::MSize ( ) const
inline

Definition at line 74 of file ArrayEigenUniMatrixBatch_DeviceView.hpp.

Here is the caller graph for this function:

◆ operator()() [1/2]

template<DeviceBackend B, class real_T , int _n_row, int _n_col>
DNDS_DEVICE_CALLABLE t_EigenMap DNDS::ArrayEigenUniMatrixBatchDeviceView< B, real_T, _n_row, _n_col >::operator() ( index  i,
rowsize  j 
)
inline

Definition at line 94 of file ArrayEigenUniMatrixBatch_DeviceView.hpp.

Here is the call graph for this function:

◆ operator()() [2/2]

template<DeviceBackend B, class real_T , int _n_row, int _n_col>
DNDS_DEVICE_CALLABLE t_EigenMap_const DNDS::ArrayEigenUniMatrixBatchDeviceView< B, real_T, _n_row, _n_col >::operator() ( index  i,
rowsize  j 
) const
inline

Definition at line 101 of file ArrayEigenUniMatrixBatch_DeviceView.hpp.

Here is the call graph for this function:

◆ Rows()

template<DeviceBackend B, class real_T , int _n_row, int _n_col>
DNDS_DEVICE_CALLABLE int DNDS::ArrayEigenUniMatrixBatchDeviceView< B, real_T, _n_row, _n_col >::Rows ( ) const
inline

Definition at line 72 of file ArrayEigenUniMatrixBatch_DeviceView.hpp.

Here is the caller graph for this function:

◆ RowSize()

template<DeviceBackend B, class real_T , int _n_row, int _n_col>
DNDS_DEVICE_CALLABLE rowsize DNDS::ArrayEigenUniMatrixBatchDeviceView< B, real_T, _n_row, _n_col >::RowSize ( index  i) const
inline

Definition at line 87 of file ArrayEigenUniMatrixBatch_DeviceView.hpp.

Here is the call graph for this function:

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