@@ -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 ])
@@ -361,13 +361,13 @@ def c_code(self, node, name, inputs, outputs, sub):
361
361
{{PyErr_SetString(PyExc_NotImplementedError, "array too big (overflows int32 index)"); { fail } ;}}
362
362
363
363
// 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 } );
371
371
372
372
// pointers to access actual data in the arrays passed as params.
373
373
dtype_{ z } * __restrict__ Dz = (dtype_{ z } *)PyArray_DATA({ z } );
@@ -436,7 +436,7 @@ def c_code(self, node, name, inputs, outputs, sub):
436
436
return rval
437
437
438
438
def c_code_cache_version (self ):
439
- return (3 ,)
439
+ return (4 ,)
440
440
441
441
442
442
sd_csc = StructuredDotCSC ()
@@ -555,13 +555,13 @@ def c_code(self, node, name, inputs, outputs, sub):
555
555
{{PyErr_SetString(PyExc_NotImplementedError, "array too big (overflows int32 index)"); { fail } ;}}
556
556
557
557
// 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 } );
565
565
566
566
// pointers to access actual data in the arrays passed as params.
567
567
dtype_{ z } * __restrict__ Dz = (dtype_{ z } *)PyArray_DATA({ z } );
@@ -614,7 +614,7 @@ def c_code(self, node, name, inputs, outputs, sub):
614
614
"""
615
615
616
616
def c_code_cache_version (self ):
617
- return (2 ,)
617
+ return (3 ,)
618
618
619
619
620
620
sd_csr = StructuredDotCSR ()
@@ -845,12 +845,12 @@ def c_code(self, node, name, inputs, outputs, sub):
845
845
const npy_int32 * __restrict__ Dptr = (npy_int32*)PyArray_DATA({ x_ptr } );
846
846
const dtype_{ alpha } alpha = ((dtype_{ alpha } *)PyArray_DATA({ alpha } ))[0];
847
847
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 } );
854
854
855
855
// blas expects ints; convert here (rather than just making N etc ints) to avoid potential overflow in the negative-stride correction
856
856
if ((N > 0x7fffffffL)||(Sy > 0x7fffffffL)||(Szn > 0x7fffffffL)||(Sy < -0x7fffffffL)||(Szn < -0x7fffffffL))
@@ -896,7 +896,7 @@ def c_code(self, node, name, inputs, outputs, sub):
896
896
return rval
897
897
898
898
def c_code_cache_version (self ):
899
- return (3 , blas .blas_header_version ())
899
+ return (4 , blas .blas_header_version ())
900
900
901
901
902
902
usmm_csc_dense = UsmmCscDense (inplace = False )
@@ -1035,13 +1035,13 @@ def c_code(self, node, name, inputs, outputs, sub):
1035
1035
npy_intp sp_dim = (M == a_dim_0)?a_dim_1:a_dim_0;
1036
1036
1037
1037
// 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 } );
1045
1045
1046
1046
// pointers to access actual data in the arrays passed as params.
1047
1047
dtype_{ z } * __restrict__ Dz = (dtype_{ z } *)PyArray_DATA({ z } );
@@ -1086,7 +1086,7 @@ def c_code(self, node, name, inputs, outputs, sub):
1086
1086
"""
1087
1087
1088
1088
def c_code_cache_version (self ):
1089
- return (3 ,)
1089
+ return (4 ,)
1090
1090
1091
1091
1092
1092
csm_grad_c = CSMGradC ()
@@ -1482,7 +1482,7 @@ def make_node(self, a_data, a_indices, a_indptr, b):
1482
1482
)
1483
1483
1484
1484
def c_code_cache_version (self ):
1485
- return (2 ,)
1485
+ return (3 ,)
1486
1486
1487
1487
def c_code (self , node , name , inputs , outputs , sub ):
1488
1488
(
@@ -1544,7 +1544,7 @@ def c_code(self, node, name, inputs, outputs, sub):
1544
1544
1545
1545
dtype_{ _zout } * const __restrict__ zout = (dtype_{ _zout } *)PyArray_DATA({ _zout } );
1546
1546
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 } );
1548
1548
1549
1549
// loop over rows
1550
1550
for (npy_intp j = 0; j < N; ++j)
@@ -1655,7 +1655,7 @@ def make_node(self, a_data, a_indices, a_indptr, b):
1655
1655
)
1656
1656
1657
1657
def c_code_cache_version (self ):
1658
- return (3 ,)
1658
+ return (4 ,)
1659
1659
1660
1660
def c_code (self , node , name , inputs , outputs , sub ):
1661
1661
(
@@ -1723,7 +1723,7 @@ def c_code(self, node, name, inputs, outputs, sub):
1723
1723
1724
1724
dtype_{ _zout } * const __restrict__ zout = (dtype_{ _zout } *)PyArray_DATA({ _zout } );
1725
1725
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 } );
1727
1727
1728
1728
// loop over columns
1729
1729
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):
1868
1868
)
1869
1869
1870
1870
def c_code_cache_version (self ):
1871
- return (4 , blas .blas_header_version ())
1871
+ return (5 , blas .blas_header_version ())
1872
1872
1873
1873
def c_support_code (self , ** kwargs ):
1874
1874
return blas .blas_header_text ()
@@ -1995,14 +1995,14 @@ def c_code(self, node, name, inputs, outputs, sub):
1995
1995
dtype_{ z_ind } * __restrict__ Dzi = (dtype_{ z_ind } *)PyArray_DATA({ z_ind } );
1996
1996
dtype_{ z_ptr } * __restrict__ Dzp = (dtype_{ z_ptr } *)PyArray_DATA({ z_ptr } );
1997
1997
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 } );
2006
2006
2007
2007
memcpy(Dzi, Dpi, PyArray_DIMS({ p_ind } )[0]*sizeof(dtype_{ p_ind } ));
2008
2008
memcpy(Dzp, Dpp, PyArray_DIMS({ p_ptr } )[0]*sizeof(dtype_{ p_ptr } ));
0 commit comments