#include <math.h>
#include <lal/LALStdlib.h>
#include <lal/LALConstants.h>
#include <lal/AVFactories.h>
#include <lal/SeqFactories.h>
#include <lal/StackMetric.h>
Include dependency graph for CoherentMetric.c:

Go to the source code of this file.
Defines | |
| #define | COHERENTMETRICC_NPTS 100000 |
Functions | |
| NRCSID (COHERENTMETRICC,"$Id: CoherentMetric.c,v 1.9 2008/08/01 12:03:18 reinhard Exp $") | |
| void | LALCoherentMetric (LALStatus *stat, REAL8Vector *metric, REAL8Vector *lambda, MetricParamStruc *params) |
D., Jolien Creighton
$Id: CoherentMetric.c,v 1.9 2008/08/01 12:03:18 reinhard Exp $
This function computes the metric
, as discussed in the header StackMetric.h, under the assumption that the search consists of scanning the Fourier power spectrum constructed from a single time interval
. The indecies
and
are assumed to run from 0 to
, where
is the total number of ``shape'' parameters.
The argument *metric is normally a vector of length
storing all non-redundant coefficients of
. The indexing scheme is as follows: Let us assume that
. Then
metric->data[
. If params->errors is nonzero, then *metric must be double this length, and LALCoherentMetric() will store metric components and their estimated uncertainty in alternate slots; i.e. the metric component
metric->data[
, and the uncertainty
metric->data[
.
The argument lambda is another vector, of length
, storing the components of
for the parameter space point at which the metric is being evaluated. The argument *params stores the remaining parameters for computing the metric, as given in the Structures section of StackMetric.h.
. Since the phase function is simply
, where
, the metric components are simply:
where the indecies
and
run from 1 to
.
In the rigorous definition of the metric, the angle brackets denote an average over the canonical time, not the detector time, so we have:
where the approximation is good to order
equal to the maximum difference between 1 and
. For an Earth-motion barycentred time coordinate, for instance,
is of order
and the approximation is quite good. However, the current implementation of the metric algorithm uses the second, exact formula. If speed considerations become important, this is one obvious area for simplification.
At present, the time averaging is performed by evaluating
and its derivatives at equally-spaced points over
and applying a trapezoidal method; i.e.
where
are the
sample points of the integrand. The number of points is a compiled-in constant. The error is on the order of
, where
is the second derivative of
at some point in the interval; we liberally estimate the error to be:
Other more sophisticated integration techniques may be considered in future. To save on recomputing costs, the derivatives of
at all times are stored in a large vector sequence.
Definition in file CoherentMetric.c.
| #define COHERENTMETRICC_NPTS 100000 |
Definition at line 149 of file CoherentMetric.c.
| NRCSID | ( | COHERENTMETRICC | , | |
| "$Id: CoherentMetric. | c, | |||
| v 1.9 2008/08/01 12:03:18 reinhard Exp $" | ||||
| ) |
| void LALCoherentMetric | ( | LALStatus * | stat, | |
| REAL8Vector * | metric, | |||
| REAL8Vector * | lambda, | |||
| MetricParamStruc * | params | |||
| ) |
Definition at line 160 of file CoherentMetric.c.
1.5.2