提交 521c44a5 authored 作者: Pascal Lamblin's avatar Pascal Lamblin 提交者: Frederic Bastien

Pass dims as intp to PyArray_SimpleNew

上级 feeb0792
...@@ -403,7 +403,10 @@ class mrg_uniform(mrg_uniform_base): ...@@ -403,7 +403,10 @@ class mrg_uniform(mrg_uniform_base):
return """ return """
//////// <code generated by mrg_uniform> //////// <code generated by mrg_uniform>
// The +1 is to avoid odims[0] which fails on windows // The +1 is to avoid odims[0] which fails on windows
npy_int64 odims[%(ndim)s+1]; // We have to read size[i] as an int64, but odims has to be intp*
// for NumPy on 32-bit platforms.
npy_intp odims[%(ndim)s+1];
npy_int64 odims_i;
npy_int64 n_elements = 1; npy_int64 n_elements = 1;
int n_streams = 0; int n_streams = 0;
int must_alloc_sample = ((NULL == %(o_sample)s) int must_alloc_sample = ((NULL == %(o_sample)s)
...@@ -441,8 +444,9 @@ class mrg_uniform(mrg_uniform_base): ...@@ -441,8 +444,9 @@ class mrg_uniform(mrg_uniform_base):
for (int i = 0; i < %(ndim)s; ++i) for (int i = 0; i < %(ndim)s; ++i)
{ {
odims[i] = *(dtype_%(size)s *)PyArray_GETPTR1(%(size)s, i); odims_i = *(dtype_%(size)s *)PyArray_GETPTR1(%(size)s, i);
n_elements *= odims[i]; odims[i] = odims_i;
n_elements *= odims_i;
must_alloc_sample = must_alloc_sample || (PyArray_DIMS(%(o_sample)s)[i] != odims[i]); must_alloc_sample = must_alloc_sample || (PyArray_DIMS(%(o_sample)s)[i] != odims[i]);
//fprintf(stderr, "size %%i %%i\\n", i, (int)odims[i]); //fprintf(stderr, "size %%i %%i\\n", i, (int)odims[i]);
//printf("%%li", n_elements); //printf("%%li", n_elements);
...@@ -549,7 +553,7 @@ class mrg_uniform(mrg_uniform_base): ...@@ -549,7 +553,7 @@ class mrg_uniform(mrg_uniform_base):
""" % locals() """ % locals()
def c_code_cache_version(self): def c_code_cache_version(self):
return (7, ) return (8, )
class GPU_mrg_uniform(mrg_uniform_base, GpuOp): class GPU_mrg_uniform(mrg_uniform_base, GpuOp):
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论