summaryrefslogtreecommitdiff
path: root/numpy
diff options
context:
space:
mode:
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)