[PATCH] WIP
authorserge-sans-paille <serge.guelton@telecom-bretagne.eu>
Mon, 29 Aug 2022 06:15:49 +0000 (08:15 +0200)
committerJochen Sprickerhof <jspricke@debian.org>
Tue, 3 Jan 2023 20:59:59 +0000 (20:59 +0000)
Gbp-Pq: Name pythran_type_PR16646.patch

scipy/optimize/_group_columns.py
scipy/signal/_max_len_seq.py
scipy/signal/_max_len_seq_inner.py
scipy/sparse/_sputils.py

index 8b4fcee34e7b714a82fc3183b0fb5238594c3d2f..99751d28e4e26115a46541dc4c288ef43dc056c3 100644 (file)
@@ -52,10 +52,10 @@ def group_dense(m, n, A):
     return groups
 
 
-#pythran export group_sparse(int, int, intc[], intc[])
-#pythran export group_sparse(int, int, int[], int[])
-#pythran export group_sparse(int, int, intc[::], intc[::])
-#pythran export group_sparse(int, int, int[::], int[::])
+#pythran export group_sparse(int, int, int32[], int32[])
+#pythran export group_sparse(int, int, int64[], int64[])
+#pythran export group_sparse(int, int, int32[::], int32[::])
+#pythran export group_sparse(int, int, int64[::], int64[::])
 def group_sparse(m, n, indices, indptr):
     groups = -np.ones(n, dtype=np.intp)
     current_group = 0
index 04a2e78828a719beda4dbd900ad32090bff2dd37..afe97dd4f4bf08a9ed6d4938c55a0097ca2be711 100644 (file)
@@ -101,14 +101,15 @@ def max_len_seq(nbits, state=None, length=None, taps=None):
     >>> plt.show()
 
     """
+    taps_dtype = np.int32 if np.intp().itemsize == 4 else np.int64
     if taps is None:
         if nbits not in _mls_taps:
             known_taps = np.array(list(_mls_taps.keys()))
             raise ValueError('nbits must be between %s and %s if taps is None'
                              % (known_taps.min(), known_taps.max()))
-        taps = np.array(_mls_taps[nbits], np.intp)
+        taps = np.array(_mls_taps[nbits], taps_dtype)
     else:
-        taps = np.unique(np.array(taps, np.intp))[::-1]
+        taps = np.unique(np.array(taps, taps_dtype))[::-1]
         if np.any(taps < 0) or np.any(taps > nbits) or taps.size < 1:
             raise ValueError('taps must be non-empty with values between '
                              'zero and nbits (inclusive)')
index 88d6ef3d755709b57115a2921ae78f24d6212360..8de08937a9c361502cb27c99a4b663fd076b4d5a 100644 (file)
@@ -3,8 +3,8 @@
 
 import numpy as np
 
-#pythran export _max_len_seq_inner(intp[], int8[], int, int, int8[])
-#pythran export _max_len_seq_inner(int[], int8[], int, int, int8[])
+#pythran export _max_len_seq_inner(int32[], int8[], int, int, int8[])
+#pythran export _max_len_seq_inner(int64[], int8[], int, int, int8[])
 
 # Fast inner loop of max_len_seq.
 def _max_len_seq_inner(taps, state, nbits, length, seq):
index 3fea06ea257e8b92dc3f0c8520016ac409c84b15..6d93b6f92a083689878bc4e09c43143de25eba16 100644 (file)
@@ -153,7 +153,8 @@ def get_index_dtype(arrays=(), maxval=None, check_contents=False):
     int32min = np.iinfo(np.int32).min
     int32max = np.iinfo(np.int32).max
 
-    dtype = np.intc
+    # not using intc directly due to misinteractions with pythran
+    dtype = np.int32 if np.intc().itemsize == 4 else np.int64
     if maxval is not None:
         if maxval > int32max:
             dtype = np.int64