Lines Matching refs:arr
78 using arr = py::array;
82 template<typename... Ix> arr data(const arr& a, Ix... index) {
83 return arr(a.nbytes() - a.offset_at(index...), (const uint8_t *) a.data(index...));
86 template<typename... Ix> arr data_t(const arr_t& a, Ix... index) {
87 return arr(a.size() - a.index_at(index...), a.data(index...));
90 template<typename... Ix> arr& mutate_data(arr& a, Ix... index) {
104 template<typename... Ix> ssize_t index_at(const arr& a, Ix... idx) { return a.index_at(idx...); }
106 template<typename... Ix> ssize_t offset_at(const arr& a, Ix... idx) { return a.offset_at(idx...); }
160 sm.def("ndim", [](const arr& a) { return a.ndim(); });
161 sm.def("shape", [](const arr& a) { return arr(a.ndim(), a.shape()); });
162 sm.def("shape", [](const arr& a, ssize_t dim) { return a.shape(dim); });
163 sm.def("strides", [](const arr& a) { return arr(a.ndim(), a.strides()); });
164 sm.def("strides", [](const arr& a, ssize_t dim) { return a.strides(dim); });
165 sm.def("writeable", [](const arr& a) { return a.writeable(); });
166 sm.def("size", [](const arr& a) { return a.size(); });
167 sm.def("itemsize", [](const arr& a) { return a.itemsize(); });
168 sm.def("nbytes", [](const arr& a) { return a.nbytes(); });
169 sm.def("owndata", [](const arr& a) { return a.owndata(); });
172 def_index_fn(index_at, const arr&);
174 def_index_fn(offset_at, const arr&);
177 def_index_fn(data, const arr&);
180 def_index_fn(mutate_data, arr&);