@@ -158,8 +158,8 @@ def c_code(self, node, name, inputs, outputs, sub):
158158
159159 dtype_{ y } * ydata = (dtype_{ y } *)PyArray_DATA({ y } );
160160 dtype_{ z } * zdata = (dtype_{ z } *)PyArray_DATA({ z } );
161- npy_intp Yi = PyArray_STRIDES({ y } )[0]/PyArray_DESCR ({ y } )->elsize ;
162- npy_intp Yj = PyArray_STRIDES({ y } )[1]/PyArray_DESCR ({ y } )->elsize ;
161+ npy_intp Yi = PyArray_STRIDES({ y } )[0]/PyArray_ITEMSIZE ({ y } );
162+ npy_intp Yj = PyArray_STRIDES({ y } )[1]/PyArray_ITEMSIZE ({ y } );
163163
164164 npy_intp pos;
165165 if ({ format } == 0){{
@@ -186,7 +186,7 @@ def infer_shape(self, fgraph, node, shapes):
186186 return [shapes [3 ]]
187187
188188 def c_code_cache_version (self ):
189- return (2 ,)
189+ return (3 ,)
190190
191191
192192@node_rewriter ([sparse .AddSD ])
@@ -361,13 +361,13 @@ def c_code(self, node, name, inputs, outputs, sub):
361361 {{PyErr_SetString(PyExc_NotImplementedError, "array too big (overflows int32 index)"); { fail } ;}}
362362
363363 // strides tell you how many bytes to skip to go to next column/row entry
364- npy_intp Szm = PyArray_STRIDES({ z } )[0] / PyArray_DESCR ({ z } )->elsize ;
365- npy_intp Szn = PyArray_STRIDES({ z } )[1] / PyArray_DESCR ({ z } )->elsize ;
366- //npy_intp Sbm = PyArray_STRIDES({ b } )[0] / PyArray_DESCR ({ b } )->elsize ;
367- npy_intp Sbn = PyArray_STRIDES({ b } )[1] / PyArray_DESCR ({ b } )->elsize ;
368- npy_intp Sval = PyArray_STRIDES({ a_val } )[0] / PyArray_DESCR ({ a_val } )->elsize ;
369- npy_intp Sind = PyArray_STRIDES({ a_ind } )[0] / PyArray_DESCR ({ a_ind } )->elsize ;
370- npy_intp Sptr = PyArray_STRIDES({ a_ptr } )[0] / PyArray_DESCR ({ a_ptr } )->elsize ;
364+ npy_intp Szm = PyArray_STRIDES({ z } )[0] / PyArray_ITEMSIZE ({ z } );
365+ npy_intp Szn = PyArray_STRIDES({ z } )[1] / PyArray_ITEMSIZE ({ z } );
366+ //npy_intp Sbm = PyArray_STRIDES({ b } )[0] / PyArray_ITEMSIZE ({ b } );
367+ npy_intp Sbn = PyArray_STRIDES({ b } )[1] / PyArray_ITEMSIZE ({ b } );
368+ npy_intp Sval = PyArray_STRIDES({ a_val } )[0] / PyArray_ITEMSIZE ({ a_val } );
369+ npy_intp Sind = PyArray_STRIDES({ a_ind } )[0] / PyArray_ITEMSIZE ({ a_ind } );
370+ npy_intp Sptr = PyArray_STRIDES({ a_ptr } )[0] / PyArray_ITEMSIZE ({ a_ptr } );
371371
372372 // pointers to access actual data in the arrays passed as params.
373373 dtype_{ z } * __restrict__ Dz = (dtype_{ z } *)PyArray_DATA({ z } );
@@ -436,7 +436,7 @@ def c_code(self, node, name, inputs, outputs, sub):
436436 return rval
437437
438438 def c_code_cache_version (self ):
439- return (3 ,)
439+ return (4 ,)
440440
441441
442442sd_csc = StructuredDotCSC ()
@@ -555,13 +555,13 @@ def c_code(self, node, name, inputs, outputs, sub):
555555 {{PyErr_SetString(PyExc_NotImplementedError, "array too big (overflows int32 index)"); { fail } ;}}
556556
557557 // strides tell you how many bytes to skip to go to next column/row entry
558- npy_intp Szm = PyArray_STRIDES({ z } )[0] / PyArray_DESCR ({ z } )->elsize ;
559- npy_intp Szn = PyArray_STRIDES({ z } )[1] / PyArray_DESCR ({ z } )->elsize ;
560- npy_intp Sbm = PyArray_STRIDES({ b } )[0] / PyArray_DESCR ({ b } )->elsize ;
561- npy_intp Sbn = PyArray_STRIDES({ b } )[1] / PyArray_DESCR ({ b } )->elsize ;
562- npy_intp Sval = PyArray_STRIDES({ a_val } )[0] / PyArray_DESCR ({ a_val } )->elsize ;
563- npy_intp Sind = PyArray_STRIDES({ a_ind } )[0] / PyArray_DESCR ({ a_ind } )->elsize ;
564- npy_intp Sptr = PyArray_STRIDES({ a_ptr } )[0] / PyArray_DESCR ({ a_ptr } )->elsize ;
558+ npy_intp Szm = PyArray_STRIDES({ z } )[0] / PyArray_ITEMSIZE ({ z } );
559+ npy_intp Szn = PyArray_STRIDES({ z } )[1] / PyArray_ITEMSIZE ({ z } );
560+ npy_intp Sbm = PyArray_STRIDES({ b } )[0] / PyArray_ITEMSIZE ({ b } );
561+ npy_intp Sbn = PyArray_STRIDES({ b } )[1] / PyArray_ITEMSIZE ({ b } );
562+ npy_intp Sval = PyArray_STRIDES({ a_val } )[0] / PyArray_ITEMSIZE ({ a_val } );
563+ npy_intp Sind = PyArray_STRIDES({ a_ind } )[0] / PyArray_ITEMSIZE ({ a_ind } );
564+ npy_intp Sptr = PyArray_STRIDES({ a_ptr } )[0] / PyArray_ITEMSIZE ({ a_ptr } );
565565
566566 // pointers to access actual data in the arrays passed as params.
567567 dtype_{ z } * __restrict__ Dz = (dtype_{ z } *)PyArray_DATA({ z } );
@@ -614,7 +614,7 @@ def c_code(self, node, name, inputs, outputs, sub):
614614 """
615615
616616 def c_code_cache_version (self ):
617- return (2 ,)
617+ return (3 ,)
618618
619619
620620sd_csr = StructuredDotCSR ()
@@ -845,12 +845,12 @@ def c_code(self, node, name, inputs, outputs, sub):
845845 const npy_int32 * __restrict__ Dptr = (npy_int32*)PyArray_DATA({ x_ptr } );
846846 const dtype_{ alpha } alpha = ((dtype_{ alpha } *)PyArray_DATA({ alpha } ))[0];
847847
848- npy_intp Sz = PyArray_STRIDES({ z } )[1] / PyArray_DESCR ({ z } )->elsize ;
849- npy_intp Szn = PyArray_STRIDES({ zn } )[1] / PyArray_DESCR ({ zn } )->elsize ;
850- npy_intp Sval = PyArray_STRIDES({ x_val } )[0] / PyArray_DESCR ({ x_val } )->elsize ;
851- npy_intp Sind = PyArray_STRIDES({ x_ind } )[0] / PyArray_DESCR ({ x_ind } )->elsize ;
852- npy_intp Sptr = PyArray_STRIDES({ x_ptr } )[0] / PyArray_DESCR ({ x_ptr } )->elsize ;
853- npy_intp Sy = PyArray_STRIDES({ y } )[1] / PyArray_DESCR ({ y } )->elsize ;
848+ npy_intp Sz = PyArray_STRIDES({ z } )[1] / PyArray_ITEMSIZE ({ z } );
849+ npy_intp Szn = PyArray_STRIDES({ zn } )[1] / PyArray_ITEMSIZE ({ zn } );
850+ npy_intp Sval = PyArray_STRIDES({ x_val } )[0] / PyArray_ITEMSIZE ({ x_val } );
851+ npy_intp Sind = PyArray_STRIDES({ x_ind } )[0] / PyArray_ITEMSIZE ({ x_ind } );
852+ npy_intp Sptr = PyArray_STRIDES({ x_ptr } )[0] / PyArray_ITEMSIZE ({ x_ptr } );
853+ npy_intp Sy = PyArray_STRIDES({ y } )[1] / PyArray_ITEMSIZE ({ y } );
854854
855855 // blas expects ints; convert here (rather than just making N etc ints) to avoid potential overflow in the negative-stride correction
856856 if ((N > 0x7fffffffL)||(Sy > 0x7fffffffL)||(Szn > 0x7fffffffL)||(Sy < -0x7fffffffL)||(Szn < -0x7fffffffL))
@@ -896,7 +896,7 @@ def c_code(self, node, name, inputs, outputs, sub):
896896 return rval
897897
898898 def c_code_cache_version (self ):
899- return (3 , blas .blas_header_version ())
899+ return (4 , blas .blas_header_version ())
900900
901901
902902usmm_csc_dense = UsmmCscDense (inplace = False )
@@ -1035,13 +1035,13 @@ def c_code(self, node, name, inputs, outputs, sub):
10351035 npy_intp sp_dim = (M == a_dim_0)?a_dim_1:a_dim_0;
10361036
10371037 // strides tell you how many bytes to skip to go to next column/row entry
1038- npy_intp Sz = PyArray_STRIDES({ z } )[0] / PyArray_DESCR ({ z } )->elsize ;
1039- npy_intp Sa_val = PyArray_STRIDES({ a_val } )[0] / PyArray_DESCR ({ a_val } )->elsize ;
1040- npy_intp Sa_ind = PyArray_STRIDES({ a_ind } )[0] / PyArray_DESCR ({ a_ind } )->elsize ;
1041- npy_intp Sa_ptr = PyArray_STRIDES({ a_ptr } )[0] / PyArray_DESCR ({ a_ptr } )->elsize ;
1042- npy_intp Sb_val = PyArray_STRIDES({ b_val } )[0] / PyArray_DESCR ({ b_val } )->elsize ;
1043- npy_intp Sb_ind = PyArray_STRIDES({ b_ind } )[0] / PyArray_DESCR ({ b_ind } )->elsize ;
1044- npy_intp Sb_ptr = PyArray_STRIDES({ b_ptr } )[0] / PyArray_DESCR ({ b_ptr } )->elsize ;
1038+ npy_intp Sz = PyArray_STRIDES({ z } )[0] / PyArray_ITEMSIZE ({ z } );
1039+ npy_intp Sa_val = PyArray_STRIDES({ a_val } )[0] / PyArray_ITEMSIZE ({ a_val } );
1040+ npy_intp Sa_ind = PyArray_STRIDES({ a_ind } )[0] / PyArray_ITEMSIZE ({ a_ind } );
1041+ npy_intp Sa_ptr = PyArray_STRIDES({ a_ptr } )[0] / PyArray_ITEMSIZE ({ a_ptr } );
1042+ npy_intp Sb_val = PyArray_STRIDES({ b_val } )[0] / PyArray_ITEMSIZE ({ b_val } );
1043+ npy_intp Sb_ind = PyArray_STRIDES({ b_ind } )[0] / PyArray_ITEMSIZE ({ b_ind } );
1044+ npy_intp Sb_ptr = PyArray_STRIDES({ b_ptr } )[0] / PyArray_ITEMSIZE ({ b_ptr } );
10451045
10461046 // pointers to access actual data in the arrays passed as params.
10471047 dtype_{ z } * __restrict__ Dz = (dtype_{ z } *)PyArray_DATA({ z } );
@@ -1086,7 +1086,7 @@ def c_code(self, node, name, inputs, outputs, sub):
10861086 """
10871087
10881088 def c_code_cache_version (self ):
1089- return (3 ,)
1089+ return (4 ,)
10901090
10911091
10921092csm_grad_c = CSMGradC ()
@@ -1482,7 +1482,7 @@ def make_node(self, a_data, a_indices, a_indptr, b):
14821482 )
14831483
14841484 def c_code_cache_version (self ):
1485- return (2 ,)
1485+ return (3 ,)
14861486
14871487 def c_code (self , node , name , inputs , outputs , sub ):
14881488 (
@@ -1544,7 +1544,7 @@ def c_code(self, node, name, inputs, outputs, sub):
15441544
15451545 dtype_{ _zout } * const __restrict__ zout = (dtype_{ _zout } *)PyArray_DATA({ _zout } );
15461546
1547- const npy_intp Sb = PyArray_STRIDES({ _b } )[0] / PyArray_DESCR ({ _b } )->elsize ;
1547+ const npy_intp Sb = PyArray_STRIDES({ _b } )[0] / PyArray_ITEMSIZE ({ _b } );
15481548
15491549 // loop over rows
15501550 for (npy_intp j = 0; j < N; ++j)
@@ -1655,7 +1655,7 @@ def make_node(self, a_data, a_indices, a_indptr, b):
16551655 )
16561656
16571657 def c_code_cache_version (self ):
1658- return (3 ,)
1658+ return (4 ,)
16591659
16601660 def c_code (self , node , name , inputs , outputs , sub ):
16611661 (
@@ -1723,7 +1723,7 @@ def c_code(self, node, name, inputs, outputs, sub):
17231723
17241724 dtype_{ _zout } * const __restrict__ zout = (dtype_{ _zout } *)PyArray_DATA({ _zout } );
17251725
1726- const npy_intp Sb = PyArray_STRIDES({ _b } )[0] / PyArray_DESCR ({ _b } )->elsize ;
1726+ const npy_intp Sb = PyArray_STRIDES({ _b } )[0] / PyArray_ITEMSIZE ({ _b } );
17271727
17281728 // loop over columns
17291729 for (npy_intp j = 0; j < N; ++j)
@@ -1868,7 +1868,7 @@ def make_node(self, x, y, p_data, p_ind, p_ptr, p_ncols):
18681868 )
18691869
18701870 def c_code_cache_version (self ):
1871- return (4 , blas .blas_header_version ())
1871+ return (5 , blas .blas_header_version ())
18721872
18731873 def c_support_code (self , ** kwargs ):
18741874 return blas .blas_header_text ()
@@ -1995,14 +1995,14 @@ def c_code(self, node, name, inputs, outputs, sub):
19951995 dtype_{ z_ind } * __restrict__ Dzi = (dtype_{ z_ind } *)PyArray_DATA({ z_ind } );
19961996 dtype_{ z_ptr } * __restrict__ Dzp = (dtype_{ z_ptr } *)PyArray_DATA({ z_ptr } );
19971997
1998- const npy_intp Sdx = PyArray_STRIDES({ x } )[1]/PyArray_DESCR ({ x } )->elsize ;
1999- const npy_intp Sdy = PyArray_STRIDES({ y } )[1]/PyArray_DESCR ({ y } )->elsize ;
2000- const npy_intp Sdpd = PyArray_STRIDES({ p_data } )[0] / PyArray_DESCR ({ p_data } )->elsize ;
2001- const npy_intp Sdpi = PyArray_STRIDES({ p_ind } )[0] / PyArray_DESCR ({ p_ind } )->elsize ;
2002- const npy_intp Sdpp = PyArray_STRIDES({ p_ptr } )[0] / PyArray_DESCR ({ p_ptr } )->elsize ;
2003- const npy_intp Sdzd = PyArray_STRIDES({ z_data } )[0] / PyArray_DESCR ({ z_data } )->elsize ;
2004- const npy_intp Sdzi = PyArray_STRIDES({ z_ind } )[0] / PyArray_DESCR ({ z_ind } )->elsize ;
2005- const npy_intp Sdzp = PyArray_STRIDES({ z_ptr } )[0] / PyArray_DESCR ({ z_ptr } )->elsize ;
1998+ const npy_intp Sdx = PyArray_STRIDES({ x } )[1]/PyArray_ITEMSIZE ({ x } );
1999+ const npy_intp Sdy = PyArray_STRIDES({ y } )[1]/PyArray_ITEMSIZE ({ y } );
2000+ const npy_intp Sdpd = PyArray_STRIDES({ p_data } )[0] / PyArray_ITEMSIZE ({ p_data } );
2001+ const npy_intp Sdpi = PyArray_STRIDES({ p_ind } )[0] / PyArray_ITEMSIZE ({ p_ind } );
2002+ const npy_intp Sdpp = PyArray_STRIDES({ p_ptr } )[0] / PyArray_ITEMSIZE ({ p_ptr } );
2003+ const npy_intp Sdzd = PyArray_STRIDES({ z_data } )[0] / PyArray_ITEMSIZE ({ z_data } );
2004+ const npy_intp Sdzi = PyArray_STRIDES({ z_ind } )[0] / PyArray_ITEMSIZE ({ z_ind } );
2005+ const npy_intp Sdzp = PyArray_STRIDES({ z_ptr } )[0] / PyArray_ITEMSIZE ({ z_ptr } );
20062006
20072007 memcpy(Dzi, Dpi, PyArray_DIMS({ p_ind } )[0]*sizeof(dtype_{ p_ind } ));
20082008 memcpy(Dzp, Dpp, PyArray_DIMS({ p_ptr } )[0]*sizeof(dtype_{ p_ptr } ));
0 commit comments