| 91 | #define Float typename Solver::Float |
| 92 | #define Vector typename Solver::Vector |
| 93 | std::function<py::array_t<Float>(Solver &)> numpy_view(std::shared_ptr<std::vector<Vector>> Solver::*field) { |
| 94 | #undef Vector |
| 95 | #undef Float |
| 96 | const size_t dim = Solver::dim; |
| 97 | typedef typename Solver::Float Float; |
| 98 | |
| 99 | return [field](Solver &solver) { |
| 100 | Float *data = reinterpret_cast<Float *>((solver.*field)->data()); |
| 101 | py::capsule dummy(data, [](void *ptr) {}); |
| 102 | return py::array_t<Float>({(solver.*field)->size(), dim}, |
| 103 | {sizeof(Float) * dim, sizeof(Float)}, |
| 104 | data, dummy); |
| 105 | }; |
| 106 | } |
| 107 | |
| 108 | // Class interface |
| 109 | template<class Index = size_t> |
no outgoing calls
no test coverage detected