19 using NestedType = TMatrix;
20 using ScalarType = NewType;
21 using SelfType = CastView<NestedType, NewType>;
23 static auto constexpr kRows = NestedType::kRows;
24 static auto constexpr kCols = NestedType::kCols;
25 static bool constexpr bRowMajor = NestedType::bRowMajor;
27 PBAT_HOST_DEVICE CastView(NestedType
const& _A) : A(_A) {}
29 PBAT_HOST_DEVICE ScalarType operator()(
auto i,
auto j)
const
31 return static_cast<ScalarType
>(A(i, j));
35 PBAT_HOST_DEVICE ScalarType operator()(
auto i)
const {
return (*
this)(i % kRows, i / kRows); }
36 PBAT_HOST_DEVICE ScalarType operator[](
auto i)
const {
return (*
this)(i); }
38 PBAT_MINI_READ_API(SelfType)