2017-02-15 86 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包裝,您看起來要做的正確。

相關問題