1""" 2Matching points on the grid to specific grids 3 4 5 6""" 7 8 9import numpy as np 10 11cimport cython 12cimport grid_visitors 13cimport numpy as np 14from grid_visitors cimport ( 15 GridTreeNode, 16 GridTreeNodePadded, 17 GridVisitorData, 18 grid_visitor_function, 19) 20from libc.stdlib cimport free, malloc 21 22from yt.geometry.selection_routines cimport SelectorObject, _ensure_code 23from yt.utilities.lib.bitarray cimport bitarray 24from yt.utilities.lib.fp_utils cimport iclip 25 26 27cdef class GridTree: 28 cdef GridTreeNode *grids 29 cdef GridTreeNode *root_grids 30 cdef int num_grids 31 cdef int num_root_grids 32 cdef int num_leaf_grids 33 cdef public bitarray mask 34 cdef void setup_data(self, GridVisitorData *data) 35 cdef void visit_grids(self, GridVisitorData *data, 36 grid_visitor_function *func, 37 SelectorObject selector) 38 cdef void recursively_visit_grid(self, 39 GridVisitorData *data, 40 grid_visitor_function *func, 41 SelectorObject selector, 42 GridTreeNode *grid, 43 np.uint8_t *buf = ?) 44 45cdef class MatchPointsToGrids: 46 47 cdef int num_points 48 cdef np.float64_t *xp 49 cdef np.float64_t *yp 50 cdef np.float64_t *zp 51 cdef GridTree tree 52 cdef np.int64_t *point_grids 53 cdef np.uint8_t check_position(self, 54 np.int64_t pt_index, 55 np.float64_t x, 56 np.float64_t y, 57 np.float64_t z, 58 GridTreeNode *grid) 59 60 cdef np.uint8_t is_in_grid(self, 61 np.float64_t x, 62 np.float64_t y, 63 np.float64_t z, 64 GridTreeNode *grid) 65 66cdef extern from "platform_dep.h" nogil: 67 double rint(double x) 68