@@ -158,8 +158,8 @@ def c_code(self, node, name, inputs, outputs, sub):
158
158
159
159
dtype_{y}* ydata = (dtype_{y}*)PyArray_DATA({y});
160
160
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});
163
163
164
164
npy_intp pos;
165
165
if ({format} == 0){{
@@ -186,7 +186,7 @@ def infer_shape(self, fgraph, node, shapes):
186
186
return [shapes [3 ]]
187
187
188
188
def c_code_cache_version (self ):
189
- return (2 ,)
189
+ return (3 ,)
190
190
191
191
192
192
@node_rewriter ([sparse .AddSD ])
@@ -360,13 +360,13 @@ def c_code(self, node, name, inputs, outputs, sub):
360
360
{{PyErr_SetString(PyExc_NotImplementedError, "array too big (overflows int32 index)"); {fail};}}
361
361
362
362
// 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});
370
370
371
371
// pointers to access actual data in the arrays passed as params.
372
372
dtype_{z}* __restrict__ Dz = (dtype_{z}*)PyArray_DATA({z});
@@ -435,7 +435,7 @@ def c_code(self, node, name, inputs, outputs, sub):
435
435
return rval
436
436
437
437
def c_code_cache_version (self ):
438
- return (3 ,)
438
+ return (4 ,)
439
439
440
440
441
441
sd_csc = StructuredDotCSC ()
@@ -553,13 +553,13 @@ def c_code(self, node, name, inputs, outputs, sub):
553
553
{{PyErr_SetString(PyExc_NotImplementedError, "array too big (overflows int32 index)"); {fail};}}
554
554
555
555
// 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});
563
563
564
564
// pointers to access actual data in the arrays passed as params.
565
565
dtype_{z}* __restrict__ Dz = (dtype_{z}*)PyArray_DATA({z});
@@ -612,7 +612,7 @@ def c_code(self, node, name, inputs, outputs, sub):
612
612
""" .format (** dict (locals (), ** sub ))
613
613
614
614
def c_code_cache_version (self ):
615
- return (2 ,)
615
+ return (3 ,)
616
616
617
617
618
618
sd_csr = StructuredDotCSR ()
@@ -842,12 +842,12 @@ def c_code(self, node, name, inputs, outputs, sub):
842
842
const npy_int32 * __restrict__ Dptr = (npy_int32*)PyArray_DATA({x_ptr});
843
843
const dtype_{alpha} alpha = ((dtype_{alpha}*)PyArray_DATA({alpha}))[0];
844
844
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});
851
851
852
852
// blas expects ints; convert here (rather than just making N etc ints) to avoid potential overflow in the negative-stride correction
853
853
if ((N > 0x7fffffffL)||(Sy > 0x7fffffffL)||(Szn > 0x7fffffffL)||(Sy < -0x7fffffffL)||(Szn < -0x7fffffffL))
@@ -893,7 +893,7 @@ def c_code(self, node, name, inputs, outputs, sub):
893
893
return rval
894
894
895
895
def c_code_cache_version (self ):
896
- return (3 , blas .blas_header_version ())
896
+ return (4 , blas .blas_header_version ())
897
897
898
898
899
899
usmm_csc_dense = UsmmCscDense (inplace = False )
@@ -1031,13 +1031,13 @@ def c_code(self, node, name, inputs, outputs, sub):
1031
1031
npy_intp sp_dim = (M == a_dim_0)?a_dim_1:a_dim_0;
1032
1032
1033
1033
// 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});
1041
1041
1042
1042
// pointers to access actual data in the arrays passed as params.
1043
1043
dtype_{z}* __restrict__ Dz = (dtype_{z}*)PyArray_DATA({z});
@@ -1082,7 +1082,7 @@ def c_code(self, node, name, inputs, outputs, sub):
1082
1082
""" .format (** dict (locals (), ** sub ))
1083
1083
1084
1084
def c_code_cache_version (self ):
1085
- return (3 ,)
1085
+ return (4 ,)
1086
1086
1087
1087
1088
1088
csm_grad_c = CSMGradC ()
@@ -1476,7 +1476,7 @@ def make_node(self, a_data, a_indices, a_indptr, b):
1476
1476
)
1477
1477
1478
1478
def c_code_cache_version (self ):
1479
- return (2 ,)
1479
+ return (3 ,)
1480
1480
1481
1481
def c_code (self , node , name , inputs , outputs , sub ):
1482
1482
(
@@ -1537,7 +1537,7 @@ def c_code(self, node, name, inputs, outputs, sub):
1537
1537
1538
1538
dtype_{_zout} * const __restrict__ zout = (dtype_{_zout}*)PyArray_DATA({_zout});
1539
1539
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});
1541
1541
1542
1542
// loop over rows
1543
1543
for (npy_intp j = 0; j < N; ++j)
@@ -1648,7 +1648,7 @@ def make_node(self, a_data, a_indices, a_indptr, b):
1648
1648
)
1649
1649
1650
1650
def c_code_cache_version (self ):
1651
- return (3 ,)
1651
+ return (4 ,)
1652
1652
1653
1653
def c_code (self , node , name , inputs , outputs , sub ):
1654
1654
(
@@ -1715,7 +1715,7 @@ def c_code(self, node, name, inputs, outputs, sub):
1715
1715
1716
1716
dtype_{_zout} * const __restrict__ zout = (dtype_{_zout}*)PyArray_DATA({_zout});
1717
1717
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});
1719
1719
1720
1720
// loop over columns
1721
1721
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):
1860
1860
)
1861
1861
1862
1862
def c_code_cache_version (self ):
1863
- return (4 , blas .blas_header_version ())
1863
+ return (5 , blas .blas_header_version ())
1864
1864
1865
1865
def c_support_code (self , ** kwargs ):
1866
1866
return blas .blas_header_text ()
@@ -1986,14 +1986,14 @@ def c_code(self, node, name, inputs, outputs, sub):
1986
1986
dtype_{z_ind}* __restrict__ Dzi = (dtype_{z_ind}*)PyArray_DATA({z_ind});
1987
1987
dtype_{z_ptr}* __restrict__ Dzp = (dtype_{z_ptr}*)PyArray_DATA({z_ptr});
1988
1988
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});
1997
1997
1998
1998
memcpy(Dzi, Dpi, PyArray_DIMS({p_ind})[0]*sizeof(dtype_{p_ind}));
1999
1999
memcpy(Dzp, Dpp, PyArray_DIMS({p_ptr})[0]*sizeof(dtype_{p_ptr}));
0 commit comments