Next: Function: ratio() Up: GRASP Routines: General purpose Previous: Function: product()   Contents

Function: productc()

0 void productc(float *c,float *a, float *b,int ncomplex) This routine takes as input a pair of arrays and containing complex numbers. It multiplies with the complex-conjugate of , placing the result in , so that . The arguments are:
a: Input. An array of complex numbers a[0..2N-1] with a[2j] and a[2j+1] respectively containing the real and imaginary parts.
b: Input. An array of complex numbers b[0..2N-1] with b[2j] and b[2j+1] respectively containing the real and imaginary parts.
c: Output. The array of complex numbers c[0..2N-1] with c[2j] and c[2j+1] respectively containing the real and imaginary parts of .
ncomplex: Input. The number of complex numbers in the arrays.
Note that the two input arrays a[ ] and b[ ] can be the same array; or the output array c[ ] can be the same as either or both of the inputs. For example, the following are all valid:
productc(c,a,a,n), which performs the operation .
productc(a,a,b,n), which performs the operation .
productc(a,b,a,n), which performs the operation .
productc(a,a,a,n), which performs the operation .
Note also that this routine does not allocate any memory itself - your input and output arrays must be allocated before calling productc().
Author: Bruce Allen, ballen@dirac.phys.uwm.edu