All of the chirp generation routines, in particular the ubiquitous make_filters(), compute what has come to be known as ``restricted'' post-Newtonian chirps. This means they include all post-Newtonian corrections (up to the specified order) in the phase evolution, but only the dominant quadrupole amplitude.
The routines are flexible in the sense that they have a number of run-time options available for choosing the post-Newtonian order of the phase calculations, or choosing whether or not to include spin effects. We have also isolated those parts of the code where the messy post-Newtonian coefficients appear; thus the routines may be easily modified to include yet higher-order post-Newtonian terms as they become available.
The post-Newtonian equations for the orbital phase evolution are notoriously ill-behaved [10,11] as the binary system nears coalescence. In this regime the expansion parameters [namely the relative velocity of the bodies and/or the field strength ] used in the derivation are comparable to unity. In post-Newtonian calculations higher orders such as post-Newtonian terms have been discarded. Because of this truncation, quantities that are are positive definite in an exact calculation (say the energy-loss rate, or the time derivative of the orbital frequency) often become negative in their post-Newtonian expansion when the orbital separation becomes small. When this happens you are using a post-Newtonian expression in a regime where its validity is questionable. This is cause for concern, and it may be cause for terminating a chirp calculation; but, it need not crash your code. A full-scale gravitational-wave search will need to compute chirps over a broad range of parameters, virtually assuring that any post-Newtonian chirp generator will be pushed into a region of parameter space where it doesn't belong. These routines are designed to traverse these dangerous regions of parameter space as well as possible and gently warn the user of the dangers encountered. The calling routines may wish to act on the warnings coming from the chirp generator. For example a severe warning may prompt the calling routine to discard a given filter from a data search, because the second post-Newtonian calculation of the chirp is so dubious that it can't give meaningful results.
In the next several sections we detail the use of three routines used to compute the ``chirp'' of a coalescing binary system. The first routine we describe is phase_frequency(). This is the underlying routine for the other chirp routines. Given a set of parameters (e.g. the two masses, and the upper and lower cut-off frequency for the chirp) it returns the orbital phase and orbital frequency evolution as a function of time. Next we describe chirp_filter() which returns two (unnormalized) chirp signals. This routine can be used for wholesale production of a bank of templates for a coalescing binary search.