C++
C#
VB
JScript
All

# simd_block

Copyright (C) 2005 IENT-RWTH Aachen

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