@@ -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 ])
@@ -360,13 +360,13 @@ def c_code(self, node, name, inputs, outputs, sub):
360360 {{PyErr_SetString(PyExc_NotImplementedError, "array too big (overflows int32 index)"); {fail};}}
361361
362362 // strides tell you how many bytes to skip to go to next column/row entry
363- npy_intp Szm = PyArray_STRIDES({z})[0] / PyArray_DESCR ({z})->elsize ;
364- npy_intp Szn = PyArray_STRIDES({z})[1] / PyArray_DESCR ({z})->elsize ;
365- //npy_intp Sbm = PyArray_STRIDES({b})[0] / PyArray_DESCR ({b})->elsize ;
366- npy_intp Sbn = PyArray_STRIDES({b})[1] / PyArray_DESCR ({b})->elsize ;
367- npy_intp Sval = PyArray_STRIDES({a_val})[0] / PyArray_DESCR ({a_val})->elsize ;
368- npy_intp Sind = PyArray_STRIDES({a_ind})[0] / PyArray_DESCR ({a_ind})->elsize ;
369- npy_intp Sptr = PyArray_STRIDES({a_ptr})[0] / PyArray_DESCR ({a_ptr})->elsize ;
363+ npy_intp Szm = PyArray_STRIDES({z})[0] / PyArray_ITEMSIZE ({z});
364+ npy_intp Szn = PyArray_STRIDES({z})[1] / PyArray_ITEMSIZE ({z});
365+ //npy_intp Sbm = PyArray_STRIDES({b})[0] / PyArray_ITEMSIZE ({b});
366+ npy_intp Sbn = PyArray_STRIDES({b})[1] / PyArray_ITEMSIZE ({b});
367+ npy_intp Sval = PyArray_STRIDES({a_val})[0] / PyArray_ITEMSIZE ({a_val});
368+ npy_intp Sind = PyArray_STRIDES({a_ind})[0] / PyArray_ITEMSIZE ({a_ind});
369+ npy_intp Sptr = PyArray_STRIDES({a_ptr})[0] / PyArray_ITEMSIZE ({a_ptr});
370370
371371 // pointers to access actual data in the arrays passed as params.
372372 dtype_{z}* __restrict__ Dz = (dtype_{z}*)PyArray_DATA({z});
@@ -435,7 +435,7 @@ def c_code(self, node, name, inputs, outputs, sub):
435435 return rval
436436
437437 def c_code_cache_version (self ):
438- return (3 ,)
438+ return (4 ,)
439439
440440
441441sd_csc = StructuredDotCSC ()
@@ -553,13 +553,13 @@ def c_code(self, node, name, inputs, outputs, sub):
553553 {{PyErr_SetString(PyExc_NotImplementedError, "array too big (overflows int32 index)"); {fail};}}
554554
555555 // strides tell you how many bytes to skip to go to next column/row entry
556- npy_intp Szm = PyArray_STRIDES({z})[0] / PyArray_DESCR ({z})->elsize ;
557- npy_intp Szn = PyArray_STRIDES({z})[1] / PyArray_DESCR ({z})->elsize ;
558- npy_intp Sbm = PyArray_STRIDES({b})[0] / PyArray_DESCR ({b})->elsize ;
559- npy_intp Sbn = PyArray_STRIDES({b})[1] / PyArray_DESCR ({b})->elsize ;
560- npy_intp Sval = PyArray_STRIDES({a_val})[0] / PyArray_DESCR ({a_val})->elsize ;
561- npy_intp Sind = PyArray_STRIDES({a_ind})[0] / PyArray_DESCR ({a_ind})->elsize ;
562- npy_intp Sptr = PyArray_STRIDES({a_ptr})[0] / PyArray_DESCR ({a_ptr})->elsize ;
556+ npy_intp Szm = PyArray_STRIDES({z})[0] / PyArray_ITEMSIZE ({z});
557+ npy_intp Szn = PyArray_STRIDES({z})[1] / PyArray_ITEMSIZE ({z});
558+ npy_intp Sbm = PyArray_STRIDES({b})[0] / PyArray_ITEMSIZE ({b});
559+ npy_intp Sbn = PyArray_STRIDES({b})[1] / PyArray_ITEMSIZE ({b});
560+ npy_intp Sval = PyArray_STRIDES({a_val})[0] / PyArray_ITEMSIZE ({a_val});
561+ npy_intp Sind = PyArray_STRIDES({a_ind})[0] / PyArray_ITEMSIZE ({a_ind});
562+ npy_intp Sptr = PyArray_STRIDES({a_ptr})[0] / PyArray_ITEMSIZE ({a_ptr});
563563
564564 // pointers to access actual data in the arrays passed as params.
565565 dtype_{z}* __restrict__ Dz = (dtype_{z}*)PyArray_DATA({z});
@@ -612,7 +612,7 @@ def c_code(self, node, name, inputs, outputs, sub):
612612 """ .format (** dict (locals (), ** sub ))
613613
614614 def c_code_cache_version (self ):
615- return (2 ,)
615+ return (3 ,)
616616
617617
618618sd_csr = StructuredDotCSR ()
@@ -842,12 +842,12 @@ def c_code(self, node, name, inputs, outputs, sub):
842842 const npy_int32 * __restrict__ Dptr = (npy_int32*)PyArray_DATA({x_ptr});
843843 const dtype_{alpha} alpha = ((dtype_{alpha}*)PyArray_DATA({alpha}))[0];
844844
845- npy_intp Sz = PyArray_STRIDES({z})[1] / PyArray_DESCR ({z})->elsize ;
846- npy_intp Szn = PyArray_STRIDES({zn})[1] / PyArray_DESCR ({zn})->elsize ;
847- npy_intp Sval = PyArray_STRIDES({x_val})[0] / PyArray_DESCR ({x_val})->elsize ;
848- npy_intp Sind = PyArray_STRIDES({x_ind})[0] / PyArray_DESCR ({x_ind})->elsize ;
849- npy_intp Sptr = PyArray_STRIDES({x_ptr})[0] / PyArray_DESCR ({x_ptr})->elsize ;
850- npy_intp Sy = PyArray_STRIDES({y})[1] / PyArray_DESCR ({y})->elsize ;
845+ npy_intp Sz = PyArray_STRIDES({z})[1] / PyArray_ITEMSIZE ({z});
846+ npy_intp Szn = PyArray_STRIDES({zn})[1] / PyArray_ITEMSIZE ({zn});
847+ npy_intp Sval = PyArray_STRIDES({x_val})[0] / PyArray_ITEMSIZE ({x_val});
848+ npy_intp Sind = PyArray_STRIDES({x_ind})[0] / PyArray_ITEMSIZE ({x_ind});
849+ npy_intp Sptr = PyArray_STRIDES({x_ptr})[0] / PyArray_ITEMSIZE ({x_ptr});
850+ npy_intp Sy = PyArray_STRIDES({y})[1] / PyArray_ITEMSIZE ({y});
851851
852852 // blas expects ints; convert here (rather than just making N etc ints) to avoid potential overflow in the negative-stride correction
853853 if ((N > 0x7fffffffL)||(Sy > 0x7fffffffL)||(Szn > 0x7fffffffL)||(Sy < -0x7fffffffL)||(Szn < -0x7fffffffL))
@@ -893,7 +893,7 @@ def c_code(self, node, name, inputs, outputs, sub):
893893 return rval
894894
895895 def c_code_cache_version (self ):
896- return (3 , blas .blas_header_version ())
896+ return (4 , blas .blas_header_version ())
897897
898898
899899usmm_csc_dense = UsmmCscDense (inplace = False )
@@ -1031,13 +1031,13 @@ def c_code(self, node, name, inputs, outputs, sub):
10311031 npy_intp sp_dim = (M == a_dim_0)?a_dim_1:a_dim_0;
10321032
10331033 // strides tell you how many bytes to skip to go to next column/row entry
1034- npy_intp Sz = PyArray_STRIDES({z})[0] / PyArray_DESCR ({z})->elsize ;
1035- npy_intp Sa_val = PyArray_STRIDES({a_val})[0] / PyArray_DESCR ({a_val})->elsize ;
1036- npy_intp Sa_ind = PyArray_STRIDES({a_ind})[0] / PyArray_DESCR ({a_ind})->elsize ;
1037- npy_intp Sa_ptr = PyArray_STRIDES({a_ptr})[0] / PyArray_DESCR ({a_ptr})->elsize ;
1038- npy_intp Sb_val = PyArray_STRIDES({b_val})[0] / PyArray_DESCR ({b_val})->elsize ;
1039- npy_intp Sb_ind = PyArray_STRIDES({b_ind})[0] / PyArray_DESCR ({b_ind})->elsize ;
1040- npy_intp Sb_ptr = PyArray_STRIDES({b_ptr})[0] / PyArray_DESCR ({b_ptr})->elsize ;
1034+ npy_intp Sz = PyArray_STRIDES({z})[0] / PyArray_ITEMSIZE ({z});
1035+ npy_intp Sa_val = PyArray_STRIDES({a_val})[0] / PyArray_ITEMSIZE ({a_val});
1036+ npy_intp Sa_ind = PyArray_STRIDES({a_ind})[0] / PyArray_ITEMSIZE ({a_ind});
1037+ npy_intp Sa_ptr = PyArray_STRIDES({a_ptr})[0] / PyArray_ITEMSIZE ({a_ptr});
1038+ npy_intp Sb_val = PyArray_STRIDES({b_val})[0] / PyArray_ITEMSIZE ({b_val});
1039+ npy_intp Sb_ind = PyArray_STRIDES({b_ind})[0] / PyArray_ITEMSIZE ({b_ind});
1040+ npy_intp Sb_ptr = PyArray_STRIDES({b_ptr})[0] / PyArray_ITEMSIZE ({b_ptr});
10411041
10421042 // pointers to access actual data in the arrays passed as params.
10431043 dtype_{z}* __restrict__ Dz = (dtype_{z}*)PyArray_DATA({z});
@@ -1082,7 +1082,7 @@ def c_code(self, node, name, inputs, outputs, sub):
10821082 """ .format (** dict (locals (), ** sub ))
10831083
10841084 def c_code_cache_version (self ):
1085- return (3 ,)
1085+ return (4 ,)
10861086
10871087
10881088csm_grad_c = CSMGradC ()
@@ -1476,7 +1476,7 @@ def make_node(self, a_data, a_indices, a_indptr, b):
14761476 )
14771477
14781478 def c_code_cache_version (self ):
1479- return (2 ,)
1479+ return (3 ,)
14801480
14811481 def c_code (self , node , name , inputs , outputs , sub ):
14821482 (
@@ -1537,7 +1537,7 @@ def c_code(self, node, name, inputs, outputs, sub):
15371537
15381538 dtype_{_zout} * const __restrict__ zout = (dtype_{_zout}*)PyArray_DATA({_zout});
15391539
1540- const npy_intp Sb = PyArray_STRIDES({_b})[0] / PyArray_DESCR ({_b})->elsize ;
1540+ const npy_intp Sb = PyArray_STRIDES({_b})[0] / PyArray_ITEMSIZE ({_b});
15411541
15421542 // loop over rows
15431543 for (npy_intp j = 0; j < N; ++j)
@@ -1648,7 +1648,7 @@ def make_node(self, a_data, a_indices, a_indptr, b):
16481648 )
16491649
16501650 def c_code_cache_version (self ):
1651- return (3 ,)
1651+ return (4 ,)
16521652
16531653 def c_code (self , node , name , inputs , outputs , sub ):
16541654 (
@@ -1715,7 +1715,7 @@ def c_code(self, node, name, inputs, outputs, sub):
17151715
17161716 dtype_{_zout} * const __restrict__ zout = (dtype_{_zout}*)PyArray_DATA({_zout});
17171717
1718- const npy_intp Sb = PyArray_STRIDES({_b})[0] / PyArray_DESCR ({_b})->elsize ;
1718+ const npy_intp Sb = PyArray_STRIDES({_b})[0] / PyArray_ITEMSIZE ({_b});
17191719
17201720 // loop over columns
17211721 for (npy_intp j = 0; j < N; ++j)
@@ -1860,7 +1860,7 @@ def make_node(self, x, y, p_data, p_ind, p_ptr, p_ncols):
18601860 )
18611861
18621862 def c_code_cache_version (self ):
1863- return (4 , blas .blas_header_version ())
1863+ return (5 , blas .blas_header_version ())
18641864
18651865 def c_support_code (self , ** kwargs ):
18661866 return blas .blas_header_text ()
@@ -1986,14 +1986,14 @@ def c_code(self, node, name, inputs, outputs, sub):
19861986 dtype_{z_ind}* __restrict__ Dzi = (dtype_{z_ind}*)PyArray_DATA({z_ind});
19871987 dtype_{z_ptr}* __restrict__ Dzp = (dtype_{z_ptr}*)PyArray_DATA({z_ptr});
19881988
1989- const npy_intp Sdx = PyArray_STRIDES({x})[1]/PyArray_DESCR ({x})->elsize ;
1990- const npy_intp Sdy = PyArray_STRIDES({y})[1]/PyArray_DESCR ({y})->elsize ;
1991- const npy_intp Sdpd = PyArray_STRIDES({p_data})[0] / PyArray_DESCR ({p_data})->elsize ;
1992- const npy_intp Sdpi = PyArray_STRIDES({p_ind})[0] / PyArray_DESCR ({p_ind})->elsize ;
1993- const npy_intp Sdpp = PyArray_STRIDES({p_ptr})[0] / PyArray_DESCR ({p_ptr})->elsize ;
1994- const npy_intp Sdzd = PyArray_STRIDES({z_data})[0] / PyArray_DESCR ({z_data})->elsize ;
1995- const npy_intp Sdzi = PyArray_STRIDES({z_ind})[0] / PyArray_DESCR ({z_ind})->elsize ;
1996- const npy_intp Sdzp = PyArray_STRIDES({z_ptr})[0] / PyArray_DESCR ({z_ptr})->elsize ;
1989+ const npy_intp Sdx = PyArray_STRIDES({x})[1]/PyArray_ITEMSIZE ({x});
1990+ const npy_intp Sdy = PyArray_STRIDES({y})[1]/PyArray_ITEMSIZE ({y});
1991+ const npy_intp Sdpd = PyArray_STRIDES({p_data})[0] / PyArray_ITEMSIZE ({p_data});
1992+ const npy_intp Sdpi = PyArray_STRIDES({p_ind})[0] / PyArray_ITEMSIZE ({p_ind});
1993+ const npy_intp Sdpp = PyArray_STRIDES({p_ptr})[0] / PyArray_ITEMSIZE ({p_ptr});
1994+ const npy_intp Sdzd = PyArray_STRIDES({z_data})[0] / PyArray_ITEMSIZE ({z_data});
1995+ const npy_intp Sdzi = PyArray_STRIDES({z_ind})[0] / PyArray_ITEMSIZE ({z_ind});
1996+ const npy_intp Sdzp = PyArray_STRIDES({z_ptr})[0] / PyArray_ITEMSIZE ({z_ptr});
19971997
19981998 memcpy(Dzi, Dpi, PyArray_DIMS({p_ind})[0]*sizeof(dtype_{p_ind}));
19991999 memcpy(Dzp, Dpp, PyArray_DIMS({p_ptr})[0]*sizeof(dtype_{p_ptr}));
0 commit comments