通常のdouble*を_m128d*にキャストするのは非常に簡単でわかりやすいです。次のような配列があるとします。
double arr[8] = {1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0};
すると、_m128d
プレゼンテーションは次のようになります。
_m128d m_arr[8] = { [1.0,2.0] , [3.0,4.0] , [5.0,6.0] , [7.0,8.0] };
あなたがそれを言うことができるならば、常に2つの値が保存されるので(それは私がそれを想像する方法です)。しかし、代わりに3x3マトリックスを使用すると、値はどのように分割されますか?例えば:
double mat[3][3] = { {1.0, 2.0, 3.0}, {1.0, 2.0, 3.0}, {1.0, 2.0, 3.0} };
マトリックス内のすべての値を合計しようとしていますが、SSEを使用してこれを効果的に行う方法がわからないため、マトリックスがどのように処理されるかを理解する必要があり_m128d**
ます。誰か知っていますか?