scipy.linalg.

get_blas_funcs#

scipy.linalg.get_blas_funcs(names, arrays=(), dtype=None, ilp64=False)[源]#

根据名称返回可用的 BLAS 函数对象。

数组用于确定 BLAS 例程的最佳前缀。

参数:
names字符串或字符串序列

不带类型前缀的 BLAS 函数名称。

arraysndarray 序列,可选

可以提供数组以确定 BLAS 例程的最佳前缀。如果未提供,将使用双精度例程;否则,将使用数组中最通用的类型。

dtype字符串或 dtype,可选

数据类型说明符。如果 arrays 不为空,则不使用。

ilp64{True, False, ‘preferred’},可选

是否返回 ILP64 例程变体。选择“preferred”会在可用时返回 ILP64 例程,否则返回 32 位例程。默认值:False

返回:
funcs列表

包含找到的函数(或多个函数)的列表。

注意

此例程自动在 Fortran/C 接口之间选择。对于列主序的数组,尽可能使用 Fortran 代码。在所有其他情况下,C 代码是首选。

在 BLAS 中,命名约定是所有函数都以类型前缀开头,这取决于主矩阵的类型。这些可以是 NumPy 类型 {float32, float64, complex64, complex128} 对应的 {‘s’, ‘d’, ‘c’, ‘z’} 之一。代码和 dtype 存储在返回函数的 typecodedtype 属性中。

示例

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