2017-02-15 113 views
2

我想在矢量发生在除了用Cython做,所以我用scipy.linalg.cython_blas.daxpy什么是调用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和双)的&强制性的头两个变量?为什么sklearn代码中没有第一个参数&?

回答

3

我认为这仅仅是BLAS和CBLAS之间的差异。

BLAS(scipy.linalg为你包装)使用FORTRAN接口,因此大多数(/ all?)参数(包括诸如整数之类的简单参数)由指针传递。

Scikit-learn looks to use CBLAS而非scipy.linalg包装。 CBLAS似乎为C定义了一个更自然的接口(通过值传递的简单参数)。


因此,如果您使用scipy Cython包装,您看起来要做的正确。

相关问题