17 template <FieldEntryLayout layout>
27 : m_buffer(
const_cast<std::byte*
>(buffer))
36 MUDA_GENERIC T& cast(std::byte* data);
38 MUDA_GENERIC
const T& cast(
const std::byte* data)
const;
41 MUDA_GENERIC uint32_t aosoa_inner_index(
int i)
const;
42 MUDA_GENERIC std::byte* aosoa_struct_begin(
int i)
const;
43 MUDA_GENERIC std::byte* aosoa_elem_addr(
int i)
const;
44 MUDA_GENERIC std::byte* aosoa_elem_addr(
int i,
int j)
const;
45 MUDA_GENERIC std::byte* aosoa_elem_addr(
int i,
int row_index,
int col_index)
const;
48 MUDA_GENERIC std::byte* soa_elem_addr(
int i)
const;
49 MUDA_GENERIC std::byte* soa_elem_addr(
int i,
int j)
const;
50 MUDA_GENERIC std::byte* soa_elem_addr(
int i,
int row_index,
int col_index)
const;
53 MUDA_GENERIC std::byte* aos_struct_begin(
int i)
const;
54 MUDA_GENERIC std::byte* aos_elem_addr(
int i)
const;
55 MUDA_GENERIC std::byte* aos_elem_addr(
int i,
int j)
const;
56 MUDA_GENERIC std::byte* aos_elem_addr(
int i,
int row_index,
int col_index)
const;
59 template <FieldEntryLayout Layout>
60 MUDA_GENERIC std::byte* elem_addr(
int i)
const;
61 template <
typename T, FieldEntryLayout Layout>
62 MUDA_GENERIC T* data(
int i)
const
64 return reinterpret_cast<T*
>(elem_addr<Layout>(i));
67 template <FieldEntryLayout Layout>
68 MUDA_GENERIC std::byte* elem_addr(
int i,
int j)
const;
69 template <
typename T, FieldEntryLayout Layout>
70 MUDA_GENERIC T* data(
int i,
int j)
const
72 return reinterpret_cast<T*
>(elem_addr<Layout>(i, j));
75 template <FieldEntryLayout Layout>
76 MUDA_GENERIC std::byte* elem_addr(
int i,
int row_index,
int col_index)
const;
77 template <
typename T, FieldEntryLayout Layout>
78 MUDA_GENERIC T* data(
int i,
int row_index,
int col_index)
const
80 return reinterpret_cast<T*
>(elem_addr<Layout>(i, row_index, col_index));
83 MUDA_GENERIC
auto layout_info()
const {
return m_info.layout_info; }
84 MUDA_GENERIC
auto layout()
const {
return m_info.layout_info.layout(); }
85 MUDA_GENERIC
auto count()
const {
return m_info.elem_count; }
86 MUDA_GENERIC
auto elem_byte_size()
const {
return m_info.elem_byte_size; }
87 MUDA_GENERIC
auto shape()
const {
return m_info.shape; }
88 MUDA_GENERIC
auto struct_stride()
const {
return m_info.struct_stride; }
89 MUDA_GENERIC
auto name()
const {
return m_name.auto_select(); }
90 MUDA_GENERIC
auto name_string_pointer()
const {
return m_name; }
93 mutable std::byte* m_buffer =
nullptr;
Definition field_entry_base_data.h:7
Definition field_entry.h:19
Definition field_entry_core.h:15