Destructuring field binding
Compare changes
- Stephan Seitz authored
DestructuringBindingsForFieldClass defines all field-related variables in its subordinated block. However, it leaves a TypedSymbol of type 'Field' for each field undefined. By that trick we can generate kernels that accept structs as kernelparameters. Either to include a pystencils specific Field struct of the following definition: ```cpp template<DTYPE_T, DIMENSION> struct Field { DTYPE_T* data; std::array<DTYPE_T, DIMENSION> shape; std::array<DTYPE_T, DIMENSION> stride; } or to be able to destructure user defined types like `pybind11::array`, `at::Tensor`, `tensorflow::Tensor` ```
+ 33
− 2
@@ -11,6 +13,12 @@ from pystencils.data_types import (PointerType, VectorType, address_of,
@@ -11,6 +13,12 @@ from pystencils.data_types import (PointerType, VectorType, address_of,
@@ -255,6 +263,29 @@ class CBackend:
@@ -255,6 +263,29 @@ class CBackend:
# ------------------------------------------ Helper function & classes -------------------------------------------------