diff options
author | Charles Harris <charlesr.harris@gmail.com> | 2012-02-10 16:50:08 -0700 |
---|---|---|
committer | Charles Harris <charlesr.harris@gmail.com> | 2012-04-06 15:54:31 -0600 |
commit | 4a2de4b598bdf81a40954e039169be19d52f3bf8 (patch) | |
tree | f5e1f8f0733658b85155f27ff92f369ef0327e49 /numpy | |
parent | d47578dd3bd57973eff75c2e89053a733d6bce8f (diff) | |
download | numpy-4a2de4b598bdf81a40954e039169be19d52f3bf8.tar.gz |
UPD: Make numpy.pxd and mtrand.pyx use non-deprecated macros/functions.
The non-deprecated macros and functions were defined for Cython in
numpy.pxd and mtrand was fixed to use them. In particular, direct
access to structure internals in mtrand.pyx needed to be replaced
by the new access functions.
Diffstat (limited to 'numpy')
-rw-r--r-- | numpy/random/mtrand/mtrand.pyx | 172 | ||||
-rw-r--r-- | numpy/random/mtrand/numpy.pxd | 83 |
2 files changed, 132 insertions, 123 deletions
diff --git a/numpy/random/mtrand/mtrand.pyx b/numpy/random/mtrand/mtrand.pyx index 88d69509f..f88a1390f 100644 --- a/numpy/random/mtrand/mtrand.pyx +++ b/numpy/random/mtrand/mtrand.pyx @@ -22,7 +22,7 @@ # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. include "Python.pxi" -include "numpy.pxi" +include "numpy.pxd" cdef extern from "math.h": double exp(double x) @@ -136,7 +136,7 @@ cdef object cont0_array(rk_state *state, rk_cont0 func, object size): else: array = <ndarray>np.empty(size, np.float64) length = PyArray_SIZE(array) - array_data = <double *>array.data + array_data = <double *>PyArray_DATA(array) for i from 0 <= i < length: array_data[i] = func(state) return array @@ -153,7 +153,7 @@ cdef object cont1_array_sc(rk_state *state, rk_cont1 func, object size, double a else: array = <ndarray>np.empty(size, np.float64) length = PyArray_SIZE(array) - array_data = <double *>array.data + array_data = <double *>PyArray_DATA(array) for i from 0 <= i < length: array_data[i] = func(state, a) return array @@ -168,16 +168,17 @@ cdef object cont1_array(rk_state *state, rk_cont1 func, object size, ndarray oa) cdef broadcast multi if size is None: - array = <ndarray>PyArray_SimpleNew(oa.nd, oa.dimensions, NPY_DOUBLE) + array = <ndarray>PyArray_SimpleNew(PyArray_NDIM(oa), + PyArray_DIMS(oa) , NPY_DOUBLE) length = PyArray_SIZE(array) - array_data = <double *>array.data + array_data = <double *>PyArray_DATA(array) itera = <flatiter>PyArray_IterNew(<object>oa) for i from 0 <= i < length: array_data[i] = func(state, (<double *>(itera.dataptr))[0]) PyArray_ITER_NEXT(itera) else: array = <ndarray>np.empty(size, np.float64) - array_data = <double *>array.data + array_data = <double *>PyArray_DATA(array) multi = <broadcast>PyArray_MultiIterNew(2, <void *>array, <void *>oa) if (multi.size != PyArray_SIZE(array)): @@ -200,7 +201,7 @@ cdef object cont2_array_sc(rk_state *state, rk_cont2 func, object size, double a else: array = <ndarray>np.empty(size, np.float64) length = PyArray_SIZE(array) - array_data = <double *>array.data + array_data = <double *>PyArray_DATA(array) for i from 0 <= i < length: array_data[i] = func(state, a, b) return array @@ -219,7 +220,7 @@ cdef object cont2_array(rk_state *state, rk_cont2 func, object size, if size is None: multi = <broadcast> PyArray_MultiIterNew(2, <void *>oa, <void *>ob) array = <ndarray> PyArray_SimpleNew(multi.nd, multi.dimensions, NPY_DOUBLE) - array_data = <double *>array.data + array_data = <double *>PyArray_DATA(array) for i from 0 <= i < multi.size: oa_data = <double *>PyArray_MultiIter_DATA(multi, 0) ob_data = <double *>PyArray_MultiIter_DATA(multi, 1) @@ -227,7 +228,7 @@ cdef object cont2_array(rk_state *state, rk_cont2 func, object size, PyArray_MultiIter_NEXT(multi) else: array = <ndarray>np.empty(size, np.float64) - array_data = <double *>array.data + array_data = <double *>PyArray_DATA(array) multi = <broadcast>PyArray_MultiIterNew(3, <void*>array, <void *>oa, <void *>ob) if (multi.size != PyArray_SIZE(array)): raise ValueError("size is not compatible with inputs") @@ -252,7 +253,7 @@ cdef object cont3_array_sc(rk_state *state, rk_cont3 func, object size, double a else: array = <ndarray>np.empty(size, np.float64) length = PyArray_SIZE(array) - array_data = <double *>array.data + array_data = <double *>PyArray_DATA(array) for i from 0 <= i < length: array_data[i] = func(state, a, b, c) return array @@ -272,7 +273,7 @@ cdef object cont3_array(rk_state *state, rk_cont3 func, object size, ndarray oa, if size is None: multi = <broadcast> PyArray_MultiIterNew(3, <void *>oa, <void *>ob, <void *>oc) array = <ndarray> PyArray_SimpleNew(multi.nd, multi.dimensions, NPY_DOUBLE) - array_data = <double *>array.data + array_data = <double *>PyArray_DATA(array) for i from 0 <= i < multi.size: oa_data = <double *>PyArray_MultiIter_DATA(multi, 0) ob_data = <double *>PyArray_MultiIter_DATA(multi, 1) @@ -281,7 +282,7 @@ cdef object cont3_array(rk_state *state, rk_cont3 func, object size, ndarray oa, PyArray_MultiIter_NEXT(multi) else: array = <ndarray>np.empty(size, np.float64) - array_data = <double *>array.data + array_data = <double *>PyArray_DATA(array) multi = <broadcast>PyArray_MultiIterNew(4, <void*>array, <void *>oa, <void *>ob, <void *>oc) if (multi.size != PyArray_SIZE(array)): @@ -305,7 +306,7 @@ cdef object disc0_array(rk_state *state, rk_disc0 func, object size): else: array = <ndarray>np.empty(size, int) length = PyArray_SIZE(array) - array_data = <long *>array.data + array_data = <long *>PyArray_DATA(array) for i from 0 <= i < length: array_data[i] = func(state) return array @@ -321,7 +322,7 @@ cdef object discnp_array_sc(rk_state *state, rk_discnp func, object size, long n else: array = <ndarray>np.empty(size, int) length = PyArray_SIZE(array) - array_data = <long *>array.data + array_data = <long *>PyArray_DATA(array) for i from 0 <= i < length: array_data[i] = func(state, n, p) return array @@ -338,7 +339,7 @@ cdef object discnp_array(rk_state *state, rk_discnp func, object size, ndarray o if size is None: multi = <broadcast> PyArray_MultiIterNew(2, <void *>on, <void *>op) array = <ndarray> PyArray_SimpleNew(multi.nd, multi.dimensions, NPY_LONG) - array_data = <long *>array.data + array_data = <long *>PyArray_DATA(array) for i from 0 <= i < multi.size: on_data = <long *>PyArray_MultiIter_DATA(multi, 0) op_data = <double *>PyArray_MultiIter_DATA(multi, 1) @@ -346,7 +347,7 @@ cdef object discnp_array(rk_state *state, rk_discnp func, object size, ndarray o PyArray_MultiIter_NEXT(multi) else: array = <ndarray>np.empty(size, int) - array_data = <long *>array.data + array_data = <long *>PyArray_DATA(array) multi = <broadcast>PyArray_MultiIterNew(3, <void*>array, <void *>on, <void *>op) if (multi.size != PyArray_SIZE(array)): raise ValueError("size is not compatible with inputs") @@ -370,7 +371,7 @@ cdef object discdd_array_sc(rk_state *state, rk_discdd func, object size, double else: array = <ndarray>np.empty(size, int) length = PyArray_SIZE(array) - array_data = <long *>array.data + array_data = <long *>PyArray_DATA(array) for i from 0 <= i < length: array_data[i] = func(state, n, p) return array @@ -387,7 +388,7 @@ cdef object discdd_array(rk_state *state, rk_discdd func, object size, ndarray o if size is None: multi = <broadcast> PyArray_MultiIterNew(2, <void *>on, <void *>op) array = <ndarray> PyArray_SimpleNew(multi.nd, multi.dimensions, NPY_LONG) - array_data = <long *>array.data + array_data = <long *>PyArray_DATA(array) for i from 0 <= i < multi.size: on_data = <double *>PyArray_MultiIter_DATA(multi, 0) op_data = <double *>PyArray_MultiIter_DATA(multi, 1) @@ -395,7 +396,7 @@ cdef object discdd_array(rk_state *state, rk_discdd func, object size, ndarray o PyArray_MultiIter_NEXT(multi) else: array = <ndarray>np.empty(size, int) - array_data = <long *>array.data + array_data = <long *>PyArray_DATA(array) multi = <broadcast>PyArray_MultiIterNew(3, <void*>array, <void *>on, <void *>op) if (multi.size != PyArray_SIZE(array)): raise ValueError("size is not compatible with inputs") @@ -420,7 +421,7 @@ cdef object discnmN_array_sc(rk_state *state, rk_discnmN func, object size, else: array = <ndarray>np.empty(size, int) length = PyArray_SIZE(array) - array_data = <long *>array.data + array_data = <long *>PyArray_DATA(array) for i from 0 <= i < length: array_data[i] = func(state, n, m, N) return array @@ -439,7 +440,7 @@ cdef object discnmN_array(rk_state *state, rk_discnmN func, object size, if size is None: multi = <broadcast> PyArray_MultiIterNew(3, <void *>on, <void *>om, <void *>oN) array = <ndarray> PyArray_SimpleNew(multi.nd, multi.dimensions, NPY_LONG) - array_data = <long *>array.data + array_data = <long *>PyArray_DATA(array) for i from 0 <= i < multi.size: on_data = <long *>PyArray_MultiIter_DATA(multi, 0) om_data = <long *>PyArray_MultiIter_DATA(multi, 1) @@ -448,7 +449,7 @@ cdef object discnmN_array(rk_state *state, rk_discnmN func, object size, PyArray_MultiIter_NEXT(multi) else: array = <ndarray>np.empty(size, int) - array_data = <long *>array.data + array_data = <long *>PyArray_DATA(array) multi = <broadcast>PyArray_MultiIterNew(4, <void*>array, <void *>on, <void *>om, <void *>oN) if (multi.size != PyArray_SIZE(array)): @@ -473,7 +474,7 @@ cdef object discd_array_sc(rk_state *state, rk_discd func, object size, double a else: array = <ndarray>np.empty(size, int) length = PyArray_SIZE(array) - array_data = <long *>array.data + array_data = <long *>PyArray_DATA(array) for i from 0 <= i < length: array_data[i] = func(state, a) return array @@ -488,16 +489,17 @@ cdef object discd_array(rk_state *state, rk_discd func, object size, ndarray oa) cdef flatiter itera if size is None: - array = <ndarray>PyArray_SimpleNew(oa.nd, oa.dimensions, NPY_LONG) + array = <ndarray>PyArray_SimpleNew(PyArray_NDIM(oa), + PyArray_DIMS(oa), NPY_LONG) length = PyArray_SIZE(array) - array_data = <long *>array.data + array_data = <long *>PyArray_DATA(array) itera = <flatiter>PyArray_IterNew(<object>oa) for i from 0 <= i < length: array_data[i] = func(state, (<double *>(itera.dataptr))[0]) PyArray_ITER_NEXT(itera) else: array = <ndarray>np.empty(size, int) - array_data = <long *>array.data + array_data = <long *>PyArray_DATA(array) multi = <broadcast>PyArray_MultiIterNew(2, <void *>array, <void *>oa) if (multi.size != PyArray_SIZE(array)): raise ValueError("size is not compatible with inputs") @@ -595,8 +597,8 @@ cdef class RandomState: rk_seed(iseed, self.internal_state) else: obj = <ndarray>PyArray_ContiguousFromObject(seed, NPY_LONG, 1, 1) - init_by_array(self.internal_state, <unsigned long *>(obj.data), - obj.dimensions[0]) + init_by_array(self.internal_state, <unsigned long *>PyArray_DATA(obj), + PyArray_DIM(obj, 0)) def get_state(self): """ @@ -630,7 +632,7 @@ cdef class RandomState: """ cdef ndarray state "arrayObject_state" state = <ndarray>np.empty(624, np.uint) - memcpy(<void*>(state.data), <void*>(self.internal_state.key), 624*sizeof(long)) + memcpy(<void*>PyArray_DATA(state), <void*>(self.internal_state.key), 624*sizeof(long)) state = <ndarray>np.asarray(state, np.uint32) return ('MT19937', state, self.internal_state.pos, self.internal_state.has_gauss, self.internal_state.gauss) @@ -698,9 +700,9 @@ cdef class RandomState: except TypeError: # compatibility -- could be an older pickle obj = <ndarray>PyArray_ContiguousFromObject(key, NPY_LONG, 1, 1) - if obj.dimensions[0] != 624: + if PyArray_DIM(obj, 0) != 624: raise ValueError("state must be 624 longs") - memcpy(<void*>(self.internal_state.key), <void*>(obj.data), 624*sizeof(long)) + memcpy(<void*>(self.internal_state.key), <void*>PyArray_DATA(obj), 624*sizeof(long)) self.internal_state.pos = pos self.internal_state.has_gauss = has_gauss self.internal_state.gauss = cached_gaussian @@ -880,7 +882,7 @@ cdef class RandomState: else: array = <ndarray>np.empty(size, int) length = PyArray_SIZE(array) - array_data = <long *>array.data + array_data = <long *>PyArray_DATA(array) for i from 0 <= i < length: rv = lo + <long>rk_interval(diff, self. internal_state) array_data[i] = rv @@ -1135,8 +1137,8 @@ cdef class RandomState: if not PyErr_Occurred(): return cont2_array_sc(self.internal_state, rk_uniform, size, flow, fhigh-flow) PyErr_Clear() - olow = <ndarray>PyArray_FROM_OTF(low, NPY_DOUBLE, NPY_ALIGNED) - ohigh = <ndarray>PyArray_FROM_OTF(high, NPY_DOUBLE, NPY_ALIGNED) + olow = <ndarray>PyArray_FROM_OTF(low, NPY_DOUBLE, NPY_ARRAY_ALIGNED) + ohigh = <ndarray>PyArray_FROM_OTF(high, NPY_DOUBLE, NPY_ARRAY_ALIGNED) temp = np.subtract(ohigh, olow) Py_INCREF(temp) # needed to get around Pyrex's automatic reference-counting # rules because EnsureArray steals a reference @@ -1448,8 +1450,8 @@ cdef class RandomState: PyErr_Clear() - oloc = <ndarray>PyArray_FROM_OTF(loc, NPY_DOUBLE, NPY_ALIGNED) - oscale = <ndarray>PyArray_FROM_OTF(scale, NPY_DOUBLE, NPY_ALIGNED) + oloc = <ndarray>PyArray_FROM_OTF(loc, NPY_DOUBLE, NPY_ARRAY_ALIGNED) + oscale = <ndarray>PyArray_FROM_OTF(scale, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less_equal(oscale, 0)): raise ValueError("scale <= 0") return cont2_array(self.internal_state, rk_normal, size, oloc, oscale) @@ -1505,8 +1507,8 @@ cdef class RandomState: PyErr_Clear() - oa = <ndarray>PyArray_FROM_OTF(a, NPY_DOUBLE, NPY_ALIGNED) - ob = <ndarray>PyArray_FROM_OTF(b, NPY_DOUBLE, NPY_ALIGNED) + oa = <ndarray>PyArray_FROM_OTF(a, NPY_DOUBLE, NPY_ARRAY_ALIGNED) + ob = <ndarray>PyArray_FROM_OTF(b, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less_equal(oa, 0)): raise ValueError("a <= 0") if np.any(np.less_equal(ob, 0)): @@ -1562,7 +1564,7 @@ cdef class RandomState: PyErr_Clear() - oscale = <ndarray> PyArray_FROM_OTF(scale, NPY_DOUBLE, NPY_ALIGNED) + oscale = <ndarray> PyArray_FROM_OTF(scale, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less_equal(oscale, 0.0)): raise ValueError("scale <= 0") return cont1_array(self.internal_state, rk_exponential, size, oscale) @@ -1672,7 +1674,7 @@ cdef class RandomState: return cont1_array_sc(self.internal_state, rk_standard_gamma, size, fshape) PyErr_Clear() - oshape = <ndarray> PyArray_FROM_OTF(shape, NPY_DOUBLE, NPY_ALIGNED) + oshape = <ndarray> PyArray_FROM_OTF(shape, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less_equal(oshape, 0.0)): raise ValueError("shape <= 0") return cont1_array(self.internal_state, rk_standard_gamma, size, oshape) @@ -1760,8 +1762,8 @@ cdef class RandomState: return cont2_array_sc(self.internal_state, rk_gamma, size, fshape, fscale) PyErr_Clear() - oshape = <ndarray>PyArray_FROM_OTF(shape, NPY_DOUBLE, NPY_ALIGNED) - oscale = <ndarray>PyArray_FROM_OTF(scale, NPY_DOUBLE, NPY_ALIGNED) + oshape = <ndarray>PyArray_FROM_OTF(shape, NPY_DOUBLE, NPY_ARRAY_ALIGNED) + oscale = <ndarray>PyArray_FROM_OTF(scale, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less_equal(oshape, 0.0)): raise ValueError("shape <= 0") if np.any(np.less_equal(oscale, 0.0)): @@ -1863,8 +1865,8 @@ cdef class RandomState: PyErr_Clear() - odfnum = <ndarray>PyArray_FROM_OTF(dfnum, NPY_DOUBLE, NPY_ALIGNED) - odfden = <ndarray>PyArray_FROM_OTF(dfden, NPY_DOUBLE, NPY_ALIGNED) + odfnum = <ndarray>PyArray_FROM_OTF(dfnum, NPY_DOUBLE, NPY_ARRAY_ALIGNED) + odfden = <ndarray>PyArray_FROM_OTF(dfden, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less_equal(odfnum, 0.0)): raise ValueError("dfnum <= 0") if np.any(np.less_equal(odfden, 0.0)): @@ -1953,9 +1955,9 @@ cdef class RandomState: PyErr_Clear() - odfnum = <ndarray>PyArray_FROM_OTF(dfnum, NPY_DOUBLE, NPY_ALIGNED) - odfden = <ndarray>PyArray_FROM_OTF(dfden, NPY_DOUBLE, NPY_ALIGNED) - ononc = <ndarray>PyArray_FROM_OTF(nonc, NPY_DOUBLE, NPY_ALIGNED) + odfnum = <ndarray>PyArray_FROM_OTF(dfnum, NPY_DOUBLE, NPY_ARRAY_ALIGNED) + odfden = <ndarray>PyArray_FROM_OTF(dfden, NPY_DOUBLE, NPY_ARRAY_ALIGNED) + ononc = <ndarray>PyArray_FROM_OTF(nonc, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less_equal(odfnum, 1.0)): raise ValueError("dfnum <= 1") @@ -2039,7 +2041,7 @@ cdef class RandomState: PyErr_Clear() - odf = <ndarray>PyArray_FROM_OTF(df, NPY_DOUBLE, NPY_ALIGNED) + odf = <ndarray>PyArray_FROM_OTF(df, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less_equal(odf, 0.0)): raise ValueError("df <= 0") return cont1_array(self.internal_state, rk_chisquare, size, odf) @@ -2127,8 +2129,8 @@ cdef class RandomState: PyErr_Clear() - odf = <ndarray>PyArray_FROM_OTF(df, NPY_DOUBLE, NPY_ALIGNED) - ononc = <ndarray>PyArray_FROM_OTF(nonc, NPY_DOUBLE, NPY_ALIGNED) + odf = <ndarray>PyArray_FROM_OTF(df, NPY_DOUBLE, NPY_ARRAY_ALIGNED) + ononc = <ndarray>PyArray_FROM_OTF(nonc, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less_equal(odf, 0.0)): raise ValueError("df <= 1") if np.any(np.less_equal(ononc, 0.0)): @@ -2293,7 +2295,7 @@ cdef class RandomState: PyErr_Clear() - odf = <ndarray> PyArray_FROM_OTF(df, NPY_DOUBLE, NPY_ALIGNED) + odf = <ndarray> PyArray_FROM_OTF(df, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less_equal(odf, 0.0)): raise ValueError("df <= 0") return cont1_array(self.internal_state, rk_standard_t, size, odf) @@ -2386,8 +2388,8 @@ cdef class RandomState: PyErr_Clear() - omu = <ndarray> PyArray_FROM_OTF(mu, NPY_DOUBLE, NPY_ALIGNED) - okappa = <ndarray> PyArray_FROM_OTF(kappa, NPY_DOUBLE, NPY_ALIGNED) + omu = <ndarray> PyArray_FROM_OTF(mu, NPY_DOUBLE, NPY_ARRAY_ALIGNED) + okappa = <ndarray> PyArray_FROM_OTF(kappa, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less(okappa, 0.0)): raise ValueError("kappa < 0") return cont2_array(self.internal_state, rk_vonmises, size, omu, okappa) @@ -2483,7 +2485,7 @@ cdef class RandomState: PyErr_Clear() - oa = <ndarray>PyArray_FROM_OTF(a, NPY_DOUBLE, NPY_ALIGNED) + oa = <ndarray>PyArray_FROM_OTF(a, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less_equal(oa, 0.0)): raise ValueError("a <= 0") return cont1_array(self.internal_state, rk_pareto, size, oa) @@ -2583,7 +2585,7 @@ cdef class RandomState: PyErr_Clear() - oa = <ndarray>PyArray_FROM_OTF(a, NPY_DOUBLE, NPY_ALIGNED) + oa = <ndarray>PyArray_FROM_OTF(a, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less_equal(oa, 0.0)): raise ValueError("a <= 0") return cont1_array(self.internal_state, rk_weibull, size, oa) @@ -2692,7 +2694,7 @@ cdef class RandomState: PyErr_Clear() - oa = <ndarray>PyArray_FROM_OTF(a, NPY_DOUBLE, NPY_ALIGNED) + oa = <ndarray>PyArray_FROM_OTF(a, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less_equal(oa, 0.0)): raise ValueError("a <= 0") return cont1_array(self.internal_state, rk_power, size, oa) @@ -2781,8 +2783,8 @@ cdef class RandomState: return cont2_array_sc(self.internal_state, rk_laplace, size, floc, fscale) PyErr_Clear() - oloc = PyArray_FROM_OTF(loc, NPY_DOUBLE, NPY_ALIGNED) - oscale = PyArray_FROM_OTF(scale, NPY_DOUBLE, NPY_ALIGNED) + oloc = PyArray_FROM_OTF(loc, NPY_DOUBLE, NPY_ARRAY_ALIGNED) + oscale = PyArray_FROM_OTF(scale, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less_equal(oscale, 0.0)): raise ValueError("scale <= 0") return cont2_array(self.internal_state, rk_laplace, size, oloc, oscale) @@ -2912,8 +2914,8 @@ cdef class RandomState: return cont2_array_sc(self.internal_state, rk_gumbel, size, floc, fscale) PyErr_Clear() - oloc = PyArray_FROM_OTF(loc, NPY_DOUBLE, NPY_ALIGNED) - oscale = PyArray_FROM_OTF(scale, NPY_DOUBLE, NPY_ALIGNED) + oloc = PyArray_FROM_OTF(loc, NPY_DOUBLE, NPY_ARRAY_ALIGNED) + oscale = PyArray_FROM_OTF(scale, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less_equal(oscale, 0.0)): raise ValueError("scale <= 0") return cont2_array(self.internal_state, rk_gumbel, size, oloc, oscale) @@ -3000,8 +3002,8 @@ cdef class RandomState: return cont2_array_sc(self.internal_state, rk_logistic, size, floc, fscale) PyErr_Clear() - oloc = PyArray_FROM_OTF(loc, NPY_DOUBLE, NPY_ALIGNED) - oscale = PyArray_FROM_OTF(scale, NPY_DOUBLE, NPY_ALIGNED) + oloc = PyArray_FROM_OTF(loc, NPY_DOUBLE, NPY_ARRAY_ALIGNED) + oscale = PyArray_FROM_OTF(scale, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less_equal(oscale, 0.0)): raise ValueError("scale <= 0") return cont2_array(self.internal_state, rk_logistic, size, oloc, oscale) @@ -3121,8 +3123,8 @@ cdef class RandomState: PyErr_Clear() - omean = PyArray_FROM_OTF(mean, NPY_DOUBLE, NPY_ALIGNED) - osigma = PyArray_FROM_OTF(sigma, NPY_DOUBLE, NPY_ALIGNED) + omean = PyArray_FROM_OTF(mean, NPY_DOUBLE, NPY_ARRAY_ALIGNED) + osigma = PyArray_FROM_OTF(sigma, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less_equal(osigma, 0.0)): raise ValueError("sigma <= 0.0") return cont2_array(self.internal_state, rk_lognormal, size, omean, osigma) @@ -3194,7 +3196,7 @@ cdef class RandomState: PyErr_Clear() - oscale = <ndarray>PyArray_FROM_OTF(scale, NPY_DOUBLE, NPY_ALIGNED) + oscale = <ndarray>PyArray_FROM_OTF(scale, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less_equal(oscale, 0.0)): raise ValueError("scale <= 0.0") return cont1_array(self.internal_state, rk_rayleigh, size, oscale) @@ -3275,8 +3277,8 @@ cdef class RandomState: return cont2_array_sc(self.internal_state, rk_wald, size, fmean, fscale) PyErr_Clear() - omean = PyArray_FROM_OTF(mean, NPY_DOUBLE, NPY_ALIGNED) - oscale = PyArray_FROM_OTF(scale, NPY_DOUBLE, NPY_ALIGNED) + omean = PyArray_FROM_OTF(mean, NPY_DOUBLE, NPY_ARRAY_ALIGNED) + oscale = PyArray_FROM_OTF(scale, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less_equal(omean,0.0)): raise ValueError("mean <= 0.0") elif np.any(np.less_equal(oscale,0.0)): @@ -3359,9 +3361,9 @@ cdef class RandomState: fmode, fright) PyErr_Clear() - oleft = <ndarray>PyArray_FROM_OTF(left, NPY_DOUBLE, NPY_ALIGNED) - omode = <ndarray>PyArray_FROM_OTF(mode, NPY_DOUBLE, NPY_ALIGNED) - oright = <ndarray>PyArray_FROM_OTF(right, NPY_DOUBLE, NPY_ALIGNED) + oleft = <ndarray>PyArray_FROM_OTF(left, NPY_DOUBLE, NPY_ARRAY_ALIGNED) + omode = <ndarray>PyArray_FROM_OTF(mode, NPY_DOUBLE, NPY_ARRAY_ALIGNED) + oright = <ndarray>PyArray_FROM_OTF(right, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.greater(oleft, omode)): raise ValueError("left > mode") @@ -3471,8 +3473,8 @@ cdef class RandomState: PyErr_Clear() - on = <ndarray>PyArray_FROM_OTF(n, NPY_LONG, NPY_ALIGNED) - op = <ndarray>PyArray_FROM_OTF(p, NPY_DOUBLE, NPY_ALIGNED) + on = <ndarray>PyArray_FROM_OTF(n, NPY_LONG, NPY_ARRAY_ALIGNED) + op = <ndarray>PyArray_FROM_OTF(p, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less_equal(n, 0)): raise ValueError("n <= 0") if np.any(np.less(p, 0)): @@ -3565,8 +3567,8 @@ cdef class RandomState: PyErr_Clear() - on = <ndarray>PyArray_FROM_OTF(n, NPY_DOUBLE, NPY_ALIGNED) - op = <ndarray>PyArray_FROM_OTF(p, NPY_DOUBLE, NPY_ALIGNED) + on = <ndarray>PyArray_FROM_OTF(n, NPY_DOUBLE, NPY_ARRAY_ALIGNED) + op = <ndarray>PyArray_FROM_OTF(p, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less_equal(n, 0)): raise ValueError("n <= 0") if np.any(np.less(p, 0)): @@ -3640,7 +3642,7 @@ cdef class RandomState: PyErr_Clear() - olam = <ndarray>PyArray_FROM_OTF(lam, NPY_DOUBLE, NPY_ALIGNED) + olam = <ndarray>PyArray_FROM_OTF(lam, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less(olam, 0)): raise ValueError("lam < 0") if np.any(np.greater(olam, self.poisson_lam_max)): @@ -3730,7 +3732,7 @@ cdef class RandomState: PyErr_Clear() - oa = <ndarray>PyArray_FROM_OTF(a, NPY_DOUBLE, NPY_ALIGNED) + oa = <ndarray>PyArray_FROM_OTF(a, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less_equal(oa, 1.0)): raise ValueError("a <= 1.0") return discd_array(self.internal_state, rk_zipf, size, oa) @@ -3794,7 +3796,7 @@ cdef class RandomState: PyErr_Clear() - op = <ndarray>PyArray_FROM_OTF(p, NPY_DOUBLE, NPY_ALIGNED) + op = <ndarray>PyArray_FROM_OTF(p, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less(op, 0.0)): raise ValueError("p < 0.0") if np.any(np.greater(op, 1.0)): @@ -3906,9 +3908,9 @@ cdef class RandomState: PyErr_Clear() - ongood = <ndarray>PyArray_FROM_OTF(ngood, NPY_LONG, NPY_ALIGNED) - onbad = <ndarray>PyArray_FROM_OTF(nbad, NPY_LONG, NPY_ALIGNED) - onsample = <ndarray>PyArray_FROM_OTF(nsample, NPY_LONG, NPY_ALIGNED) + ongood = <ndarray>PyArray_FROM_OTF(ngood, NPY_LONG, NPY_ARRAY_ALIGNED) + onbad = <ndarray>PyArray_FROM_OTF(nbad, NPY_LONG, NPY_ARRAY_ALIGNED) + onsample = <ndarray>PyArray_FROM_OTF(nsample, NPY_LONG, NPY_ARRAY_ALIGNED) if np.any(np.less(ongood, 1)): raise ValueError("ngood < 1") if np.any(np.less(onbad, 1)): @@ -4007,7 +4009,7 @@ cdef class RandomState: PyErr_Clear() - op = <ndarray>PyArray_FROM_OTF(p, NPY_DOUBLE, NPY_ALIGNED) + op = <ndarray>PyArray_FROM_OTF(p, NPY_DOUBLE, NPY_ARRAY_ALIGNED) if np.any(np.less_equal(op, 0.0)): raise ValueError("p <= 0.0") if np.any(np.greater_equal(op, 1.0)): @@ -4208,7 +4210,7 @@ cdef class RandomState: d = len(pvals) parr = <ndarray>PyArray_ContiguousFromObject(pvals, NPY_DOUBLE, 1, 1) - pix = <double*>parr.data + pix = <double*>PyArray_DATA(parr) if kahan_sum(pix, d-1) > (1.0 + 1e-12): raise ValueError("sum(pvals[:-1]) > 1.0") @@ -4222,7 +4224,7 @@ cdef class RandomState: multin = np.zeros(shape, int) mnarr = <ndarray>multin - mnix = <long*>mnarr.data + mnix = <long*>PyArray_DATA(mnarr) i = 0 while i < PyArray_SIZE(mnarr): Sum = 1.0 @@ -4328,7 +4330,7 @@ cdef class RandomState: k = len(alpha) alpha_arr = <ndarray>PyArray_ContiguousFromObject(alpha, NPY_DOUBLE, 1, 1) - alpha_data = <double*>alpha_arr.data + alpha_data = <double*>PyArray_DATA(alpha_arr) if size is None: shape = (k,) @@ -4339,7 +4341,7 @@ cdef class RandomState: diric = np.zeros(shape, np.float64) val_arr = <ndarray>diric - val_data= <double*>val_arr.data + val_data= <double*>PyArray_DATA(val_arr) i = 0 totsize = PyArray_SIZE(val_arr) diff --git a/numpy/random/mtrand/numpy.pxd b/numpy/random/mtrand/numpy.pxd index b4a9c39d8..572b51fdd 100644 --- a/numpy/random/mtrand/numpy.pxd +++ b/numpy/random/mtrand/numpy.pxd @@ -1,5 +1,7 @@ # :Author: Travis Oliphant +cdef extern from "numpy/npy_no_deprecated_api.h": pass + cdef extern from "numpy/arrayobject.h": cdef enum NPY_TYPES: @@ -28,35 +30,35 @@ cdef extern from "numpy/arrayobject.h": NPY_NOTYPE cdef enum requirements: - NPY_CONTIGUOUS - NPY_FORTRAN - NPY_OWNDATA - NPY_FORCECAST - NPY_ENSURECOPY - NPY_ENSUREARRAY - NPY_ELEMENTSTRIDES - NPY_ALIGNED - NPY_NOTSWAPPED - NPY_WRITEABLE - NPY_UPDATEIFCOPY + NPY_ARRAY_C_CONTIGUOUS + NPY_ARRAY_F_CONTIGUOUS + NPY_ARRAY_OWNDATA + NPY_ARRAY_FORCECAST + NPY_ARRAY_ENSURECOPY + NPY_ARRAY_ENSUREARRAY + NPY_ARRAY_ELEMENTSTRIDES + NPY_ARRAY_ALIGNED + NPY_ARRAY_NOTSWAPPED + NPY_ARRAY_WRITEABLE + NPY_ARRAY_UPDATEIFCOPY NPY_ARR_HAS_DESCR - NPY_BEHAVED - NPY_BEHAVED_NS - NPY_CARRAY - NPY_CARRAY_RO - NPY_FARRAY - NPY_FARRAY_RO - NPY_DEFAULT + NPY_ARRAY_BEHAVED + NPY_ARRAY_BEHAVED_NS + NPY_ARRAY_CARRAY + NPY_ARRAY_CARRAY_RO + NPY_ARRAY_FARRAY + NPY_ARRAY_FARRAY_RO + NPY_ARRAY_DEFAULT - NPY_IN_ARRAY - NPY_OUT_ARRAY - NPY_INOUT_ARRAY - NPY_IN_FARRAY - NPY_OUT_FARRAY - NPY_INOUT_FARRAY + NPY_ARRAY_IN_ARRAY + NPY_ARRAY_OUT_ARRAY + NPY_ARRAY_INOUT_ARRAY + NPY_ARRAY_IN_FARRAY + NPY_ARRAY_OUT_FARRAY + NPY_ARRAY_INOUT_FARRAY - NPY_UPDATE_ALL + NPY_ARRAY_UPDATE_ALL cdef enum defines: NPY_MAXDIMS @@ -71,19 +73,9 @@ cdef extern from "numpy/arrayobject.h": ctypedef int npy_intp - ctypedef extern class numpy.dtype [object PyArray_Descr]: - cdef int type_num, elsize, alignment - cdef char type, kind, byteorder, flags - cdef object fields, typeobj + ctypedef extern class numpy.dtype [object PyArray_Descr]: pass - ctypedef extern class numpy.ndarray [object PyArrayObject]: - cdef char *data - cdef int nd - cdef npy_intp *dimensions - cdef npy_intp *strides - cdef object base - cdef dtype descr - cdef int flags + ctypedef extern class numpy.ndarray [object PyArrayObject]: pass ctypedef extern class numpy.flatiter [object PyArrayIterObject]: cdef int nd_m1 @@ -109,7 +101,6 @@ cdef extern from "numpy/arrayobject.h": int mindim, int maxdim) npy_intp PyArray_SIZE(ndarray arr) npy_intp PyArray_NBYTES(ndarray arr) - void *PyArray_DATA(ndarray arr) object PyArray_FromAny(object obj, dtype newtype, int mindim, int maxdim, int requirements, object context) object PyArray_FROMANY(object obj, NPY_TYPES type_num, int min, @@ -131,3 +122,19 @@ cdef extern from "numpy/arrayobject.h": void PyArray_ITER_NEXT(flatiter it) void import_array() + +# include functions that were once macros in the new api + + int PyArray_NDIM(ndarray arr) + char * PyArray_DATA(ndarray arr) + npy_intp * PyArray_DIMS(ndarray arr) + npy_intp * PyArray_STRIDES(ndarray arr) + npy_intp PyArray_DIM(ndarray arr, int idim) + npy_intp PyArray_STRIDE(ndarray arr, int istride) + object PyArray_BASE(ndarray arr) + dtype PyArray_DESCR(ndarray arr) + int PyArray_FLAGS(ndarray arr) + npy_intp PyArray_ITEMSIZE(ndarray arr) + int PyArray_TYPE(ndarray arr) + int PyArray_CHKFLAGS(ndarray arr, int flags) + object PyArray_GETITEM(ndarray arr, char *itemptr) |