summaryrefslogtreecommitdiff
path: root/numpy
diff options
context:
space:
mode:
authorCharles Harris <charlesr.harris@gmail.com>2012-02-10 16:50:08 -0700
committerCharles Harris <charlesr.harris@gmail.com>2012-04-06 15:54:31 -0600
commit4a2de4b598bdf81a40954e039169be19d52f3bf8 (patch)
treef5e1f8f0733658b85155f27ff92f369ef0327e49 /numpy
parentd47578dd3bd57973eff75c2e89053a733d6bce8f (diff)
downloadnumpy-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.pyx172
-rw-r--r--numpy/random/mtrand/numpy.pxd83
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)