|
DNDSR 0.1.0.dev1+gcd065ad
Distributed Numeric Data Structure for CFV
|
Non-owning, device-callable view onto an Array. More...
#include <ArrayBasic.hpp>
Classes | |
| class | RowView |
Non-owning view of a single row: {pointer, size}. More... | |
Public Member Functions | |
| 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). | |
Protected Types | |
| 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 | |
| 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 | |
| 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 |
Additional Inherited Members | |
Public Types inherited from DNDS::ArrayLayout< T, _row_size, _row_max, _align > | |
| using | value_type = T |
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 |
Non-owning, device-callable view onto an Array.
Captures pointers to the flat data buffer and the structural arrays (_rowstart_or_rowsize) plus the nested-vector pointer for CSR decompressed. It is the type responsible for actually implementing operator[] / operator() indexing across every layout, and is marked __host__ __device__ to work inside CUDA kernels.
Instances are typically produced by Array::view() and must not outlive the owning Array.
Definition at line 237 of file ArrayBasic.hpp.
|
protected |
Definition at line 242 of file ArrayBasic.hpp.
|
protected |
Definition at line 275 of file ArrayBasic.hpp.
|
protected |
Definition at line 245 of file ArrayBasic.hpp.
|
inline |
Construct a view from raw pointers. Intended for internal use by Array::view().
Definition at line 282 of file ArrayBasic.hpp.
|
inline |
Bounds-checked element read (not device-callable because CSR decompressed uses std::vector::at which throws on the host).
unsafe
Definition at line 461 of file ArrayBasic.hpp.
|
inlineprotected |
unsafe
unsafe
Definition at line 426 of file ArrayBasic.hpp.
|
inline |
Raw pointer to the start of the flat data buffer.
For CSR, requires compressed form. Device-callable.
Definition at line 549 of file ArrayBasic.hpp.
|
inline |
Size of the flat data buffer in T elements.
Definition at line 557 of file ArrayBasic.hpp.
|
inlineprotected |
unsafe
Definition at line 487 of file ArrayBasic.hpp.
|
inline |
Whether the underlying array is in the compressed (flat) form (always true for non-CSR).
Definition at line 315 of file ArrayBasic.hpp.
|
inline |
2D indexed access (writable). See at.
Definition at line 475 of file ArrayBasic.hpp.
|
inline |
2D indexed access (read-only).
Definition at line 481 of file ArrayBasic.hpp.
|
inline |
Pointer equality (two views referring to the same buffer).
Definition at line 567 of file ArrayBasic.hpp.
|
inline |
Raw row pointer. iRow == Size() is allowed for past-the-end queries (useful for computing buffer end in sweeps).
| iRow | Row index. |
unsafe
Definition at line 520 of file ArrayBasic.hpp.
|
inline |
Const row pointer; see the non-const overload.
Definition at line 542 of file ArrayBasic.hpp.
|
inline |
Uniform row width for fixed layouts (asserts otherwise).
Definition at line 328 of file ArrayBasic.hpp.
|
inline |
Per-row width. Handles CSR compressed and decompressed modes.
unsafe
Definition at line 373 of file ArrayBasic.hpp.
|
inlineprotected |
unsafe
unsafe
Definition at line 343 of file ArrayBasic.hpp.
|
inline |
"Logical" row-field width used by derived Eigen arrays; see Array::RowSizeField.
Definition at line 403 of file ArrayBasic.hpp.
|
inline |
Per-row "field" size for CSR (= actual row width).
Definition at line 416 of file ArrayBasic.hpp.
|
inline |
Maximum row width (TABLE_*Max only).
Definition at line 392 of file ArrayBasic.hpp.
|
inline |
Number of rows in the viewed array.
Definition at line 324 of file ArrayBasic.hpp.
|
protected |
Definition at line 264 of file ArrayBasic.hpp.
|
protected |
Definition at line 265 of file ArrayBasic.hpp.
|
protected |
Definition at line 271 of file ArrayBasic.hpp.
|
protected |
Definition at line 276 of file ArrayBasic.hpp.
|
protected |
Definition at line 273 of file ArrayBasic.hpp.
|
protected |
Definition at line 269 of file ArrayBasic.hpp.
|
protected |
Definition at line 263 of file ArrayBasic.hpp.