6#include "../DeviceView.hpp"
9#include "Eigen/src/Core/util/Constants.h"
24 template <DeviceBackend B,
class real_T, rowsize _vec_size = 1, rowsize _row_max = _vec_size, rowsize _align = NoAlign>
41 std::conditional_t<std::is_const_v<real_T>,
43 Eigen::Map<t_EigenVector, Eigen::Unaligned>>;
Core type aliases, constants, and metaprogramming utilities for the DNDS framework.
#define DNDS_DEVICE_TRIVIAL_COPY_DEFINE(T, T_Self)
#define DNDS_DEVICE_CALLABLE
Device memory abstraction layer with backend-specific storage and factory creation.
Non-owning device-callable view of an Array, specialised per DeviceBackend.
Device-callable view onto ArrayEigenVector rows.
Eigen::Matrix< std::remove_cv_t< real_T >, RowSize_To_EigenSize(_vec_size), 1, Eigen::DontAlign|Eigen::ColMajor, RowSize_To_EigenSize(_row_max), 1 > t_EigenVector
std::conditional_t< std::is_const_v< real_T >, t_EigenMap_Const, Eigen::Map< t_EigenVector, Eigen::Unaligned > > t_EigenMap
DNDS_DEVICE_CALLABLE t_EigenMap operator[](index i)
DNDS_DEVICE_CALLABLE t_EigenMap_Const operator[](index i) const
Eigen::Map< const t_EigenVector, Eigen::Unaligned > t_EigenMap_Const
T * operator[](index iRow)
Raw row pointer. iRow == Size() is allowed for past-the-end queries (useful for computing buffer end ...
DNDS_DEVICE_CALLABLE rowsize RowSize() const
Uniform row width for fixed layouts (asserts otherwise).
the host side operators are provided as implemented
constexpr int RowSize_To_EigenSize(rowsize rs)
Convert a rowsize constant to the corresponding Eigen compile-time size. Fixed >= 0 -> the value; Dyn...
int64_t index
Global row / DOF index type (signed 64-bit; handles multi-billion-cell meshes).