Displaying 3 results from an estimated 3 matches for "complexmultiplication".
2004 Aug 06
2
[PATCH] Make SSE Run Time option.
...d in
//different arrays, not interleaved
inline void ComplexMultiply( __m128d *Cr, __m128d *Ci,
__m128d Ar, __m128d Ai,
__m128d Br, __m128d Bi )
{
// http://mathworld.wolfram.com/ComplexMultiplication.html
// Cr = Ar * Br - Ai * Bi
// Ci = Ai * Br + Ar * Bi
__m128d real = _mm_mul_pd( Ar, Br );
__m128d imag = _mm_mul_pd( Ai, Br );
Ai = _mm_mul_pd( Ai, Bi );
Ar = _mm_mul_pd( Ar, Bi );...
2004 Aug 06
0
[PATCH] Make SSE Run Time option.
...[] = A[] * B[]
> //The real and imaginary parts of A, B and C are stored in
> //different arrays, not interleaved
> inline void ComplexMultiply( __m128d *Cr, __m128d *Ci,
> __m128d Ar, __m128d Ai,
> __m128d Br, __m128d Bi )
> {
> // http://mathworld.wolfram.com/ComplexMultiplication.html
> // Cr = Ar * Br - Ai * Bi
> // Ci = Ai * Br + Ar * Bi
>
> __m128d real = _mm_mul_pd( Ar, Br );
> __m128d imag = _mm_mul_pd( Ai, Br );
>
> Ai = _mm_mul_pd( Ai, Bi );
> Ar = _mm_mul_pd( Ar, Bi );
>
> real = _mm_sub_pd( real, Ai );
> imag = _m...
2004 Aug 06
5
[PATCH] Make SSE Run Time option.
> Personally, I don't think much of PNI. The complex arithmetic stuff they
> added sets you up for a lot of permute overhead that is inefficient --
> especially on a processor that is already weak on permute. In my opinion,
Actually, the new instructions make it possible to do complex multiplies
without the need to permute and separate the add and subtract. The
really useful