# HG changeset patch # User Stephen Skory # Date 1247721123 25200 # Branch hopwrap # Node ID 07b9df97f3e28a1392836104889d84029173a64c # Parent abd1d707fd2b9ec045adce896e079aff5eb8504e Adding functions to ckdtree.pyx for chainHOP. diff -r abd1d707fd2b9ec045adce896e079aff5eb8504e -r 07b9df97f3e28a1392836104889d84029173a64c yt/extensions/spatial/ckdtree.c --- a/yt/extensions/spatial/ckdtree.c Wed Jul 15 19:08:38 2009 -0700 +++ b/yt/extensions/spatial/ckdtree.c Wed Jul 15 22:12:03 2009 -0700 @@ -1,4 +1,4 @@ -/* Generated by Cython 0.11.2 on Wed Jul 15 19:06:02 2009 */ +/* Generated by Cython 0.11.2 on Wed Jul 15 22:11:30 2009 */ #define PY_SSIZE_T_CLEAN #include "Python.h" @@ -372,6 +372,7 @@ } static void __Pyx_RaiseBufferIndexError(int axis); /*proto*/ #define __Pyx_BufPtrStrided2d(type, buf, i0, s0, i1, s1) (type)((char*)buf + i0 * s0 + i1 * s1) +#define __Pyx_BufPtrStrided1d(type, buf, i0, s0) (type)((char*)buf + i0 * s0) #if PY_MAJOR_VERSION < 3 static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags); static void __Pyx_ReleaseBuffer(Py_buffer *view); @@ -837,7 +838,7 @@ static PyTypeObject *__pyx_ptype_2yt_10extensions_7spatial_7ckdtree_cKDTree = 0; static double __pyx_v_2yt_10extensions_7spatial_7ckdtree_infinity; -static double __pyx_k_32; +static double __pyx_k_33; static INLINE PyObject *__pyx_f_2yt_10extensions_7spatial_7ckdtree_heapcreate(struct __pyx_t_2yt_10extensions_7spatial_7ckdtree_heap *, int); /*proto*/ static INLINE PyObject *__pyx_f_2yt_10extensions_7spatial_7ckdtree_heapdestroy(struct __pyx_t_2yt_10extensions_7spatial_7ckdtree_heap *); /*proto*/ static INLINE PyObject *__pyx_f_2yt_10extensions_7spatial_7ckdtree_heapresize(struct __pyx_t_2yt_10extensions_7spatial_7ckdtree_heap *, int); /*proto*/ @@ -858,6 +859,7 @@ /* Implementation of yt.extensions.spatial.ckdtree */ static PyObject *__pyx_int_0; static PyObject *__pyx_int_neg_1; +static PyObject *__pyx_int_3; static char __pyx_k___main__[] = "__main__"; static PyObject *__pyx_kp___main__; static char __pyx_k___init__[] = "__init__"; @@ -866,6 +868,10 @@ static PyObject *__pyx_kp___dealloc__; static char __pyx_k_query[] = "query"; static PyObject *__pyx_kp_query; +static char __pyx_k_chainHOP_get_dens[] = "chainHOP_get_dens"; +static PyObject *__pyx_kp_chainHOP_get_dens; +static char __pyx_k_31[] = "find_chunk_nearest_neighbors"; +static PyObject *__pyx_kp_31; static char __pyx_k_data[] = "data"; static PyObject *__pyx_kp_data; static char __pyx_k_leafsize[] = "leafsize"; @@ -878,10 +884,20 @@ static PyObject *__pyx_kp_eps; static char __pyx_k_p[] = "p"; static PyObject *__pyx_kp_p; -static char __pyx_k_31[] = "distance_upper_bound"; -static PyObject *__pyx_kp_31; +static char __pyx_k_32[] = "distance_upper_bound"; +static PyObject *__pyx_kp_32; static char __pyx_k_period[] = "period"; static PyObject *__pyx_kp_period; +static char __pyx_k_mass[] = "mass"; +static PyObject *__pyx_kp_mass; +static char __pyx_k_num_neighbors[] = "num_neighbors"; +static PyObject *__pyx_kp_num_neighbors; +static char __pyx_k_nMerge[] = "nMerge"; +static PyObject *__pyx_kp_nMerge; +static char __pyx_k_start[] = "start"; +static PyObject *__pyx_kp_start; +static char __pyx_k_finish[] = "finish"; +static PyObject *__pyx_kp_finish; static char __pyx_k_numpy[] = "numpy"; static PyObject *__pyx_kp_numpy; static char __pyx_k_np[] = "np"; @@ -910,8 +926,8 @@ static PyObject *__pyx_kp_amin; static char __pyx_k_arange[] = "arange"; static PyObject *__pyx_kp_arange; -static char __pyx_k_35[] = "int32"; -static PyObject *__pyx_kp_35; +static char __pyx_k_36[] = "int32"; +static PyObject *__pyx_kp_36; static char __pyx_k_asarray[] = "asarray"; static PyObject *__pyx_kp_asarray; static char __pyx_k_astype[] = "astype"; @@ -928,18 +944,35 @@ static PyObject *__pyx_kp_empty; static char __pyx_k_fill[] = "fill"; static PyObject *__pyx_kp_fill; -static char __pyx_k_38[] = "i"; -static PyObject *__pyx_kp_38; +static char __pyx_k_39[] = "i"; +static PyObject *__pyx_kp_39; +static char __pyx_k_40[] = "i"; +static PyObject *__pyx_kp_40; +static char __pyx_k_41[] = "i"; +static PyObject *__pyx_kp_41; +static char __pyx_k_emtpy[] = "emtpy"; +static PyObject *__pyx_kp_emtpy; +static char __pyx_k_ascontinguousarray[] = "ascontinguousarray"; +static PyObject *__pyx_kp_ascontinguousarray; +static char __pyx_k_max[] = "max"; +static PyObject *__pyx_kp_max; +static char __pyx_k_sqrt[] = "sqrt"; +static PyObject *__pyx_kp_sqrt; +static char __pyx_k_42[] = "i"; +static PyObject *__pyx_kp_42; +static char __pyx_k_43[] = "i"; +static PyObject *__pyx_kp_43; static PyObject *__pyx_builtin_ValueError; static PyObject *__pyx_builtin_range; -static PyObject *__pyx_kp_33; -static char __pyx_k_33[] = "Heap containing %d items cannot be resized to %d"; +static PyObject *__pyx_builtin_max; static PyObject *__pyx_kp_34; -static char __pyx_k_34[] = "leafsize must be at least 1"; -static PyObject *__pyx_kp_36; +static char __pyx_k_34[] = "Heap containing %d items cannot be resized to %d"; +static PyObject *__pyx_kp_35; +static char __pyx_k_35[] = "leafsize must be at least 1"; static PyObject *__pyx_kp_37; -static char __pyx_k_36[] = "x must consist of vectors of length %d but has shape %s"; -static char __pyx_k_37[] = "Only p-norms with 1<=p<=infinity permitted"; +static PyObject *__pyx_kp_38; +static char __pyx_k_37[] = "x must consist of vectors of length %d but has shape %s"; +static char __pyx_k_38[] = "Only p-norms with 1<=p<=infinity permitted"; static PyObject *__pyx_int_15; static char __pyx_k___getbuffer__[] = "__getbuffer__"; static PyObject *__pyx_kp___getbuffer__; @@ -1110,7 +1143,7 @@ __Pyx_GIVEREF(__pyx_t_3); __pyx_t_2 = 0; __pyx_t_3 = 0; - __pyx_t_3 = PyNumber_Remainder(__pyx_kp_33, ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyNumber_Remainder(__pyx_kp_34, ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -2224,9 +2257,9 @@ */ __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); - __Pyx_INCREF(__pyx_kp_34); - PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_34); - __Pyx_GIVEREF(__pyx_kp_34); + __Pyx_INCREF(__pyx_kp_35); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_35); + __Pyx_GIVEREF(__pyx_kp_35); __pyx_t_2 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -2355,7 +2388,7 @@ __Pyx_GOTREF(((PyObject *)__pyx_2)); __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_1); - __pyx_t_7 = PyObject_GetAttr(__pyx_1, __pyx_kp_35); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_7 = PyObject_GetAttr(__pyx_1, __pyx_kp_36); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_1); __pyx_1 = 0; if (PyDict_SetItem(__pyx_2, __pyx_kp_dtype, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -4546,7 +4579,7 @@ long __pyx_t_16; long __pyx_t_17; long __pyx_t_18; - static PyObject **__pyx_pyargnames[] = {&__pyx_kp_x,&__pyx_kp_k,&__pyx_kp_eps,&__pyx_kp_p,&__pyx_kp_31,&__pyx_kp_period,0}; + static PyObject **__pyx_pyargnames[] = {&__pyx_kp_x,&__pyx_kp_k,&__pyx_kp_eps,&__pyx_kp_p,&__pyx_kp_32,&__pyx_kp_period,0}; __Pyx_SetupRefcountContext("query"); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); @@ -4584,7 +4617,7 @@ } case 4: if (kw_args > 1) { - PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_kp_31); + PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_kp_32); if (unlikely(value)) { values[4] = value; kw_args--; } } case 5: @@ -4615,14 +4648,14 @@ if (values[4]) { __pyx_v_distance_upper_bound = __pyx_PyFloat_AsDouble(values[4]); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } else { - __pyx_v_distance_upper_bound = __pyx_k_32; + __pyx_v_distance_upper_bound = __pyx_k_33; } __pyx_v_period = values[5]; } else { __pyx_v_k = 1; __pyx_v_eps = ((double)0); __pyx_v_p = ((double)2); - __pyx_v_distance_upper_bound = __pyx_k_32; + __pyx_v_distance_upper_bound = __pyx_k_33; __pyx_v_period = Py_None; switch (PyTuple_GET_SIZE(__pyx_args)) { case 6: __pyx_v_period = PyTuple_GET_ITEM(__pyx_args, 5); @@ -4906,7 +4939,7 @@ __Pyx_GIVEREF(__pyx_t_2); __pyx_t_5 = 0; __pyx_t_2 = 0; - __pyx_t_2 = PyNumber_Remainder(__pyx_kp_36, ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyNumber_Remainder(__pyx_kp_37, ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -4943,9 +4976,9 @@ */ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 608; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); - __Pyx_INCREF(__pyx_kp_37); - PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_37); - __Pyx_GIVEREF(__pyx_kp_37); + __Pyx_INCREF(__pyx_kp_38); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_38); + __Pyx_GIVEREF(__pyx_kp_38); __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 608; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; @@ -5302,7 +5335,7 @@ __pyx_t_5 = 0; __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 620; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_1)); - if (PyDict_SetItem(__pyx_1, __pyx_kp_dtype, __pyx_kp_38) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 620; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (PyDict_SetItem(__pyx_1, __pyx_kp_dtype, __pyx_kp_39) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 620; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_1)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 620; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -5575,6 +5608,7 @@ * else: * return np.reshape(dd,retshape+(k,)), np.reshape(ii,retshape+(k,)) # <<<<<<<<<<<<<< * + * def chainHOP_get_dens(cKDTree self, object mass, int num_neighbors=65, \ */ __Pyx_XDECREF(__pyx_r); __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L1_error;} @@ -5686,6 +5720,1649 @@ return __pyx_r; } +/* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":643 + * return np.reshape(dd,retshape+(k,)), np.reshape(ii,retshape+(k,)) + * + * def chainHOP_get_dens(cKDTree self, object mass, int num_neighbors=65, \ # <<<<<<<<<<<<<< + * int nMerge=6): + * """ query the tree for the nearest neighbors, to get the density + */ + +static PyObject *__pyx_pf_2yt_10extensions_7spatial_7ckdtree_7cKDTree_chainHOP_get_dens(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_2yt_10extensions_7spatial_7ckdtree_7cKDTree_chainHOP_get_dens[] = " query the tree for the nearest neighbors, to get the density\n of particles for chainHOP.\n \n Parameters:\n ===========\n \n mass: A array-like list of the masses of the particles, in the same\n order as the data that went into building the kd tree.\n \n num_neighbors: Optional, the number of neighbors to search for and to\n use in the density calculation. Default is 65, and is probably what\n one should stick with.\n \n nMerge: The number of nearest neighbor tags to return for each particle.\n \n Returns:\n ========\n \n dens: An array of the densities for each particle, in the same order\n as the input data.\n \n tags: A two-dimensional array of the indexes, nMerge nearest neighbors\n for each particle.\n \n "; +static PyObject *__pyx_pf_2yt_10extensions_7spatial_7ckdtree_7cKDTree_chainHOP_get_dens(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_mass = 0; + int __pyx_v_num_neighbors; + int __pyx_v_nMerge; + PyArrayObject *__pyx_v_tags; + PyArrayObject *__pyx_v_dens; + PyArrayObject *__pyx_v_query; + PyArrayObject *__pyx_v_tags_temp; + PyArrayObject *__pyx_v_dist_temp; + int __pyx_v_i; + int __pyx_v_pj; + int __pyx_v_j; + double __pyx_v_ih2; + double __pyx_v_fNorm; + double __pyx_v_r2; + double __pyx_v_rs; + Py_buffer __pyx_bstruct_tags; + Py_ssize_t __pyx_bstride_0_tags = 0; + Py_ssize_t __pyx_bstride_1_tags = 0; + Py_ssize_t __pyx_bshape_0_tags = 0; + Py_ssize_t __pyx_bshape_1_tags = 0; + Py_buffer __pyx_bstruct_dens; + Py_ssize_t __pyx_bstride_0_dens = 0; + Py_ssize_t __pyx_bshape_0_dens = 0; + Py_buffer __pyx_bstruct_tags_temp; + Py_ssize_t __pyx_bstride_0_tags_temp = 0; + Py_ssize_t __pyx_bshape_0_tags_temp = 0; + Py_buffer __pyx_bstruct_query; + Py_ssize_t __pyx_bstride_0_query = 0; + Py_ssize_t __pyx_bshape_0_query = 0; + Py_buffer __pyx_bstruct_dist_temp; + Py_ssize_t __pyx_bstride_0_dist_temp = 0; + Py_ssize_t __pyx_bshape_0_dist_temp = 0; + PyObject *__pyx_r = NULL; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyArrayObject *__pyx_t_5 = NULL; + int __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyArrayObject *__pyx_t_10 = NULL; + PyArrayObject *__pyx_t_11 = NULL; + PyArrayObject *__pyx_t_12 = NULL; + PyArrayObject *__pyx_t_13 = NULL; + int __pyx_t_14; + double __pyx_t_15; + int __pyx_t_16; + int __pyx_t_17; + int __pyx_t_18; + int __pyx_t_19; + int __pyx_t_20; + int __pyx_t_21; + static PyObject **__pyx_pyargnames[] = {&__pyx_kp_mass,&__pyx_kp_num_neighbors,&__pyx_kp_nMerge,0}; + __Pyx_SetupRefcountContext("chainHOP_get_dens"); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); + PyObject* values[3] = {0,0,0}; + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 0: + values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_mass); + if (likely(values[0])) kw_args--; + else goto __pyx_L5_argtuple_error; + case 1: + if (kw_args > 1) { + PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_kp_num_neighbors); + if (unlikely(value)) { values[1] = value; kw_args--; } + } + case 2: + if (kw_args > 1) { + PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_kp_nMerge); + if (unlikely(value)) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "chainHOP_get_dens") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + __pyx_v_mass = values[0]; + if (values[1]) { + __pyx_v_num_neighbors = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_num_neighbors == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } else { + __pyx_v_num_neighbors = 65; + } + if (values[2]) { + __pyx_v_nMerge = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_nMerge == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 644; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } else { + __pyx_v_nMerge = 6; + } + } else { + __pyx_v_num_neighbors = 65; + __pyx_v_nMerge = 6; + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: __pyx_v_nMerge = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 2)); if (unlikely((__pyx_v_nMerge == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 644; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + case 2: __pyx_v_num_neighbors = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_num_neighbors == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + case 1: __pyx_v_mass = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("chainHOP_get_dens", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_L3_error:; + __Pyx_AddTraceback("yt.extensions.spatial.ckdtree.cKDTree.chainHOP_get_dens"); + return NULL; + __pyx_L4_argument_unpacking_done:; + __Pyx_INCREF(__pyx_v_mass); + __pyx_v_tags = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); + __pyx_v_dens = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); + __pyx_v_query = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); + __pyx_v_tags_temp = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); + __pyx_v_dist_temp = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); + __pyx_bstruct_tags.buf = NULL; + __pyx_bstruct_dens.buf = NULL; + __pyx_bstruct_query.buf = NULL; + __pyx_bstruct_tags_temp.buf = NULL; + __pyx_bstruct_dist_temp.buf = NULL; + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":679 + * cdef double ih2, fNorm, r2, rs + * + * tags = np.empty((self.n,nMerge), dtype=np.float) # <<<<<<<<<<<<<< + * dens = np.empty(self.n, dtype='i') + * query = np.empty(self.m, dtype=np.float) + */ + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 679; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_1); + __pyx_t_1 = PyObject_GetAttr(__pyx_1, __pyx_kp_empty); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 679; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_t_2 = PyInt_FromLong(((struct __pyx_obj_2yt_10extensions_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->n); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 679; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyInt_FromLong(__pyx_v_nMerge); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 679; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 679; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 679; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_3)); + PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_4)); + __Pyx_GIVEREF(((PyObject *)__pyx_t_4)); + __pyx_t_4 = 0; + __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 679; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_1)); + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 679; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_2); + __pyx_t_4 = PyObject_GetAttr(__pyx_2, __pyx_kp_float); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 679; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_2); __pyx_2 = 0; + if (PyDict_SetItem(__pyx_1, __pyx_kp_dtype, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 679; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 679; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; + __Pyx_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0; + if (!(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 679; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_5 = ((PyArrayObject *)__pyx_t_4); + { + __Pyx_BufFmt_StackElem __pyx_stack[1]; + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_tags); + __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_tags, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); + if (unlikely(__pyx_t_6 < 0)) { + PyErr_Fetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_tags, (PyObject*)__pyx_v_tags, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { + Py_XDECREF(__pyx_t_7); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9); + __Pyx_RaiseBufferFallbackError(); + } else { + PyErr_Restore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + } + } + __pyx_bstride_0_tags = __pyx_bstruct_tags.strides[0]; __pyx_bstride_1_tags = __pyx_bstruct_tags.strides[1]; + __pyx_bshape_0_tags = __pyx_bstruct_tags.shape[0]; __pyx_bshape_1_tags = __pyx_bstruct_tags.shape[1]; + if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 679; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + } + __pyx_t_5 = 0; + __Pyx_DECREF(((PyObject *)__pyx_v_tags)); + __pyx_v_tags = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":680 + * + * tags = np.empty((self.n,nMerge), dtype=np.float) + * dens = np.empty(self.n, dtype='i') # <<<<<<<<<<<<<< + * query = np.empty(self.m, dtype=np.float) + * tags_temp = np.empty(num_neighbors, dtype='i') + */ + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_2); + __pyx_t_4 = PyObject_GetAttr(__pyx_2, __pyx_kp_empty); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_t_3 = PyInt_FromLong(((struct __pyx_obj_2yt_10extensions_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->n); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_3); + __pyx_t_3 = 0; + __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_1)); + if (PyDict_SetItem(__pyx_1, __pyx_kp_dtype, __pyx_kp_40) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyEval_CallObjectWithKeywords(__pyx_t_4, ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; + __Pyx_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0; + if (!(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_10 = ((PyArrayObject *)__pyx_t_3); + { + __Pyx_BufFmt_StackElem __pyx_stack[1]; + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_dens); + __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_dens, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); + if (unlikely(__pyx_t_6 < 0)) { + PyErr_Fetch(&__pyx_t_9, &__pyx_t_8, &__pyx_t_7); + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_dens, (PyObject*)__pyx_v_dens, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { + Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_7); + __Pyx_RaiseBufferFallbackError(); + } else { + PyErr_Restore(__pyx_t_9, __pyx_t_8, __pyx_t_7); + } + } + __pyx_bstride_0_dens = __pyx_bstruct_dens.strides[0]; + __pyx_bshape_0_dens = __pyx_bstruct_dens.shape[0]; + if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + } + __pyx_t_10 = 0; + __Pyx_DECREF(((PyObject *)__pyx_v_dens)); + __pyx_v_dens = ((PyArrayObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":681 + * tags = np.empty((self.n,nMerge), dtype=np.float) + * dens = np.empty(self.n, dtype='i') + * query = np.empty(self.m, dtype=np.float) # <<<<<<<<<<<<<< + * tags_temp = np.empty(num_neighbors, dtype='i') + * dist_temp = np.emtpy(num_neighbors, dtype=np.float) + */ + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_2); + __pyx_t_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_empty); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_2yt_10extensions_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->m); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __pyx_t_1 = 0; + __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_1)); + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_2); + __pyx_t_1 = PyObject_GetAttr(__pyx_2, __pyx_kp_float); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_2); __pyx_2 = 0; + if (PyDict_SetItem(__pyx_1, __pyx_kp_dtype, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyEval_CallObjectWithKeywords(__pyx_t_3, ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; + __Pyx_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0; + if (!(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_11 = ((PyArrayObject *)__pyx_t_1); + { + __Pyx_BufFmt_StackElem __pyx_stack[1]; + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_query); + __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_query, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); + if (unlikely(__pyx_t_6 < 0)) { + PyErr_Fetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_query, (PyObject*)__pyx_v_query, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { + Py_XDECREF(__pyx_t_7); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9); + __Pyx_RaiseBufferFallbackError(); + } else { + PyErr_Restore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + } + } + __pyx_bstride_0_query = __pyx_bstruct_query.strides[0]; + __pyx_bshape_0_query = __pyx_bstruct_query.shape[0]; + if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + } + __pyx_t_11 = 0; + __Pyx_DECREF(((PyObject *)__pyx_v_query)); + __pyx_v_query = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":682 + * dens = np.empty(self.n, dtype='i') + * query = np.empty(self.m, dtype=np.float) + * tags_temp = np.empty(num_neighbors, dtype='i') # <<<<<<<<<<<<<< + * dist_temp = np.emtpy(num_neighbors, dtype=np.float) + * # Need to start out with zeros before we start adding to it. + */ + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 682; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_2); + __pyx_t_1 = PyObject_GetAttr(__pyx_2, __pyx_kp_empty); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 682; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_t_4 = PyInt_FromLong(__pyx_v_num_neighbors); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 682; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 682; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_3)); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_4); + __pyx_t_4 = 0; + __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 682; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_1)); + if (PyDict_SetItem(__pyx_1, __pyx_kp_dtype, __pyx_kp_41) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 682; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 682; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; + __Pyx_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0; + if (!(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 682; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_12 = ((PyArrayObject *)__pyx_t_4); + { + __Pyx_BufFmt_StackElem __pyx_stack[1]; + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_tags_temp); + __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_tags_temp, (PyObject*)__pyx_t_12, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); + if (unlikely(__pyx_t_6 < 0)) { + PyErr_Fetch(&__pyx_t_9, &__pyx_t_8, &__pyx_t_7); + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_tags_temp, (PyObject*)__pyx_v_tags_temp, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { + Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_7); + __Pyx_RaiseBufferFallbackError(); + } else { + PyErr_Restore(__pyx_t_9, __pyx_t_8, __pyx_t_7); + } + } + __pyx_bstride_0_tags_temp = __pyx_bstruct_tags_temp.strides[0]; + __pyx_bshape_0_tags_temp = __pyx_bstruct_tags_temp.shape[0]; + if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 682; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + } + __pyx_t_12 = 0; + __Pyx_DECREF(((PyObject *)__pyx_v_tags_temp)); + __pyx_v_tags_temp = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":683 + * query = np.empty(self.m, dtype=np.float) + * tags_temp = np.empty(num_neighbors, dtype='i') + * dist_temp = np.emtpy(num_neighbors, dtype=np.float) # <<<<<<<<<<<<<< + * # Need to start out with zeros before we start adding to it. + * dens.fill(0.0) + */ + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_2); + __pyx_t_4 = PyObject_GetAttr(__pyx_2, __pyx_kp_emtpy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_t_3 = PyInt_FromLong(__pyx_v_num_neighbors); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_3); + __pyx_t_3 = 0; + __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_1)); + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_2); + __pyx_t_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_float); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_2); __pyx_2 = 0; + if (PyDict_SetItem(__pyx_1, __pyx_kp_dtype, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = PyEval_CallObjectWithKeywords(__pyx_t_4, ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; + __Pyx_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0; + if (!(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_13 = ((PyArrayObject *)__pyx_t_3); + { + __Pyx_BufFmt_StackElem __pyx_stack[1]; + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_dist_temp); + __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_dist_temp, (PyObject*)__pyx_t_13, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); + if (unlikely(__pyx_t_6 < 0)) { + PyErr_Fetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_dist_temp, (PyObject*)__pyx_v_dist_temp, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { + Py_XDECREF(__pyx_t_7); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9); + __Pyx_RaiseBufferFallbackError(); + } else { + PyErr_Restore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + } + } + __pyx_bstride_0_dist_temp = __pyx_bstruct_dist_temp.strides[0]; + __pyx_bshape_0_dist_temp = __pyx_bstruct_dist_temp.shape[0]; + if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + } + __pyx_t_13 = 0; + __Pyx_DECREF(((PyObject *)__pyx_v_dist_temp)); + __pyx_v_dist_temp = ((PyArrayObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":685 + * dist_temp = np.emtpy(num_neighbors, dtype=np.float) + * # Need to start out with zeros before we start adding to it. + * dens.fill(0.0) # <<<<<<<<<<<<<< + * + * mass = np.array(mass).astype(np.float) + */ + __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_dens), __pyx_kp_fill); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 685; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = PyFloat_FromDouble(0.0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 685; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 685; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 685; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":687 + * dens.fill(0.0) + * + * mass = np.array(mass).astype(np.float) # <<<<<<<<<<<<<< + * mass = np.ascontinguousarray(mass) + * + */ + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_2); + __pyx_t_1 = PyObject_GetAttr(__pyx_2, __pyx_kp_array); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); + __Pyx_INCREF(__pyx_v_mass); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_mass); + __Pyx_GIVEREF(__pyx_v_mass); + __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; + __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_kp_astype); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_1); + __pyx_t_3 = PyObject_GetAttr(__pyx_1, __pyx_kp_float); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_3); + __pyx_t_3 = 0; + __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_v_mass); + __pyx_v_mass = __pyx_t_3; + __pyx_t_3 = 0; + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":688 + * + * mass = np.array(mass).astype(np.float) + * mass = np.ascontinguousarray(mass) # <<<<<<<<<<<<<< + * + * for i in range(self.n): + */ + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_2); + __pyx_t_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_ascontinguousarray); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); + __Pyx_INCREF(__pyx_v_mass); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_mass); + __Pyx_GIVEREF(__pyx_v_mass); + __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_v_mass); + __pyx_v_mass = __pyx_t_4; + __pyx_t_4 = 0; + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":690 + * mass = np.ascontinguousarray(mass) + * + * for i in range(self.n): # <<<<<<<<<<<<<< + * query = self.data[i] + * (dist_temp, tags_temp) = self.query(query, k=num_neighbors, period=[1.]*3) + */ + for (__pyx_t_6 = 0; __pyx_t_6 < ((struct __pyx_obj_2yt_10extensions_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->n; __pyx_t_6+=1) { + __pyx_v_i = __pyx_t_6; + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":691 + * + * for i in range(self.n): + * query = self.data[i] # <<<<<<<<<<<<<< + * (dist_temp, tags_temp) = self.query(query, k=num_neighbors, period=[1.]*3) + * + */ + __pyx_1 = __Pyx_GetItemInt(((struct __pyx_obj_2yt_10extensions_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->data, __pyx_v_i, sizeof(int), PyInt_FromLong); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 691; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_1); + if (!(__Pyx_TypeTest(__pyx_1, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 691; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_11 = ((PyArrayObject *)__pyx_1); + { + __Pyx_BufFmt_StackElem __pyx_stack[1]; + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_query); + __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_query, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); + if (unlikely(__pyx_t_14 < 0)) { + PyErr_Fetch(&__pyx_t_9, &__pyx_t_8, &__pyx_t_7); + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_query, (PyObject*)__pyx_v_query, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { + Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_7); + __Pyx_RaiseBufferFallbackError(); + } else { + PyErr_Restore(__pyx_t_9, __pyx_t_8, __pyx_t_7); + } + } + __pyx_bstride_0_query = __pyx_bstruct_query.strides[0]; + __pyx_bshape_0_query = __pyx_bstruct_query.shape[0]; + if (unlikely(__pyx_t_14 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 691; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + } + __pyx_t_11 = 0; + __Pyx_DECREF(((PyObject *)__pyx_v_query)); + __pyx_v_query = ((PyArrayObject *)__pyx_1); + __pyx_1 = 0; + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":692 + * for i in range(self.n): + * query = self.data[i] + * (dist_temp, tags_temp) = self.query(query, k=num_neighbors, period=[1.]*3) # <<<<<<<<<<<<<< + * + * #calculate the density for this particle + */ + __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_kp_query); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); + __Pyx_INCREF(((PyObject *)__pyx_v_query)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_query)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_query)); + __pyx_2 = PyDict_New(); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_2)); + __pyx_t_3 = PyInt_FromLong(__pyx_v_num_neighbors); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_2, __pyx_kp_k, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = PyFloat_FromDouble(1.0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_2)); + PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_3); + __pyx_t_3 = 0; + __pyx_t_3 = PyNumber_Multiply(((PyObject *)__pyx_t_2), __pyx_int_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_2, __pyx_kp_period, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = PyEval_CallObjectWithKeywords(__pyx_t_4, ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; + __Pyx_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0; + if (PyTuple_CheckExact(__pyx_t_3) && likely(PyTuple_GET_SIZE(__pyx_t_3) == 2)) { + PyObject* tuple = __pyx_t_3; + __pyx_2 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_2); + if (!(__Pyx_TypeTest(__pyx_2, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_3 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_3); + if (!(__Pyx_TypeTest(__pyx_3, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_13 = ((PyArrayObject *)__pyx_2); + { + __Pyx_BufFmt_StackElem __pyx_stack[1]; + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_dist_temp); + __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_dist_temp, (PyObject*)__pyx_t_13, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); + if (unlikely(__pyx_t_14 < 0)) { + PyErr_Fetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_dist_temp, (PyObject*)__pyx_v_dist_temp, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { + Py_XDECREF(__pyx_t_7); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9); + __Pyx_RaiseBufferFallbackError(); + } else { + PyErr_Restore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + } + } + __pyx_bstride_0_dist_temp = __pyx_bstruct_dist_temp.strides[0]; + __pyx_bshape_0_dist_temp = __pyx_bstruct_dist_temp.shape[0]; + if (unlikely(__pyx_t_14 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + } + __pyx_t_13 = 0; + __Pyx_DECREF(((PyObject *)__pyx_v_dist_temp)); + __pyx_v_dist_temp = ((PyArrayObject *)__pyx_2); + __pyx_2 = 0; + __pyx_t_12 = ((PyArrayObject *)__pyx_3); + { + __Pyx_BufFmt_StackElem __pyx_stack[1]; + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_tags_temp); + __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_tags_temp, (PyObject*)__pyx_t_12, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); + if (unlikely(__pyx_t_14 < 0)) { + PyErr_Fetch(&__pyx_t_9, &__pyx_t_8, &__pyx_t_7); + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_tags_temp, (PyObject*)__pyx_v_tags_temp, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { + Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_7); + __Pyx_RaiseBufferFallbackError(); + } else { + PyErr_Restore(__pyx_t_9, __pyx_t_8, __pyx_t_7); + } + } + __pyx_bstride_0_tags_temp = __pyx_bstruct_tags_temp.strides[0]; + __pyx_bshape_0_tags_temp = __pyx_bstruct_tags_temp.shape[0]; + if (unlikely(__pyx_t_14 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + } + __pyx_t_12 = 0; + __Pyx_DECREF(((PyObject *)__pyx_v_tags_temp)); + __pyx_v_tags_temp = ((PyArrayObject *)__pyx_3); + __pyx_3 = 0; + } else { + __pyx_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_2 = __Pyx_UnpackItem(__pyx_1, 0); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_2); + if (!(__Pyx_TypeTest(__pyx_2, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_3 = __Pyx_UnpackItem(__pyx_1, 1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_3); + if (!(__Pyx_TypeTest(__pyx_3, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (__Pyx_EndUnpack(__pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_t_13 = ((PyArrayObject *)__pyx_2); + { + __Pyx_BufFmt_StackElem __pyx_stack[1]; + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_dist_temp); + __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_dist_temp, (PyObject*)__pyx_t_13, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); + if (unlikely(__pyx_t_14 < 0)) { + PyErr_Fetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_dist_temp, (PyObject*)__pyx_v_dist_temp, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { + Py_XDECREF(__pyx_t_7); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9); + __Pyx_RaiseBufferFallbackError(); + } else { + PyErr_Restore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + } + } + __pyx_bstride_0_dist_temp = __pyx_bstruct_dist_temp.strides[0]; + __pyx_bshape_0_dist_temp = __pyx_bstruct_dist_temp.shape[0]; + if (unlikely(__pyx_t_14 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + } + __pyx_t_13 = 0; + __Pyx_DECREF(((PyObject *)__pyx_v_dist_temp)); + __pyx_v_dist_temp = ((PyArrayObject *)__pyx_2); + __pyx_2 = 0; + __pyx_t_12 = ((PyArrayObject *)__pyx_3); + { + __Pyx_BufFmt_StackElem __pyx_stack[1]; + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_tags_temp); + __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_tags_temp, (PyObject*)__pyx_t_12, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); + if (unlikely(__pyx_t_14 < 0)) { + PyErr_Fetch(&__pyx_t_9, &__pyx_t_8, &__pyx_t_7); + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_tags_temp, (PyObject*)__pyx_v_tags_temp, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { + Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_7); + __Pyx_RaiseBufferFallbackError(); + } else { + PyErr_Restore(__pyx_t_9, __pyx_t_8, __pyx_t_7); + } + } + __pyx_bstride_0_tags_temp = __pyx_bstruct_tags_temp.strides[0]; + __pyx_bshape_0_tags_temp = __pyx_bstruct_tags_temp.shape[0]; + if (unlikely(__pyx_t_14 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + } + __pyx_t_12 = 0; + __Pyx_DECREF(((PyObject *)__pyx_v_tags_temp)); + __pyx_v_tags_temp = ((PyArrayObject *)__pyx_3); + __pyx_3 = 0; + } + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":695 + * + * #calculate the density for this particle + * ih2 = 4.0/max(dist_temp) # <<<<<<<<<<<<<< + * fNorm = 0.5*np.sqrt(ih2)*ih2/3.1415926535897931 + * for j in range(num_neighbors): + */ + __pyx_t_3 = PyFloat_FromDouble(4.0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 695; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 695; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); + __Pyx_INCREF(((PyObject *)__pyx_v_dist_temp)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_dist_temp)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_dist_temp)); + __pyx_t_4 = PyObject_Call(__pyx_builtin_max, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 695; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 695; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 695; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_ih2 = __pyx_t_15; + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":696 + * #calculate the density for this particle + * ih2 = 4.0/max(dist_temp) + * fNorm = 0.5*np.sqrt(ih2)*ih2/3.1415926535897931 # <<<<<<<<<<<<<< + * for j in range(num_neighbors): + * pj = tags_temp[i] + */ + __pyx_t_1 = PyFloat_FromDouble(0.5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 696; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 696; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_1); + __pyx_t_4 = PyObject_GetAttr(__pyx_1, __pyx_kp_sqrt); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 696; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_ih2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 696; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 696; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_2)); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_3); + __pyx_t_3 = 0; + __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 696; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; + __pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 696; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_ih2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 696; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = PyNumber_Multiply(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 696; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = PyFloat_FromDouble(3.1415926535897931); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 696; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 696; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 696; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_fNorm = __pyx_t_15; + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":697 + * ih2 = 4.0/max(dist_temp) + * fNorm = 0.5*np.sqrt(ih2)*ih2/3.1415926535897931 + * for j in range(num_neighbors): # <<<<<<<<<<<<<< + * pj = tags_temp[i] + * r2 = dist_temp[i] * ih2 + */ + for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_v_num_neighbors; __pyx_t_14+=1) { + __pyx_v_j = __pyx_t_14; + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":698 + * fNorm = 0.5*np.sqrt(ih2)*ih2/3.1415926535897931 + * for j in range(num_neighbors): + * pj = tags_temp[i] # <<<<<<<<<<<<<< + * r2 = dist_temp[i] * ih2 + * rs = 2.0 - np.sqrt(r2) + */ + __pyx_t_16 = __pyx_v_i; + __pyx_t_17 = -1; + if (__pyx_t_16 < 0) { + __pyx_t_16 += __pyx_bshape_0_tags_temp; + if (unlikely(__pyx_t_16 < 0)) __pyx_t_17 = 0; + } else if (unlikely(__pyx_t_16 >= __pyx_bshape_0_tags_temp)) __pyx_t_17 = 0; + if (unlikely(__pyx_t_17 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_17); + {__pyx_filename = __pyx_f[0]; __pyx_lineno = 698; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + } + __pyx_v_pj = (*__Pyx_BufPtrStrided1d(int *, __pyx_bstruct_tags_temp.buf, __pyx_t_16, __pyx_bstride_0_tags_temp)); + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":699 + * for j in range(num_neighbors): + * pj = tags_temp[i] + * r2 = dist_temp[i] * ih2 # <<<<<<<<<<<<<< + * rs = 2.0 - np.sqrt(r2) + * if (r2 < 1.0): + */ + __pyx_t_17 = __pyx_v_i; + __pyx_t_18 = -1; + if (__pyx_t_17 < 0) { + __pyx_t_17 += __pyx_bshape_0_dist_temp; + if (unlikely(__pyx_t_17 < 0)) __pyx_t_18 = 0; + } else if (unlikely(__pyx_t_17 >= __pyx_bshape_0_dist_temp)) __pyx_t_18 = 0; + if (unlikely(__pyx_t_18 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_18); + {__pyx_filename = __pyx_f[0]; __pyx_lineno = 699; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + } + __pyx_v_r2 = ((*__Pyx_BufPtrStrided1d(double *, __pyx_bstruct_dist_temp.buf, __pyx_t_17, __pyx_bstride_0_dist_temp)) * __pyx_v_ih2); + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":700 + * pj = tags_temp[i] + * r2 = dist_temp[i] * ih2 + * rs = 2.0 - np.sqrt(r2) # <<<<<<<<<<<<<< + * if (r2 < 1.0): + * rs = (1.0 - 0.75*rs*r2) + */ + __pyx_t_2 = PyFloat_FromDouble(2.0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 700; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_2); + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 700; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_2); + __pyx_t_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_sqrt); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 700; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_r2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 700; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 700; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 700; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; + __pyx_t_4 = PyNumber_Subtract(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 700; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 700; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_rs = __pyx_t_15; + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":701 + * r2 = dist_temp[i] * ih2 + * rs = 2.0 - np.sqrt(r2) + * if (r2 < 1.0): # <<<<<<<<<<<<<< + * rs = (1.0 - 0.75*rs*r2) + * else: + */ + __pyx_t_19 = (__pyx_v_r2 < 1.0); + if (__pyx_t_19) { + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":702 + * rs = 2.0 - np.sqrt(r2) + * if (r2 < 1.0): + * rs = (1.0 - 0.75*rs*r2) # <<<<<<<<<<<<<< + * else: + * rs = 0.25*rs*rs*rs + */ + __pyx_v_rs = (1.0 - ((0.75 * __pyx_v_rs) * __pyx_v_r2)); + goto __pyx_L10; + } + /*else*/ { + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":704 + * rs = (1.0 - 0.75*rs*r2) + * else: + * rs = 0.25*rs*rs*rs # <<<<<<<<<<<<<< + * rs = rs * fNorm + * dens[i] += rs * mass[pj] + */ + __pyx_v_rs = (((0.25 * __pyx_v_rs) * __pyx_v_rs) * __pyx_v_rs); + } + __pyx_L10:; + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":705 + * else: + * rs = 0.25*rs*rs*rs + * rs = rs * fNorm # <<<<<<<<<<<<<< + * dens[i] += rs * mass[pj] + * dens[pj] += rs * mass[i] + */ + __pyx_v_rs = (__pyx_v_rs * __pyx_v_fNorm); + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":706 + * rs = 0.25*rs*rs*rs + * rs = rs * fNorm + * dens[i] += rs * mass[pj] # <<<<<<<<<<<<<< + * dens[pj] += rs * mass[i] + * + */ + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_rs); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 706; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_4); + __pyx_3 = __Pyx_GetItemInt(__pyx_v_mass, __pyx_v_pj, sizeof(int), PyInt_FromLong); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 706; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_3); + __pyx_t_1 = PyNumber_Multiply(__pyx_t_4, __pyx_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 706; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 706; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_18 = __pyx_v_i; + __pyx_t_20 = -1; + if (__pyx_t_18 < 0) { + __pyx_t_18 += __pyx_bshape_0_dens; + if (unlikely(__pyx_t_18 < 0)) __pyx_t_20 = 0; + } else if (unlikely(__pyx_t_18 >= __pyx_bshape_0_dens)) __pyx_t_20 = 0; + if (unlikely(__pyx_t_20 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_20); + {__pyx_filename = __pyx_f[0]; __pyx_lineno = 706; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + } + *__Pyx_BufPtrStrided1d(double *, __pyx_bstruct_dens.buf, __pyx_t_18, __pyx_bstride_0_dens) += __pyx_t_15; + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":707 + * rs = rs * fNorm + * dens[i] += rs * mass[pj] + * dens[pj] += rs * mass[i] # <<<<<<<<<<<<<< + * + * # store nMerge nearest neighbors + */ + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_rs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + __pyx_1 = __Pyx_GetItemInt(__pyx_v_mass, __pyx_v_i, sizeof(int), PyInt_FromLong); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_1); + __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_20 = __pyx_v_pj; + __pyx_t_21 = -1; + if (__pyx_t_20 < 0) { + __pyx_t_20 += __pyx_bshape_0_dens; + if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0; + } else if (unlikely(__pyx_t_20 >= __pyx_bshape_0_dens)) __pyx_t_21 = 0; + if (unlikely(__pyx_t_21 != -1)) { + __Pyx_RaiseBufferIndexError(__pyx_t_21); + {__pyx_filename = __pyx_f[0]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + } + *__Pyx_BufPtrStrided1d(double *, __pyx_bstruct_dens.buf, __pyx_t_20, __pyx_bstride_0_dens) += __pyx_t_15; + } + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":710 + * + * # store nMerge nearest neighbors + * tags[i,:] = tags_temp[:nMerge] # <<<<<<<<<<<<<< + * + * return (dens, tags) + */ + __pyx_2 = PySequence_GetSlice(((PyObject *)__pyx_v_tags_temp), 0, __pyx_v_nMerge); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_2); + __pyx_t_4 = PyInt_FromLong(__pyx_v_i); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_4); + __pyx_3 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_3); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_3); + __Pyx_GIVEREF(__pyx_3); + __pyx_t_4 = 0; + __pyx_3 = 0; + if (PyObject_SetItem(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_1), __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_2); __pyx_2 = 0; + } + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":712 + * tags[i,:] = tags_temp[:nMerge] + * + * return (dens, tags) # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 712; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); + __Pyx_INCREF(((PyObject *)__pyx_v_dens)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_dens)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_dens)); + __Pyx_INCREF(((PyObject *)__pyx_v_tags)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_tags)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_tags)); + __pyx_r = ((PyObject *)__pyx_t_1); + __pyx_t_1 = 0; + goto __pyx_L0; + + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_1); + __Pyx_XDECREF(__pyx_2); + __Pyx_XDECREF(__pyx_3); + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; + __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_tags); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_dens); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_tags_temp); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_query); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_dist_temp); + __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} + __Pyx_AddTraceback("yt.extensions.spatial.ckdtree.cKDTree.chainHOP_get_dens"); + __pyx_r = NULL; + goto __pyx_L2; + __pyx_L0:; + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_tags); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_dens); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_tags_temp); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_query); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_dist_temp); + __pyx_L2:; + __Pyx_DECREF((PyObject *)__pyx_v_tags); + __Pyx_DECREF((PyObject *)__pyx_v_dens); + __Pyx_DECREF((PyObject *)__pyx_v_query); + __Pyx_DECREF((PyObject *)__pyx_v_tags_temp); + __Pyx_DECREF((PyObject *)__pyx_v_dist_temp); + __Pyx_DECREF(__pyx_v_mass); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_FinishRefcountContext(); + return __pyx_r; +} + +/* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":715 + * + * + * def find_chunk_nearest_neighbors(cKDTree self, int start, int finish, \ # <<<<<<<<<<<<<< + * int num_neighbors=65): + * """ query the tree in chunks, between start and finish, recording the + */ + +static PyObject *__pyx_pf_2yt_10extensions_7spatial_7ckdtree_7cKDTree_find_chunk_nearest_neighbors(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_2yt_10extensions_7spatial_7ckdtree_7cKDTree_find_chunk_nearest_neighbors[] = " query the tree in chunks, between start and finish, recording the\n nearest neighbors.\n \n Parameters:\n ===========\n \n start: The starting point in the dataset for this search.\n \n finish: The ending point in the dataset for this search.\n \n num_neighbors: Optional, the number of neighbors to search for.\n The default is 65.\n \n Returns:\n ========\n \n chunk_tags: A two-dimensional array of the nearest neighbor tags for the\n points in this search.\n \n "; +static PyObject *__pyx_pf_2yt_10extensions_7spatial_7ckdtree_7cKDTree_find_chunk_nearest_neighbors(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_v_start; + int __pyx_v_finish; + int __pyx_v_num_neighbors; + PyArrayObject *__pyx_v_chunk_tags; + PyArrayObject *__pyx_v_query; + PyArrayObject *__pyx_v_tags_temp; + PyArrayObject *__pyx_v_dist_temp; + int __pyx_v_i; + Py_buffer __pyx_bstruct_tags_temp; + Py_ssize_t __pyx_bstride_0_tags_temp = 0; + Py_ssize_t __pyx_bshape_0_tags_temp = 0; + Py_buffer __pyx_bstruct_chunk_tags; + Py_ssize_t __pyx_bstride_0_chunk_tags = 0; + Py_ssize_t __pyx_bstride_1_chunk_tags = 0; + Py_ssize_t __pyx_bshape_0_chunk_tags = 0; + Py_ssize_t __pyx_bshape_1_chunk_tags = 0; + Py_buffer __pyx_bstruct_query; + Py_ssize_t __pyx_bstride_0_query = 0; + Py_ssize_t __pyx_bshape_0_query = 0; + Py_buffer __pyx_bstruct_dist_temp; + Py_ssize_t __pyx_bstride_0_dist_temp = 0; + Py_ssize_t __pyx_bshape_0_dist_temp = 0; + PyObject *__pyx_r = NULL; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyArrayObject *__pyx_t_5 = NULL; + int __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyArrayObject *__pyx_t_10 = NULL; + PyArrayObject *__pyx_t_11 = NULL; + PyArrayObject *__pyx_t_12 = NULL; + int __pyx_t_13; + static PyObject **__pyx_pyargnames[] = {&__pyx_kp_start,&__pyx_kp_finish,&__pyx_kp_num_neighbors,0}; + __Pyx_SetupRefcountContext("find_chunk_nearest_neighbors"); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); + PyObject* values[3] = {0,0,0}; + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 0: + values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_start); + if (likely(values[0])) kw_args--; + else goto __pyx_L5_argtuple_error; + case 1: + values[1] = PyDict_GetItem(__pyx_kwds, __pyx_kp_finish); + if (likely(values[1])) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("find_chunk_nearest_neighbors", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 715; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + case 2: + if (kw_args > 1) { + PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_kp_num_neighbors); + if (unlikely(value)) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "find_chunk_nearest_neighbors") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 715; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } + __pyx_v_start = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_start == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 715; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_finish = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_finish == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 715; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + if (values[2]) { + __pyx_v_num_neighbors = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_num_neighbors == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 716; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + } else { + __pyx_v_num_neighbors = 65; + } + } else { + __pyx_v_num_neighbors = 65; + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: + __pyx_v_num_neighbors = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 2)); if (unlikely((__pyx_v_num_neighbors == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 716; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + case 2: + __pyx_v_finish = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_finish == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 715; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_start = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 0)); if (unlikely((__pyx_v_start == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 715; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + break; + default: goto __pyx_L5_argtuple_error; + } + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("find_chunk_nearest_neighbors", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 715; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_L3_error:; + __Pyx_AddTraceback("yt.extensions.spatial.ckdtree.cKDTree.find_chunk_nearest_neighbors"); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_v_chunk_tags = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); + __pyx_v_query = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); + __pyx_v_tags_temp = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); + __pyx_v_dist_temp = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); + __pyx_bstruct_chunk_tags.buf = NULL; + __pyx_bstruct_query.buf = NULL; + __pyx_bstruct_tags_temp.buf = NULL; + __pyx_bstruct_dist_temp.buf = NULL; + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":744 + * cdef int i + * + * chunk_tags = np.empty((finish-start, self.m), dtype='i') # <<<<<<<<<<<<<< + * query = np.empty(self.m, dtype=np.float) + * tags_temp = np.empty(num_neighbors, dtype='i') + */ + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_1); + __pyx_t_1 = PyObject_GetAttr(__pyx_1, __pyx_kp_empty); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_t_2 = PyInt_FromLong((__pyx_v_finish - __pyx_v_start)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyInt_FromLong(((struct __pyx_obj_2yt_10extensions_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->m); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_3)); + PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_4)); + __Pyx_GIVEREF(((PyObject *)__pyx_t_4)); + __pyx_t_4 = 0; + __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_1)); + if (PyDict_SetItem(__pyx_1, __pyx_kp_dtype, __pyx_kp_42) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; + __Pyx_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0; + if (!(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_5 = ((PyArrayObject *)__pyx_t_4); + { + __Pyx_BufFmt_StackElem __pyx_stack[1]; + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_chunk_tags); + __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_chunk_tags, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); + if (unlikely(__pyx_t_6 < 0)) { + PyErr_Fetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_chunk_tags, (PyObject*)__pyx_v_chunk_tags, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { + Py_XDECREF(__pyx_t_7); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9); + __Pyx_RaiseBufferFallbackError(); + } else { + PyErr_Restore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + } + } + __pyx_bstride_0_chunk_tags = __pyx_bstruct_chunk_tags.strides[0]; __pyx_bstride_1_chunk_tags = __pyx_bstruct_chunk_tags.strides[1]; + __pyx_bshape_0_chunk_tags = __pyx_bstruct_chunk_tags.shape[0]; __pyx_bshape_1_chunk_tags = __pyx_bstruct_chunk_tags.shape[1]; + if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + } + __pyx_t_5 = 0; + __Pyx_DECREF(((PyObject *)__pyx_v_chunk_tags)); + __pyx_v_chunk_tags = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":745 + * + * chunk_tags = np.empty((finish-start, self.m), dtype='i') + * query = np.empty(self.m, dtype=np.float) # <<<<<<<<<<<<<< + * tags_temp = np.empty(num_neighbors, dtype='i') + * dist_temp = np.emtpy(num_neighbors, dtype=np.float) + */ + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 745; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_1); + __pyx_t_4 = PyObject_GetAttr(__pyx_1, __pyx_kp_empty); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 745; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_t_3 = PyInt_FromLong(((struct __pyx_obj_2yt_10extensions_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->m); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 745; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 745; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_3); + __pyx_t_3 = 0; + __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 745; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_1)); + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 745; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_2); + __pyx_t_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_float); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 745; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_2); __pyx_2 = 0; + if (PyDict_SetItem(__pyx_1, __pyx_kp_dtype, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 745; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = PyEval_CallObjectWithKeywords(__pyx_t_4, ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 745; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; + __Pyx_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0; + if (!(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 745; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_10 = ((PyArrayObject *)__pyx_t_3); + { + __Pyx_BufFmt_StackElem __pyx_stack[1]; + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_query); + __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_query, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); + if (unlikely(__pyx_t_6 < 0)) { + PyErr_Fetch(&__pyx_t_9, &__pyx_t_8, &__pyx_t_7); + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_query, (PyObject*)__pyx_v_query, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { + Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_7); + __Pyx_RaiseBufferFallbackError(); + } else { + PyErr_Restore(__pyx_t_9, __pyx_t_8, __pyx_t_7); + } + } + __pyx_bstride_0_query = __pyx_bstruct_query.strides[0]; + __pyx_bshape_0_query = __pyx_bstruct_query.shape[0]; + if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 745; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + } + __pyx_t_10 = 0; + __Pyx_DECREF(((PyObject *)__pyx_v_query)); + __pyx_v_query = ((PyArrayObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":746 + * chunk_tags = np.empty((finish-start, self.m), dtype='i') + * query = np.empty(self.m, dtype=np.float) + * tags_temp = np.empty(num_neighbors, dtype='i') # <<<<<<<<<<<<<< + * dist_temp = np.emtpy(num_neighbors, dtype=np.float) + * + */ + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_2); + __pyx_t_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_empty); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_t_1 = PyInt_FromLong(__pyx_v_num_neighbors); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_4)); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __pyx_t_1 = 0; + __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_1)); + if (PyDict_SetItem(__pyx_1, __pyx_kp_dtype, __pyx_kp_43) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyEval_CallObjectWithKeywords(__pyx_t_3, ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; + __Pyx_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0; + if (!(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_11 = ((PyArrayObject *)__pyx_t_1); + { + __Pyx_BufFmt_StackElem __pyx_stack[1]; + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_tags_temp); + __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_tags_temp, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); + if (unlikely(__pyx_t_6 < 0)) { + PyErr_Fetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_tags_temp, (PyObject*)__pyx_v_tags_temp, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { + Py_XDECREF(__pyx_t_7); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9); + __Pyx_RaiseBufferFallbackError(); + } else { + PyErr_Restore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + } + } + __pyx_bstride_0_tags_temp = __pyx_bstruct_tags_temp.strides[0]; + __pyx_bshape_0_tags_temp = __pyx_bstruct_tags_temp.shape[0]; + if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + } + __pyx_t_11 = 0; + __Pyx_DECREF(((PyObject *)__pyx_v_tags_temp)); + __pyx_v_tags_temp = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":747 + * query = np.empty(self.m, dtype=np.float) + * tags_temp = np.empty(num_neighbors, dtype='i') + * dist_temp = np.emtpy(num_neighbors, dtype=np.float) # <<<<<<<<<<<<<< + * + * for i in range(finish-start): + */ + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_2); + __pyx_t_1 = PyObject_GetAttr(__pyx_2, __pyx_kp_emtpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_t_4 = PyInt_FromLong(__pyx_v_num_neighbors); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_3)); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_4); + __pyx_t_4 = 0; + __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_1)); + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_np); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_2); + __pyx_t_4 = PyObject_GetAttr(__pyx_2, __pyx_kp_float); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_2); __pyx_2 = 0; + if (PyDict_SetItem(__pyx_1, __pyx_kp_dtype, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; + __Pyx_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0; + if (!(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_12 = ((PyArrayObject *)__pyx_t_4); + { + __Pyx_BufFmt_StackElem __pyx_stack[1]; + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_dist_temp); + __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_dist_temp, (PyObject*)__pyx_t_12, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); + if (unlikely(__pyx_t_6 < 0)) { + PyErr_Fetch(&__pyx_t_9, &__pyx_t_8, &__pyx_t_7); + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_dist_temp, (PyObject*)__pyx_v_dist_temp, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { + Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_7); + __Pyx_RaiseBufferFallbackError(); + } else { + PyErr_Restore(__pyx_t_9, __pyx_t_8, __pyx_t_7); + } + } + __pyx_bstride_0_dist_temp = __pyx_bstruct_dist_temp.strides[0]; + __pyx_bshape_0_dist_temp = __pyx_bstruct_dist_temp.shape[0]; + if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + } + __pyx_t_12 = 0; + __Pyx_DECREF(((PyObject *)__pyx_v_dist_temp)); + __pyx_v_dist_temp = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":749 + * dist_temp = np.emtpy(num_neighbors, dtype=np.float) + * + * for i in range(finish-start): # <<<<<<<<<<<<<< + * query = self.data[i+start] + * (dist_temp, tags_temp) = self.query(query, k=num_neighbors, period=[1.]*3) + */ + for (__pyx_t_6 = 0; __pyx_t_6 < (__pyx_v_finish - __pyx_v_start); __pyx_t_6+=1) { + __pyx_v_i = __pyx_t_6; + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":750 + * + * for i in range(finish-start): + * query = self.data[i+start] # <<<<<<<<<<<<<< + * (dist_temp, tags_temp) = self.query(query, k=num_neighbors, period=[1.]*3) + * chunk_tags[i,:] = tags_temp[:] + */ + __pyx_t_13 = (__pyx_v_i + __pyx_v_start); + __pyx_2 = __Pyx_GetItemInt(((struct __pyx_obj_2yt_10extensions_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->data, __pyx_t_13, sizeof(int), PyInt_FromLong); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_2); + if (!(__Pyx_TypeTest(__pyx_2, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_10 = ((PyArrayObject *)__pyx_2); + { + __Pyx_BufFmt_StackElem __pyx_stack[1]; + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_query); + __pyx_t_13 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_query, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); + if (unlikely(__pyx_t_13 < 0)) { + PyErr_Fetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_query, (PyObject*)__pyx_v_query, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { + Py_XDECREF(__pyx_t_7); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9); + __Pyx_RaiseBufferFallbackError(); + } else { + PyErr_Restore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + } + } + __pyx_bstride_0_query = __pyx_bstruct_query.strides[0]; + __pyx_bshape_0_query = __pyx_bstruct_query.shape[0]; + if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + } + __pyx_t_10 = 0; + __Pyx_DECREF(((PyObject *)__pyx_v_query)); + __pyx_v_query = ((PyArrayObject *)__pyx_2); + __pyx_2 = 0; + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":751 + * for i in range(finish-start): + * query = self.data[i+start] + * (dist_temp, tags_temp) = self.query(query, k=num_neighbors, period=[1.]*3) # <<<<<<<<<<<<<< + * chunk_tags[i,:] = tags_temp[:] + * + */ + __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_kp_query); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_3)); + __Pyx_INCREF(((PyObject *)__pyx_v_query)); + PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_query)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_query)); + __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_1)); + __pyx_t_1 = PyInt_FromLong(__pyx_v_num_neighbors); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_1, __pyx_kp_k, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyFloat_FromDouble(1.0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_2)); + PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_1 = PyNumber_Multiply(((PyObject *)__pyx_t_2), __pyx_int_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_1, __pyx_kp_period, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyEval_CallObjectWithKeywords(__pyx_t_4, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; + __Pyx_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0; + if (PyTuple_CheckExact(__pyx_t_1) && likely(PyTuple_GET_SIZE(__pyx_t_1) == 2)) { + PyObject* tuple = __pyx_t_1; + __pyx_1 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_1); + if (!(__Pyx_TypeTest(__pyx_1, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_3 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_3); + if (!(__Pyx_TypeTest(__pyx_3, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_12 = ((PyArrayObject *)__pyx_1); + { + __Pyx_BufFmt_StackElem __pyx_stack[1]; + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_dist_temp); + __pyx_t_13 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_dist_temp, (PyObject*)__pyx_t_12, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); + if (unlikely(__pyx_t_13 < 0)) { + PyErr_Fetch(&__pyx_t_9, &__pyx_t_8, &__pyx_t_7); + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_dist_temp, (PyObject*)__pyx_v_dist_temp, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { + Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_7); + __Pyx_RaiseBufferFallbackError(); + } else { + PyErr_Restore(__pyx_t_9, __pyx_t_8, __pyx_t_7); + } + } + __pyx_bstride_0_dist_temp = __pyx_bstruct_dist_temp.strides[0]; + __pyx_bshape_0_dist_temp = __pyx_bstruct_dist_temp.shape[0]; + if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + } + __pyx_t_12 = 0; + __Pyx_DECREF(((PyObject *)__pyx_v_dist_temp)); + __pyx_v_dist_temp = ((PyArrayObject *)__pyx_1); + __pyx_1 = 0; + __pyx_t_11 = ((PyArrayObject *)__pyx_3); + { + __Pyx_BufFmt_StackElem __pyx_stack[1]; + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_tags_temp); + __pyx_t_13 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_tags_temp, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); + if (unlikely(__pyx_t_13 < 0)) { + PyErr_Fetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_tags_temp, (PyObject*)__pyx_v_tags_temp, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { + Py_XDECREF(__pyx_t_7); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9); + __Pyx_RaiseBufferFallbackError(); + } else { + PyErr_Restore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + } + } + __pyx_bstride_0_tags_temp = __pyx_bstruct_tags_temp.strides[0]; + __pyx_bshape_0_tags_temp = __pyx_bstruct_tags_temp.shape[0]; + if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + } + __pyx_t_11 = 0; + __Pyx_DECREF(((PyObject *)__pyx_v_tags_temp)); + __pyx_v_tags_temp = ((PyArrayObject *)__pyx_3); + __pyx_3 = 0; + } else { + __pyx_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_1 = __Pyx_UnpackItem(__pyx_2, 0); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_1); + if (!(__Pyx_TypeTest(__pyx_1, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_3 = __Pyx_UnpackItem(__pyx_2, 1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_3); + if (!(__Pyx_TypeTest(__pyx_3, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (__Pyx_EndUnpack(__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_t_12 = ((PyArrayObject *)__pyx_1); + { + __Pyx_BufFmt_StackElem __pyx_stack[1]; + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_dist_temp); + __pyx_t_13 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_dist_temp, (PyObject*)__pyx_t_12, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); + if (unlikely(__pyx_t_13 < 0)) { + PyErr_Fetch(&__pyx_t_9, &__pyx_t_8, &__pyx_t_7); + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_dist_temp, (PyObject*)__pyx_v_dist_temp, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { + Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_7); + __Pyx_RaiseBufferFallbackError(); + } else { + PyErr_Restore(__pyx_t_9, __pyx_t_8, __pyx_t_7); + } + } + __pyx_bstride_0_dist_temp = __pyx_bstruct_dist_temp.strides[0]; + __pyx_bshape_0_dist_temp = __pyx_bstruct_dist_temp.shape[0]; + if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + } + __pyx_t_12 = 0; + __Pyx_DECREF(((PyObject *)__pyx_v_dist_temp)); + __pyx_v_dist_temp = ((PyArrayObject *)__pyx_1); + __pyx_1 = 0; + __pyx_t_11 = ((PyArrayObject *)__pyx_3); + { + __Pyx_BufFmt_StackElem __pyx_stack[1]; + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_tags_temp); + __pyx_t_13 = __Pyx_GetBufferAndValidate(&__pyx_bstruct_tags_temp, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); + if (unlikely(__pyx_t_13 < 0)) { + PyErr_Fetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_bstruct_tags_temp, (PyObject*)__pyx_v_tags_temp, &__Pyx_TypeInfo_int, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { + Py_XDECREF(__pyx_t_7); Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9); + __Pyx_RaiseBufferFallbackError(); + } else { + PyErr_Restore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + } + } + __pyx_bstride_0_tags_temp = __pyx_bstruct_tags_temp.strides[0]; + __pyx_bshape_0_tags_temp = __pyx_bstruct_tags_temp.shape[0]; + if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + } + __pyx_t_11 = 0; + __Pyx_DECREF(((PyObject *)__pyx_v_tags_temp)); + __pyx_v_tags_temp = ((PyArrayObject *)__pyx_3); + __pyx_3 = 0; + } + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":752 + * query = self.data[i+start] + * (dist_temp, tags_temp) = self.query(query, k=num_neighbors, period=[1.]*3) + * chunk_tags[i,:] = tags_temp[:] # <<<<<<<<<<<<<< + * + * return chunk_tags + */ + __pyx_2 = PySequence_GetSlice(((PyObject *)__pyx_v_tags_temp), 0, PY_SSIZE_T_MAX); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_2); + __pyx_t_1 = PyInt_FromLong(__pyx_v_i); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_t_1); + __pyx_1 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(__pyx_1); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_GOTREF(((PyObject *)__pyx_t_3)); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_1); + __Pyx_GIVEREF(__pyx_1); + __pyx_t_1 = 0; + __pyx_1 = 0; + if (PyObject_SetItem(((PyObject *)__pyx_v_chunk_tags), ((PyObject *)__pyx_t_3), __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_2); __pyx_2 = 0; + } + + /* "/Users/sskory/Documents/yt-devel/yt/extensions/spatial/ckdtree.pyx":754 + * chunk_tags[i,:] = tags_temp[:] + * + * return chunk_tags # <<<<<<<<<<<<<< + * + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_chunk_tags)); + __pyx_r = ((PyObject *)__pyx_v_chunk_tags); + goto __pyx_L0; + + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_1); + __Pyx_XDECREF(__pyx_2); + __Pyx_XDECREF(__pyx_3); + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; + __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_tags_temp); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_chunk_tags); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_query); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_dist_temp); + __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} + __Pyx_AddTraceback("yt.extensions.spatial.ckdtree.cKDTree.find_chunk_nearest_neighbors"); + __pyx_r = NULL; + goto __pyx_L2; + __pyx_L0:; + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_tags_temp); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_chunk_tags); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_query); + __Pyx_SafeReleaseBuffer(&__pyx_bstruct_dist_temp); + __pyx_L2:; + __Pyx_DECREF((PyObject *)__pyx_v_chunk_tags); + __Pyx_DECREF((PyObject *)__pyx_v_query); + __Pyx_DECREF((PyObject *)__pyx_v_tags_temp); + __Pyx_DECREF((PyObject *)__pyx_v_dist_temp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_FinishRefcountContext(); + return __pyx_r; +} + /* "/Library/Frameworks/Python.framework/Versions/4.1.30101/lib/python2.5/site-packages/Cython-0.11.2-py2.5-macosx-10.3-i386.egg/Cython/Includes/numpy.pxd":65 * # experimental exception made for __getbuffer__ and __releasebuffer__ * # -- the details of this may change. @@ -7308,6 +8985,8 @@ static struct PyMethodDef __pyx_methods_2yt_10extensions_7spatial_7ckdtree_cKDTree[] = { {__Pyx_NAMESTR("query"), (PyCFunction)__pyx_pf_2yt_10extensions_7spatial_7ckdtree_7cKDTree_query, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_2yt_10extensions_7spatial_7ckdtree_7cKDTree_query)}, + {__Pyx_NAMESTR("chainHOP_get_dens"), (PyCFunction)__pyx_pf_2yt_10extensions_7spatial_7ckdtree_7cKDTree_chainHOP_get_dens, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_2yt_10extensions_7spatial_7ckdtree_7cKDTree_chainHOP_get_dens)}, + {__Pyx_NAMESTR("find_chunk_nearest_neighbors"), (PyCFunction)__pyx_pf_2yt_10extensions_7spatial_7ckdtree_7cKDTree_find_chunk_nearest_neighbors, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_2yt_10extensions_7spatial_7ckdtree_7cKDTree_find_chunk_nearest_neighbors)}, {0, 0, 0, 0} }; @@ -7492,14 +9171,21 @@ {&__pyx_kp___init__, __pyx_k___init__, sizeof(__pyx_k___init__), 1, 1, 1}, {&__pyx_kp___dealloc__, __pyx_k___dealloc__, sizeof(__pyx_k___dealloc__), 1, 1, 1}, {&__pyx_kp_query, __pyx_k_query, sizeof(__pyx_k_query), 1, 1, 1}, + {&__pyx_kp_chainHOP_get_dens, __pyx_k_chainHOP_get_dens, sizeof(__pyx_k_chainHOP_get_dens), 1, 1, 1}, + {&__pyx_kp_31, __pyx_k_31, sizeof(__pyx_k_31), 1, 1, 1}, {&__pyx_kp_data, __pyx_k_data, sizeof(__pyx_k_data), 1, 1, 1}, {&__pyx_kp_leafsize, __pyx_k_leafsize, sizeof(__pyx_k_leafsize), 1, 1, 1}, {&__pyx_kp_x, __pyx_k_x, sizeof(__pyx_k_x), 1, 1, 1}, {&__pyx_kp_k, __pyx_k_k, sizeof(__pyx_k_k), 1, 1, 1}, {&__pyx_kp_eps, __pyx_k_eps, sizeof(__pyx_k_eps), 1, 1, 1}, {&__pyx_kp_p, __pyx_k_p, sizeof(__pyx_k_p), 1, 1, 1}, - {&__pyx_kp_31, __pyx_k_31, sizeof(__pyx_k_31), 1, 1, 1}, + {&__pyx_kp_32, __pyx_k_32, sizeof(__pyx_k_32), 1, 1, 1}, {&__pyx_kp_period, __pyx_k_period, sizeof(__pyx_k_period), 1, 1, 1}, + {&__pyx_kp_mass, __pyx_k_mass, sizeof(__pyx_k_mass), 1, 1, 1}, + {&__pyx_kp_num_neighbors, __pyx_k_num_neighbors, sizeof(__pyx_k_num_neighbors), 1, 1, 1}, + {&__pyx_kp_nMerge, __pyx_k_nMerge, sizeof(__pyx_k_nMerge), 1, 1, 1}, + {&__pyx_kp_start, __pyx_k_start, sizeof(__pyx_k_start), 1, 1, 1}, + {&__pyx_kp_finish, __pyx_k_finish, sizeof(__pyx_k_finish), 1, 1, 1}, {&__pyx_kp_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 1, 1, 1}, {&__pyx_kp_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 1, 1}, {&__pyx_kp_kdtree, __pyx_k_kdtree, sizeof(__pyx_k_kdtree), 1, 1, 1}, @@ -7514,7 +9200,7 @@ {&__pyx_kp_axis, __pyx_k_axis, sizeof(__pyx_k_axis), 1, 1, 1}, {&__pyx_kp_amin, __pyx_k_amin, sizeof(__pyx_k_amin), 1, 1, 1}, {&__pyx_kp_arange, __pyx_k_arange, sizeof(__pyx_k_arange), 1, 1, 1}, - {&__pyx_kp_35, __pyx_k_35, sizeof(__pyx_k_35), 1, 1, 1}, + {&__pyx_kp_36, __pyx_k_36, sizeof(__pyx_k_36), 1, 1, 1}, {&__pyx_kp_asarray, __pyx_k_asarray, sizeof(__pyx_k_asarray), 1, 1, 1}, {&__pyx_kp_astype, __pyx_k_astype, sizeof(__pyx_k_astype), 1, 1, 1}, {&__pyx_kp_array, __pyx_k_array, sizeof(__pyx_k_array), 1, 1, 1}, @@ -7523,11 +9209,19 @@ {&__pyx_kp_reshape, __pyx_k_reshape, sizeof(__pyx_k_reshape), 1, 1, 1}, {&__pyx_kp_empty, __pyx_k_empty, sizeof(__pyx_k_empty), 1, 1, 1}, {&__pyx_kp_fill, __pyx_k_fill, sizeof(__pyx_k_fill), 1, 1, 1}, - {&__pyx_kp_38, __pyx_k_38, sizeof(__pyx_k_38), 0, 1, 0}, - {&__pyx_kp_33, __pyx_k_33, sizeof(__pyx_k_33), 0, 0, 0}, + {&__pyx_kp_39, __pyx_k_39, sizeof(__pyx_k_39), 0, 1, 0}, + {&__pyx_kp_40, __pyx_k_40, sizeof(__pyx_k_40), 0, 1, 0}, + {&__pyx_kp_41, __pyx_k_41, sizeof(__pyx_k_41), 0, 1, 0}, + {&__pyx_kp_emtpy, __pyx_k_emtpy, sizeof(__pyx_k_emtpy), 1, 1, 1}, + {&__pyx_kp_ascontinguousarray, __pyx_k_ascontinguousarray, sizeof(__pyx_k_ascontinguousarray), 1, 1, 1}, + {&__pyx_kp_max, __pyx_k_max, sizeof(__pyx_k_max), 1, 1, 1}, + {&__pyx_kp_sqrt, __pyx_k_sqrt, sizeof(__pyx_k_sqrt), 1, 1, 1}, + {&__pyx_kp_42, __pyx_k_42, sizeof(__pyx_k_42), 0, 1, 0}, + {&__pyx_kp_43, __pyx_k_43, sizeof(__pyx_k_43), 0, 1, 0}, {&__pyx_kp_34, __pyx_k_34, sizeof(__pyx_k_34), 0, 0, 0}, - {&__pyx_kp_36, __pyx_k_36, sizeof(__pyx_k_36), 0, 0, 0}, + {&__pyx_kp_35, __pyx_k_35, sizeof(__pyx_k_35), 0, 0, 0}, {&__pyx_kp_37, __pyx_k_37, sizeof(__pyx_k_37), 0, 0, 0}, + {&__pyx_kp_38, __pyx_k_38, sizeof(__pyx_k_38), 0, 0, 0}, {&__pyx_kp___getbuffer__, __pyx_k___getbuffer__, sizeof(__pyx_k___getbuffer__), 1, 1, 1}, {&__pyx_kp___releasebuffer__, __pyx_k___releasebuffer__, sizeof(__pyx_k___releasebuffer__), 1, 1, 1}, {&__pyx_kp_info, __pyx_k_info, sizeof(__pyx_k_info), 1, 1, 1}, @@ -7547,6 +9241,7 @@ static int __Pyx_InitCachedBuiltins(void) { __pyx_builtin_ValueError = __Pyx_GetName(__pyx_b, __pyx_kp_ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_builtin_range = __Pyx_GetName(__pyx_b, __pyx_kp_range); if (!__pyx_builtin_range) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_builtin_max = __Pyx_GetName(__pyx_b, __pyx_kp_max); if (!__pyx_builtin_max) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 695; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_builtin_RuntimeError = __Pyx_GetName(__pyx_b, __pyx_kp_RuntimeError); if (!__pyx_builtin_RuntimeError) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;} return 0; __pyx_L1_error:; @@ -7556,6 +9251,7 @@ static int __Pyx_InitGlobals(void) { __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; + __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; __pyx_int_15 = PyInt_FromLong(15); if (unlikely(!__pyx_int_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; return 0; @@ -7685,7 +9381,7 @@ * """query the kd-tree for nearest neighbors * */ - __pyx_k_32 = __pyx_v_2yt_10extensions_7spatial_7ckdtree_infinity; + __pyx_k_33 = __pyx_v_2yt_10extensions_7spatial_7ckdtree_infinity; /* "/Library/Frameworks/Python.framework/Versions/4.1.30101/lib/python2.5/site-packages/Cython-0.11.2-py2.5-macosx-10.3-i386.egg/Cython/Includes/stdlib.pxd":2 * diff -r abd1d707fd2b9ec045adce896e079aff5eb8504e -r 07b9df97f3e28a1392836104889d84029173a64c yt/extensions/spatial/ckdtree.pyx --- a/yt/extensions/spatial/ckdtree.pyx Wed Jul 15 19:08:38 2009 -0700 +++ b/yt/extensions/spatial/ckdtree.pyx Wed Jul 15 22:12:03 2009 -0700 @@ -640,3 +640,116 @@ else: return np.reshape(dd,retshape+(k,)), np.reshape(ii,retshape+(k,)) + def chainHOP_get_dens(cKDTree self, object mass, int num_neighbors=65, \ + int nMerge=6): + """ query the tree for the nearest neighbors, to get the density + of particles for chainHOP. + + Parameters: + =========== + + mass: A array-like list of the masses of the particles, in the same + order as the data that went into building the kd tree. + + num_neighbors: Optional, the number of neighbors to search for and to + use in the density calculation. Default is 65, and is probably what + one should stick with. + + nMerge: The number of nearest neighbor tags to return for each particle. + + Returns: + ======== + + dens: An array of the densities for each particle, in the same order + as the input data. + + tags: A two-dimensional array of the indexes, nMerge nearest neighbors + for each particle. + + """ + + cdef np.ndarray[int, ndim=2] tags + cdef np.ndarray[double, ndim=1] dens + cdef np.ndarray[double, ndim=1] query + cdef np.ndarray[int, ndim=1] tags_temp + cdef np.ndarray[double, ndim=1] dist_temp + cdef int i, pj, j + cdef double ih2, fNorm, r2, rs + + tags = np.empty((self.n,nMerge), dtype=np.float) + dens = np.empty(self.n, dtype='i') + query = np.empty(self.m, dtype=np.float) + tags_temp = np.empty(num_neighbors, dtype='i') + dist_temp = np.emtpy(num_neighbors, dtype=np.float) + # Need to start out with zeros before we start adding to it. + dens.fill(0.0) + + mass = np.array(mass).astype(np.float) + mass = np.ascontinguousarray(mass) + + for i in range(self.n): + query = self.data[i] + (dist_temp, tags_temp) = self.query(query, k=num_neighbors, period=[1.]*3) + + #calculate the density for this particle + ih2 = 4.0/max(dist_temp) + fNorm = 0.5*np.sqrt(ih2)*ih2/3.1415926535897931 + for j in range(num_neighbors): + pj = tags_temp[i] + r2 = dist_temp[i] * ih2 + rs = 2.0 - np.sqrt(r2) + if (r2 < 1.0): + rs = (1.0 - 0.75*rs*r2) + else: + rs = 0.25*rs*rs*rs + rs = rs * fNorm + dens[i] += rs * mass[pj] + dens[pj] += rs * mass[i] + + # store nMerge nearest neighbors + tags[i,:] = tags_temp[:nMerge] + + return (dens, tags) + + + def find_chunk_nearest_neighbors(cKDTree self, int start, int finish, \ + int num_neighbors=65): + """ query the tree in chunks, between start and finish, recording the + nearest neighbors. + + Parameters: + =========== + + start: The starting point in the dataset for this search. + + finish: The ending point in the dataset for this search. + + num_neighbors: Optional, the number of neighbors to search for. + The default is 65. + + Returns: + ======== + + chunk_tags: A two-dimensional array of the nearest neighbor tags for the + points in this search. + + """ + + cdef np.ndarray[int, ndim=2] chunk_tags + cdef np.ndarray[double, ndim=1] query + cdef np.ndarray[int, ndim=1] tags_temp + cdef np.ndarray[double, ndim=1] dist_temp + cdef int i + + chunk_tags = np.empty((finish-start, self.m), dtype='i') + query = np.empty(self.m, dtype=np.float) + tags_temp = np.empty(num_neighbors, dtype='i') + dist_temp = np.emtpy(num_neighbors, dtype=np.float) + + for i in range(finish-start): + query = self.data[i+start] + (dist_temp, tags_temp) = self.query(query, k=num_neighbors, period=[1.]*3) + chunk_tags[i,:] = tags_temp[:] + + return chunk_tags +