Function Descriptions
3.29 Multiplication of a Complex Vector and the Complex Conjugate of
another Vector
Description:
This module multiplies a complex vector (w) and the complex conjugate of another complex
vector (x).
X
∗
re
[i] = X
re
[i]
X
∗
im
[i] = −X
im
[i]
Y
re
[i] = W
re
[i] ∗ X
re
[i] − W
im
[i] ∗ X
∗
im
[i]
Y
im
[i] = W
re
[i] ∗ X
∗
im
[i] + W
im
[i] ∗ X
re
[i]
Header File:
FPU.h
Declaration:
void mpy_SP_CVxCVC(complex_float
*
y, const complex_float
*
w,
const complex_float
*
x, const Uint16 N)
Usage:
mpy_SP_CVxCVC(y, w, x, N);
complex_float *y
result complex array
complex_float *w
input complex array 1
complex_float *x
input complex array 2
Uint16 N
length of w, x, and y arrays
The type “complex_float” is defined as
typedef struct{
float32 dat[2];
}complex_float;
Element dat[0] is the real part, dat[1] is the imaginary part.
Alignment Requirements:
None
Example:
#include "FPU.h"
#define N 4
complex_float w[N], x[N], y[N];
main()
{
mpy_SP_CVxCVC(y, w, x, N);
}
Benchmark Information:
Number of Cycles = 11*N + 16 cycles (including the call and return)
Sep 10, 2012 63