6

Blasを使用して、実数行列に複素数ベクトルを乗算するにはどうすればよいですか?ccsrgemv()のような関数を使用すると、タイプの不一致エラーが発生しますか?

error: argument of type "float *" is incompatible with parameter of type "std::complex<float> *"
4

1 に答える 1

5

2つの行列とベクトルの乗算を使用します(A *(x + iy)= A * x + i A * y)。より正確には、複雑なベクトルをストライド2の2つの絡み合った実数ベクトルと見なします。BLASを使用すると、これを実行できます。

更新:実際、私はあなたがスパースBLASを実行していることに気づきませんでした。dgemv私のトリックはうまくいきますが、そうcsrgemvではありません。恐れ入りますが、実数部と虚数部を別々に維持する必要があります。

于 2011-10-01T09:54:48.507 に答える