diff --git a/kwant/linalg/decomp_lu.py b/kwant/linalg/decomp_lu.py index 5f5f2ddca985c3d0284d8ab1b02ad749213d99e6..0db3bc4f502180874f99f30c0f25c7dcd9a9c11c 100644 --- a/kwant/linalg/decomp_lu.py +++ b/kwant/linalg/decomp_lu.py @@ -129,6 +129,7 @@ def rcond_from_lu(xxx_todo_changeme1, norm_a, norm="1"): (lu, ipiv, singular) = xxx_todo_changeme1 if not norm in ("1", "I"): raise ValueError("norm in rcond_from_lu must be either '1' or 'I'") + norm = norm.encode('utf8') # lapack expects bytes ltype, lu = lapack.prepare_for_lapack(False, lu) diff --git a/kwant/linalg/lapack.pyx b/kwant/linalg/lapack.pyx index 5ad31afc254a3b087307b6d1d77b724303487019..da74fbc51b1fc457a21247129c12d07abcc31012 100644 --- a/kwant/linalg/lapack.pyx +++ b/kwant/linalg/lapack.pyx @@ -245,7 +245,7 @@ def zgetrs(np.ndarray[np.complex128_t, ndim=2] LU, # Wrappers for xGECON def sgecon(np.ndarray[np.float32_t, ndim=2] LU, - float normA, char *norm = "1"): + float normA, char *norm = b"1"): cdef l_int N, info cdef float rcond cdef np.ndarray[np.float32_t, ndim=1] work @@ -266,7 +266,7 @@ def sgecon(np.ndarray[np.float32_t, ndim=2] LU, return rcond def dgecon(np.ndarray[np.float64_t, ndim=2] LU, - double normA, char *norm = "1"): + double normA, char *norm = b"1"): cdef l_int N, info cdef double rcond cdef np.ndarray[np.float64_t, ndim=1] work @@ -287,7 +287,7 @@ def dgecon(np.ndarray[np.float64_t, ndim=2] LU, return rcond def cgecon(np.ndarray[np.complex64_t, ndim=2] LU, - float normA, char *norm = "1"): + float normA, char *norm = b"1"): cdef l_int N, info cdef float rcond cdef np.ndarray[np.complex64_t, ndim=1] work @@ -308,7 +308,7 @@ def cgecon(np.ndarray[np.complex64_t, ndim=2] LU, return rcond def zgecon(np.ndarray[np.complex128_t, ndim=2] LU, - double normA, char *norm = "1"): + double normA, char *norm = b"1"): cdef l_int N, info cdef double rcond cdef np.ndarray[np.complex128_t, ndim=1] work