Next: Function: reciprocal() Up: GRASP Routines: General purpose Previous: Function: productc()   Contents

## Function: ratio()

0 void ratio(float *c,float *a, float *b,int ncomplex) This routine takes as input a pair of arrays and containing complex numbers. It divides by , 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:
ratio(c,a,a,n), which (very inefficiently) sets every element of to .
ratio(a,a,b,n), which performs the operation .
ratio(a,b,a,n), which performs the operation .
ratio(a,a,a,n), which (very inefficiently) sets every element of to .

This routine is particularly useful when you want to reconstruct the raw interferometer output that would have produced a particular interferometer displacement (see for example normalize_gw() in Section ). This occurs for example if you are injecting" chirps into the raw interferometer output; they first need to be deconvolved with the response function of the instrument. One can invert this equation using ratio() since .

Author: Bruce Allen, ballen@dirac.phys.uwm.edu