gpt4 book ai didi

python - 调用 scipy.linalg.cython_blas.daxpy 的正确方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 00:40:05 24 4
gpt4 key购买 nike

我想在 cython 中进行就地向量加法,所以我正在使用 scipy.linalg.cython_blas.daxpy

我的语法是:

daxpy(&n_samples, &tmp, &Q[0, ii], &inc, &G[0], &inc)

但是在scikit-learn code , 我读了

axpy(n_samples, -w[ii], &X_data[ii * n_samples], 1, R_data, 1)

其中 axpy 之前已定义为 daxpy。

前两个变量(分别是 int 和 double)的 & 是强制性的吗?为什么 sklearn 代码中的前两个参数没有 & ?

最佳答案

我认为这就是BLAS和CBLAS的区别。

BLAS(scipy.linalg 为您包装)使用 FORTRAN 接口(interface),因此大多数(/所有?)参数(包括简单参数,例如整数)通过指针传递。

Scikit-learn looks to use CBLAS而不是 scipy.linalg 包装器。 CBLAS 似乎定义了一个对 C 更自然的接口(interface)(按值传递的简单参数)。


因此,如果您使用的是 scipy Cython 包装器,那么您看起来是正确的。

关于python - 调用 scipy.linalg.cython_blas.daxpy 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42248311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com