Function:

`float compute_match(float m1, float m2, float ch0tilde[], float
ch90tilde[], float inverse_distance_scale, float
twice_inv_noise[], float flo, float s_n0, float
s_n90, int npoint, float srate, int err_cd_sprs,
int order)
`

This function computes and returns the match function between
a binary inspiral template that is stored in the arrays `ch0tilde[]` and `ch90tilde` and the binary inspiral template
that corresponds to the binary system whose bodies have masses `m1`
and `m2`.

The two phases of the ``reference chirp'', `ch0tilde[]` and
`ch90tilde[]`, are assumed to have been precomputed and run
through the function `orthonormalize()`. (The parameters
`s_n0` and `s_n90` are assumed to have been found when
the reference chirp was `orthonormalize`d.) This allows
efficient computation of the match of many different templates with
the reference chirp.

The arguments to the function are:

`m1:`Input. Mass of body 1 in the template that is cross-correlated with the reference chirp, solar masses.`m2:`Input. Mass of Body 2 in the template, solar masses.`ch0tilde:`Input. The FFT of the -phase reference chirp.`ch90tilde:`Input. The FFT of the -phase reference chirp.`inverse_distance_scale:`Input. The inverse distance to the binary system, in Mpc. Because the match is a normalized correlation, this parameter isn't physically relevant: moving the binary twice as far from the earth has no effect on the match. However, it may be computationally convenient to scale the inner products that go into the match defintion by some amount to prevent numerical error.`twice_inv_noise:`Input. Twice the inverse noise power spectrum, used for optimal filtering. For a more detailed description, see the routine`find_chirp()`(which is used within`compute_match()`).`flo:`Input. The low-frequency cutoff to impose, in Hz. Within the code, this is used as the starting frequency of the templates; see`make_filters()`.`s_n0:`Input. The normalization of`ch0tilde[]`, found using`orthonormalize()`.`s_n90:`Input. The normalization of`ch90tilde[]`, found using`orthonormalize()`. Note that only the ratio`s_n0/s_n90`is physically relevant, because the match is normalized; if both`s_n0`and`s_n90`are multiplied by some constant, the match is unaffected.`npoint:`Input. Defines the lengths of the various arrays:`ch0tilde[0..npoint-1]`,`ch90tilde[0..npoint-1]`,`twice_inverse_noise[0..npoint/2]`.`srate:`Input. The sampling rate, in Hz. Used to convert between integer array time-domain subscripts and frequency subscripts. For example this is the sample rate of the - and -phase reference chirps, before they are FFT'd.`err_cd_sprs:`Input. The error suppression code to be passed to the chirp generator; see`chirp_filters()`.`order:`Input. Twice the post-Newtonian order;*i.e.*, the power of used in the expansion. See`chirp_filters()`.

- Author: Scott Hughes, hughes@tapir.caltech.edu