get_blas_funcs — SciPy v1.15.3 Manual (original) (raw)
scipy.linalg.
scipy.linalg.get_blas_funcs(names, arrays=(), dtype=None, ilp64=False)[source]#
Return available BLAS function objects from names.
Arrays are used to determine the optimal prefix of BLAS routines.
Parameters:
namesstr or sequence of str
Name(s) of BLAS functions without type prefix.
arrayssequence of ndarrays, optional
Arrays can be given to determine optimal prefix of BLAS routines. If not given, double-precision routines will be used, otherwise the most generic type in arrays will be used.
dtypestr or dtype, optional
Data-type specifier. Not used if arrays is non-empty.
ilp64{True, False, ‘preferred’}, optional
Whether to return ILP64 routine variant. Choosing ‘preferred’ returns ILP64 routine if available, and otherwise the 32-bit routine. Default: False
Returns:
funcslist
List containing the found function(s).
Notes
This routine automatically chooses between Fortran/C interfaces. Fortran code is used whenever possible for arrays with column major order. In all other cases, C code is preferred.
In BLAS, the naming convention is that all functions start with a type prefix, which depends on the type of the principal matrix. These can be one of {‘s’, ‘d’, ‘c’, ‘z’} for the NumPy types {float32, float64, complex64, complex128} respectively. The code and the dtype are stored in attributes typecode and _dtype_of the returned functions.
Examples
import numpy as np import scipy.linalg as LA rng = np.random.default_rng() a = rng.random((3,2)) x_gemv = LA.get_blas_funcs('gemv', (a,)) x_gemv.typecode 'd' x_gemv = LA.get_blas_funcs('gemv',(a*1j,)) x_gemv.typecode 'z'