simd_block
template<class G> inline typename SimdBlock< Vector<G> >::self simd_block( Vector<G> &X)
template<class G> inline typename SimdBlock<const Vector<G> >::self simd_block(const Vector<G> &X)
template<class G> inline typename SimdBlock< Matrix<G> >::self simd_block( Matrix<G> &X)
template<class G> inline typename SimdBlock<const Matrix<G> >::self simd_block(const Matrix<G> &X)
Decomposition in blocks for parallel calculation with SIMD instructions
Parameters
X | The array to decompose |
Returns
An array representing every blocks that fit in a SIMD register
Remarks
Does not decompose the array if no SIMD header file was previously included. The array is assumed to be aligned in memory.
Example
DenseVector<short int>::self X(16, "0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15"); cout << simd_block(X)[0] << endl; [0 1 2 3 4 5 6 7] with SSE2 simd_block(Y)=simd_block(X) + simd_block(Y); // quicker than Y=X+Y;
See Also
saturated_simd_block, simd_unaligned_block, saturated_simd_unaligned_block