Next: Function: template_area() Up: GRASP Routines: Template Bank Previous: Function: tau_of_mass()   Contents

## Function: m_and_eta()

0 int m_and_eta(double tau0, double tau1, double *M, double *eta, double Mmin, double Mmax, double pf)
This function takes as inputs the coordinates . If these correspond to individual masses and each lying in the range from to then the function sets the total mass and sets and returns the value 1. Otherwise, the function returns 0 and does not change the values of mass or .

The arguments are:

tau0 Input. The value of (positive, sec).
tau1 Input. The value of (positive, sec).
M Output. The total mass (solar masses). Unaltered if no physical mass values are found in the desired range.
eta Output. The value of (dimensionless). Unaltered if no physical mass values are found in the desired range.
Mmin Input. Minimum mass of one object in the binary pair, in solar masses (positive).
Mmax Input. Maximum mass of one object in the binary pair, in solar masses (positive).
pf: Input. The value . Here is the frequency at which the chirp first enters the bandpass of the gravitational wave detector.
The algorithm followed by m_and_eta() is as follows. Eliminate from the equations defining () and () to obtain the following relation:
 (9.4.196)

with the constants given by:
 (9.4.197)

Given our goal is to find the roots of equation (). It is easy to see that the function on the lhs of () has at most two roots. The function is positive at but decreasing for small positive . However it is positive and increasing again as . Hence the function on the lhs of () has at most a single minimum for . Setting the derivative equal to zero and solving, this minimum lies at a value of the total mass which satisfies
 (9.4.198)

Hence the lhs of () has no roots if its value is positive at or it has two roots if that value is negative. (The set of measure zero" possibility is a single root at .)

If then m_and_eta() searches for roots and separately, else it looks for a root in the range . If the lhs of () changes sign at the upper and lower boundaries of the interval, then a double-precision routine, similar to the Numerical Recipes routine rtsafe(), is used to obtain the root with a combination of safe" bisection and rapid" Newton-Raphson.

If a root is found in the desired range, then is determined by () to be

 (9.4.199)

If then the smaller and larger masses are calculated from
 (9.4.200)

(If both roots for correspond to then an error message is generated and the routine aborts.) If both and are in the desired range then m_and_eta() returns 1 and sets and appropriately, else it returns 0, leaving and unaffected.
Author: Bruce Allen, ballen@dirac.phys.uwm.edu
Comments: Although the arguments to this function are double precision floats, the values of and that may be inferred from them can generally only be determined to single precision, particulary in the neighborhood of . The reason is that in the vicinity of , a fractional error is the value of produces a fractional error in the masses.

Next: Function: template_area() Up: GRASP Routines: Template Bank Previous: Function: tau_of_mass()   Contents
Bruce Allen 2000-11-19