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
>>> 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)')
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):
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