CoarseGrainFrequencySeries.h   CoarseGrainFrequencySeries.h 
/*********************** <lalVerbatim file="CoarseGrainFrequencySeriesHV"> /*********************** <lalVerbatim file="CoarseGrainFrequencySeriesHV">
Author: UTB Relativity Group; contact whelan@phys.utb.edu (original by S. D rasco) Author: UTB Relativity Group; contact whelan@phys.utb.edu (original by S. D rasco)
$Id: CoarseGrainFrequencySeries.h,v 1.10 2002/02/07 23:00:24 whelan Exp $ $Id: CoarseGrainFrequencySeries.h,v 1.1 2002/06/10 08:15:46 whelan Exp $
*********************************************************** </lalVerbatim> */ *********************************************************** </lalVerbatim> */
/********************************************************** <lalLaTeX> /********************************************************** <lalLaTeX>
\section{Header \texttt{CoarseGrainFrequencySeries.h}} \section{Header \texttt{CoarseGrainFrequencySeries.h}}
\label{stochastic:s:CoarseGrainFrequencySeries.h} \label{utilities:s:CoarseGrainFrequencySeries.h}
Provides prototype, structure and error code information for routines Provides prototype, structure and error code information for routines
which coarse-grain a frequency series. which coarse-grain a frequency series.
\subsection*{Synopsis} \subsection*{Synopsis}
\begin{verbatim} \begin{verbatim}
#include <lal/CoarseGrainFrequencySeries.h> #include <lal/CoarseGrainFrequencySeries.h>
\end{verbatim} \end{verbatim}
\noindent \noindent
skipping to change at line 34 skipping to change at line 34
*********************************************************** </lalLaTeX> */ *********************************************************** </lalLaTeX> */
#include <lal/LALStdlib.h> #include <lal/LALStdlib.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
NRCSID( COARSEGRAINFREQUENCYSERIESH, NRCSID( COARSEGRAINFREQUENCYSERIESH,
"$Id: CoarseGrainFrequencySeries.h,v 1.10 2002/02/07 23:00:24 whela n Exp $" ); "$Id: CoarseGrainFrequencySeries.h,v 1.1 2002/06/10 08:15:46 whelan Exp $" );
/****************** <lalErrTable file="CoarseGrainFrequencySeriesHE"> */ /****************** <lalErrTable file="CoarseGrainFrequencySeriesHE"> */
#define COARSEGRAINFREQUENCYSERIESH_ENULLPTR 1 #define COARSEGRAINFREQUENCYSERIESH_ENULLPTR 1
#define COARSEGRAINFREQUENCYSERIESH_ESAMEPTR 2 #define COARSEGRAINFREQUENCYSERIESH_ESAMEPTR 2
#define COARSEGRAINFREQUENCYSERIESH_EZEROLEN 3 #define COARSEGRAINFREQUENCYSERIESH_EZEROLEN 3
#define COARSEGRAINFREQUENCYSERIESH_ENONPOSDELTAF 4 #define COARSEGRAINFREQUENCYSERIESH_ENONPOSDELTAF 4
#define COARSEGRAINFREQUENCYSERIESH_ENEGFMIN 5 #define COARSEGRAINFREQUENCYSERIESH_ENEGFMIN 5
#define COARSEGRAINFREQUENCYSERIESH_EMMHETERO 7 #define COARSEGRAINFREQUENCYSERIESH_EMMHETERO 7
#define COARSEGRAINFREQUENCYSERIESH_EMMFMIN 8 #define COARSEGRAINFREQUENCYSERIESH_EMMFMIN 8
 End of changes. 3 change blocks. 
3 lines changed or deleted 3 lines changed or added


 ComplexFFT.h   ComplexFFT.h 
/**** <lalVerbatim file="ComplexFFTHV"> /**** <lalVerbatim file="ComplexFFTHV">
* $Id: ComplexFFT.h,v 1.9 2001/08/27 17:25:04 jolien Exp $ * $Id: ComplexFFT.h,v 1.10 2002/05/01 16:39:03 jolien Exp $
**** </lalVerbatim> */ **** </lalVerbatim> */
/**** <lalLaTeX> /**** <lalLaTeX>
* *
* \section{Header \texttt{ComplexFFT.h}} * \section{Header \texttt{ComplexFFT.h}}
* \label{s:ComplexFFT.h} * \label{s:ComplexFFT.h}
* *
* Performs complex-to-complex FFTs. * Performs complex-to-complex FFTs.
* *
* \subsection*{Synopsis} * \subsection*{Synopsis}
skipping to change at line 32 skipping to change at line 32
#ifndef _COMPLEXFFT_H #ifndef _COMPLEXFFT_H
#define _COMPLEXFFT_H #define _COMPLEXFFT_H
#include <lal/LALDatatypes.h> #include <lal/LALDatatypes.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#pragma } #pragma }
#endif #endif
NRCSID( COMPLEXFFTH, "$Id: ComplexFFT.h,v 1.9 2001/08/27 17:25:04 jolien Ex p $" ); NRCSID( COMPLEXFFTH, "$Id: ComplexFFT.h,v 1.10 2002/05/01 16:39:03 jolien E xp $" );
/**** <lalLaTeX> /**** <lalLaTeX>
* \subsection*{Error conditions} * \subsection*{Error conditions}
**** </lalLaTeX> */ **** </lalLaTeX> */
/**** <lalErrTable> */ /**** <lalErrTable> */
#define COMPLEXFFTH_ENULL 1 #define COMPLEXFFTH_ENULL 1
#define COMPLEXFFTH_ENNUL 2 #define COMPLEXFFTH_ENNUL 2
#define COMPLEXFFTH_ESIZE 4 #define COMPLEXFFTH_ESIZE 4
#define COMPLEXFFTH_ESZMM 8 #define COMPLEXFFTH_ESZMM 8
#define COMPLEXFFTH_ESLEN 16 #define COMPLEXFFTH_ESLEN 16
#define COMPLEXFFTH_ESAME 32 #define COMPLEXFFTH_ESAME 32
#define COMPLEXFFTH_EALOC 64 #define COMPLEXFFTH_EALOC 64
#define COMPLEXFFTH_EFFTW 128 #define COMPLEXFFTH_EFFTW 128
#define COMPLEXFFTH_ESNGL 256
#define COMPLEXFFTH_MSGENULL "Null pointer" #define COMPLEXFFTH_MSGENULL "Null pointer"
#define COMPLEXFFTH_MSGENNUL "Non-null pointer" #define COMPLEXFFTH_MSGENNUL "Non-null pointer"
#define COMPLEXFFTH_MSGESIZE "Invalid input size" #define COMPLEXFFTH_MSGESIZE "Invalid input size"
#define COMPLEXFFTH_MSGESZMM "Size mismatch" #define COMPLEXFFTH_MSGESZMM "Size mismatch"
#define COMPLEXFFTH_MSGESLEN "Invalid/mismatched sequence lengths" #define COMPLEXFFTH_MSGESLEN "Invalid/mismatched sequence lengths"
#define COMPLEXFFTH_MSGESAME "Input/Output data vectors are the same" #define COMPLEXFFTH_MSGESAME "Input/Output data vectors are the same"
#define COMPLEXFFTH_MSGEFFTW "Error in FFTW" #define COMPLEXFFTH_MSGEFFTW "Error in FFTW"
#define COMPLEXFFTH_MSGEALOC "Memory allocation failed" #define COMPLEXFFTH_MSGEALOC "Memory allocation failed"
#define COMPLEXFFTH_MSGESNGL "FFTW library is not single-precision"
/**** </lalErrTable> */ /**** </lalErrTable> */
/**** <lalLaTeX> /**** <lalLaTeX>
* *
* \subsection*{Structures} * \subsection*{Structures}
* *
**** </lalLaTeX> */ **** </lalLaTeX> */
/**** <lalVerbatim> */ /**** <lalVerbatim> */
typedef struct tagComplexFFTPlan ComplexFFTPlan; typedef struct tagComplexFFTPlan ComplexFFTPlan;
/**** </lalVerbatim> */ /**** </lalVerbatim> */
 End of changes. 4 change blocks. 
2 lines changed or deleted 4 lines changed or added


 ComputeSky.h   ComputeSky.h 
/************************************ <lalVerbatim file="ComputeSkyHV"> /************************************ <lalVerbatim file="ComputeSkyHV">
Author: Berukoff, S.J., Papa, M.A. Author: Berukoff, S.J., Papa, M.A.
$Id: ComputeSky.h,v 1.7 2001/10/08 13:56:14 sberukoff Exp $ $Id: ComputeSky.h,v 1.8 2002/05/13 16:06:28 sberukoff Exp $
************************************* </lalVerbatim> */ ************************************* </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\section{Header \texttt{ComputeSky.h}} \section{Header \texttt{ComputeSky.h}}
\label{s:ComputeSky.h} \label{s:ComputeSky.h}
Computes phase coefficients necessary for a correct demodulation. Computes phase coefficients necessary for a correct demodulation.
\subsection*{Synopsis} \subsection*{Synopsis}
\begin{verbatim} \begin{verbatim}
#include <lal/ComputeSky.h> #include <lal/ComputeSky.h>
skipping to change at line 88 skipping to change at line 88
\begin{equation} \begin{equation}
B_{s \alpha}=\mathcal{T}_{SFT}\dot{T}_{\alpha}\Delta T_{\alpha}^{s} B_{s \alpha}=\mathcal{T}_{SFT}\dot{T}_{\alpha}\Delta T_{\alpha}^{s}
\end{equation} \end{equation}
</lalLaTeX> */ </lalLaTeX> */
#ifndef _COMPUTESKY_H #ifndef _COMPUTESKY_H
#define _COMPUTESKY_H #define _COMPUTESKY_H
#include <lal/LALStdlib.h> #include <lal/LALStdlib.h>
#include "LALBarycenter.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
NRCSID (COMPUTESKYH, "$Id: ComputeSky.h"); NRCSID (COMPUTESKYH, "$Id: ComputeSky.h");
/* Author-defined error codes */ /* Author-defined error codes */
/* <lalLaTeX> /* <lalLaTeX>
\subsection*{Error conditions} \subsection*{Error conditions}
\vspace{0.1in} \vspace{0.1in}
\input{ComputeSkyHErrorTable} \input{ComputeSkyHErrorTable}
</lalLaTeX> */ </lalLaTeX> */
/* <lalErrTable file="ComputeSkyHErrorTable"> */ /* <lalErrTable file="ComputeSkyHErrorTable"> */
#define COMPUTESKYH_ENULL 1 #define COMPUTESKYH_ENULL 1
#define COMPUTESKYH_ENNUL 2 #define COMPUTESKYH_ENNUL 2
#define COMPUTESKYH_ENEGA 4 #define COMPUTESKYH_ENEGA 4
#define COMPUTESKYH_MSGENULL "Null Pointer" #define COMPUTESKYH_MSGENULL "Null Pointer"
#define COMPUTESKYH_MSGENNUL "Non-Null Pointer" #define COMPUTESKYH_MSGENNUL "Non-Null Pointer"
#define COMPUTESKYH_MSGENEGA "Bad Negative Value" #define COMPUTESKYH_MSGENEGA "Bad Negative Value"
/* </lalErrTable> */ /* </lalErrTable> */
/* <lalLaTeX> /* <lalLaTeX>
\subsection*{Structures} \subsection*{Structures}
\begin{verbatim} \begin{verbatim}
struct CSParams struct CSParams
\end{verbatim} \end{verbatim}
\idx[Type]{CSParams} \index{\texttt{CSParams}}
\noindent This structure contains the parameters for the \verb@ComputeSky() @ routine. The parameters are: \noindent This structure contains the parameters for the \verb@ComputeSky() @ routine. The parameters are:
\begin{description} \begin{description}
\item[\texttt{INT4 spinDwnOrder}] The maximal number of spindown parameters \item[\texttt{INT8 spinDwnOrder}] The maximal number of spindown parameters
per spindown parameter set. per spindown parameter set.
\item[\texttt{INT4 mObsSFT}] The number of SFTs in the observation time. \item[\texttt{INT8 mObsSFT}] The number of SFTs in the observation time.
\item[\texttt{REAL8 tSFT}] The timescale of one SFT. \item[\texttt{REAL8 tSFT}] The timescale of one SFT.
\item[\texttt{LIGOTimeGPS *tGPS}] An array containing the GPS times of the first datum from each SFT. \item[\texttt{LIGOTimeGPS *tGPS}] An array containing the GPS times of the first datum from each SFT.
\item[\texttt{REAL8 *skyPos}] The array containing the sky patch coordinate s. \item[\texttt{REAL8 *skyPos}] The array containing the sky patch coordinate s.
\item[\texttt{CHAR *sw}] A switch which turns modulation on/off. \item[\texttt{CHAR *sw}] A switch which turns modulation on/off.
\item[\texttt{void (*funcName)(REAL8 , REAL8 , REAL8 , REAL8 *, REAL8 *, co nst CHAR *sw)}] A function pointer, to make the use of different timing rou tines easy. \item[\texttt{void (*funcName)(REAL8 , REAL8 , REAL8 , REAL8 *, REAL8 *, co nst CHAR *sw)}] A function pointer, to make the use of different timing rou tines easy.
\end{description} \end{description}
</lalLaTeX> */ </lalLaTeX> */
typedef struct typedef struct
tagCSParams tagCSParams
{ {
INT4 spinDwnOrder; /* max spindown parameter order */ INT8 spinDwnOrder; /* max spindown parameter order */
INT4 mObsSFT; /* number of coherent timescales */ INT8 mObsSFT; /* number of coherent timescales */
REAL8 tSFT; /* timescale of SFT */ REAL8 tSFT; /* timescale of SFT */
LIGOTimeGPS *tGPS; /* GPS time of 1st data sample of ea ch SFT */ LIGOTimeGPS *tGPS; /* GPS time of 1st data sample of ea ch SFT */
REAL8 *skyPos; /* array of sky positions */ REAL8 *skyPos; /* array of sky positions */
const CHAR *sw; /* switch to turn on/off modulation BarycenterInput *baryinput;
*/ EmissionTime *emit;
void (*funcName)(REAL8 , REAL8 , REAL8 , REAL8 *, REAL8 *); EarthState *earth;
EphemerisData *edat;
} }
CSParams; CSParams;
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{ComputeSkyHV} \newpage\input{ComputeSkyHV}
\newpage\input{ComputeSkyC} \newpage\input{ComputeSkyC}
</lalLaTeX> */ </lalLaTeX> */
void ComputeSky (LALStatus *status, void ComputeSky (LALStatus *status,
REAL8 *skyConst, REAL8 *skyConst,
INT4 iSkyCoh, INT8 iSkyCoh,
CSParams *params); CSParams *params);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* _COMPUTESKY_H */ #endif /* _COMPUTESKY_H */
 End of changes. 10 change blocks. 
18 lines changed or deleted 20 lines changed or added


 Date.h   Date.h 
/* <lalVerbatim file="DateHV"> /* <lalVerbatim file="DateHV">
Author: David Chin <dwchin@umich.edu> +1-734-730-1274 Author: David Chin <dwchin@umich.edu> +1-734-730-1274
$Id: Date.h,v 1.35 2002/01/25 02:51:35 dwchin Exp $ $Id: Date.h,v 1.36 2002/05/13 21:06:05 dwchin Exp $
</lalVerbatim> */ </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\section{Header \texttt{Date.h}} \section{Header \texttt{Date.h}}
\label{s:Date.h} \label{s:Date.h}
Provides routines for manipulating date and time information. Provides routines for manipulating date and time information.
skipping to change at line 67 skipping to change at line 67
#include <lal/LALStatusMacros.h> #include <lal/LALStatusMacros.h>
#include <lal/LALStdlib.h> #include <lal/LALStdlib.h>
#include <lal/DetectorSite.h> #include <lal/DetectorSite.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
{ {
#endif #endif
NRCSID (DATEH, "$Id: Date.h,v 1.35 2002/01/25 02:51:35 dwchin Exp $"); NRCSID (DATEH, "$Id: Date.h,v 1.36 2002/05/13 21:06:05 dwchin Exp $");
/* <lalLaTeX> /* <lalLaTeX>
\subsection*{Error conditions} \subsection*{Error conditions}
</lalLaTeX> */ </lalLaTeX> */
/* <lalErrTable> */ /* <lalErrTable> */
#define DATEH_ENULLINPUT 1 #define DATEH_ENULLINPUT 1
#define DATEH_ENULLOUTPUT 2 #define DATEH_ENULLOUTPUT 2
#define DATEH_EDATETOOEARLY 3 #define DATEH_EDATETOOEARLY 3
#define DATEH_ERANGEGPSABS 4 #define DATEH_ERANGEGPSABS 4
#define DATEH_EBUFFTOOSMALL 5 #define DATEH_EBUFFTOOSMALL 5
#define DATEH_EASCTIMEFAIL 6 #define DATEH_EASCTIMEFAIL 6
#define DATEH_EGPSDATETOOEARLY 7 #define DATEH_EGPSDATETOOEARLY 7
#define DATEH_EFORMATPARAMOUTOFRANGE 8 #define DATEH_EFORMATPARAMOUTOFRANGE 8
#define DATEH_EACCPARAMOUTOFRANGE 9 #define DATEH_EACCPARAMOUTOFRANGE 9
#define DATEH_MSGENULLINPUT "Input is NULL" #define DATEH_MSGENULLINPUT "Input is NULL"
#define DATEH_MSGENULLOUTPUT "Output is NULL" #define DATEH_MSGENULLOUTPUT "Output is NULL"
#define DATEH_MSGEDATETOOEARLY "Date too early: Julian Day can only be comp uted for dates >= 1900-03-01" #define DATEH_MSGEDATETOOEARLY "Date too early: Julian Day can only be comp uted for dates >= 1900-03-01"
#define DATEH_MSGERANGEGPSABS "Input time out of range: only able to accura tely convert times between 1980-Jan-06 00:00:00 UTC (GPS 0) and 2002-Mar-31 23:59:00 UTC (GPS 701654353)" #define DATEH_MSGERANGEGPSABS "Input time out of range: only able to accura tely convert times between 1980-Jan-06 00:00:00 UTC (GPS 0) and 2002-Sep-30 23:59:00 UTC (GPS 717465553)"
#define DATEH_MSGEBUFFTOOSMALL "Output timestamp string too small: min. siz e = 26" #define DATEH_MSGEBUFFTOOSMALL "Output timestamp string too small: min. siz e = 26"
#define DATEH_MSGEASCTIMEFAIL "asctimeUNDERSCOREr() failed" #define DATEH_MSGEASCTIMEFAIL "asctimeUNDERSCOREr() failed"
#define DATEH_MSGEGPSDATETOOEARLY "Date too early: GPS time only defined fo r times on or after 1980-Jan-06 00:00:00 UTC" #define DATEH_MSGEGPSDATETOOEARLY "Date too early: GPS time only defined fo r times on or after 1980-Jan-06 00:00:00 UTC"
#define DATEH_MSGEFORMATPARAMOUTOFRANGE "Format parameter out of range: mus t be one of LALLEAPSECunderscoreTAIUTC or LALLEAPSECunderscoreGPSUTC" #define DATEH_MSGEFORMATPARAMOUTOFRANGE "Format parameter out of range: mus t be one of LALLEAPSECunderscoreTAIUTC or LALLEAPSECunderscoreGPSUTC"
#define DATEH_MSGEACCPARAMOUTOFRANGE "Accuracy parameter out of range: must be one of LALLEAPSECunderscoreSTRICT or LALLEAPSECunderscoreLOOSE" #define DATEH_MSGEACCPARAMOUTOFRANGE "Accuracy parameter out of range: must be one of LALLEAPSECunderscoreSTRICT or LALLEAPSECunderscoreLOOSE"
/* </lalErrTable> /* </lalErrTable>
<lalLaTeX> <lalLaTeX>
 End of changes. 3 change blocks. 
3 lines changed or deleted 3 lines changed or added


 DetResponse.h   DetResponse.h 
/* <lalVerbatim file="DetResponseHV"> /* <lalVerbatim file="DetResponseHV">
Author: David Chin <dwchin@umich.edu> +1-734-730-1274 Author: David Chin <dwchin@umich.edu> +1-734-730-1274
$Id: DetResponse.h,v 1.4 2001/12/08 22:40:32 dwchin Exp $ $Id: DetResponse.h,v 1.5 2002/06/07 01:57:10 dwchin Exp $
</lalVerbatim>*/ </lalVerbatim>*/
/* /*
<lalLaTeX> <lalLaTeX>
\section{Header \texttt{DetResponse.h}} \section{Header \texttt{DetResponse.h}}
\label{sec:DetResponse.h} \label{sec:DetResponse.h}
Provides routines to compute gravitational wave detector response to Provides routines to compute gravitational wave detector response to
skipping to change at line 42 skipping to change at line 42
#include <lal/LALStdio.h> #include <lal/LALStdio.h>
#include <lal/LALConstants.h> #include <lal/LALConstants.h>
#include <lal/DetectorSite.h> #include <lal/DetectorSite.h>
#include <lal/SkyCoordinates.h> #include <lal/SkyCoordinates.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
{ {
#endif #endif
NRCSID( DETRESPONSEH, "$Id: DetResponse.h,v 1.4 2001/12/08 22:40:32 dwchin Exp $" ); NRCSID( DETRESPONSEH, "$Id: DetResponse.h,v 1.5 2002/06/07 01:57:10 dwchin Exp $" );
/* /*
<lalLaTeX> <lalLaTeX>
\subsection*{Error conditions} \subsection*{Error conditions}
</lalLaTeX> </lalLaTeX>
*/ */
/* /*
<lalErrTable> <lalErrTable>
*/ */
skipping to change at line 130 skipping to change at line 130
\idx[Type]{LALDetAndSource} \idx[Type]{LALDetAndSource}
This structure aggregates a pointer to a \texttt{LALDetector} and a This structure aggregates a pointer to a \texttt{LALDetector} and a
\texttt{LALSource}. Its sole function is to allow the user to pass \texttt{LALSource}. Its sole function is to allow the user to pass
detector and source parameters to the functions detector and source parameters to the functions
\texttt{LALComputeDetAMResponse()} and \texttt{LALComputeDetAMResponse()} and
\texttt{LALComputeDetAMResponseSeries()}. \texttt{LALComputeDetAMResponseSeries()}.
The fields are: The fields are:
\begin{description} \begin{description}
\item[\texttt{const LALDetector *pDetector}] Pointer to \texttt{LALDetector } \item[\texttt{LALDetector *pDetector}] Pointer to \texttt{LALDetector}
object containing information about the detector object containing information about the detector
\item[\texttt{const LALSource *pSource}] Pointer to \texttt{LALSource} obje ct \item[\texttt{LALSource *pSource}] Pointer to \texttt{LALSource} object
containing information about the source containing information about the source
\end{description} \end{description}
</lalLaTeX> */ </lalLaTeX> */
typedef struct typedef struct
tagLALDetAndSource tagLALDetAndSource
{ {
const LALDetector *pDetector; LALDetector *pDetector;
const LALSource *pSource; LALSource *pSource;
} }
LALDetAndSource; LALDetAndSource;
/* <lalLaTeX> /* <lalLaTeX>
\subsubsection{Structure \texttt{LALDetAMResponse}} \subsubsection{Structure \texttt{LALDetAMResponse}}
\idx[Type]{LALDetAMResponse} \idx[Type]{LALDetAMResponse}
This structure encapsulates the detector AM (beam pattern) coefficients for This structure encapsulates the detector AM (beam pattern) coefficients for
one source at one instance in time. The fields are: one source at one instance in time. The fields are:
 End of changes. 5 change blocks. 
6 lines changed or deleted 6 lines changed or added


 Dirichlet.h   Dirichlet.h 
/************************************ <lalVerbatim file="DirichletHV"> /************************************ <lalVerbatim file="DirichletHV">
Author: UTB Relativity Group; contact whelan@phys.utb.edu Author: UTB Relativity Group; contact whelan@phys.utb.edu
$Id: Dirichlet.h,v 1.11 2002/02/07 23:00:24 whelan Exp $ $Id: Dirichlet.h,v 1.1 2002/06/10 08:15:46 whelan Exp $
*********************************************************** </lalVerbatim> */ *********************************************************** </lalVerbatim> */
/********************************************************** <lalLaTeX> /********************************************************** <lalLaTeX>
\section{Header \texttt{Dirichlet.h}} \section{Header \texttt{Dirichlet.h}}
\label{stochastic:s:Dirichlet.h} \label{utilities:s:Dirichlet.h}
Provides prototype and error code information for \texttt{LALDirichlet()}, Provides prototype and error code information for \texttt{LALDirichlet()},
a routine which calculates the values of the Dirichlet kernel a routine which calculates the values of the Dirichlet kernel
${\cal D}_N(x)$. ${\cal D}_N(x)$.
\subsection*{Synopsis} \subsection*{Synopsis}
\begin{verbatim} \begin{verbatim}
#include "Dirichlet.h" #include "Dirichlet.h"
\end{verbatim} \end{verbatim}
skipping to change at line 59 skipping to change at line 59
#ifndef _DIRICHLET_H #ifndef _DIRICHLET_H
#define _DIRICHLET_H #define _DIRICHLET_H
#include <lal/LALStdlib.h> #include <lal/LALStdlib.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
NRCSID (DIRICHLETH, "$Id: Dirichlet.h,v 1.11 2002/02/07 23:00:24 whelan Exp $"); NRCSID (DIRICHLETH, "$Id: Dirichlet.h,v 1.1 2002/06/10 08:15:46 whelan Exp $");
/******************************** <lalErrTable file="DirichletHErrTable"> * / /******************************** <lalErrTable file="DirichletHErrTable"> * /
#define DIRICHLETH_ENULLPIN 1 #define DIRICHLETH_ENULLPIN 1
#define DIRICHLETH_ENVALUE 2 #define DIRICHLETH_ENVALUE 2
#define DIRICHLETH_ESIZE 3 #define DIRICHLETH_ESIZE 3
#define DIRICHLETH_EDELTAX 4 #define DIRICHLETH_EDELTAX 4
#define DIRICHLETH_ENULLPOUT 5 #define DIRICHLETH_ENULLPOUT 5
#define DIRICHLETH_ESIZEMM 6 #define DIRICHLETH_ESIZEMM 6
#define DIRICHLETH_ENULLPDOUT 7 #define DIRICHLETH_ENULLPDOUT 7
 End of changes. 3 change blocks. 
3 lines changed or deleted 3 lines changed or added


 FindChirp.h   FindChirp.h 
/*----------------------------------------------------------------------- /*-----------------------------------------------------------------------
* *
* File Name: FindChirp.h * File Name: FindChirp.h
* *
* Author: Allen, B., Brown, D. A. and Creighton, J. D. E. * Author: Allen, B., Brown, D. A. and Creighton, J. D. E.
* *
* Revision: $Id: FindChirp.h,v 1.19 2002/03/02 00:39:59 duncan Exp $ * Revision: $Id: FindChirp.h,v 1.21 2002/05/23 20:12:40 duncan Exp $
* *
*----------------------------------------------------------------------- *-----------------------------------------------------------------------
*/ */
#if 0 #if 0
<lalVerbatim file="FindChirpHV"> <lalVerbatim file="FindChirpHV">
Author: Allen, B., Brown, D. A. and Creighton, J. D. E. Author: Allen, B., Brown, D. A. and Creighton, J. D. E.
$Id: FindChirp.h,v 1.19 2002/03/02 00:39:59 duncan Exp $ $Id: FindChirp.h,v 1.21 2002/05/23 20:12:40 duncan Exp $
</lalVerbatim> </lalVerbatim>
<lalLaTeX> <lalLaTeX>
\section{Header \texttt{FindChirp.h}} \section{Header \texttt{FindChirp.h}}
\label{s:FindChirp.h} \label{s:FindChirp.h}
Provides core protypes, structures and functions to filter interferometer d ata Provides core protypes, structures and functions to filter interferometer d ata
for binary inspiral chirps. for binary inspiral chirps.
\subsection*{Synopsis} \subsection*{Synopsis}
skipping to change at line 52 skipping to change at line 52
#include <lal/Comm.h> #include <lal/Comm.h>
#endif #endif
#include <lal/LALInspiral.h> #include <lal/LALInspiral.h>
#include <lal/FindChirpChisq.h> #include <lal/FindChirpChisq.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#pragma } #pragma }
#endif #endif
NRCSID (FINDCHIRPH, "$Id: FindChirp.h,v 1.19 2002/03/02 00:39:59 duncan Exp $"); NRCSID (FINDCHIRPH, "$Id: FindChirp.h,v 1.21 2002/05/23 20:12:40 duncan Exp $");
#if 0 #if 0
<lalLaTeX> <lalLaTeX>
\subsection*{Error codes} \subsection*{Error codes}
</lalLaTeX> </lalLaTeX>
#endif #endif
/* <lalErrTable> */ /* <lalErrTable> */
#define FINDCHIRPH_ENULL 1 #define FINDCHIRPH_ENULL 1
#define FINDCHIRPH_ENNUL 2 #define FINDCHIRPH_ENNUL 2
#define FINDCHIRPH_EALOC 3 #define FINDCHIRPH_EALOC 3
skipping to change at line 148 skipping to change at line 148
#endif #endif
/* --- structure for describing a binary insipral event ------------------ */ /* --- structure for describing a binary insipral event ------------------ */
#pragma <lalVerbatim file="FindChirpHInspiralEvent"> #pragma <lalVerbatim file="FindChirpHInspiralEvent">
typedef struct typedef struct
tagInspiralEvent tagInspiralEvent
{ {
UINT4 id; UINT4 id;
UINT4 segmentNumber; UINT4 segmentNumber;
LIGOTimeGPS time; LIGOTimeGPS time;
LIGOTimeGPS impulseTime;
UINT4 timeIndex; UINT4 timeIndex;
InspiralTemplate tmplt; InspiralTemplate tmplt;
REAL4 snrsq; REAL4 snrsq;
REAL4 chisq; REAL4 chisq;
REAL4 sigma; REAL4 sigma;
REAL4 effDist; REAL4 effDist;
REAL4 coaPhase; REAL4 coaPhase;
UINT4 numChisqBins;
CHAR ifoName[2]; CHAR ifoName[2];
CHAR channel[LALNameLength];
WaveformGenerator wavGen; WaveformGenerator wavGen;
struct tagInspiralEvent *next; struct tagInspiralEvent *next;
} }
InspiralEvent; InspiralEvent;
#pragma </lalVerbatim> #pragma </lalVerbatim>
#if 0 #if 0
<lalLaTeX> <lalLaTeX>
\subsubsection*{Structure \texttt{InspiralEvent}} \subsubsection*{Structure \texttt{InspiralEvent}}
\idx[Type]{InspiralEvent} \idx[Type]{InspiralEvent}
 End of changes. 6 change blocks. 
3 lines changed or deleted 6 lines changed or added


 FindChirpEngine.h   FindChirpEngine.h 
/*----------------------------------------------------------------------- /*-----------------------------------------------------------------------
* *
* File Name: FindChirpEngine.h * File Name: FindChirpEngine.h
* *
* Author: Brown, D. A. * Author: Brown, D. A.
* *
* Revision: $Id: FindChirpEngine.h,v 1.21 2002/04/04 21:46:41 duncan Exp $ * Revision: $Id: FindChirpEngine.h,v 1.22 2002/06/25 12:34:38 duncan Exp $
* *
*----------------------------------------------------------------------- *-----------------------------------------------------------------------
*/ */
#if 0 #if 0
<lalVerbatim file="FindChirpEngineHV"> <lalVerbatim file="FindChirpEngineHV">
Author: Brown, D. A. Author: Brown, D. A.
$Id: FindChirpEngine.h,v 1.21 2002/04/04 21:46:41 duncan Exp $ $Id: FindChirpEngine.h,v 1.22 2002/06/25 12:34:38 duncan Exp $
</lalVerbatim> </lalVerbatim>
<lalLaTeX> <lalLaTeX>
\section{Header \texttt{FindChirpEngine.h}} \section{Header \texttt{FindChirpEngine.h}}
\label{s:FindChirpEngine.h} \label{s:FindChirpEngine.h}
Provides functions to drive the filtering functions in the package Provides functions to drive the filtering functions in the package
\texttt{findchirp}. Contains the functions necessary to execute a flat \texttt{findchirp}. Contains the functions necessary to execute a flat
or heirarchical inspiral search using the LDAS \texttt{wrapperAPI} or or heirarchical inspiral search using the LDAS \texttt{wrapperAPI} or
the LALapps program \texttt{findchirp}. the LALapps program \texttt{findchirp}.
skipping to change at line 65 skipping to change at line 65
#ifdef LAL_MPI_ENABLED #ifdef LAL_MPI_ENABLED
#include <lal/Comm.h> #include <lal/Comm.h>
#include <lal/FindChirpExch.h> #include <lal/FindChirpExch.h>
#endif /* LAL_MPI_ENABLED */ #endif /* LAL_MPI_ENABLED */
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#pragma } #pragma }
#endif #endif
NRCSID (FINDCHIRPENGINEHH, "$Id: FindChirpEngine.h,v 1.21 2002/04/04 21:46: 41 duncan Exp $"); NRCSID (FINDCHIRPENGINEHH, "$Id: FindChirpEngine.h,v 1.22 2002/06/25 12:34: 38 duncan Exp $");
#if 0 #if 0
<lalLaTeX> <lalLaTeX>
\subsection*{Error codes} \subsection*{Error codes}
</lalLaTeX> </lalLaTeX>
#endif #endif
/* <lalErrTable> */ /* <lalErrTable> */
#define FINDCHIRPENGINEH_ENULL 1 #define FINDCHIRPENGINEH_ENULL 1
#define FINDCHIRPENGINEH_ENNUL 2 #define FINDCHIRPENGINEH_ENNUL 2
#define FINDCHIRPENGINEH_ENUMZ 3 #define FINDCHIRPENGINEH_ENUMZ 3
skipping to change at line 225 skipping to change at line 225
REAL4 mMin; /* minimum mass for binary */ REAL4 mMin; /* minimum mass for binary */
REAL4 mMax; /* maximum mass for binary */ REAL4 mMax; /* maximum mass for binary */
REAL4 fLowInject; /* waveform low freq cutoff */ REAL4 fLowInject; /* waveform low freq cutoff */
REAL4 gaussianVarsq; /* variance squared of nois e */ REAL4 gaussianVarsq; /* variance squared of nois e */
RandomParams *randomParams; /* random seed container */ RandomParams *randomParams; /* random seed container */
REAL4TimeSeries *chan; /* pointer to the data chun k */ REAL4TimeSeries *chan; /* pointer to the data chun k */
} }
FindChirpSimulationParams; FindChirpSimulationParams;
typedef struct typedef struct
tagFindChirpStandardCandle
{
InspiralTemplate tmplt;
REAL4 rhosq;
REAL4 sigmasq;
REAL4 effDistance;
}
FindChirpStandardCandle;
typedef struct
tagFindChirpSlaveParams tagFindChirpSlaveParams
{ {
UINT4 dataConditioned; UINT4 dataConditioned;
UINT4 *inspiralDebugFlagPtr; UINT4 *inspiralDebugFlagPtr;
REAL4 *rhosqThreshVec; REAL4 *rhosqThreshVec;
REAL4 *chisqThreshVec; REAL4 *chisqThreshVec;
FILE *tmpltBankFilePtr; FILE *tmpltBankFilePtr;
FILE *eventFilePtr; FILE *eventFilePtr;
FindChirpStandardCandle *candlePtr;
FindChirpSegmentVector *fcSegVec; FindChirpSegmentVector *fcSegVec;
FindChirpSPDataParams *dataParams; FindChirpSPDataParams *dataParams;
FindChirpSPTmpltParams *tmpltParams; FindChirpSPTmpltParams *tmpltParams;
FindChirpFilterParams *filterParams; FindChirpFilterParams *filterParams;
FindChirpFilterInput *filterInput; FindChirpFilterInput *filterInput;
FindChirpSimulationParams *simParams; FindChirpSimulationParams *simParams;
BOOLEAN *notFinished; BOOLEAN *notFinished;
BOOLEAN useMPI; BOOLEAN useMPI;
void *mpiComm; void *mpiComm;
} }
 End of changes. 5 change blocks. 
3 lines changed or deleted 14 lines changed or added


 FrameStream.h   FrameStream.h 
/**** <lalVerbatim file="FrameStreamHV"> /**** <lalVerbatim file="FrameStreamHV">
* Author: Jolien D. E. Creighton * Author: Jolien D. E. Creighton
* $Id: FrameStream.h,v 1.2 2001/11/13 19:41:31 jolien Exp $ * $Id: FrameStream.h,v 1.5 2002/06/10 22:49:29 jolien Exp $
**** </lalVerbatim> */ **** </lalVerbatim> */
/**** <lalLaTeX> /**** <lalLaTeX>
* *
* \section{Header \texttt{FrameStream.h}} * \section{Header \texttt{FrameStream.h}}
* *
* Low-level routines for manupulating frame data streams. * Low-level routines for manupulating frame data streams.
* *
* \subsection*{Synopsis} * \subsection*{Synopsis}
* \begin{verbatim} * \begin{verbatim}
skipping to change at line 27 skipping to change at line 27
* *
* A frame stream is like a file stream except that it streams along the se t * A frame stream is like a file stream except that it streams along the se t
* of frames in a set of frame files. These routines are low-level routine s * of frames in a set of frame files. These routines are low-level routine s
* that allow you to extract frame data. Many of these routines have names * that allow you to extract frame data. Many of these routines have names
* similar to the standard C file stream manipulation routines and perform * similar to the standard C file stream manipulation routines and perform
* similar functions. * similar functions.
* *
**** </lalLaTeX> */ **** </lalLaTeX> */
#include <lal/LALDatatypes.h> #include <lal/LALDatatypes.h>
#include <lal/FrameCache.h>
#ifndef _FRAMESTREAM_H #ifndef _FRAMESTREAM_H
#define _FRAMESTREAM_H #define _FRAMESTREAM_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#pragma } #pragma }
#endif #endif
NRCSID( FRAMESTREAMH, "$Id: FrameStream.h,v 1.2 2001/11/13 19:41:31 jolien Exp $" ); NRCSID( FRAMESTREAMH, "$Id: FrameStream.h,v 1.5 2002/06/10 22:49:29 jolien Exp $" );
/**** <lalLaTeX> /**** <lalLaTeX>
* *
* \subsection*{Error conditions} * \subsection*{Error conditions}
* *
**** </lalLaTeX> */ **** </lalLaTeX> */
/**** <lalErrTable> */ /**** <lalErrTable> */
#define FRAMESTREAMH_ENULL 00001 #define FRAMESTREAMH_ENULL 00001
#define FRAMESTREAMH_ENNUL 00002 #define FRAMESTREAMH_ENNUL 00002
#define FRAMESTREAMH_EALOC 00004 #define FRAMESTREAMH_EALOC 00004
skipping to change at line 96 skipping to change at line 97
* This structure details the state of the frame stream. The contents are * This structure details the state of the frame stream. The contents are
* private; you should not tamper with them! * private; you should not tamper with them!
* *
**** </lalLaTeX> */ **** </lalLaTeX> */
/**** <lalVerbatim> */ /**** <lalVerbatim> */
typedef struct typedef struct
tagFrPos tagFrPos
{ {
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
UINT4 filenum; UINT4 filenum;
UINT4 frnum; UINT4 frame;
UINT4 run;
} }
FrPos; FrPos;
/**** </lalVerbatim> */ /**** </lalVerbatim> */
/**** <lalLaTeX> /**** <lalLaTeX>
* *
* This structure contains a record of the state of a frame stream; this * This structure contains a record of the state of a frame stream; this
* record can be used to restore the stream to the state when the record * record can be used to restore the stream to the state when the record
* was made (provided the stream has not been closed). The fields are: * was made (provided the stream has not been closed). The fields are:
* \begin{description} * \begin{description}
* \item[\texttt{epoch}] the GPS time of the open frame when the record * \item[\texttt{epoch}] the GPS time of the open frame when the record
* was made. * was made.
* \item[\texttt{filenum}] the file number of a list of frame files that wa s * \item[\texttt{filenum}] the file number of a list of frame files that wa s
* open when the record was made. * open when the record was made.
* \item[\texttt{frnum}] the frame number of the frames within the open * \item[\texttt{frame}] the frame number of the frames within the
* frame file that was open when the record was made.
* \item[\texttt{run}] the run number of the frames within the
* frame file that was open when the record was made. * frame file that was open when the record was made.
* \end{description} * \end{description}
* *
**** </lalLaTeX> */ **** </lalLaTeX> */
/**** <lalVerbatim> */ /**** <lalVerbatim> */
typedef enum typedef enum
tagChannelType tagChannelType
{ ProcDataChannel, ADCDataChannel, SimDataChannel } { ProcDataChannel, ADCDataChannel, SimDataChannel }
ChannelType; ChannelType;
/**** </lalVerbatim> */ /**** </lalVerbatim> */
skipping to change at line 152 skipping to change at line 156
* \item[\texttt{name}] the name of the channel. * \item[\texttt{name}] the name of the channel.
* \item[\texttt{type}] the channel type. * \item[\texttt{type}] the channel type.
* \end{description} * \end{description}
* *
**** </lalLaTeX> */ **** </lalLaTeX> */
/**** <lalVerbatim> */ /**** <lalVerbatim> */
typedef struct typedef struct
tagFrOutPar tagFrOutPar
{ {
const CHAR *prefix; const CHAR *source;
const CHAR *description;
ChannelType type; ChannelType type;
UINT4 nframes; UINT4 nframes;
UINT4 frame; UINT4 frame;
UINT4 run; UINT4 run;
} }
FrOutPar; FrOutPar;
/**** </lalVerbatim> */ /**** </lalVerbatim> */
/**** <lalLaTeX> /**** <lalLaTeX>
* *
* This structure specifies the parameters for output of data to a frame. * This structure specifies the parameters for output of data to a frame.
* The fields are: * The fields are:
* \begin{description} * \begin{description}
* \item[\texttt{prefix}] the prefix to attach to the output frame file nam * \item[\texttt{source}] the source identifier to attach to the output
e. * frame file name.
* \item[\texttt{description}] the description identifier to attach to the
* output frame file name.
* \item[\texttt{type}] the type of channel to create in the output frames. * \item[\texttt{type}] the type of channel to create in the output frames.
* \item[\texttt{nframes}] the number of frames to output in the frame file . * \item[\texttt{nframes}] the number of frames to output in the frame file .
* \item[\texttt{frame}] the number the first frame of output. * \item[\texttt{frame}] the number the first frame of output.
* \item[\texttt{run}] the number this data run. * \item[\texttt{run}] the number this data run.
* \end{description} * \end{description}
* The output frame file name will be
* $\langle\mbox{source}\rangle$\verb+-+$\langle\mbox{description}\rangle$%
* \verb+-+$\langle\mbox{GPS start time}\rangle$\verb+-+%
* $\langle\mbox{duration}\rangle$\verb+.gwf+.
* *
* \vfill{\footnotesize\input{FrameStreamHV}} * \vfill{\footnotesize\input{FrameStreamHV}}
* \newpage\input{FrameStreamC} * \newpage\input{FrameStreamC}
* \newpage\input{FrameSeriesC}
* \newpage\input{FrameStreamTestC} * \newpage\input{FrameStreamTestC}
* *
**** </lalLaTeX> */ **** </lalLaTeX> */
void void
LALFrCacheOpen(
LALStatus *status,
FrStream **output,
FrCache *cache
);
void
LALFrOpen( LALFrOpen(
LALStatus *status, LALStatus *status,
FrStream **stream, FrStream **stream,
const CHAR *dirname, const CHAR *dirname,
const CHAR *pattern const CHAR *pattern
); );
void void
LALFrClose( LALFrClose(
LALStatus *status, LALStatus *status,
skipping to change at line 240 skipping to change at line 260
); );
void void
LALFrSetPos( LALFrSetPos(
LALStatus *status, LALStatus *status,
FrPos *position, FrPos *position,
FrStream *stream FrStream *stream
); );
void void
LALFrGetTimeSeriesType(
LALStatus *status,
LALTYPECODE *output,
FrChanIn *chanin,
FrStream *stream
);
void
LALFrGetINT2TimeSeries( LALFrGetINT2TimeSeries(
LALStatus *status, LALStatus *status,
INT2TimeSeries *series, INT2TimeSeries *series,
FrChanIn *chanin, FrChanIn *chanin,
FrStream *stream FrStream *stream
); );
void void
LALFrGetINT4TimeSeries(
LALStatus *status,
INT4TimeSeries *series,
FrChanIn *chanin,
FrStream *stream
);
void
LALFrGetINT8TimeSeries(
LALStatus *status,
INT8TimeSeries *series,
FrChanIn *chanin,
FrStream *stream
);
void
LALFrGetREAL4TimeSeries( LALFrGetREAL4TimeSeries(
LALStatus *status, LALStatus *status,
REAL4TimeSeries *series, REAL4TimeSeries *series,
FrChanIn *chanin, FrChanIn *chanin,
FrStream *stream FrStream *stream
); );
void void
LALFrGetREAL8TimeSeries(
LALStatus *status,
REAL8TimeSeries *series,
FrChanIn *chanin,
FrStream *stream
);
void
LALFrWriteINT2TimeSeries(
LALStatus *status,
INT2TimeSeries *series,
FrOutPar *params
);
void
LALFrWriteINT4TimeSeries(
LALStatus *status,
INT4TimeSeries *series,
FrOutPar *params
);
void
LALFrWriteINT8TimeSeries(
LALStatus *status,
INT8TimeSeries *series,
FrOutPar *params
);
void
LALFrWriteREAL4TimeSeries( LALFrWriteREAL4TimeSeries(
LALStatus *status, LALStatus *status,
REAL4TimeSeries *series, REAL4TimeSeries *series,
FrOutPar *params FrOutPar *params
); );
void
LALFrWriteREAL8TimeSeries(
LALStatus *status,
REAL8TimeSeries *series,
FrOutPar *params
);
#ifdef __cplusplus #ifdef __cplusplus
#pragma { #pragma {
} }
#endif #endif
#endif /* _FRAMESTREAM_H */ #endif /* _FRAMESTREAM_H */
 End of changes. 14 change blocks. 
7 lines changed or deleted 86 lines changed or added


 LALConfig.h   LALConfig.h 
/* include/lal/LALConfig.h. Generated automatically by configure. */ /* include/lal/LALConfig.h. Generated automatically by configure. */
/* only include this file if LAL's config.h has not been included */ /* only include this file if LAL's config.h has not been included */
#ifndef CONFIG_H__LAL #ifndef CONFIG_H__LAL
#ifndef _LALCONFIG_H #ifndef _LALCONFIG_H
#define _LALCONFIG_H #define _LALCONFIG_H
/* LAL Version */ /* LAL Version */
#define LAL_VERSION "0.11" #define LAL_VERSION "1.0"
/* LAL Version Major Number */ /* LAL Version Major Number */
#define LAL_VERSION_MAJOR 0 #define LAL_VERSION_MAJOR 1
/* LAL Version Minor Number */ /* LAL Version Minor Number */
#define LAL_VERSION_MINOR 11 #define LAL_VERSION_MINOR 0
/* LAL Configure Arguments */ /* LAL Configure Arguments */
#define LAL_CONFIGURE_ARGS " --enable-shared --prefix=/home/ut/testing/lal/ 0.11 --exec-prefix=/home/ut/testing/lal/0.11 --sysconfdir=/home/ut/testing/ lal/0.11 --datadir=/home/ut/testing/lal/0.11/share" #define LAL_CONFIGURE_ARGS " --enable-shared --prefix=/home/ut/testing/lal/ 1.0 --exec-prefix=/home/ut/testing/lal/1.0 --sysconfdir=/home/ut/testing/la l/1.0 --datadir=/home/ut/testing/lal/1.0/share"
/* LAL Configure Date */ /* LAL Configure Date */
#define LAL_CONFIGURE_DATE "2013/11/20 00:34:39 UTC" #define LAL_CONFIGURE_DATE "2013/11/20 00:33:31 UTC"
/* LAL CVS Tag */ /* LAL CVS Tag */
#define LAL_CVS_TAG "release-0-11 " #define LAL_CVS_TAG "release-1-0 "
/* The number of bytes in a double. */ /* The number of bytes in a double. */
#define LAL_SIZEOF_DOUBLE 8 #define LAL_SIZEOF_DOUBLE 8
/* The number of bytes in a float. */ /* The number of bytes in a float. */
#define LAL_SIZEOF_FLOAT 4 #define LAL_SIZEOF_FLOAT 4
/* The number of bytes in a int. */ /* The number of bytes in a int. */
#define LAL_SIZEOF_INT 4 #define LAL_SIZEOF_INT 4
 End of changes. 6 change blocks. 
6 lines changed or deleted 6 lines changed or added


 LALDatatypes.h   LALDatatypes.h 
/********************************* <lalVerbatim file="LALDatatypesHV"> /********************************* <lalVerbatim file="LALDatatypesHV">
Author: J. D. E. Creighton, T. D. Creighton Author: J. D. E. Creighton, T. D. Creighton
$Id: LALDatatypes.h,v 1.11 2001/12/01 22:09:43 jolien Exp $ $Id: LALDatatypes.h,v 1.12 2002/05/30 16:16:30 jolien Exp $
********************************** </lalVerbatim> */ ********************************** </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\section{Header \texttt{LALDatatypes.h}} \section{Header \texttt{LALDatatypes.h}}
\label{s:LALDatatypes.h} \label{s:LALDatatypes.h}
Provides the basic LAL datatypes. Provides the basic LAL datatypes.
\subsection*{Synopsis} \subsection*{Synopsis}
skipping to change at line 39 skipping to change at line 39
</lalLaTeX> */ </lalLaTeX> */
#ifndef _LALDATATYPES_H #ifndef _LALDATATYPES_H
#define _LALDATATYPES_H #define _LALDATATYPES_H
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{LALAtomicDatatypesH} \newpage\input{LALAtomicDatatypesH}
</lalLaTeX> */ </lalLaTeX> */
#include <lal/LALAtomicDatatypes.h> #include <lal/LALAtomicDatatypes.h>
/**** <lalLaTeX>
* \newpage
* \subsection{Atomic datatypes codes}
* \label{ss:atomic-datatype-codes}
* \idx[Constant]{LAL\_1\_BYTE\_TYPE\_SIZE}
* \idx[Constant]{LAL\_2\_BYTE\_TYPE\_SIZE}
* \idx[Constant]{LAL\_4\_BYTE\_TYPE\_SIZE}
* \idx[Constant]{LAL\_8\_BYTE\_TYPE\_SIZE}
* \idx[Constant]{LAL\_16\_BYTE\_TYPE\_SIZE}
* \idx[Constant]{LAL\_TYPE\_SIZE\_MASK}
* \idx[Constant]{LAL\_FLTPT\_TYPE\_FLAG}
* \idx[Constant]{LAL\_CMPLX\_TYPE\_FLAG}
* \idx[Constant]{LAL\_UNSGN\_TYPE\_FLAG}
* \idx[Constant]{LAL\_CHAR\_TYPE\_CODE}
* \idx[Constant]{LAL\_I2\_TYPE\_CODE}
* \idx[Constant]{LAL\_I4\_TYPE\_CODE}
* \idx[Constant]{LAL\_I8\_TYPE\_CODE}
* \idx[Constant]{LAL\_UCHAR\_TYPE\_CODE}
* \idx[Constant]{LAL\_U2\_TYPE\_CODE}
* \idx[Constant]{LAL\_U4\_TYPE\_CODE}
* \idx[Constant]{LAL\_U8\_TYPE\_CODE}
* \idx[Constant]{LAL\_S\_TYPE\_CODE}
* \idx[Constant]{LAL\_D\_TYPE\_CODE}
* \idx[Constant]{LAL\_C\_TYPE\_CODE}
* \idx[Constant]{LAL\_Z\_TYPE\_CODE}
* \idx[Type]{LALTYPECODE}
*
* The following constants specify the size, in bytes, of the atomic dataty
pe.
*
* \begin{center}
* \begin{tabular}{|lcl|}
* \hline
* Name & Octal Value & Description \\
* \hline
* \tt LAL\_1\_BYTE\_TYPE\_SIZE & 000 & 1 byte type \\
* \tt LAL\_2\_BYTE\_TYPE\_SIZE & 001 & 2 byte type \\
* \tt LAL\_4\_BYTE\_TYPE\_SIZE & 002 & 4 byte type \\
* \tt LAL\_8\_BYTE\_TYPE\_SIZE & 003 & 8 byte type \\
* \tt LAL\_16\_BYTE\_TYPE\_SIZE & 004 & 16 byte type \\
* \tt LAL\_TYPE\_SIZE\_MASK & 007 & Mask for byte type size fields \\
* \hline
* \end{tabular}
* \end{center}
*
* \noindent
* The constant \verb+LAL_TYPE_SIZE_MASK+ is useful in extracting the size
* information from other type attributes. For example, the size, in bytes
,
* of an atomic datatype can be found using something like the following:
* \begin{verbatim}
* UINT4 code = LAL_S_TYPE_CODE;
* UINT4 size = 1U << ( code & LAL_TYPE_SIZE_MASK );
* \end{verbatim}
*
* \vspace{3ex}
*
* The following constants are flags describing the type attributes. A typ
e
* is either an integer or a floating-point, either purely real or complex,
* and, if integer, is either signed or unsigned.
*
* \begin{center}
* \begin{tabular}{|lcl|}
* \hline
* Name & Octal Value & Description \\
* \hline
* \tt LAL\_FLTPT\_TYPE\_FLAG & 010 & Floating-point (not integer) type \\
* \tt LAL\_CMPLX\_TYPE\_FLAG & 020 & Complex (not purely real) type \\
* \tt LAL\_UNSGN\_TYPE\_FLAG & 040 & Unsigned (no sign info) type \\
* \hline
* \end{tabular}
* \end{center}
*
* To get the actual type, these flags are combined together and with the
* type size constants using the bitwise-or operator (\verb+|+). For examp
le,
* an eight-byte floating point number would be
* \verb+LAL_8_BYTE_TYPE_SIZE | LAL_FLTPT_TYPE_FLAG+.
* Conceivably you could have a complex type made from a pair of unsigned
* one-byte integers that would be specified as
* \verb+LAL_1_BYTE_TYPE_SIZE | LAL_CMPLX_TYPE_FLAG | LAL_UNSGN_TYPE_FLAG+.
* Fortunately, there are none of these in LAL. Attribues of a particular
* type can be extracted using the bitwise-and operator. For example:
* \begin{verbatim}
* UINT4 code = LAL_S_TYPE_CODE;
* UINT4 isfloat = ( code & LAL_FLTPT_TYPE_FLAG );
* UINT4 iscmplx = ( code & LAL_CMPLX_TYPE_FLAG );
* \end{verbatim}
*
* \vspace{3ex}
*
* The following constants correspond to the types that actually exist in L
AL.
* Their enumeration is the type \verb+LALTYPECODE+.
* \begin{center}
* \begin{tabular}{|lcl|}
* \hline
* Name & Octal Value & Corresponding Type \\
* \hline
* \tt LAL\_CHAR\_TYPE\_CODE & 000 & \tt CHAR \\
* \tt LAL\_I2\_TYPE\_CODE & 001 & \tt INT2 \\
* \tt LAL\_I4\_TYPE\_CODE & 002 & \tt INT4 \\
* \tt LAL\_I8\_TYPE\_CODE & 003 & \tt INT8 \\
* \tt LAL\_UCHAR\_TYPE\_CODE & 040 & \tt UCHAR \\
* \tt LAL\_U2\_TYPE\_CODE & 041 & \tt UINT2 \\
* \tt LAL\_U4\_TYPE\_CODE & 042 & \tt UINT4 \\
* \tt LAL\_U8\_TYPE\_CODE & 043 & \tt UINT8 \\
* \tt LAL\_S\_TYPE\_CODE & 012 & \tt REAL4 \\
* \tt LAL\_D\_TYPE\_CODE & 013 & \tt REAL8 \\
* \tt LAL\_C\_TYPE\_CODE & 033 & \tt COMPLEX8 \\
* \tt LAL\_Z\_TYPE\_CODE & 034 & \tt COMPLEX16 \\
* \hline
* \end{tabular}
* \end{center}
*
**** </lalLaTeX> */
/* constants */
/* type size constants */
enum
{
LAL_1_BYTE_TYPE_SIZE = 000, /* 0 = 0 */
LAL_2_BYTE_TYPE_SIZE = 001, /* 1 = 1 */
LAL_4_BYTE_TYPE_SIZE = 002, /* 10 = 2 */
LAL_8_BYTE_TYPE_SIZE = 003, /* 11 = 3 */
LAL_16_BYTE_TYPE_SIZE = 004, /* 100 = 4 */
LAL_TYPE_SIZE_MASK = 007 /* 111 = 7 */
};
/* type flag constants */
enum
{
LAL_FLTPT_TYPE_FLAG = 010, /* 1000 = 8 */
LAL_CMPLX_TYPE_FLAG = 020, /* 10000 = 16 */
LAL_UNSGN_TYPE_FLAG = 040, /* 100000 = 32 */
};
/* type codes */
typedef enum
{
LAL_CHAR_TYPE_CODE = LAL_1_BYTE_TYPE_SIZE, /* 0 */
LAL_I2_TYPE_CODE = LAL_2_BYTE_TYPE_SIZE, /* 1 */
LAL_I4_TYPE_CODE = LAL_4_BYTE_TYPE_SIZE, /* 2 */
LAL_I8_TYPE_CODE = LAL_8_BYTE_TYPE_SIZE, /* 3 */
LAL_UCHAR_TYPE_CODE = LAL_1_BYTE_TYPE_SIZE | LAL_UNSGN_TYPE_FLAG, /*
32 */
LAL_U2_TYPE_CODE = LAL_2_BYTE_TYPE_SIZE | LAL_UNSGN_TYPE_FLAG, /*
33 */
LAL_U4_TYPE_CODE = LAL_4_BYTE_TYPE_SIZE | LAL_UNSGN_TYPE_FLAG, /*
34 */
LAL_U8_TYPE_CODE = LAL_8_BYTE_TYPE_SIZE | LAL_UNSGN_TYPE_FLAG, /*
35 */
LAL_S_TYPE_CODE = LAL_4_BYTE_TYPE_SIZE | LAL_FLTPT_TYPE_FLAG, /*
18 */
LAL_D_TYPE_CODE = LAL_8_BYTE_TYPE_SIZE | LAL_FLTPT_TYPE_FLAG, /*
19 */
LAL_C_TYPE_CODE = LAL_8_BYTE_TYPE_SIZE | LAL_CMPLX_TYPE_FLAG | LAL_
FLTPT_TYPE_FLAG, /* 27 */
LAL_Z_TYPE_CODE = LAL_16_BYTE_TYPE_SIZE | LAL_CMPLX_TYPE_FLAG | LAL
_FLTPT_TYPE_FLAG, /* 28 */
}
LALTYPECODE;
#include <lal/LALRCSID.h> #include <lal/LALRCSID.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
NRCSID (LALDATATYPESH, "$Id: LALDatatypes.h,v 1.11 2001/12/01 22:09:43 joli en Exp $"); NRCSID (LALDATATYPESH, "$Id: LALDatatypes.h,v 1.12 2002/05/30 16:16:30 joli en Exp $");
/* <lalLaTeX> /* <lalLaTeX>
\newpage \newpage
\subsection{Aggregate datatypes} \subsection{Aggregate datatypes}
\label{ss:aggregate-datatypes} \label{ss:aggregate-datatypes}
These datatypes store arbitrarily large sets or collections of These datatypes store arbitrarily large sets or collections of
primitive datatypes. At this level there is no physical primitive datatypes. At this level there is no physical
interpretation assigned to the objects (such as names or units); the interpretation assigned to the objects (such as names or units); the
aggregate datatypes simply collect and arrange the primitive aggregate datatypes simply collect and arrange the primitive
 End of changes. 3 change blocks. 
2 lines changed or deleted 167 lines changed or added


 LALDemod.h   LALDemod.h 
/*** <lalVerbatim file="LALDemodHV"> /*** <lalVerbatim file="LALDemodHV">
Author: Berukoff, S.J., Papa, M.A. Author: Berukoff, S.J., Papa, M.A.
$Id: LALDemod.h,v 1.5 2001/10/08 13:55:46 sberukoff Exp $ $Id: LALDemod.h,v 1.7 2002/05/22 09:27:36 sberukoff Exp $
*** </lalVerbatim> */ *** </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\section{Header \texttt{LALDemod.h}} \section{Header \texttt{LALDemod.h}}
\label{s:LALDemod.h} \label{s:LALDemod.h}
Computes a demodulated transform. Computes a demodulated transform.
\subsection*{Synopsis} \subsection*{Synopsis}
\begin{verbatim} \begin{verbatim}
#include <lal/LALDemod.h> #include <lal/LALDemod.h>
\end{verbatim} \end{verbatim}
\noindent The following is a brief background to the idea behind the demodu lation procedure. \noindent The following is a brief synopsis of the demodulation, or 'Cohere nt Transform', procedure.
Given a set of time series data $x_a$ and a phase model $\Phi$ for the unde In order to remove frequency and amplitude modulation of a time series $x_a
sirable frequency modulation that one wants to remove from the data set, th $, we need two basic components:
e long-time baseline demodulated Fourier Transform (DeFT) in the $b^{th}$ f \begin{description}
requency bin is \item[\bf{Frequency modulation information}] This is given through a phase
model $\Phi$.
\item[\bf{Amplitude modulation information}] This is given through two fun
ctions $\hat{a}$ and $\hat{b}$, which are derived from the beam-pattern fun
ctions $F_{+}$ and $F_{\times}$.
\end{description}
Given these, the long time baseline demodulated Fourier Transform (DeFT) in
the $b^{th}$ frequency bin is
\begin{equation} \begin{equation}
\hat{x}_b({\vec{\lambda}})=\sum_{a=0}^{\it{NM-1}}x_ae^{-2{\pi}i{\Phi}_{ab}( \mathcal{F}_{b} = \frac{4}{S_{h}(f_{0})T_{0}} \frac{B|\hat{F_{a}}|^{2}+A|F_
\vec{\lambda})}. {b}|^{2} - 2C \Re(F_{a}F_{b}^{*})}{D}
\label{e1}
\end{equation} \end{equation}
where
\begin{eqnarray}
\label{e1}
\hat{F_{\hat{a}}}=\sum_{a=0}^{\it{NM-1}} x_{a} \hat{a} e^{-2{\pi}i{\Phi}_{a
b}(\vec{\lambda})} \\
\hat{F_{\hat{b}}}=\sum_{a=0}^{\it{NM-1}} x_{a} \hat{b} e^{-2{\pi}i{\Phi}_{a
b}(\vec{\lambda})}
\end{eqnarray}
$T_{0}$ is the observation time, $S_{h}$ is the noise power spectral densit
y, and $A$, $B$, $C$, and $D$ are constants.
In writing the previous equation we have assumed that there is a total of $ M\cdot N$ data samples and $0\leq a<MN$. $\Phi_{ab}$ is the expected phase at time $a$ for an In writing the previous equation we have assumed that there is a total of $ M\cdot N$ data samples and $0\leq a<MN$. $\Phi_{ab}$ is the expected phase at time $a$ for an
intrinsic emission frequency $b\over T_{DeFT}$ (where the denominator is th e DeFT time baseline). $\Phi$ intrinsic emission frequency $b\over T_{DeFT}$ (where the denominator is th e DeFT time baseline). $\Phi$
depends on $\vec\lambda$, a vector of parameters that defines the phase mod el. Typically these are the source location and the spin-down parameter va lues of the template source for which one is depends on $\vec\lambda$, a vector of parameters that defines the phase mod el. Typically these are the source location and the spin-down parameter va lues of the template source for which one is
demodulating. Let us now suppose that the time series $x_a$ is composed of demodulating. For simplicity, we will focus only on $F_{a}$; the analysis
$M$ chunks, each of $N$ samples. If we introduce a short-time index $0\le for $F_{b}$ is identical.
q j<N-1$ and a short time-series index $0\leq \alpha <M-1$, so that $a=N\al Let us now suppose that the time series $x_a$ is composed of $M$ chunks, ea
pha+j$, we can rewrite the above sum as ch of $N$ samples. If we introduce a short-time index $0\leq j<N-1$ and a
short time-series index $0\leq \alpha <M-1$, so that $a=N\alpha+j$, we can
rewrite the above sum as
\begin{equation} \begin{equation}
\hat{x}_{b}({\vec{\lambda}})=\sum_{\alpha=0}^{M-1}\sum_{j=0}^{N-1}x_{\alpha j}e^{-2{\pi}i{\Phi}_{ab}(\vec{\lambda})} \hat{F_{\hat{a}}}({\vec{\lambda}})=\sum_{\alpha=0}^{M-1}\sum_{j=0}^{N-1}x_{ \alpha j}a_{\alpha j}e^{-2{\pi}i{\Phi}_{ab}(\vec{\lambda})}
\label{e2} \label{e2}
\end{equation} \end{equation}
\noindent If $\tilde{x}_{\alpha k}$ is the matrix of FTs formed along the s hort time index $j$ \noindent Note that $\hat{a}(t)$ is a periodic function with period equal t o one sidereal day. Since the sum over $N$ is on a timescale much shorter than that (say, 1 hour), then $\hat{a}(t)$ won't change significantly, and thus can be taken outside of that summation, and then is evaluated at the m idpoint of each SFT time. Now, If $\tilde{x}_{\alpha k}$ is the matrix of FTs formed along the short time index $j$
\begin{equation} \begin{equation}
x_{\alpha j}=\frac{1}{N}\sum_{k=0}^{N-1}\tilde{x}_{\alpha k}e^{2\pi{i}\frac {jk}{N}}, x_{\alpha j}=\frac{1}{N}\sum_{k=0}^{N-1}\tilde{x}_{\alpha k}e^{2\pi{i}\frac {jk}{N}},
\label{e3} \label{e3}
\end{equation} \end{equation}
\noindent making the appropriate substitutions, Eq.\ref{e1} becomes \noindent making the appropriate substitutions, Eq.\ref{e1} becomes
\begin{equation} \begin{equation}
\hat{x}_b({\vec{\lambda}})=\sum_{\alpha=0}^{M-1}\sum_{k=0}^{N-1}\tilde{x}_{ \alpha k}\left[\frac{1}{N}\sum_{j=0}^{N-1}e^{-2\pi i(\Phi_{\alpha jb}(\vec{ \lambda})-\frac{jk}{N})}\right] \hat{F_{\hat{a}}}({\vec{\lambda}})=\sum_{\alpha=0}^{M-1}\hat{a}_{\alpha}\su m_{k=0}^{N-1}\tilde{x}_{\alpha k}\left[\frac{1}{N}\sum_{j=0}^{N-1}e^{-2\pi i(\Phi_{\alpha jb}(\vec{\lambda})-\frac{jk}{N})}\right]
\label{e4} \label{e4}
\end{equation} \end{equation}
If the phase evolution can be described as linear in $t$ during the time du We assume that the phase evolution can be described as linear in $t$ during
ration the time duration
$T_{SFT}$, a linear Taylor expansion of $\Phi$ around the temporal midpoint $T_{SFT}$; thus we can Taylor-expand $\Phi$ around the temporal midpoint of
of every SFT time data chunk can be composed. For large values of $N$, every SFT time data chunk. For large values of $N$,
the summation over $j$ in eq. (\ref{e4}) can be expressed in closed form, t hus saving computations, and eq. (\ref{e4}) can be rewritten as the summation over $j$ in eq. (\ref{e4}) can be expressed in closed form, t hus saving computations, and eq. (\ref{e4}) can be rewritten as
\begin{equation} \begin{equation}
\hat x_b=\sum_{\alpha=0}^{M-1}e^{i y_\alpha}\sum_{k=0}^{N-1}\tilde x_{\alph a\beta} P_{\alpha k}(b,\vec{\lambda}), \hat{F_{\hat{a}}}=\sum_{\alpha=0}^{M-1}\hat{a}_{\alpha}e^{i y_\alpha}\sum_{ k=0}^{N-1}\tilde{x}_{\alpha\beta} P_{\alpha k}(b,\vec{\lambda}),
\label{DeFT2} \label{DeFT2}
\end{equation} \end{equation}
with with
\begin{eqnarray} \begin{eqnarray}
\label{DeFT_defs} \label{DeFT_defs}
P_{\alpha k}(b,\vec{\lambda})={\sin{x'}\over x'}-i{1-\cos{x'}\over x'}\\ P_{\alpha k}(b,\vec{\lambda})={\sin{x'}\over x'}-i{1-\cos{x'}\over x'}\\
x'=2\pi(\sum_{s} f_s B_{s\alpha} - k)\\ x'=\sum_{s} f_s B_{s\alpha} - k\\
y_\alpha=2\pi\sum_{s} f_s A_{s\alpha}. y_\alpha=\sum_{s} f_s A_{s\alpha}.
\end{eqnarray} \end{eqnarray}
In the previous expressions $f_s$ indicate the spin-down parameters of the In the previous expressions $f_s$ indicate the spin-down parameters of diff
different orders erent orders (labeled
(labeled
by the index $s$\footnote{Note that when $s=0$ the values computed are coef ficients of the intrinsic frequency and thus must be computed for the value corresponding to the index $b$.}), and $A_{s\alpha}$ and $B_{s\alpha}$ by the index $s$\footnote{Note that when $s=0$ the values computed are coef ficients of the intrinsic frequency and thus must be computed for the value corresponding to the index $b$.}), and $A_{s\alpha}$ and $B_{s\alpha}$
are functions that depend on the phase evolution, whose values depend on $\ alpha$ and on $\vec\lambda$. The values of these functions are calculated by the \verb@ComputeSky()@ routine, also in this package. Incidentally, in the code, these are the values contained in the variable \verb@skyConst@. are functions that depend on the phase evolution, whose values depend on $\ alpha$ and on $\vec\lambda$. The values of these functions are calculated by the \verb@ComputeSky()@ routine, also in this package. Incidentally, in the code, these are the values contained in the variable \verb@skyConst@.
Note that the function $P_{\alpha k}$ is peaked around $x'=0$. Thus in the summation Note that the function $P_{\alpha k}$ is peaked around $x'=0$. Thus in the summation
over $k$ in eq. (\ref{DeFT2}) one only needs to consider a few values (NTER MS) of $k$ around $k^*$ such over $k$ in eq. (\ref{DeFT2}) one only needs to consider a few values (NTER MS) of $k$ around $k^*$ such
that $x'(k^*)\approx 0$. This approximation again saves computations. Eq. (\ref{DeFT2}) can then be rewritten as that $x'(k^*)\approx 0$. This approximation again saves computations. Eq. (\ref{DeFT2}) can then be rewritten as
\begin{equation} \begin{equation}
\label{DeFT_algo} \label{DeFT_algo}
\hat x_b=\sum_{\alpha=0}^{M-1}e^{i y_\alpha}\sum_{k=k^*\pm NTERMS} \tilde x _{\alpha\beta} \hat{F_{\hat{a}}}=\sum_{\alpha=0}^{M-1}\hat{a}_{\alpha}e^{i y_\alpha}\sum_{ k=k^*\pm NTERMS} \tilde x_{\alpha\beta}
P_{\alpha k}(b,\vec{\lambda}). P_{\alpha k}(b,\vec{\lambda}).
\end{equation} \end{equation}
If $NTERMS$ is 8 the power loss due to this approximation is less than $\si m 5\%$. If $NTERMS$ is 8 the power loss due to this approximation is less than $\si m 5\%$.
Now, computing $\hat{F_{\hat{a}}}$ and $\hat{F_{\hat{b}}}$ can be done in p
arallel; given the approximations we have made, for each iteration of the $
\alpha$ loop, one computes first $P_{\alpha k}$ (through the k-loop), multi
plies by $\tilde{x}_{\alpha k}$, and then forms the statistics of \ref{e1}
at the same time. After all the iterations of the $\alpha$ loop are comple
te, that is, when all SFTs have been exhausted, the final statistic is comp
uted.
</lalLaTeX> */ </lalLaTeX> */
#ifndef _LALDEMOD_H #ifndef _LALDEMOD_H
#define _LALDEMOD_H #define _LALDEMOD_H
#include <math.h> #include <math.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <lal/LALStdlib.h> #include <lal/LALStdlib.h>
#include <lal/AVFactories.h> #include <lal/AVFactories.h>
#include <lal/Random.h> #include <lal/Random.h>
#include <lal/ComplexFFT.h> #include <lal/RealFFT.h>
#include <lal/LALConstants.h> #include <lal/LALConstants.h>
#include <lal/DetResponse.h>
#include <lal/DetectorSite.h>
#include <lal/SimulateCoherentGW.h>
#include <lal/GenerateTaylorCW.h>
#include <lal/LALComputeAM.h>
#include <lal/ComputeSky.h> #include <lal/ComputeSky.h>
#include <lal/LALBarycenter.h>
#ifdef __cplusplus #ifdef __cplusplus
#extern "C" { #extern "C" {
#endif #endif
NRCSID (LALDEMODH, "$Id: LALDemod.h,v 1.5 2001/10/08 13:55:46 sberukoff Exp $"); NRCSID (LALDEMODH, "$Id: LALDemod.h,v 1.7 2002/05/22 09:27:36 sberukoff Exp $");
/* <lalLaTeX> /* <lalLaTeX>
\subsection*{Error conditions} \subsection*{Error conditions}
\vspace{0.1in} \vspace{0.1in}
\input{LALDemodHErrorTable} \input{LALDemodHErrorTable}
</lalLaTeX> */ </lalLaTeX> */
/* *****<lalErrTable file="LALDemodHErrorTable">*/ /* *****<lalErrTable file="LALDemodHErrorTable">*/
#define LALDEMODH_ENULL 1 #define LALDEMODH_ENULL 1
#define LALDEMODH_ENNEG 2 #define LALDEMODH_ENNEG 2
#define LALDEMODH_EORDR 4 #define LALDEMODH_EORDR 4
skipping to change at line 120 skipping to change at line 142
#define SMALL 0.000000001 #define SMALL 0.000000001
#define SFTOVERLAP 0.05 #define SFTOVERLAP 0.05
/* <lalLaTeX> /* <lalLaTeX>
\subsection*{Structures} \subsection*{Structures}
\begin{verbatim} \begin{verbatim}
struct DemodPar struct DemodPar
\end{verbatim} \end{verbatim}
\idx[Type]{DemodPar} \index{\texttt{DemodPar}}
\noindent This structure contains the parameters for the demodulation routi ne. The parameters are: \noindent This structure contains the parameters for the demodulation routi ne. The parameters are:
\begin{description} \begin{description}
\item[\texttt{INT4 if0Max}] The maximum search frequency index in coarse-gr ained frequency resolution. \item[\texttt{INT4 if0Max}] The maximum search frequency index in coarse-gr ained frequency resolution.
\item[\texttt{INT4 if0Min}] The minimum search frequency index in coarse-gr ained frequency resolution. \item[\texttt{INT4 if0Min}] The minimum search frequency index in coarse-gr ained frequency resolution.
\item[\texttt{INT4 mCohSFT}] The number of SFTs in coherent timescale. In other words, the number of SFTs which make up one DeFT. \item[\texttt{INT4 mCohSFT}] The number of SFTs in coherent timescale. In other words, the number of SFTs which make up one DeFT.
\item[\texttt{INT4 mObsCoh}] The number of coherent timescale in observatio n time. In other words, this quantifies how many DeFTs will be produced. \item[\texttt{INT4 mObsCoh}] The number of coherent timescale in observatio n time. In other words, this quantifies how many DeFTs will be produced.
\item[\texttt{INT4 ifMin}] The index of the minimum frequency of the SFT fr equency band. \item[\texttt{INT4 ifMin}] The index of the minimum frequency of the SFT fr equency band.
\item[\texttt{INT4 iCoh}] The index of the DeFT being computed (0 $\leq$ iC oh \verb@<@ mObsCoh). \item[\texttt{INT4 iCoh}] The index of the DeFT being computed (0 $\leq$ iC oh \verb@<@ mObsCoh).
\item[\texttt{REAL8 *skyConst}] The array of sky constants. \item[\texttt{REAL8 *skyConst}] The array of sky constants.
\item[\texttt{REAL8 *spinDwn}] The set of template spindown parameters. \item[\texttt{REAL8 *spinDwn}] The set of template spindown parameters.
\item[\texttt{AMCoeffs *amcoe}] The values of the function $a$ and $b$, plu s their scalar products.
\end{description} \end{description}
\begin{verbatim} \begin{verbatim}
struct SkyPos struct SkyPos
\end{verbatim} \end{verbatim}
\idx[Type]{SkyPos} \index{\texttt{SkyPos}}
\noindent This structure contains the basic parameters of a sky position. These are: \noindent This structure contains the basic parameters of a sky position. These are:
\begin{description} \begin{description}
\item[\texttt{REAL8 alpha}] The inclination, in radians. \item[\texttt{REAL8 alpha}] The inclination, in radians.
\item[\texttt{REAL8 delta}] The declination, in radians. \item[\texttt{REAL8 delta}] The declination, in radians.
\item[\texttt{CHAR type}] Coordinate system used. \item[\texttt{CHAR type}] Coordinate system used.
\end{description} \end{description}
\begin{verbatim} \begin{verbatim}
struct Spindown struct Spindown
\end{verbatim} \end{verbatim}
\idx[Type]{Spindown} \index{\texttt{Spindown}}
\noindent This structure contains the values of the spindown parameters. I ncluded are \noindent This structure contains the values of the spindown parameters. I ncluded are
\begin{description} \begin{description}
\item[\texttt{INT4 m}] The maximum order of spindown parameter employed, o r the number of spindown parameters per spindown parameter set. \item[\texttt{INT4 m}] The maximum order of spindown parameter employed, o r the number of spindown parameters per spindown parameter set.
\item[\texttt{REAL8 *spParams}] An array containing the values. \item[\texttt{REAL8 *spParams}] An array containing the values.
\end{description} \end{description}
\begin{verbatim} \begin{verbatim}
struct ParameterSet struct ParameterSet
\end{verbatim} \end{verbatim}
\idx[Type]{ParameterSet} \index{\texttt{ParameterSet}}
\noindent This is a structure which contains all the parameters that descri be a source. Included are \noindent This is a structure which contains all the parameters that descri be a source. Included are
\begin{description} \begin{description}
\item[\texttt{SkyPos *skyP}] \item[\texttt{SkyPos *skyP}]
\item[\texttt{Spindown *spind}] \item[\texttt{Spindown *spind}]
\end{description} \end{description}
\begin{verbatim} \begin{verbatim}
struct FFT struct FFT
\end{verbatim} \end{verbatim}
\idx[Type]{FFT} \index{\texttt{FFT}}
\noindent This structure is used to hold all Fourier domain data. Note tha t it is different from the LAL definition of a \verb@SequenceOfFrequencySer ies@ variable in that the \verb@FFT@ structure allows one to record informa tion specific to each individual FFT; the LAL structure does not allow this functionality at present. The fields contained within are \noindent This structure is used to hold all Fourier domain data. Note tha t it is different from the LAL definition of a \verb@SequenceOfFrequencySer ies@ variable in that the \verb@FFT@ structure allows one to record informa tion specific to each individual FFT; the LAL structure does not allow this functionality at present. The fields contained within are
\begin{description} \begin{description}
\item[\texttt{COMPLEX16FrequencySeries *fft}] Holds the data (within \verb @fft->data->data@) and other parameters relevant to each transform. \item[\texttt{COMPLEX8FrequencySeries *fft}] Holds the data (within \verb@ fft->data->data@) and other parameters relevant to each transform.
\item[\texttt{ParameterSet par}] Holds source parameters that might be rel evant to the data in the previous field. For example, if the \verb@*fft@ s tructure above contains DeFTs, this field will contain the demodulation par ameters. \item[\texttt{ParameterSet par}] Holds source parameters that might be rel evant to the data in the previous field. For example, if the \verb@*fft@ s tructure above contains DeFTs, this field will contain the demodulation par ameters.
\end{description} \end{description}
\begin{verbatim}
struct DeFTPeriodogram
\end{verbatim}
\index{\texttt{DeFTPeriodogram}}
\noindent This structure contains the statistic we wanted to compute: \ref
{e1}, and information regarding its parameters.
\begin{description}
\item[\texttt{REAL8FrequencySeries *fft}] The periodogram.
\item[\texttt{ParameterSer par}] The parameter set used in the demodulatio
n.
\end{description}
</lalLaTeX> */ </lalLaTeX> */
/* PARAMETERS */ /* PARAMETERS */
typedef struct DemodParTag{ typedef struct DemodParTag{
INT4 if0Max; /* Index of maximum freq. of search on this INT4 if0Max; /* Index of maximum freq. of search on this
proc. */ proc. */
INT4 if0Min; /* Index of minimum freq. of search on this INT4 if0Min; /* Index of minimum freq. of search on this
proc. */ proc. */
INT4 mCohSFT; /* This is G_Mcoh_sft */ INT4 mCohSFT; /* This is G_Mcoh_sft */
INT4 mObsCoh; /* This is G_Mobs_sft */ INT4 mObsCoh; /* This is G_Mobs_sft */
INT4 ifMin; /* Index of minimum freq. of search */ INT4 ifMin; /* Index of minimum freq. of search
INT4 iCoh; /* Index of coherent timescale */ */
INT4 spinDwnOrder; /* Maximum order of spdwn parameter */ INT4 iCoh; /* Index of coherent timescale */
REAL8 *skyConst; /* Constants computed in ComputeSky.c */ INT4 spinDwnOrder; /* Maximum order of spdwn parameter */
REAL8 *spinDwn; /* Spindown parameter set */ REAL8 *skyConst; /* Constants computed in ComputeSky.
c */
REAL8 *spinDwn; /* Spindown parameter set */
AMCoeffs *amcoe;
}DemodPar; }DemodPar;
typedef struct SkyPosTag { typedef struct SkyPosTag
{
REAL8 alpha; REAL8 alpha;
REAL8 delta; REAL8 delta;
CHAR type; CHAR type;
}SkyPos; }SkyPos;
typedef struct SpindownTag { typedef struct SpindownTag
{
INT4 m; INT4 m;
REAL8 *spParams; REAL8 *spParams;
}Spindown; }Spindown;
typedef struct ParameterSetTag { typedef struct ParameterSetTag
{
SkyPos *skyP; SkyPos *skyP;
Spindown *spind; Spindown *spind;
}ParameterSet; }ParameterSet;
/*This structure will hold a single FFT*/ /*This structure will hold a single FFT*/
typedef struct FFTTag { typedef struct FFTTag
COMPLEX16FrequencySeries *fft; {
COMPLEX8FrequencySeries *fft;
ParameterSet par; ParameterSet par;
} FFT; } FFT;
typedef struct DeFTPeriodogramTag
{
REAL8FrequencySeries *fft;
COMPLEX16FrequencySeries *fA;
COMPLEX16FrequencySeries *fB;
ParameterSet par;
} DeFTPeriodogram;
/* <lalLaTeX> /* <lalLaTeX>
\input{LALDemodHV} \input{LALDemodHV}
</lalLaTeX> */ </lalLaTeX> */
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{LALDemodC} \newpage\input{LALDemodC}
</lalLaTeX> */ </lalLaTeX> */
void LALDemod (LALStatus *stat, void LALDemod (LALStatus *stat,
FFT **xHatCoh, DeFTPeriodogram *xHatCoh,
FFT **input, FFT **input,
DemodPar *params); DemodPar *params);
/* MODIFIED BY JOLIEN: repaced tdb with lalTDBHook */
extern void ( *lalTDBHook )( REAL8 , REAL8 , REAL8, REAL8 *, REAL8 *);
void times(REAL8 , void times(REAL8 ,
int, INT4,
LIGOTimeGPS *, LIGOTimeGPS *,
int ); INT4 );
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{LALDemodTestC} \newpage\input{LALDemodTestC}
</lalLaTeX> */ </lalLaTeX> */
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* _LALDEMOD_H */ #endif /* _LALDEMOD_H */
 End of changes. 37 change blocks. 
58 lines changed or deleted 117 lines changed or added


 LALInspiral.h   LALInspiral.h 
/* <lalVerbatim file="LALInspiralHV"> /* <lalVerbatim file="LALInspiralHV">
Author: Churches, D. K and B. S. Sathyaprakash. Author: Churches, D. K and B. S. Sathyaprakash.
$Id: LALInspiral.h,v 1.15 2002/04/11 17:03:53 dchurches Exp $ $Id: LALInspiral.h,v 1.17 2002/06/07 15:11:01 dchurches Exp $
</lalVerbatim> */ </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\section{Header \texttt{LALInspiral.h}} \section{Header \texttt{LALInspiral.h}}
\label{s:LALInspiral.h} \label{s:LALInspiral.h}
Header file for the template generation codes. Header file for the template generation codes.
skipping to change at line 37 skipping to change at line 37
# include <math.h> # include <math.h>
# include <stdio.h> # include <stdio.h>
# include <stdlib.h> # include <stdlib.h>
# include <lal/LALStdlib.h> # include <lal/LALStdlib.h>
# include <lal/LALConstants.h> # include <lal/LALConstants.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
NRCSID( LALINSPIRALH, "$Id: LALInspiral.h,v 1.15 2002/04/11 17:03:53 dchurc hes Exp $" ); NRCSID( LALINSPIRALH, "$Id: LALInspiral.h,v 1.17 2002/06/07 15:11:01 dchurc hes Exp $" );
# define oneby3 0.333333333333333333333333333 # define oneby3 0.333333333333333333333333333
# define twoby3 0.666666666666666666666666667 # define twoby3 0.666666666666666666666666667
# define fourby3 1.333333333333333333333333333 # define fourby3 1.333333333333333333333333333
# define fiveby3 1.666666666666666666666666667 # define fiveby3 1.666666666666666666666666667
# define sevenby3 2.333333333333333333333333333 # define sevenby3 2.333333333333333333333333333
# define eightby3 2.666666666666666666666666667 # define eightby3 2.666666666666666666666666667
# define tenby3 3.333333333333333333333333333 # define tenby3 3.333333333333333333333333333
# define elevenby3 3.666666666666666666666666666 # define elevenby3 3.666666666666666666666666666
# define threeby8 0.375 # define threeby8 0.375
skipping to change at line 76 skipping to change at line 76
#define LALINSPIRALH_MSGEMEM "Memory allocation error" #define LALINSPIRALH_MSGEMEM "Memory allocation error"
#define LALINSPIRALH_MSGEDIV0 "Division by zero" #define LALINSPIRALH_MSGEDIV0 "Division by zero"
#define LALINSPIRALH_MSGESIZE "Invalid input range" #define LALINSPIRALH_MSGESIZE "Invalid input range"
#define LALINSPIRALH_MSGECHOICE "Invalid choice for an input parameter" #define LALINSPIRALH_MSGECHOICE "Invalid choice for an input parameter"
/* </lalErrTable> */ /* </lalErrTable> */
/* <lalLaTeX> /* <lalLaTeX>
\section*{Structures} \section*{Structures}
\input{LALInspiralHS}
</lalLaTeX> */
/* <lalVerbatim file="LALInspiralHS"> */ \begin{enumerate}
typedef struct
tagEtaTau04In
{
REAL8 t4;
REAL8 A4;
REAL8 B4;
REAL8 C4;
} EtaTau04In;
/* </lalVerbatim> */
/* <lalLaTeX> \item \texttt{EtaTau02In, EtaTau04In:}
\idx[Type]{EtaTau04In} These are the input structures needed in solving for the mass
ratio $\eta$ given the chirptimes $\tau_0$ and $\tau_2,$ or
to solve for $\eta$ given the chirptimes $\tau_2$ and $\tau_4.$
\input{LALEtaTau0Tau2InH}
Here, \texttt{t2}~$ = \tau_2,$ \texttt{A2}~$ = A_2 ({\tau_0}/{A_0})^{3/5},$
and
\texttt{B2}~$=B_2$,
where $A_0 = 5/[256 (\pi f_{s} )^{8/3}],$ $A_2 = 3715 / [64512 (\pi f_s)^2]
,$
$B_2 = 4620/3715.$
Similarly, \texttt{t4}~$ = \tau_4,$ \texttt{A4}~$ = A_4 ({\tau_0}/{A_0})^{1
/5},$
\texttt{B4}~$=B_4$ and \texttt{C4}~$=C_4,$ where
where $A_0 = 5/[256 (\pi f_{s} )^{8/3}],$
$A_4 = 5 \times 3058673/ [128 \times 1016064 (\pi f_s)^{4/3}],$
$B_4 = 5429 \times 1016064 /(1008 \times 3058673),$ and $C_4 = 617 \times
1016064/(144 \times 3058673).$
\item \texttt{InputMasses:}
This structure is one of the members of the \texttt{InspiralTemplate}
structure.
\input{LALInputMassesH}
A user can specify the parameters of a binary using any two of the
following combination of masses
\begin{itemize}
\item \texttt{m1Andm2:} component masses
\item \texttt{totalMassAndEta:} total mass and symmetric mass ratio
\item \texttt{totalMassAndMu:} total mass and reduced mass
\item \texttt{t01:} unused; shouldn't be used.
\item \texttt{t02:} chirp times $\tau_0$ and $\tau_2$
\item \texttt{t03:} chirp times $\tau_0$ and $\tau_3$, and
\item \texttt{t04:} chirp times $\tau_0$ and $\tau_4$
\end{itemize}
\item \texttt{InputMasses:}
Enum that tells which post-Newtonian order is being used.
\input{LALInspiralOrderH}
\begin{itemize}
\item \texttt{newtonian:} Newtonain order, flux and enrgy both to the lowes
t order.
\item \texttt{oneHalfPN:} same as before
\item \texttt{onePN:} Both energy and flux to order $O(v^2)$ beyond the New
tonian order.
\item \texttt{onePointFivePN:} Energy to order $O(v^2)$ and flux to order $
O(v^3)$
\item \texttt{twoPN:} Both energy and flux to order $O(v^4)$
\item \texttt{twoPointFivePN:} Energy to order $O(v^4)$ and flux to order $
O(v^5)$
\item \texttt{threePN:} Both energy and flux to order $O(v^6)$
\item \texttt{threePointFivePN:} Energy to order $O(v^6)$ and flux to order
$O(v^7)$
\end{itemize}
In all cases, the gravitational wave phase (also frequency and time)
as an expansion of the gauge invariant parameter $v$ is given up to
the order specified by flux. Note that there are certain undetermined
parameters at \texttt{threePN} and \texttt{threePointFivePN.} The waveform
generation codes use a specific
value of those parameters while generating the wave.
\item \texttt{Approximant:}
\input{LALInspiralApproximantH}
\begin{itemize}
\item \texttt{TaylorT1:} Time domain Taylor approximant in which
the energy and flux are both kept as Taylor expansions
and a first order ordinary differential equation is solved
for the GW phase as a function of $t.$
\item \texttt{TaylorT2:} Time domain Taylor approximant in which
the phase evolution $\varphi(t)$ is obtained by iteratively
solving post-Newtonian expansions $\varphi(v)$ and $t(v).$
\item \texttt{TaylorT3:} Time domain Taylor approximant in which
phase is explicitly given as a function of time.
\item \texttt{TaylorF1:} The standard stationary phase approximation.
\item \texttt{TaylorF2:} The stationary phase approximation that
correctly represents, in the Fourier domain, the waveform given
by \texttt{TaylorT1} approximant (see Damour, Iyer, Sathyaprakash,
Phys. Rev. D . 63, 44023 (2001) for details).
\item \texttt{PadeT1:} Time-domain P-approximant.
\item \texttt{PadeF1:} Frequency-domain P-approximant (not yet implemented)
.
\item \texttt{EOB:} Effective one-body waveform
\item \texttt{DJS:} Effective one-body waveform to 3.5 PN order
\item \texttt{INSPA:} Improved stationary phase approximation (not implemen
ted yet)
\item \texttt{IRSPA:} Improved relativistic stationary phase approximation
(not implemented yet)
\end{itemize}
\item \texttt{InspiralTemplate:}
The inspiral waveform parameter structure containing information about the
waveform to be generated.
\input{LALInspiralTemplateH}
\begin{itemize}
\item \texttt { ieta:} parameter that tells whether the symmetric mass ra
tio $\eta$
should be set to zero in the PN expansions of GW flux and binding
energy.
If \texttt{ieta=0} $\eta$ will be set to zero, otherwise the appro
priate
value of $\eta$ from the given parameters will be used.
\item \texttt { level:} (introduced by Duncan Brown?)
\item \texttt { *segmentIdVec:} (introduced by Duncan Brown?)
\item \texttt { number:} (introduced by Duncan Brown?)
\item \texttt { nStartPad:} Number of leading elements to be set to zero.
\item \texttt { nEndPad:} Number of trailing bins to be set to zero, the
resulting waveform will have at least this many bins zero at the end, pro
bably
more since we always deal with an integer power of 2 array.
\item \texttt { mass1:} Mass of the primary in solar mass.
\item \texttt { mass2:} Mass of the secondary in solar mass
(\texttt{mass1} need not be larger than \texttt{mass2}.
\item \texttt { spin1[3]:} Spin vector of the primary (currently not in u
se)
\item \texttt { spin2[3]:} Spin vector of the secondary (currently not in
use)
\item \texttt { inclination:} Inclination of the orbit (currently not in
use)
\item \texttt { eccentricity:} initial eccentricity of the orbit (curren
tly not in use)
\item \texttt { totalMass:} total mass of the binary $m=m_1+m_2$ in solar
mass.
\item \texttt { eta:} symmetric mass ratio $\eta=m_1m_2/m^2.$
\item \texttt { chirpMass:} chirp mass of the binary $=\eta^{3/5} m$ in s
olar mass
\item \texttt { t0:} Newtonain chirp time in seconds.
\item \texttt { t2:} first post-Newtonian chirp time in seconds.
\item \texttt { t3:} 1.5 post-Newtonian chirp time in seconds.
\item \texttt { t4:} second post-Newtonian chirp time in seconds.
\item \texttt { t5:} 2.5 post-Newtonian chirp time in seconds.
\item \texttt { tC:} total chirp time seconds.
\item \texttt { mu:} reduced mass (in solar mass)
\item \texttt { fLower:} lower frequency cutoff of the detector in Hz
\item \texttt { fCutoff:} upper frequency cutoff in Hz to be used in gene
rating the waveform.
If the last stable orbit frequency is smaller than the upper cutoff it wi
ll be used
in terminating the waveform instead of fCutoff.
\item \texttt { tSampling:} Sampling rate in Hz
\item \texttt { startPhase:} starting phase of the waveform in radians
\item \texttt { startTime:} starting time of the waveform (in sec); if di
fferent from zero, the
waveform will start with an instantaneous frequency different from fLower
and reach
fLower at time (approximately) zero
\item \texttt { signalAmplitude:} dimensionless amplitude of the signal (
currently unused.)
\item \texttt { rInitial:} initial radial separation of the two, in units
of total mass
bodies (used only in EOB waveforms)
\item \texttt { vInitial:} initial velocity parameter, in units of the sp
eed of light
\item \texttt { rFinal:} final 'separation' between the bodies, in units
of total mass
\item \texttt { vFinal:} final velocity parameter, in units of the speed
of light
\item \texttt { rLightRing:} radial coordinate at the light ring, in unit
s of total mass
\item \texttt { OmegaS:} The 3PN (unknown) parameter; calculated to be eq
ual to zero
by Damour, Jaranowski and Schaffer.
\item \texttt { Theta:} The 3PN unknown flux parameter; likely to be arou
nd unity;
most waveform generation routines take theta to be zero. Robustness of th
e EOB waveform
has been demonstrated for $-2 < $ \texttt{Theta} $< 2.$
\item \texttt { massChoice:} The pair of (mass) parameters given (see str
ucture
defining this member for more details).
\item \texttt { order:} Post-Newtonain order to be used in generating the
wave.
\item \texttt { approximant:} Post-Newtonain approximant to be used in ge
nerating the wave.
\item \texttt { tagInspiralTemplate *next:} Linked list to the next coars
e bank template
(currently not filled by inspiral or bank codes)
\item \texttt { tagInspiralTemplate *fine:} Linked list to the next fine
bank template
(currently not filled by inspiral or bank codes)
\end{itemize}
\item \texttt{InspiralToffInput:}
\input{LALInspiralToffInputH}
This is a structure needed by the inner workings of the inspiral wave gener
ation code.
\item \texttt{expnCoeffs:}
This structure contains various post-Newtonian and P-approximant expansion
coefficients; the meanings of the coefficients is indicated as comme
nts
before each list.
\input{LALExpnCoeffsH}
\item {Energy, flux, phase, time and frequency functions:} The following
functions are generic function definitions that will be used in
template generation. The function \texttt{LALInspiralChooseModel,}
which is called by wave generation interface code, points these
functions to the appropriate specific functions depending on the
choices made by the user.
\input{LALEnergyAndFluxFunctionsH}
\item \texttt{expnFunc:} Structure to hold all the pointer to generic
functions defined above.
\input{LALexpnFuncH}
\item {Misc structures:}
The rest of the structures below define other structures needed by wave
generation codes. (Will produce a documentation some day so that future cod
e
maintainers can understand what precisely has been done.)
\end{enumerate}
</lalLaTeX> */ </lalLaTeX> */
/* <lalVerbatim file="LALInspiralHS"> */ /* <lalVerbatim file="LALEtaTau0Tau2InH"> */
typedef struct typedef struct
tagEtaTau02In tagEtaTau02In
{ {
REAL8 t2; REAL8 t2;
REAL8 A2; REAL8 A2;
REAL8 B2; REAL8 B2;
} EtaTau02In; } EtaTau02In;
/* </lalVerbatim> */ /* </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\idx[Type]{EtaTau02In} \idx[Type]{EtaTau02In}
</lalLaTeX> */ </lalLaTeX> */
/* <lalVerbatim file="LALInspiralHS"> */ /* <lalVerbatim file="LALEtaTau0Tau2InH"> */
typedef struct
tagEtaTau04In
{
REAL8 t4;
REAL8 A4;
REAL8 B4;
REAL8 C4;
} EtaTau04In;
/* </lalVerbatim> */
/* <lalLaTeX>
\idx[Type]{EtaTau04In}
</lalLaTeX> */
/* <lalVerbatim file="LALInputMassesH"> */
typedef enum { typedef enum {
m1Andm2, m1Andm2,
totalMassAndEta, totalMassAndEta,
totalMassAndMu, totalMassAndMu,
t01, t01,
t02, t02,
t03, t03,
t04 t04
} InputMasses; } InputMasses;
/* </lalVerbatim> */ /* </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\idx[Type]{InputMasses} \idx[Type]{InputMasses}
</lalLaTeX> */ </lalLaTeX> */
/* <lalVerbatim file="LALInspiralHS"> */ /* <lalVerbatim file="LALInspiralOrderH"> */
typedef enum { typedef enum {
newtonian, newtonian,
oneHalfPN, oneHalfPN,
onePN, onePN,
onePointFivePN, onePointFivePN,
twoPN, twoPN,
twoPointFivePN, twoPointFivePN,
threePN, threePN,
threePointFivePN threePointFivePN
} Order; } Order;
/* </lalVerbatim> */ /* </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\idx[Type]{Order} \idx[Type]{Order}
</lalLaTeX> */ </lalLaTeX> */
/* <lalVerbatim file="LALInspiralHS"> */ /* <lalVerbatim file="LALInspiralApproximantH"> */
typedef enum { typedef enum {
TaylorT1, TaylorT1,
TaylorT2, TaylorT2,
TaylorT3, TaylorT3,
TaylorF1, TaylorF1,
TaylorF2, TaylorF2,
PadeT1, PadeT1,
PadeF1, PadeF1,
EOB, EOB,
DJS, DJS,
INSPA, INSPA,
IRSPA IRSPA
} Approximant; } Approximant;
/* </lalVerbatim> */ /* </lalVerbatim> */
/* <lalVerbatim file="LALInspiralHS"> */ /* <lalVerbatim file="LALInspiralTemplateH"> */
typedef struct typedef struct
tagInspiralTemplate tagInspiralTemplate
{ {
INT4 ieta; INT4 ieta;
INT4 level; INT4 level;
INT4Vector *segmentIdVec; INT4Vector *segmentIdVec;
INT4 number; INT4 number;
INT4 nStartPad; INT4 nStartPad;
INT4 nEndPad; INT4 nEndPad;
REAL8 mass1; REAL8 mass1;
skipping to change at line 194 skipping to change at line 372
REAL8 fCutoff; REAL8 fCutoff;
REAL8 tSampling; REAL8 tSampling;
REAL8 startPhase; REAL8 startPhase;
REAL8 startTime; REAL8 startTime;
REAL8 signalAmplitude; REAL8 signalAmplitude;
REAL8 rInitial; REAL8 rInitial;
REAL8 vInitial; REAL8 vInitial;
REAL8 rFinal; REAL8 rFinal;
REAL8 vFinal; REAL8 vFinal;
REAL8 rLightRing; REAL8 rLightRing;
REAL8 OmegaS, Theta; REAL8 OmegaS;
REAL8 Theta;
InputMasses massChoice; InputMasses massChoice;
Order order; Order order;
Approximant approximant; Approximant approximant;
struct tagInspiralTemplate *next; struct tagInspiralTemplate *next;
struct tagInspiralTemplate *fine; struct tagInspiralTemplate *fine;
} }
InspiralTemplate; InspiralTemplate;
/* </lalVerbatim> */ /* </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\index{\texttt{InspiralTemplate}} \index{\texttt{InspiralTemplate}}
</lalLaTeX> */ </lalLaTeX> */
/* <lalVerbatim file="LALInspiralHS"> */ /* <lalVerbatim file="LALInspiralToffInputH"> */
typedef struct typedef struct
tagInspiralToffInput tagInspiralToffInput
{ {
REAL8 tN; REAL8 tN;
REAL8 t2; REAL8 t2;
REAL8 t3; REAL8 t3;
REAL8 t4; REAL8 t4;
REAL8 t5; REAL8 t5;
REAL8 t6; REAL8 t6;
REAL8 t7; REAL8 t7;
skipping to change at line 231 skipping to change at line 410
REAL8 tc; REAL8 tc;
REAL8 t; REAL8 t;
} }
InspiralToffInput; InspiralToffInput;
/* </lalVerbatim> */ /* </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\idx[Type]{InspiralToffInput} \idx[Type]{InspiralToffInput}
</lalLaTeX> */ </lalLaTeX> */
/* <lalVerbatim file="LALInspiralHS"> */ /* <lalVerbatim file="LALExpnCoeffsH"> */
typedef struct { typedef struct {
int ieta; int ieta;
/* coefficients in the Taylor expansion of new energy function*/
double eTaN, eTa1, eTa2, eTa3; double eTaN, eTa1, eTa2, eTa3;
/* coefficients in the Pade expression of new energy function*/
double ePaN, ePa1, ePa2, ePa3; double ePaN, ePa1, ePa2, ePa3;
/* coefficients in the Taylor expansion of usual energy function*/
double ETaN, ETa1, ETa2, ETa3; double ETaN, ETa1, ETa2, ETa3;
/* coefficients in the Taylor expansion of the derivative of the
usual energy function*/
double dETaN, dETa1, dETa2, dETa3; double dETaN, dETa1, dETa2, dETa3;
/* Taylor expansion coefficients of energy flux*/
double FTaN, FTa1, FTa2, FTa3, FTa4, FTa5, FTa6, FTa7, FTl6;
/* Taylor expansion coefficients of factored flux*/
double fTaN, fTa1, fTa2, fTa3, fTa4, fTa5, fTa6, fTa7; double fTaN, fTa1, fTa2, fTa3, fTa4, fTa5, fTa6, fTa7;
/* Coefficients of the corresponding P-approximant*/
double fPaN, fPa1, fPa2, fPa3, fPa4, fPa5, fPa6, fPa7; double fPaN, fPa1, fPa2, fPa3, fPa4, fPa5, fPa6, fPa7;
double FTaN, FTa1, FTa2, FTa3, FTa4, FTa5, FTa6, FTa7, FTl6;
/* Taylor expansion coefficents in t(v)*/
double tvaN, tva2, tva3, tva4, tva5, tva6, tva7, tvl6; double tvaN, tva2, tva3, tva4, tva5, tva6, tva7, tvl6;
/* Taylor expansion coefficents in phi(v)*/
double pvaN, pva2, pva3, pva4, pva5, pva6, pva7, pvl6; double pvaN, pva2, pva3, pva4, pva5, pva6, pva7, pvl6;
/* Taylor expansion coefficents in phi(t)*/
double ptaN, pta2, pta3, pta4, pta5, pta6, pta7, ptl6; double ptaN, pta2, pta3, pta4, pta5, pta6, pta7, ptl6;
/* Taylor expansion coefficents in f(t)*/
double ftaN, fta2, fta3, fta4, fta5, fta6, fta7, ftl6; double ftaN, fta2, fta3, fta4, fta5, fta6, fta7, ftl6;
/* Taylor expansion coefficents in f(t)*/
double samplingrate, samplinginterval; double samplingrate, samplinginterval;
/* symmetric mass ratio, total mass, component masses*/
double eta, totalmass, m1, m2; double eta, totalmass, m1, m2;
/* unknown 3PN parameters, euler constant*/
double lambda, theta, EulerC, omegaS; double lambda, theta, EulerC, omegaS;
/* initial and final values of frequency, time, velocity; lso
values of velocity and frequency; final phase.*/
double f0, fn, t0, tn, v0, vn, vf, vlso, flso, phiC; double f0, fn, t0, tn, v0, vn, vf, vlso, flso, phiC;
/* last stable orbit and pole defined by various Taylor and P-approximan
ts*/
double vlsoT0, vlsoT2, vlsoT4, vlsoT6; double vlsoT0, vlsoT2, vlsoT4, vlsoT6;
double vlsoP0, vlsoP2, vlsoP4, vlsoP6; double vlsoP0, vlsoP2, vlsoP4, vlsoP6;
double vpoleP4, vpoleP6; double vpoleP4, vpoleP6;
} expnCoeffs; } expnCoeffs;
/* </lalVerbatim> */ /* </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\idx[Type]{expnCoeffs} \idx[Type]{expnCoeffs}
</lalLaTeX> */ </lalLaTeX> */
/* <lalVerbatim file="LALEnergyAndFluxFunctionsH"> */
typedef double EnergyFunction( typedef double EnergyFunction(
double v, double v,
expnCoeffs *ak); expnCoeffs *ak);
typedef double FluxFunction( typedef double FluxFunction(
double v, double v,
expnCoeffs *ak); expnCoeffs *ak);
typedef void (TestFunction)( typedef void (TestFunction)(
REAL8Vector *vector1, REAL8Vector *vector1,
skipping to change at line 300 skipping to change at line 501
REAL8 *f, REAL8 *f,
REAL8 td, REAL8 td,
expnCoeffs *ak); expnCoeffs *ak);
typedef void (InspiralTiming2) ( typedef void (InspiralTiming2) (
LALStatus *status, LALStatus *status,
REAL8 *toff, REAL8 *toff,
REAL8 f, REAL8 f,
void *params); void *params);
/* <lalVerbatim file="LALInspiralHS"> */ /* </lalVerbatim> */
/* <lalVerbatim file="LALexpnFuncH"> */
typedef struct typedef struct
tagexpnFunc tagexpnFunc
{ {
EnergyFunction *dEnergy; EnergyFunction *dEnergy;
FluxFunction *flux; FluxFunction *flux;
InspiralTiming2 *timing2; InspiralTiming2 *timing2;
InspiralPhasing2 *phasing2; InspiralPhasing2 *phasing2;
InspiralPhasing3 *phasing3; InspiralPhasing3 *phasing3;
InspiralFrequency3 *frequency3; InspiralFrequency3 *frequency3;
} }
 End of changes. 31 change blocks. 
26 lines changed or deleted 272 lines changed or added


 LALInspiralBank.h   LALInspiralBank.h 
/* <lalVerbatim file="LALInspiralBankHV"> /* <lalVerbatim file="LALInspiralBankHV">
Author: Churches, D.K. and Sathyaprakash, B.S. Author: Churches, D.K. and Sathyaprakash, B.S.
$Id: LALInspiralBank.h,v 1.12 2002/03/27 20:27:29 duncan Exp $ $Id: LALInspiralBank.h,v 1.13 2002/06/05 11:11:27 dchurches Exp $
</lalVerbatim> */ </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\section{Header \texttt{LALInspiralBank.h}} \section{Header \texttt{LALInspiralBank.h}}
\label{s:LALInspiralBank.h} \label{s:LALInspiralBank.h}
Header file for the template placement codes. Header file for the template placement codes.
skipping to change at line 40 skipping to change at line 40
#include <lal/LALStdlib.h> #include <lal/LALStdlib.h>
#include <lal/LALConstants.h> #include <lal/LALConstants.h>
#include <lal/LALInspiral.h> #include <lal/LALInspiral.h>
#include <lal/RealFFT.h> #include <lal/RealFFT.h>
#include <lal/LALNoiseModels.h> #include <lal/LALNoiseModels.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
NRCSID( LALINSPIRALBANKH, "$Id: LALInspiralBank.h,v 1.12 2002/03/27 20:27:2 9 duncan Exp $" ); NRCSID( LALINSPIRALBANKH, "$Id: LALInspiralBank.h,v 1.13 2002/06/05 11:11:2 7 dchurches Exp $" );
/* <lalLaTeX> /* <lalLaTeX>
\subsection*{Error codes} \subsection*{Error codes}
</lalLaTeX> */ </lalLaTeX> */
/* <lalErrTable> */ /* <lalErrTable> */
#define LALINSPIRALBANKH_ENULL 1 #define LALINSPIRALBANKH_ENULL 1
skipping to change at line 65 skipping to change at line 65
#define LALINSPIRALBANKH_MSGENULL "Arguments contained an unexpected null p ointer" #define LALINSPIRALBANKH_MSGENULL "Arguments contained an unexpected null p ointer"
#define LALINSPIRALBANKH_MSGEMEM "Memory allocation failure" #define LALINSPIRALBANKH_MSGEMEM "Memory allocation failure"
#define LALINSPIRALBANKH_MSGECHOICE "Invalid choice for an input parameter" #define LALINSPIRALBANKH_MSGECHOICE "Invalid choice for an input parameter"
#define LALINSPIRALBANKH_MSGEDIV0 "Division by zero" #define LALINSPIRALBANKH_MSGEDIV0 "Division by zero"
#define LALINSPIRALBANKH_MSGESIZE "Invalid input range" #define LALINSPIRALBANKH_MSGESIZE "Invalid input range"
/* </lalErrTable> */ /* </lalErrTable> */
/* <lalLaTeX> /* <lalLaTeX>
\section*{Structures} \subsection*{Enums}
\input{LALInspiralBankHS}
</lalLaTeX> */ \begin{enumerate}
\item \texttt{CoordinateSpace:}
\input{LALCoordinateSpaceH}
This enum allows users to choose template bank either in the $(\tau_0, \tau
_2)$
space of chirptimes (the choice made by \texttt{Tau0Tau2}) or in the
$(\tau_0, \tau_3)$ space of chirptimes (the choice made by \texttt{Tau0Tau3
}).
This was implemented in releases before May 25. On May 25 we migrated to a
new, slightly faster, computation of the metric in which, at present, only
the
choice \texttt{Tau0Tau3} can be made.
Choose templates either in the $(\tau_0,\tau_2)$ or $(\tau_0,\tau_3)$
space. This is one of the members of the InspiralCoarseBankIn structure.
\item\texttt{InspiralBankMassRange:}
\input{LALInspiralBankMassRangeH}
An enum that appears in the \texttt{InspiralCoarseBankIn} structure
which fixes the way templates are chosen: The choice
\texttt{MinComponentMassMaxTotalMass} means the minimum of the
component masses will be given by \texttt{mMin} and maximum total
mass is given by \texttt{MMax} of the \texttt{InspiralBankCoarseIn} structu
re.
The choice \texttt{MinMaxComponentMass} means the minimum of the
components masses will be again fixed by \texttt{mMin} and the
maximum of the component masses is fixed by \texttt{mMax} of the
\texttt{InspiralCoarseIn} structure below.
\end{enumerate}
\subsection*{Structures}
\begin {enumerate}
\item \texttt{InspiralMetric}
Structure to store metric at various points the signal manifold.
\input{LALInspiralMetricH}
We store the diagonalized metric together with the angle theta
between the $\tau_0$-axis and the semi-major axis of the ambiguity ellipse.
The members of this structure are:
\begin{itemize}
\item \texttt{g00}: 00-component of the diagonalised metric.
\item \texttt{g11}: 11-component of the diagonalised metric.
\item \texttt{theta}: Angle from tau0 to semi-major axis of the ellipse.
\item \texttt{space}: The enum describing the coordinate space in which
the metric is computed.
\end{itemize}
\item \texttt{InspiralCoarseBankIn:}
Input for choosing a template bank. This is the structure that must
be filled by a routine calling the code \texttt{InspiralCreateCoarse
Bank}
\input{LALInspiralCoarseBankH}
\begin{itemize}
\item \texttt{massRange}: enum that determines whether templates should b
e
chosen using fixed ranges for component masses or
to use minimum component mass and maximum totalmass.
\item \texttt{space}: enum that decides whether to use $(\tau_0,\tau_2)$
or $(\tau_0,\tau_3)$ in constructing the template bank
\item \texttt{mMin}: minimum mass of components to search for
\item \texttt{mMax}: maximum mass of components to search for
\item \texttt{MMax}: alternatively, maximum total mass of binary to searc
h for
\item \texttt{mmCoarse}: Coarse grid minimal match
\item \texttt{mmFine}: Fine grid minimal match
\item \texttt{fLower}: Lower frequency cutoff
\item \texttt{fUpper}: Upper frequency cutoff
\item \texttt{tSampling}: Sampling rate
\item \texttt{etamin}: minimum value of eta in our search
\item \texttt{shf}: Frequency series containing the PSD
\item \texttt{iflso}: (currently not implemented) flso will be used as an
upper limit in moments integrals if iflso!=0; else fUpper will be used
The next two members are used in setting up the InspiralTemplate
parameter structure but not in creating the template bank.
\item \texttt{order}: Post-Newtonian order of the waveform
\item \texttt{approximant}: Approximant of the waveform
\end{itemize}
\item \texttt{InspiralFineBankIn}
Structre needed by the function \texttt{LALInspiralCreateFineBank}.
which computes a finer mesh around a given lattice point
using the value of the fine-mesh minimal match, coarse-mesh
minimal match and the metric at the current lattice point.
\input{LALInspiralFineBankInH}
\begin{itemize}
\item {templateList:} A list contianing all the fine-mesh templates
\item {coarseIn:} input structure that contains useful necessary parameters
to construct a fine-mesh.
\end{itemize}
\item \texttt{InspiralTemplateList}
A grid of inspiral templates (i.e., a template list).
\input{LALInspiralTemplateListH}
Structure returned by the coarse and fine bank generation routines.
Currently we generate an array of type \texttt{InspiralTemplateList}
which contains the coordinate markers (the parameter structure
\texttt{InspiralTemplate} defined in the \texttt{inspiral} package)
and the metric at each of those points. There is a desire to make this
a truly linked list at some time in the future. The member of this
structure are:
\begin{itemize}
\item \texttt{ID}: An unique integer ID of the template
\item \texttt{params}: Value of the parameters at the lattice point
\item \texttt{metric}: metric at the lattice point
\item \texttt{*next}: pointer to next lattice point; but this is currently
not filled by the bank code.
\end{itemize}
\item \texttt{InspiralBankParams:}
This is a structure needed in the inner workings
of the \texttt{LALInspiralCreateCoarseBank} code.
\input{LALInspiralParamsH}
\begin{itemize}
\item \texttt{nparams}: Number of parameters (currently fixed at 2, so this
is as of now unused)
\item \texttt{x0}: the first coordinate, chosen to be always $\tau_0$
\item \texttt{x1}: the second coordinate, chosen to be either $\tau_2$ or $
\tau_3$
\item \texttt{dx0}: increment in the x0-direction
\item \texttt{dx1}: increment in the x1-direction
\item \texttt{x0Min}: minimum value of the first coordinate as
defined by the search region
\item \texttt{x0Max}: maximum value of the first coordinate as
defined by the search region
\item \texttt{x1Min}: minimum value of the second coordinate as
defined by the search region
\item \texttt{x1Max}: maximum value of the second coordinate as
defined by the search region
\item \texttt{*metric}: pointer to the metric at the current location.
\end{itemize}
\item \texttt{InspiralMomentsIn}
Inputs to the function that computes the moments of the PSD.
The moment is defined as:
$$\int_{x_{\rm min}}^{x_{\rm max}}
\frac{x^{-{p}/3}}{S_h(x)} dx,$$
where $x=f/f_0$ is a scaled frequency, $f_0$
being a fiducial frequency, taken in these routines
as the user supplied lower cutoff of the detector
response.
\input{LALInspiralMomentsInH}
\begin{itemize}
\item \texttt{xmin}: lower limit of the integral $x_{\rm min}$
\item \texttt{xmax}: upper limit of the integral $x_{\rm max}$
\item \texttt{ndx}: index $p/3$ (without the negative sign) in the moment i
ntegral as above
(please note that \texttt{ndx} is $\mathbf p/3$ and {\it not} just $p.$)
\item \texttt{norm}: norm to be used in computing, the returned value is
the above integral divided by the norm.
\item \texttt{*shf}: the frequency series containing the noise psd.
\end{itemize}
\item \texttt{InspiralMomentsEtc}
Parameter structure that holds the moments of the PSD and other useful
constants required in the computation of the metric.
\input{LALInspiralMomentsEtcH}
\begin{itemize}
\item {a01, a21, \ldots:} Coefficients in the expansion of the phase
of the Fourier transform of an inspiral waveform computed
in the stationary phase approximation. See documentation under
the function \texttt{LALInspiralComputeMetric} later in this
Section for a description of these coefficients.
\item\texttt{j[18]:} The required moments are all computed once and
stored in this array. The required moments are from J(1) to J(17)
(except J(2), J(3) and J(16) that are not required at 2PN order,
however, they are computed since future extensions, planned in the
near future, will require them). However, in C we need an array size
18 to use an array that has an index 18. To ease the notation we have
therefore defined an oversized (by one element) array.
\end{itemize}
\item {\texttt{RectangleIn} and \texttt{RectangleOut}:}
Input and ouput structures to function LALRectangleVertices.
\input{LALRectangleInH}
\input{LALRectangleOutH}
\end{enumerate}
/* <lalLaTeX>
\idx[Type]{Detector}
</lalLaTeX> */ </lalLaTeX> */
/* <lalVerbatim file="LALInspiralBankHS"> */ /* <lalVerbatim file="LALCoordinateSpaceH"> */
typedef enum typedef enum
{ {
Tau0Tau2, Tau0Tau3 Tau0Tau2, Tau0Tau3
} }
CoordinateSpace; CoordinateSpace;
/* </lalVerbatim> */
/* </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\idx[Type]{CoordinateSpace} \idx[Type]{CoordinateSpace}
</lalLaTeX> */ </lalLaTeX> */
/* <lalVerbatim file="LALInspiralBankMassRangeH"> */
typedef enum
{
MinComponentMassMaxTotalMass,
MinMaxComponentMass
}
InspiralBankMassRange;
/* </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\idx[Type]{LALInspiralMetric} \idx[Type]{InspiralBankMassRange}
</lalLaTeX> */ </lalLaTeX> */
/* Metric and its dimension */ /* <lalVerbatim file="LALInspiralMetricH"> */
/* <lalVerbatim file="LALInspiralBankHS"> */
typedef struct typedef struct
tagInspiralMetric tagInspiralMetric
{ {
REAL8 g00; /* 00-component of the diagonalised metric. */ REAL8 g00;
REAL8 g11; /* 11-component of the diagonalised metric. */ REAL8 g11;
REAL8 theta; /* Angle from t0 to x0 */ REAL8 theta;
CoordinateSpace space; /* Coordinate space in which metric is compute CoordinateSpace space;
d */
INT4 iflso;
REAL8FrequencySeries *shf; /* one sided strain power spectral density */
} }
InspiralMetric; InspiralMetric;
/* </lalVerbatim> */ /* </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\idx[Type]{InspiralMetric} \idx[Type]{InspiralMetric}
</lalLaTeX> */ </lalLaTeX> */
/* <lalVerbatim file="LALInspiralBankHS"> */ /* <lalVerbatim file="LALInspiralTemplateListH"> */
/* a grid of inspiral templates (i.e., a template list) */
typedef struct typedef struct
tagInspiralTemplateList tagInspiralTemplateList
{ {
INT4 ID; INT4 ID;
InspiralTemplate params; /* Pointer to parameter vectors */ InspiralTemplate params;
InspiralMetric metric; /* Pointer to metric at every poin InspiralMetric metric;
t */ struct tagInspiralTemplateList *next;
struct tagInspiralTemplateList *next; /* to create linked list */
} }
InspiralTemplateList; InspiralTemplateList;
/* </lalVerbatim> */ /* </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\idx[Type]{InspiralTemplateList} \idx[Type]{InspiralTemplateList}
</lalLaTeX> */ </lalLaTeX> */
/* <lalVerbatim file="LALInspiralBankHS"> */ /* <lalVerbatim file="LALInspiralParamsH"> */
/* Parameters needed in InspiralCreateCoarseBank */
typedef struct typedef struct
tagInspiralBankParams tagInspiralBankParams
{ {
INT4 nparams; /* for future use, presently 2-dimensional */ INT4 nparams;
REAL8 x0; /* coordinates and increments at current locati REAL8 x0;
on */ REAL8 x1;
REAL8 x1; REAL8 dx0;
REAL8 dx0; REAL8 dx1;
REAL8 dx1; REAL8 x0Min;
REAL8 x0Min; /* min and max values of parameters */ REAL8 x0Max;
REAL8 x0Max; REAL8 x1Min;
REAL8 x1Min; REAL8 x1Max;
REAL8 x1Max; InspiralMetric *metric;
InspiralMetric *metric; /* metric at current location */
} }
InspiralBankParams; InspiralBankParams;
/* </lalVerbatim> */ /* </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\idx[Type]{InspiralBankParams} \idx[Type]{InspiralBankParams}
</lalLaTeX> */ </lalLaTeX> */
/* <lalVerbatim file="LALInspiralBankHS"> */ /* <lalVerbatim file="LALInspiralCoarseBankH"> */
/* input for specifying a template bank */
typedef struct typedef struct
tagInspiralCoarseBankIn tagInspiralCoarseBankIn
{ {
REAL8 mMin; /* minimum mass of components to search f InspiralBankMassRange massRange;
or */ CoordinateSpace space;
REAL8 MMax; /* maximum total mass of binary to search
for */ REAL8 mMin;
REAL8 mmCoarse; /* Coarse grid minimal match */ REAL8 mMax;
REAL8 mmFine; /* Fine grid minimal match */ REAL8 MMax;
REAL8 fLower; /* Lower frequency cutoff */ REAL8 mmCoarse;
REAL8 fUpper; /* Upper frequency cutoff */ REAL8 mmFine;
REAL8 tSampling; /* Sampling rate */ REAL8 fLower;
REAL8FrequencySeries shf; REAL8 fUpper;
Order order; /* Post-Newtonian order of the waveform REAL8 tSampling;
*/ REAL8 etamin;
Approximant approximant; /* Approximant of the waveform */
CoordinateSpace space; /* which of t0-t2 or t0-t3 coordinates */ REAL8FrequencySeries shf;
REAL8 etamin; /* minimum value of eta in our search */
INT4 iflso; /* flso will be used as an upper limit in INT4 iflso;
moments integrals if iflso!=0; else
fUpper will be used */ Order order;
Approximant approximant;
} }
InspiralCoarseBankIn; InspiralCoarseBankIn;
/* </lalVerbatim> */ /* </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\idx[Type]{InspiralCoarseBankIn} \idx[Type]{InspiralCoarseBankIn}
</lalLaTeX> */ </lalLaTeX> */
/* <lalVerbatim file="LALInspiralBankHS"> */ /* <lalVerbatim file="LALInspiralMomentsInH"> */
typedef struct { typedef struct
REAL8 xmin, xmax, ndx, norm; {
REAL8FrequencySeries *shf; REAL8 xmin;
} InspiralMomentsIn; REAL8 xmax;
REAL8 ndx;
REAL8 norm;
REAL8FrequencySeries *shf;
}
InspiralMomentsIn;
/* </lalVerbatim> */ /* </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\idx[Type]{InspiralMomentsIn} \idx[Type]{InspiralMomentsIn}
</lalLaTeX> */ </lalLaTeX> */
/* <lalVerbatim file="LALInspiralBankHS"> */ /* <lalVerbatim file="LALInspiralFineBankInH"> */
typedef struct typedef struct
tagInspiralFineBankIn tagInspiralFineBankIn
{ {
InspiralTemplateList templateList; InspiralTemplateList templateList;
InspiralCoarseBankIn coarseIn; InspiralCoarseBankIn coarseIn;
} InspiralFineBankIn; }
InspiralFineBankIn;
/* </lalVerbatim> */
/* <lalLaTeX>
\idx[Type]{InspiralFineBankIn}
</lalLaTeX> */
/* <lalVerbatim file="LALInspiralMomentsEtcH"> */
typedef struct
tagInspiralMomentsEtc
{
REAL8 a01, a21, a22, a31, a41, a42, a43;
REAL8 j[18];
}
InspiralMomentsEtc;
/* </lalVerbatim> */ /* </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\idx[Type]{InspiralFineBankIn} \idx[Type]{InspiralFineBankIn}
</lalLaTeX> */ </lalLaTeX> */
/* <lalVerbatim file="LALInspiralBankHS"> */ /* <lalVerbatim file="LALRectangleInH"> */
typedef struct typedef struct
tagRectangleIn tagRectangleIn
{REAL8 x0, y0, dx, dy, theta;} {
REAL8 x0, y0, dx, dy, theta;
}
RectangleIn; RectangleIn;
/* </lalVerbatim> */ /* </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\index{\texttt{RectangleIn}} \index{\texttt{RectangleIn}}
</lalLaTeX> */ </lalLaTeX> */
/* <lalVerbatim file="LALInspiralBankHS"> */ /* <lalVerbatim file="LALRectangleOutH"> */
typedef struct typedef struct
tagRectangleOut tagRectangleOut
{REAL8 x1, y1, x2, y2, x3, y3, x4, y4, x5, y5;} {
REAL8 x1, y1, x2, y2, x3, y3, x4, y4, x5, y5;
}
RectangleOut; RectangleOut;
/* </lalVerbatim> */ /* </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\index{\texttt{RectangleOut}} \index{\texttt{RectangleOut}}
</lalLaTeX> */ </lalLaTeX> */
/* <lalLaTeX> /* <lalLaTeX>
\vfill{\footnotesize\input{LALInspiralBankHV}} \vfill{\footnotesize\input{LALInspiralBankHV}}
</lalLaTeX> */ </lalLaTeX> */
/* Function prototypes */ /* Function prototypes */
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{LALInspiralComputeParamsC} \newpage\input{LALInspiralCreateCoarseBankC}
</lalLaTeX> */ </lalLaTeX> */
void void
LALInspiralComputeParams( LALInspiralCreateCoarseBank(
LALStatus *status, LALStatus *status,
InspiralTemplate *pars, InspiralTemplateList **list,
InspiralBankParams bankParams, INT4 *nlist,
InspiralCoarseBankIn coarseIn InspiralCoarseBankIn bankIn
); );
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{LALInspiralValidParamsC} \newpage\input{LALInspiralCreateFineBankC}
</lalLaTeX> */ </lalLaTeX> */
void void
LALInspiralValidParams( LALInspiralCreateFineBank(
LALStatus *status, LALStatus *status,
INT4 *valid, InspiralTemplateList **outlist,
InspiralBankParams bankParams, INT4 *nlist,
InspiralCoarseBankIn coarseIn InspiralFineBankIn fineIn
); );
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{LALInspiralValidTemplateC} \newpage\input{LALInspiralComputeMetricC}
</lalLaTeX> */ </lalLaTeX> */
void void
LALInspiralValidTemplate( LALInspiralComputeMetric(
LALStatus *status, LALStatus *status,
INT4 *valid, InspiralMetric *metric,
InspiralBankParams bankParams, InspiralTemplate *params,
InspiralCoarseBankIn coarseIn InspiralMomentsEtc *moments
); );
/* <lalLaTeX>
\newpage\input{LALInspiralMomentsC}
</lalLaTeX> */
void
LALInspiralMoments(
LALStatus *status,
REAL8 *moment,
InspiralMomentsIn pars);
/* <lalLaTeX>
\newpage\input{LALInspiralMomentsIntegrandC}
</lalLaTeX> */
void
LALInspiralMomentsIntegrand(
LALStatus *status,
REAL8 *integrand,
REAL8 f,
void *pars);
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{LALInspiralSetSearchLimitsC} \newpage\input{LALInspiralSetSearchLimitsC}
</lalLaTeX> */ </lalLaTeX> */
void void
LALInspiralSetSearchLimits( LALInspiralSetSearchLimits(
LALStatus *status, LALStatus *status,
InspiralBankParams *bankParams, InspiralBankParams *bankParams,
InspiralCoarseBankIn coarseIn InspiralCoarseBankIn coarseIn
); );
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{LALInspiralCreateCoarseBankC} \newpage\input{LALInspiralNextTemplateC}
</lalLaTeX> */ </lalLaTeX> */
void void
LALInspiralCreateCoarseBank( LALInspiralNextTemplate(
LALStatus *status, LALStatus *status,
InspiralTemplateList **list, InspiralBankParams *bankPars,
INT4 *nlist, InspiralMetric metric);
InspiralCoarseBankIn bankIn
);
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{LALInspiralCreateFineBankC} \newpage\input{LALInspiralComputeParamsC}
</lalLaTeX> */ </lalLaTeX> */
void void
LALInspiralCreateFineBank( LALInspiralComputeParams(
LALStatus *status, LALStatus *status,
InspiralTemplateList **outlist, InspiralTemplate *pars,
INT4 *nlist, InspiralBankParams bankParams,
InspiralFineBankIn fineIn InspiralCoarseBankIn coarseIn
); );
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{LALInspiralComputeMetricC} \newpage\input{LALInspiralValidParamsC}
</lalLaTeX> */ </lalLaTeX> */
void void
LALInspiralComputeMetric( LALInspiralValidParams(
LALStatus *status, LALStatus *status,
InspiralMetric *metric, INT4 *valid,
InspiralTemplate params, InspiralBankParams bankParams,
INT4 pass InspiralCoarseBankIn coarseIn
); );
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{LALInspiralUpdateParamsC} \newpage\input{LALInspiralValidTemplateC}
</lalLaTeX> */ </lalLaTeX> */
void void
LALInspiralUpdateParams( LALInspiralValidTemplate(
LALStatus *status, LALStatus *status,
InspiralBankParams *bankParams, INT4 *valid,
InspiralMetric metric, InspiralBankParams bankParams,
REAL8 minimalMatch InspiralCoarseBankIn coarseIn
); );
/* <lalLaTeX> /* <lalLaTeX>
% TAKEN OUT BY JOLIEN: THIS IS NOT IN BANK \newpage\input{LALInspiralUpdateParamsC}
%\newpage\input{LALInspiralWaveLengthC}
</lalLaTeX> */ </lalLaTeX> */
void
LALInspiralUpdateParams(
LALStatus *status,
InspiralBankParams *bankParams,
InspiralMetric metric,
REAL8 minimalMatch
);
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{LALMatrixTransformC} \newpage\input{LALMatrixTransformC}
</lalLaTeX> */ </lalLaTeX> */
void void
LALMatrixTransform ( LALMatrixTransform (
LALStatus *status, LALStatus *status,
INT4 Dim, INT4 Dim,
REAL8 **trans, REAL8 **trans,
REAL8 **buff1, REAL8 **buff1,
REAL8 **mm3); REAL8 **mm3
);
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{LALInspiralMomentsC} \newpage\input{LALInspiralMomentsC}
</lalLaTeX> */ </lalLaTeX> */
void
LALInspiralMoments(
LALStatus *status,
REAL8 *moment,
InspiralMomentsIn pars);
/* <lalLaTeX>
\newpage\input{LALInspiralMomentsIntegrandC}
</lalLaTeX> */
void
LALInspiralMomentsIntegrand(
LALStatus *status,
REAL8 *integrand,
REAL8 f,
void *pars);
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{LALDeterminant3C} \newpage\input{LALDeterminant3C}
</lalLaTeX> */ </lalLaTeX> */
void void
LALDeterminant3(LALStatus *status, LALDeterminant3(LALStatus *status,
REAL8 *determinant, REAL8 *determinant,
REAL8 **matrix) ; REAL8 **matrix) ;
/* <lalLaTeX> /* <lalLaTeX>
skipping to change at line 393 skipping to change at line 604
\newpage\input{LALInspiralSetParamsC} \newpage\input{LALInspiralSetParamsC}
</lalLaTeX> */ </lalLaTeX> */
void void
LALInspiralSetParams( LALInspiralSetParams(
LALStatus *status, LALStatus *status,
InspiralTemplate *tempPars, InspiralTemplate *tempPars,
InspiralCoarseBankIn coarseIn); InspiralCoarseBankIn coarseIn);
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{LALInspiralNextTemplateC}
</lalLaTeX> */
void
LALInspiralNextTemplate(
LALStatus *status,
InspiralBankParams *bankPars,
InspiralMetric metric);
/* <lalLaTeX>
\newpage\input{LALRectangleVerticesC} \newpage\input{LALRectangleVerticesC}
</lalLaTeX> */ </lalLaTeX> */
void void
LALRectangleVertices( LALRectangleVertices(
LALStatus *status, LALStatus *status,
RectangleOut *out, RectangleOut *out,
RectangleIn *in RectangleIn *in
); );
 End of changes. 47 change blocks. 
151 lines changed or deleted 355 lines changed or added


 LALNoiseModels.h   LALNoiseModels.h 
/* <lalVerbatim file="LALNoiseModelsHV"> /* <lalVerbatim file="LALNoiseModelsHV">
Author: Sathyaprakash, B.S. Author: Sathyaprakash, B.S.
$Id: LALNoiseModels.h,v 1.8 2002/01/28 12:29:11 dchurches Exp $ $Id: LALNoiseModels.h,v 1.9 2002/06/05 11:13:19 dchurches Exp $
</lalVerbatim> */ </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\section{Header \texttt{LALNoiseModels.h}} \section{Header \texttt{LALNoiseModels.h}}
\label{s:LALNoiseModels.h} \label{s:LALNoiseModels.h}
Header file for model noise generation codes. Header file for model noise generation codes.
skipping to change at line 41 skipping to change at line 41
#include <stdlib.h> #include <stdlib.h>
#include <lal/LALStdlib.h> #include <lal/LALStdlib.h>
#include <lal/LALConstants.h> #include <lal/LALConstants.h>
#include <lal/LALInspiral.h> #include <lal/LALInspiral.h>
#include <lal/RealFFT.h> #include <lal/RealFFT.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
NRCSID( LALNOISEMODELSH, "$Id: LALNoiseModels.h,v 1.8 2002/01/28 12:29:11 d churches Exp $" ); NRCSID( LALNOISEMODELSH, "$Id: LALNoiseModels.h,v 1.9 2002/06/05 11:13:19 d churches Exp $" );
/* <lalLaTeX> /* <lalLaTeX>
\subsection*{Error codes} \subsection*{Error codes}
</lalLaTeX> */ </lalLaTeX> */
/* <lalErrTable> */ /* <lalErrTable> */
#define LALNOISEMODELSH_ENULL 1 #define LALNOISEMODELSH_ENULL 1
skipping to change at line 196 skipping to change at line 196
tagInspiralFindEventsIn tagInspiralFindEventsIn
{ {
INT4 nBegin; INT4 nBegin;
INT4 nEnd; INT4 nEnd;
REAL8 Threshold; REAL8 Threshold;
REAL4Vector signal; REAL4Vector signal;
REAL8Vector psd; REAL8Vector psd;
InspiralTemplate param; InspiralTemplate param;
RealFFTPlan *fwdp; RealFFTPlan *fwdp;
RealFFTPlan *revp; RealFFTPlan *revp;
UINT2 displayData;
UINT2 displayPSD;
UINT2 displayTemplates; UINT2 displayTemplates;
UINT2 displayCorrelation; UINT2 displayCorrelation;
UINT2 displayCorrelationStats; UINT2 displayCorrelationStats;
} }
InspiralFindEventsIn; InspiralFindEventsIn;
/* </lalVerbatim> */ /* </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\index{\texttt{InspiralFindEventsIn}} \index{\texttt{InspiralFindEventsIn}}
</lalLaTeX> */ </lalLaTeX> */
/* <lalVerbatim file="LALNoiseModelsHS"> */ /* <lalVerbatim file="LALNoiseModelsHS"> */
typedef struct typedef struct
tagInspiralEventsList tagInspiralEventsList
{ {
REAL8 max; REAL8 max;
REAL8 phase; REAL8 phase;
REAL8 eventTime; REAL8 eventTime;
REAL8 eventTime_ns;
UINT4 bin; UINT4 bin;
InspiralTemplate param; InspiralTemplate param;
} }
InspiralEventsList; InspiralEventsList;
/* </lalVerbatim> */ /* </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\index{\texttt{InspiralEventsList}} \index{\texttt{InspiralEventsList}}
 End of changes. 4 change blocks. 
2 lines changed or deleted 5 lines changed or added


 LALXMGRInterface.h   LALXMGRInterface.h 
/*----------------------------------------------------------------------- /*-----------------------------------------------------------------------
* *
* File Name: LALXMGRInterface.h * File Name: LALXMGRInterface.h
* *
* Author: Brady, P.R, and Brown, D. A. * Author: Brady, P.R, and Brown, D. A.
* *
* Revision: $Id: LALXMGRInterface.h,v 1.2 2002/04/12 16:52:53 jolien Exp $ * Revision: $Id: LALXMGRInterface.h,v 1.3 2002/06/10 21:25:26 owen Exp $
* *
*----------------------------------------------------------------------- *-----------------------------------------------------------------------
*/ */
#if 0 #if 0
<lalVerbatim file="LALXMGRInterfaceHV"> <lalVerbatim file="LALXMGRInterfaceHV">
Author: Brady P., R., and Brown, D. A. Author: Brady P., R., and Brown, D. A.
$Id: LALXMGRInterface.h,v 1.2 2002/04/12 16:52:53 jolien Exp $ $Id: LALXMGRInterface.h,v 1.3 2002/06/10 21:25:26 owen Exp $
</lalVerbatim> </lalVerbatim>
<lalLaTeX> <lalLaTeX>
\section{Header \texttt{LALXMGRInterface.h}} \section{Header \texttt{LALXMGRInterface.h}}
\label{s:LALXMGRInterface.h} \label{s:LALXMGRInterface.h}
Provides protypes, structures and functions to allow visualisation of Provides protypes, structures and functions to allow visualisation of
the events generated \texttt{findchirp} and the \texttt{inspiral} shared the events generated \texttt{findchirp} and the \texttt{inspiral} shared
object. object.
skipping to change at line 40 skipping to change at line 40
\end{verbatim} \end{verbatim}
</lalLaTeX> </lalLaTeX>
#endif #endif
#ifndef _LALXMGRINTERFACEH_H #ifndef _LALXMGRINTERFACEH_H
#define _LALXMGRINTERFACEH_H #define _LALXMGRINTERFACEH_H
#include <lal/LALDatatypes.h> #include <lal/LALDatatypes.h>
#include <lal/Date.h> #include <lal/Date.h>
#include <lal/TwoDMesh.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#pragma } #pragma }
#endif #endif
NRCSID (LALXMGRINTERFACEH, "$Id: LALXMGRInterface.h,v 1.2 2002/04/12 16:52: 53 jolien Exp $"); NRCSID (LALXMGRINTERFACEH, "$Id: LALXMGRInterface.h,v 1.3 2002/06/10 21:25: 26 owen Exp $");
#if 0 /* <lalLaTeX>
<lalLaTeX>
\newpage\subsection*{Error codes} \newpage\subsection*{Error codes}
</lalLaTeX> </lalLaTeX> */
#endif
/* <lalErrTable> */ /* <lalErrTable> */
#define LALXMGRINTERFACEH_ENULL 1 #define LALXMGRINTERFACEH_ENULL 1
#define LALXMGRINTERFACEH_ENNUL 2 #define LALXMGRINTERFACEH_ENNUL 2
#define LALXMGRINTERFACEH_EALOC 3 #define LALXMGRINTERFACEH_EALOC 3
#define LALXMGRINTERFACEH_EOPEN 4 #define LALXMGRINTERFACEH_EOPEN 4
#define LALXMGRINTERFACEH_EFCLO 5 #define LALXMGRINTERFACEH_EFCLO 5
#define LALXMGRINTERFACEH_ENGRA 6 #define LALXMGRINTERFACEH_ENGRA 6
#define LALXMGRINTERFACEH_MSGENULL "Null pointer" #define LALXMGRINTERFACEH_MSGENULL "Null pointer"
#define LALXMGRINTERFACEH_MSGENNUL "Non-null pointer" #define LALXMGRINTERFACEH_MSGENNUL "Non-null pointer"
#define LALXMGRINTERFACEH_MSGEALOC "Memory allocation error" #define LALXMGRINTERFACEH_MSGEALOC "Memory allocation error"
skipping to change at line 74 skipping to change at line 73
#define LALXMGRINTERFACEH_MSGEFCLO "Error closing file" #define LALXMGRINTERFACEH_MSGEFCLO "Error closing file"
#define LALXMGRINTERFACEH_MSGENGRA "Already have max number of graphs in ar ray" #define LALXMGRINTERFACEH_MSGENGRA "Already have max number of graphs in ar ray"
/* </lalErrTable> */ /* </lalErrTable> */
/* /*
* *
* typedefs of structures used by findchip view functions * typedefs of structures used by findchip view functions
* *
*/ */
#if 0 /* <lalLaTeX>
<lalLaTeX>
\subsection*{Types} \subsection*{Types}
</lalLaTeX> </lalLaTeX> */
#endif
typedef enum typedef enum
{ {
xmgrSymbolNone = 0, xmgrSymbolNone = 0,
xmgrSymbolDot = 1, xmgrSymbolDot = 1,
xmgrSymbolPlus = 9, xmgrSymbolPlus = 9,
xmgrSymbolCross = 10 xmgrSymbolCross = 10
} }
XMGRSymbol; XMGRSymbol;
skipping to change at line 164 skipping to change at line 161
XMGRGraph; XMGRGraph;
typedef struct typedef struct
tagXMGRGraphVector tagXMGRGraphVector
{ {
UINT4 length; UINT4 length;
XMGRGraph *data; XMGRGraph *data;
} }
XMGRGraphVector; XMGRGraphVector;
#if 0 /* <lalLaTeX>
<lalLaTeX>
\vfill{\footnotesize\input{LALXMGRInterfaceHV}} \vfill{\footnotesize\input{LALXMGRInterfaceHV}}
</lalLaTeX> </lalLaTeX> */
#endif
/* /*
* *
* function prototypes * function prototypes
* *
*/ */
void void
LALXMGROpenFile ( LALXMGROpenFile (
LALStatus *status, LALStatus *status,
skipping to change at line 214 skipping to change at line 209
void void
LALXMGRGPSTimeToTitle( LALXMGRGPSTimeToTitle(
LALStatus *status, LALStatus *status,
CHARVector *title, CHARVector *title,
LIGOTimeGPS *startGPS, LIGOTimeGPS *startGPS,
LIGOTimeGPS *stopGPS, LIGOTimeGPS *stopGPS,
CHAR *comment CHAR *comment
); );
#if 0 void
<lalLaTeX> LALXMGRPlotMesh(
LALStatus *status,
TwoDMeshNode *head,
FILE *fp,
TwoDMeshParamStruc *mesh
);
/* <lalLaTeX>
\newpage\input{LALXMGRInterfaceC} \newpage\input{LALXMGRInterfaceC}
</lalLaTeX> </lalLaTeX> */
#endif
#ifdef __cplusplus #ifdef __cplusplus
#pragma { #pragma {
} }
#endif #endif
#endif /* _LALXMGRINTERFACEH_H */ #endif /* _LALXMGRINTERFACEH_H */
 End of changes. 12 change blocks. 
19 lines changed or deleted 20 lines changed or added


 PtoleMetric.h   PtoleMetric.h 
/**************************************** <lalVerbatim file="PtoleMetricHV" > /**************************************** <lalVerbatim file="PtoleMetricHV" >
Author: Owen, B. J. Author: Owen, B. J.
$Id: PtoleMetric.h,v 1.2 2001/08/21 04:19:51 jolien Exp $ $Id: PtoleMetric.h,v 1.4 2002/06/10 21:59:09 owen Exp $
********************************************************** </lalVerbatim> * / ********************************************************** </lalVerbatim> * /
/**************************************************************** <lalLaTeX > /**************************************************************** <lalLaTeX >
\section{Header \texttt{PtoleMetric.h}} \section{Header \texttt{PtoleMetric.h}}
\label{s:PtoleMetric.h} \label{s:PtoleMetric.h}
Provides routines to compute pulsar parameter-space metrics using the Provides routines to compute pulsar parameter-space metrics using the
``Ptolemaic'' approximation. ``Ptolemaic'' approximation.
skipping to change at line 53 skipping to change at line 53
#include <lal/DetectorSite.h> #include <lal/DetectorSite.h>
#include <lal/LALConstants.h> #include <lal/LALConstants.h>
#include <lal/LALStdlib.h> #include <lal/LALStdlib.h>
#include <lal/SkyCoordinates.h> #include <lal/SkyCoordinates.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
NRCSID( PTOLEMETRICH, "$Id: PtoleMetric.h,v 1.2 2001/08/21 04:19:51 jolien Exp $" ); NRCSID( PTOLEMETRICH, "$Id: PtoleMetric.h,v 1.4 2002/06/10 21:59:09 owen Ex p $" );
/**************************************************************** <lalLaTeX > /**************************************************************** <lalLaTeX >
\subsection*{Error conditions} \subsection*{Error conditions}
*********************************************** </lalLaTeX> <lalErrTable> * / *********************************************** </lalLaTeX> <lalErrTable> * /
#define PTOLEMETRICH_ENULL 0x01 #define PTOLEMETRICH_ENULL 0x01
#define PTOLEMETRICH_EPARM 0x02 #define PTOLEMETRICH_EPARM 0x02
#define PTOLEMETRICH_EDIM 0x04 #define PTOLEMETRICH_EDIM 0x04
#define PTOLEMETRICH_MSGENULL "unexpected null pointer" #define PTOLEMETRICH_MSGENULL "unexpected null pointer"
skipping to change at line 81 skipping to change at line 81
PtoleMetricIn PtoleMetricIn
\end{verbatim} \end{verbatim}
\idx[Type]{PtoleMetricIn} \idx[Type]{PtoleMetricIn}
\noindent This structure will likely be changed to match up better with \noindent This structure will likely be changed to match up better with
those under the \texttt{StackMetric.h} header. It contains the bare those under the \texttt{StackMetric.h} header. It contains the bare
necessities, not needing function pointers etc. necessities, not needing function pointers etc.
\begin{description} \begin{description}
\item[\texttt{SkyPosition position}] The position on the sky at which the \item[\texttt{SkyPosition position}] The equatorial coordinates at which th e
metric components are evaluated. metric components are evaluated.
\item[\texttt{REAL4Vector *spindown}] The spindown parameters for which the \item[\texttt{REAL4Vector *spindown}] The spindown parameters for which the
metric components are evaluated. These are dimensionless. metric components are evaluated. These are dimensionless.
\item[\texttt{LIGOTimeGPS epoch}] When the coherent integration begins. \item[\texttt{LIGOTimeGPS epoch}] When the coherent integration begins.
\item[\texttt{REAL4 duration}] Duration of integration, in seconds. \item[\texttt{REAL4 duration}] Duration of integration, in seconds.
\item[\texttt{REAL4 maxFreq}] The maximum frequency to be searched, in Hz. \item[\texttt{REAL4 maxFreq}] The maximum frequency to be searched, in Hz.
skipping to change at line 124 skipping to change at line 124
\newpage\input{PtoleMetricC} \newpage\input{PtoleMetricC}
************************************************************* </lalLaTeX> * / ************************************************************* </lalLaTeX> * /
void void
LALPtoleMetric( LALStatus *status, LALPtoleMetric( LALStatus *status,
REAL8Vector *metric, REAL8Vector *metric,
PtoleMetricIn *input ); PtoleMetricIn *input );
/**************************************************************** <lalLaTeX > /**************************************************************** <lalLaTeX >
\newpage\input{PtoleMetricTestC} \newpage\input{PtoleMetricTestC}
\newpage\input{PtoleMeshTestC}
************************************************************* </lalLaTeX> * / ************************************************************* </lalLaTeX> * /
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif #endif
 End of changes. 4 change blocks. 
3 lines changed or deleted 4 lines changed or added


 RealFFT.h   RealFFT.h 
/**** <lalVerbatim file="RealFFTHV"> /**** <lalVerbatim file="RealFFTHV">
* $Id: RealFFT.h,v 1.11 2001/08/22 00:42:04 jolien Exp $ * $Id: RealFFT.h,v 1.12 2002/05/01 16:39:03 jolien Exp $
**** </lalVerbatim> */ **** </lalVerbatim> */
/**** <lalLaTeX> /**** <lalLaTeX>
* *
* \section{Header \texttt{RealFFT.h}} * \section{Header \texttt{RealFFT.h}}
* \label{s:RealFFT.h} * \label{s:RealFFT.h}
* *
* Performs real-to-complex and complex-to-real FFTs. * Performs real-to-complex and complex-to-real FFTs.
* *
* \subsection*{Synopsis} * \subsection*{Synopsis}
skipping to change at line 33 skipping to change at line 33
#ifndef _REALFFT_H #ifndef _REALFFT_H
#define _REALFFT_H #define _REALFFT_H
#include <lal/LALDatatypes.h> #include <lal/LALDatatypes.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#pragma } #pragma }
#endif #endif
NRCSID( REALFFTH, "$Id: RealFFT.h,v 1.11 2001/08/22 00:42:04 jolien Exp $" ); NRCSID( REALFFTH, "$Id: RealFFT.h,v 1.12 2002/05/01 16:39:03 jolien Exp $" );
/**** <lalLaTeX> /**** <lalLaTeX>
* \subsection*{Error conditions} * \subsection*{Error conditions}
**** </lalLaTeX> */ **** </lalLaTeX> */
/**** <lalErrTable> */ /**** <lalErrTable> */
#define REALFFTH_ENULL 1 #define REALFFTH_ENULL 1
#define REALFFTH_ENNUL 2 #define REALFFTH_ENNUL 2
#define REALFFTH_ESIZE 4 #define REALFFTH_ESIZE 4
#define REALFFTH_ESZMM 8 #define REALFFTH_ESZMM 8
#define REALFFTH_ESLEN 16 #define REALFFTH_ESLEN 16
#define REALFFTH_ESAME 32 #define REALFFTH_ESAME 32
#define REALFFTH_ESIGN 64 #define REALFFTH_ESIGN 64
#define REALFFTH_EDATA 128 #define REALFFTH_EDATA 128
#define REALFFTH_EALOC 256 #define REALFFTH_EALOC 256
#define REALFFTH_EFFTW 512 #define REALFFTH_EFFTW 512
#define REALFFTH_ESNGL 1024
#define REALFFTH_MSGENULL "Null pointer" #define REALFFTH_MSGENULL "Null pointer"
#define REALFFTH_MSGENNUL "Non-null pointer" #define REALFFTH_MSGENNUL "Non-null pointer"
#define REALFFTH_MSGESIZE "Invalid input size" #define REALFFTH_MSGESIZE "Invalid input size"
#define REALFFTH_MSGESZMM "Size mismatch" #define REALFFTH_MSGESZMM "Size mismatch"
#define REALFFTH_MSGESLEN "Invalid/mismatched sequence lengths" #define REALFFTH_MSGESLEN "Invalid/mismatched sequence lengths"
#define REALFFTH_MSGESAME "Input/Output data vectors are the same" #define REALFFTH_MSGESAME "Input/Output data vectors are the same"
#define REALFFTH_MSGESIGN "Incorrect plan sign" #define REALFFTH_MSGESIGN "Incorrect plan sign"
#define REALFFTH_MSGEDATA "Bad input data: DC/Nyquist should be real" #define REALFFTH_MSGEDATA "Bad input data: DC/Nyquist should be real"
#define REALFFTH_MSGEALOC "Memory allocation failed" #define REALFFTH_MSGEALOC "Memory allocation failed"
#define REALFFTH_MSGEFFTW "Error in FFTW" #define REALFFTH_MSGEFFTW "Error in FFTW"
#define REALFFTH_MSGESNGL "FFTW library is not single-precision"
/**** </lalErrTable> */ /**** </lalErrTable> */
/**** <lalLaTeX> /**** <lalLaTeX>
* *
* \subsection*{Structures} * \subsection*{Structures}
* *
**** </lalLaTeX> */ **** </lalLaTeX> */
/**** <lalVerbatim> */ /**** <lalVerbatim> */
typedef struct tagRealFFTPlan RealFFTPlan; typedef struct tagRealFFTPlan RealFFTPlan;
/**** </lalVerbatim> */ /**** </lalVerbatim> */
 End of changes. 4 change blocks. 
2 lines changed or deleted 4 lines changed or added


 RingSearch.h   RingSearch.h 
/**** <lalVerbatim file="RingSearchHV"> /**** <lalVerbatim file="RingSearchHV">
* Author: Jolien Creighton * Author: Jolien Creighton
* $Id: RingSearch.h,v 1.3 2002/04/11 21:54:17 jolien Exp $ * $Id: RingSearch.h,v 1.4 2002/06/06 19:13:05 jolien Exp $
**** </lalVerbatim> */ **** </lalVerbatim> */
/**** <lalLaTeX> /**** <lalLaTeX>
* *
* \section{Header \texttt{RingSearch.h}} * \section{Header \texttt{RingSearch.h}}
* *
* Black hole ringdown search code. * Black hole ringdown search code.
* *
* \subsection*{Synopsis} * \subsection*{Synopsis}
* \begin{verbatim} * \begin{verbatim}
skipping to change at line 33 skipping to change at line 33
#include <lal/LALDatatypes.h> #include <lal/LALDatatypes.h>
#include <lal/RealFFT.h> #include <lal/RealFFT.h>
#include <lal/Ring.h> #include <lal/Ring.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#pragma } #pragma }
#endif #endif
NRCSID( RINGSEARCHH, "$Id: RingSearch.h,v 1.3 2002/04/11 21:54:17 jolien Ex p $" ); NRCSID( RINGSEARCHH, "$Id: RingSearch.h,v 1.4 2002/06/06 19:13:05 jolien Ex p $" );
/**** <lalLaTeX> /**** <lalLaTeX>
* \subsection*{Error conditions} * \subsection*{Error conditions}
**** </lalLaTeX> */ **** </lalLaTeX> */
/**** <lalErrTable> */ /**** <lalErrTable> */
#define RINGSEARCHH_ENULL 00001 #define RINGSEARCHH_ENULL 00001
#define RINGSEARCHH_ENNUL 00002 #define RINGSEARCHH_ENNUL 00002
#define RINGSEARCHH_EALOC 00004 #define RINGSEARCHH_EALOC 00004
#define RINGSEARCHH_ESIZE 00010 #define RINGSEARCHH_ESIZE 00010
#define RINGSEARCHH_ESZMM 00020 #define RINGSEARCHH_ESZMM 00020
skipping to change at line 95 skipping to change at line 95
REAL4 minQuality; REAL4 minQuality;
REAL4 maxQuality; REAL4 maxQuality;
REAL4 maxMismatch; REAL4 maxMismatch;
REAL4 sampleRate; REAL4 sampleRate;
RingTemplateBank *templateBank; RingTemplateBank *templateBank;
UINT4 templatesSent; UINT4 templatesSent;
UINT4 templatesDone; UINT4 templatesDone;
INT4 searchMaster; INT4 searchMaster;
INT4 myProcNumber; INT4 myProcNumber;
INT4 numSlaves; INT4 numSlaves;
UINT4 numEvents;
REAL4 threshold; REAL4 threshold;
CHAR ifoName[3]; CHAR ifoName[3];
INT4 maximizeEvents; INT4 maximizeEvents;
INT4 keepResults; INT4 keepResults;
UINT4 numResults; UINT4 numResults;
REAL4TimeSeries *result; REAL4TimeSeries *result;
} }
RingSearchParams; RingSearchParams;
/**** </lalVerbatim> */ /**** </lalVerbatim> */
/**** <lalLaTeX> /**** <lalLaTeX>
skipping to change at line 136 skipping to change at line 137
* \item[\texttt{minQuality}] Minimum ring quality for the bank. * \item[\texttt{minQuality}] Minimum ring quality for the bank.
* \item[\texttt{maxQuality}] Maximum ring quality for the bank. * \item[\texttt{maxQuality}] Maximum ring quality for the bank.
* \item[\texttt{maxMismatch}] Maximum allowed mismatch for the bank. * \item[\texttt{maxMismatch}] Maximum allowed mismatch for the bank.
* \item[\texttt{sampleRate}] Sample rate of the data. * \item[\texttt{sampleRate}] Sample rate of the data.
* \item[\texttt{templateBank}] The template bank. * \item[\texttt{templateBank}] The template bank.
* \item[\texttt{templatesSent}] For MPI code: number of templates sent. * \item[\texttt{templatesSent}] For MPI code: number of templates sent.
* \item[\texttt{templatesDone}] For MPI code: number of templates done. * \item[\texttt{templatesDone}] For MPI code: number of templates done.
* \item[\texttt{searchMaster}] For MPI code: non-zero if search master. * \item[\texttt{searchMaster}] For MPI code: non-zero if search master.
* \item[\texttt{myProcNumber}] For MPI code: MPI comm rank. * \item[\texttt{myProcNumber}] For MPI code: MPI comm rank.
* \item[\texttt{numSlaves}] For MPI code: number of slaves. * \item[\texttt{numSlaves}] For MPI code: number of slaves.
* \item[\texttt{numEvents}] Cumulative number of events found.
* \item[\texttt{threshold}] SNR threshold for an event. * \item[\texttt{threshold}] SNR threshold for an event.
* \item[\texttt{ifoName[3]}] IFO name (e.g., ``H1,'' ``H2,'' ``L1,'' et c.). * \item[\texttt{ifoName[3]}] IFO name (e.g., ``H1,'' ``H2,'' ``L1,'' et c.).
* \item[\texttt{maximizeEvents}] Non zero if events are maximized over arr ival * \item[\texttt{maximizeEvents}] Non zero if events are maximized over arr ival
* time. * time.
* \item[\texttt{keepResults}] Non zero if SNR output is to be kept. * \item[\texttt{keepResults}] Non zero if SNR output is to be kept.
* \item[\texttt{numResults}] Number of SNR outputs kept. * \item[\texttt{numResults}] Number of SNR outputs kept.
* \item[\texttt{result}] The SNR outputs. * \item[\texttt{result}] The SNR outputs.
* \end{description} * \end{description}
* *
* *
 End of changes. 4 change blocks. 
2 lines changed or deleted 4 lines changed or added


 SeqFactories.h   SeqFactories.h 
/*----------------------------------------------------------------------- /*-----------------------------------------------------------------------
File Name: SeqFactories.h File Name: SeqFactories.h
<lalVerbatim file="SeqFactoriesHV"> <lalVerbatim file="SeqFactoriesHV">
Revision: $Id: SeqFactories.h,v 1.8 2001/08/21 04:19:49 jolien Exp $ Revision: $Id: SeqFactories.h,v 1.9 2002/05/21 17:14:37 teviet Exp $
</lalVerbatim> </lalVerbatim>
-------------------------------------------------------------------------*/ -------------------------------------------------------------------------*/
/* <lalLaTeX> /* <lalLaTeX>
\section{Header \texttt{SeqFactories.h}} \section{Header \texttt{SeqFactories.h}}
\label{s:SeqFactories.h} \label{s:SeqFactories.h}
Provides prototype and status code information for use of CreateVectorSeque nce Provides prototype and status code information for use of CreateVectorSeque nce
skipping to change at line 36 skipping to change at line 36
#ifndef _SEQFACTORIES_H #ifndef _SEQFACTORIES_H
#define _SEQFACTORIES_H #define _SEQFACTORIES_H
#include <lal/LALDatatypes.h> #include <lal/LALDatatypes.h>
#include <lal/AVFactories.h> #include <lal/AVFactories.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
NRCSID (SEQFACTORIESH, "$Id: SeqFactories.h,v 1.8 2001/08/21 04:19:49 jolie n Exp $"); NRCSID (SEQFACTORIESH, "$Id: SeqFactories.h,v 1.9 2002/05/21 17:14:37 tevie t Exp $");
/* <lalLaTeX> /* <lalLaTeX>
\subsection*{Error conditions} \subsection*{Error conditions}
\input{SeqFactoriesHErrTab} \input{SeqFactoriesHErrTab}
</lalLaTeX> */ </lalLaTeX> */
/* /*
<lalErrTable file="SeqFactoriesHErrTab"> <lalErrTable file="SeqFactoriesHErrTab">
*/ */
#define SEQFACTORIESH_ESLENGTH 1 #define SEQFACTORIESH_ESLENGTH 1
#define SEQFACTORIESH_EVLENGTH 2 #define SEQFACTORIESH_EVLENGTH 2
#define SEQFACTORIESH_EVPTR 4 #define SEQFACTORIESH_EALENGTH 4
#define SEQFACTORIESH_EUPTR 8 #define SEQFACTORIESH_EVPTR 8
#define SEQFACTORIESH_EDPTR 16 #define SEQFACTORIESH_EUPTR 16
#define SEQFACTORIESH_EINPTR 32 #define SEQFACTORIESH_EDPTR 32
#define SEQFACTORIESH_EMALLOC 64 #define SEQFACTORIESH_EINPTR 64
#define SEQFACTORIESH_EMALLOC 128
#define SEQFACTORIESH_MSGESLENGTH "Illegal sequence length." #define SEQFACTORIESH_MSGESLENGTH "Illegal sequence length."
#define SEQFACTORIESH_MSGEVLENGTH "Illegal vector length." #define SEQFACTORIESH_MSGEVLENGTH "Illegal vector length."
#define SEQFACTORIESH_MSGEALENGTH "Illegal array dimension."
#define SEQFACTORIESH_MSGEVPTR "Null sequence handle." #define SEQFACTORIESH_MSGEVPTR "Null sequence handle."
#define SEQFACTORIESH_MSGEUPTR "Non-null sequence pointer." #define SEQFACTORIESH_MSGEUPTR "Non-null sequence pointer."
#define SEQFACTORIESH_MSGEDPTR "Null sequence data." #define SEQFACTORIESH_MSGEDPTR "Null sequence data."
#define SEQFACTORIESH_MSGEINPTR "Null input pointer." #define SEQFACTORIESH_MSGEINPTR "Null input pointer."
#define SEQFACTORIESH_MSGEMALLOC "Malloc failure." #define SEQFACTORIESH_MSGEMALLOC "Malloc failure."
/* /*
</lalErrTable> </lalErrTable>
*/ */
skipping to change at line 94 skipping to change at line 96
\item[\texttt{UINT4 vectorLength}] The length of each vector in the sequenc e. \item[\texttt{UINT4 vectorLength}] The length of each vector in the sequenc e.
\end{description} \end{description}
</lalLaTeX> */ </lalLaTeX> */
typedef struct tagCreateVectorSequenceIn { typedef struct tagCreateVectorSequenceIn {
UINT4 length; UINT4 length;
UINT4 vectorLength; UINT4 vectorLength;
} CreateVectorSequenceIn; } CreateVectorSequenceIn;
/* <lalLaTeX>
\begin{verbatim}
CreateArraySequenceIn
\end{verbatim}
\idx[Type]{CreateArraySequenceIn}
\noindent This structure stores the input required for creating an array
sequence. This input includes the length of the sequence (i.e., the number
of
array) and the dimensions of each array index. The fields are:
\begin{description}
\item[\texttt{UINT4 length}] The sequence length.
\item[\texttt{UINT4Vector *dimLength}] The dimensions of each array
index (the same for every array in the sequence).
\end{description}
</lalLaTeX> */
typedef struct tagCreateArraySequenceIn {
UINT4 length;
UINT4Vector *dimLength;
} CreateArraySequenceIn;
/* Function prototypes. */ /* Function prototypes. */
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{VectorSequenceFactoriesC} \newpage\input{VectorSequenceFactoriesC}
</lalLaTeX> */ </lalLaTeX> */
void LALCreateSequence(LALStatus *, REAL4Sequence **, UINT4); void LALCreateSequence(LALStatus *, REAL4Sequence **, UINT4);
void LALCHARCreateSequence(LALStatus *, CHARSequence **, UINT4); void LALCHARCreateSequence(LALStatus *, CHARSequence **, UINT4);
void LALI2CreateSequence(LALStatus *, INT2Sequence **, UINT4); void LALI2CreateSequence(LALStatus *, INT2Sequence **, UINT4);
void LALI4CreateSequence(LALStatus *, INT4Sequence **, UINT4); void LALI4CreateSequence(LALStatus *, INT4Sequence **, UINT4);
void LALI8CreateSequence(LALStatus *, INT8Sequence **, UINT4); void LALI8CreateSequence(LALStatus *, INT8Sequence **, UINT4);
skipping to change at line 187 skipping to change at line 213
UINT8VectorSequence **); UINT8VectorSequence **);
void LALSDestroyVectorSequence(LALStatus *, void LALSDestroyVectorSequence(LALStatus *,
REAL4VectorSequence **); REAL4VectorSequence **);
void LALDDestroyVectorSequence(LALStatus *, void LALDDestroyVectorSequence(LALStatus *,
REAL8VectorSequence **); REAL8VectorSequence **);
void LALCDestroyVectorSequence(LALStatus *, void LALCDestroyVectorSequence(LALStatus *,
COMPLEX8VectorSequence **); COMPLEX8VectorSequence **);
void LALZDestroyVectorSequence(LALStatus *, void LALZDestroyVectorSequence(LALStatus *,
COMPLEX16VectorSequence **); COMPLEX16VectorSequence **);
/* <lalLaTeX>
\newpage\input{ArraySequenceFactoriesC}
</lalLaTeX> */
void LALCreateArraySequence(LALStatus *,
REAL4ArraySequence **,
CreateArraySequenceIn *);
void LALI2CreateArraySequence(LALStatus *,
INT2ArraySequence **,
CreateArraySequenceIn *);
void LALI4CreateArraySequence(LALStatus *,
INT4ArraySequence **,
CreateArraySequenceIn *);
void LALI8CreateArraySequence(LALStatus *,
INT8ArraySequence **,
CreateArraySequenceIn *);
void LALU2CreateArraySequence(LALStatus *,
UINT2ArraySequence **,
CreateArraySequenceIn *);
void LALU4CreateArraySequence(LALStatus *,
UINT4ArraySequence **,
CreateArraySequenceIn *);
void LALU8CreateArraySequence(LALStatus *,
UINT8ArraySequence **,
CreateArraySequenceIn *);
void LALSCreateArraySequence(LALStatus *,
REAL4ArraySequence **,
CreateArraySequenceIn *);
void LALDCreateArraySequence(LALStatus *,
REAL8ArraySequence **,
CreateArraySequenceIn *);
void LALCCreateArraySequence(LALStatus *,
COMPLEX8ArraySequence **,
CreateArraySequenceIn *);
void LALZCreateArraySequence(LALStatus *,
COMPLEX16ArraySequence **,
CreateArraySequenceIn *);
void LALDestroyArraySequence (LALStatus *,
REAL4ArraySequence **);
void LALI2DestroyArraySequence(LALStatus *,
INT2ArraySequence **);
void LALI4DestroyArraySequence(LALStatus *,
INT4ArraySequence **);
void LALI8DestroyArraySequence(LALStatus *,
INT8ArraySequence **);
void LALU2DestroyArraySequence(LALStatus *,
UINT2ArraySequence **);
void LALU4DestroyArraySequence(LALStatus *,
UINT4ArraySequence **);
void LALU8DestroyArraySequence(LALStatus *,
UINT8ArraySequence **);
void LALSDestroyArraySequence(LALStatus *,
REAL4ArraySequence **);
void LALDDestroyArraySequence(LALStatus *,
REAL8ArraySequence **);
void LALCDestroyArraySequence(LALStatus *,
COMPLEX8ArraySequence **);
void LALZDestroyArraySequence(LALStatus *,
COMPLEX16ArraySequence **);
/* Test program. */ /* Test program. */
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{VectorSequenceFactoriesTestC} \newpage\input{VectorSequenceFactoriesTestC}
</lalLaTeX> */ </lalLaTeX> */
/* <lalLaTeX>
\newpage\input{ArraySequenceFactoriesTestC}
</lalLaTeX> */
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* _SEQFACTORIES_H */ #endif /* _SEQFACTORIES_H */
 End of changes. 7 change blocks. 
7 lines changed or deleted 99 lines changed or added


 StochasticCrossCorrelation.h   StochasticCrossCorrelation.h 
/*********************** <lalVerbatim file="StochasticCrossCorrelationHV"> /*********************** <lalVerbatim file="StochasticCrossCorrelationHV">
Author: UTB Relativity Group; contact whelan@phys.utb.edu (original by S. D rasco) Author: UTB Relativity Group; contact whelan@phys.utb.edu (original by S. D rasco)
$Id: StochasticCrossCorrelation.h,v 1.22 2002/02/26 20:32:27 whelan Exp $ $Id: StochasticCrossCorrelation.h,v 1.25 2002/06/10 05:46:24 whelan Exp $
*********************************************************** </lalVerbatim> */ *********************************************************** </lalVerbatim> */
/********************************************************** <lalLaTeX> /********************************************************** <lalLaTeX>
\section{Header \texttt{StochasticCrossCorrelation.h}} \section{Header \texttt{StochasticCrossCorrelation.h}}
\label{stochastic:s:StochasticCrossCorrelation.h} \label{stochastic:s:StochasticCrossCorrelation.h}
Provides prototype and error code information for the modules needed Provides prototype and error code information for the modules needed
to calculate the standard optimally-filtered cross-correlation to calculate the standard optimally-filtered cross-correlation
statistic for stochastic background searches, given a pair of data statistic for stochastic background searches, given a pair of data
segments, along with appropriate representations of the detector segments, along with appropriate representations of the detector
transfer function and the (whitened) power spectral density of the transfer function and the (uncalibrated) power spectral density of the
noise in each detector. The relationship among these modules is noise in each detector. The relationship among these modules is
illustrated in Fig.~\ref{stochastic:f:CrossCorrFlowchart}. illustrated in Fig.~\ref{stochastic:f:CrossCorrFlowchart}.
\begin{figure}[htb!] \begin{figure}[htb!]
\begin{center} \begin{center}
\begin{picture}(410,250)(-32,-110) \begin{picture}(410,250)(-32,-110)
\put(168,123){\vector(1,0){15}} \put(168,123){\vector(1,0){15}}
\put(168,123){\line(1,0){25}} \put(168,123){\line(1,0){25}}
\put(195,120){$Y$} \put(195,120){$Y$}
\put(65,110) \put(65,110)
{ {
\framebox(100,30) \framebox(100,30)
{ {
\texttt{CrossCorr} \texttt{CrossCorr}
} }
} }
\put(80,85){\vector(0,1){15}} \put(80,85){\vector(0,1){15}}
\put(80,85){\line(0,1){25}} \put(80,85){\line(0,1){25}}
\put(82,95){$\widetilde{\bar{h}}{}^{\scriptstyle{\rm W}}_{1,2}$} \put(82,95){$\widetilde{\bar{h}}{}_{1,2}$}
\put(-37,65){$h^{\scriptstyle{\rm W}}_{1,2}$} \put(-37,65){$h_{1,2}$}
\put(-17,68){\vector(1,0){15}} \put(-17,68){\vector(1,0){15}}
\put(-17,68){\line(1,0){25}} \put(-17,68){\line(1,0){25}}
\put(5,55) \put(5,55)
{ {
\framebox(90,30) \framebox(90,30)
{ {
\texttt{ZeroPadAndFFT} \texttt{ZeroPadAndFFT}
} }
} }
\put(150,85){\vector(0,1){15}} \put(150,85){\vector(0,1){15}}
\put(150,85){\line(0,1){25}} \put(150,85){\line(0,1){25}}
\put(152,95){$\widetilde{Q}^{\scriptstyle{\rm W}}$} \put(152,95){$\widetilde{Q}$}
\put(100,55) \put(100,55)
{ {
\framebox(190,30) \framebox(190,30)
{ {
\texttt{OptimalFilter} \texttt{OptimalFilter}
} }
} }
\put(260,30){\vector(0,1){15}} \put(260,30){\vector(0,1){15}}
\put(260,30){\line(0,1){25}} \put(260,30){\line(0,1){25}}
\put(262,40){$\lambda$} \put(262,40){$\lambda$}
skipping to change at line 97 skipping to change at line 97
\put(152,30){$\gamma$} \put(152,30){$\gamma$}
\put(250,-60) \put(250,-60)
{ {
\framebox(70,30) \framebox(70,30)
{ {
\texttt{Overlap} \texttt{Overlap}
} }
} }
\put(125,-80){\line(0,1){135}} \put(125,-80){\line(0,1){135}}
\put(125,-80){\vector(0,1){100}} \put(125,-80){\vector(0,1){100}}
%\put(107,40){$({P^{\scriptstyle{\rm HW}}_{1,2}})^{-1}$} %\put(107,40){$({P^{\scriptstyle{\rm HC}}_{1,2}})^{-1}$}
\put(127,20){$\frac{1}{P^{\scriptstyle{\rm HW}}_{1,2}}$} \put(127,20){$\frac{1}{P^{\scriptstyle{\rm HC}}_{1,2}}$}
%\put(117,40){$\frac{\tilde{R}_{1,2}}{P_{1,2}}$} %\put(117,40){$\frac{\tilde{R}_{1,2}}{P^{\scriptstyle{\rm C}}_{1,2}}$}
\put(330,-80){\line(0,1){80}} \put(330,-80){\line(0,1){80}}
\put(330,-80){\vector(0,1){45}} \put(330,-80){\vector(0,1){45}}
% \put(142,40){${P_{1,2}}^{-1}$} % \put(142,40){${P^{\scriptstyle{\rm C}}_{1,2}}^{-1}$}
\put(332,-35){$\frac{1}{P_{1,2}}$} \put(332,-35){$\frac{1}{P^{\scriptstyle{\rm C}}_{1,2}}$}
%\put(142,40){$\frac{|\tilde{R}_{1,2}|^2}{P_{1,2}}$} %\put(142,40){$\frac{|\tilde{R}_{1,2}|^2}{P^{\scriptstyle{\rm C}}_{1,2}}$}
\put(115,-110) \put(115,-110)
{ {
\framebox(225,30) \framebox(225,30)
{ {
\texttt{InverseNoise} \texttt{InverseNoise}
} }
} }
\put(73,-108){$\tilde{R}_{1,2}$} \put(73,-108){$\tilde{R}_{1,2}$}
\put(93,-105){\vector(1,0){15}} \put(93,-105){\vector(1,0){15}}
\put(93,-105){\line(1,0){25}} \put(93,-105){\line(1,0){25}}
\put(73,-90){$P^{\scriptstyle{\rm W}}_{1,2}$} \put(73,-90){$P_{1,2}$}
\put(93,-87){\vector(1,0){15}} \put(93,-87){\vector(1,0){15}}
\put(93,-87){\line(1,0){25}} \put(93,-87){\line(1,0){25}}
\end{picture} \end{picture}
\end{center} \end{center}
\caption{\label{stochastic:f:CrossCorrFlowchart} Relationship among \caption{\label{stochastic:f:CrossCorrFlowchart} Relationship among
the modules dependent on \texttt{StochasticCrossCorrelation.h}, the modules dependent on \texttt{StochasticCrossCorrelation.h},
which are used to calculate the cross-correlation statistic $Y$ which are used to calculate the cross-correlation statistic $Y$
and its theoretical variance per unit time $\sigma^2/T$ from and its theoretical variance per unit time $\sigma^2/T$ from
(whitened) stretches of data $h^{\scriptstyle{\rm W}}_1(t)$, (uncalibrated) stretches of data $h_1(t)$,
$h^{\scriptstyle{\rm W}}_2(t)$, from two detectors, using metadata $h_2(t)$, from two detectors, using metadata
on the power spectral densities $P^{\scriptstyle{\rm W}}_1(f)$, on the power spectral densities $P_1(f)$,
$P^{\scriptstyle{\rm W}}_2(f)$ and transfer functions (whitening $P_2(f)$ and transfer functions $\tilde{R}_1(f)$,
filters) $\tilde{R}_1(f)$, $\tilde{R}_2(f)$ for each detector. $\tilde{R}_2(f)$ for each detector.
\texttt{CrossCorr} represents the module \texttt{CrossCorr} represents the module
\texttt{StochasticCrossCorrelation.c} \texttt{StochasticCrossCorrelation.c}
(Sec.~\ref{stochastic:ss:StochasticCrossCorrelation.c}) (Sec.~\ref{stochastic:ss:StochasticCrossCorrelation.c})
containing the functions containing the functions
\texttt{LALStochasticCrossCorrelationStatistic()}, \texttt{LALStochasticCrossCorrelationStatistic()},
\texttt{LALStochasticHeterodynedCrossCorrelationStatistic()}, \texttt{LALStochasticHeterodynedCrossCorrelationStatistic()},
and \texttt{LALStochasticCrossCorrelationSpectrum()}, and \texttt{LALStochasticCrossCorrelationSpectrum()},
\texttt{ZeroPadAndFFT} represents the module \texttt{ZeroPadAndFFT} represents the module
\texttt{ZeroPadAndFFT.c} (Sec.~\ref{stochastic:ss:ZeroPadAndFFT.c}) \texttt{ZeroPadAndFFT.c} (Sec.~\ref{stochastic:ss:ZeroPadAndFFT.c})
containing the functions containing the functions
skipping to change at line 195 skipping to change at line 195
#include <lal/LALStdlib.h> #include <lal/LALStdlib.h>
#include <lal/DetectorSite.h> #include <lal/DetectorSite.h>
#include <lal/Units.h> #include <lal/Units.h>
#include <lal/TimeFreqFFT.h> #include <lal/TimeFreqFFT.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
NRCSID( STOCHASTICCROSSCORRELATIONH, NRCSID( STOCHASTICCROSSCORRELATIONH,
"$Id: StochasticCrossCorrelation.h,v 1.22 2002/02/26 20:32:27 whela n Exp $" ); "$Id: StochasticCrossCorrelation.h,v 1.25 2002/06/10 05:46:24 whela n Exp $" );
/****************** <lalErrTable file="StochasticCrossCorrelationHE"> */ /****************** <lalErrTable file="StochasticCrossCorrelationHE"> */
#define STOCHASTICCROSSCORRELATIONH_ENULLPTR 1 #define STOCHASTICCROSSCORRELATIONH_ENULLPTR 1
#define STOCHASTICCROSSCORRELATIONH_ESAMEPTR 2 #define STOCHASTICCROSSCORRELATIONH_ESAMEPTR 2
#define STOCHASTICCROSSCORRELATIONH_EZEROLEN 3 #define STOCHASTICCROSSCORRELATIONH_EZEROLEN 3
#define STOCHASTICCROSSCORRELATIONH_ENONPOSDELTAF 4 #define STOCHASTICCROSSCORRELATIONH_ENONPOSDELTAF 4
#define STOCHASTICCROSSCORRELATIONH_ENONPOSDELTAT 5 #define STOCHASTICCROSSCORRELATIONH_ENONPOSDELTAT 5
#define STOCHASTICCROSSCORRELATIONH_ENEGFMIN 6 #define STOCHASTICCROSSCORRELATIONH_ENEGFMIN 6
#define STOCHASTICCROSSCORRELATIONH_EMMTIME 7 #define STOCHASTICCROSSCORRELATIONH_EMMTIME 7
#define STOCHASTICCROSSCORRELATIONH_EMMHETERO 8 #define STOCHASTICCROSSCORRELATIONH_EMMHETERO 8
#define STOCHASTICCROSSCORRELATIONH_EMMFMIN 9 #define STOCHASTICCROSSCORRELATIONH_EMMFMIN 9
#define STOCHASTICCROSSCORRELATIONH_EMMDELTAF 10 #define STOCHASTICCROSSCORRELATIONH_EMMDELTAF 10
#define STOCHASTICCROSSCORRELATIONH_EMMLEN 11 #define STOCHASTICCROSSCORRELATIONH_EMMLEN 11
#define STOCHASTICCROSSCORRELATIONH_EOORFREF 12 #define STOCHASTICCROSSCORRELATIONH_EOORFREF 12
#define STOCHASTICCROSSCORRELATIONH_ENONPOSOMEGA 13 #define STOCHASTICCROSSCORRELATIONH_ENONPOSOMEGA 13
#define STOCHASTICCROSSCORRELATIONH_ENONSYMDIJ 14 #define STOCHASTICCROSSCORRELATIONH_ENONSYMDIJ 14
#define STOCHASTICCROSSCORRELATIONH_ENONZEROHETERO 15 #define STOCHASTICCROSSCORRELATIONH_ENONZEROHETERO 15
#define STOCHASTICCROSSCORRELATIONH_EWRONGUNITS 16 #define STOCHASTICCROSSCORRELATIONH_EWRONGUNITS 16
#define STOCHASTICCROSSCORRELATIONH_ENONPOSWIN 17
#define STOCHASTICCROSSCORRELATIONH_EMEMORY 18
#define STOCHASTICCROSSCORRELATIONH_ENOTYETHETERO 255 #define STOCHASTICCROSSCORRELATIONH_ENOTYETHETERO 255
#define STOCHASTICCROSSCORRELATIONH_MSGENULLPTR "Null pointer" #define STOCHASTICCROSSCORRELATIONH_MSGENULLPTR "Null pointer"
#define STOCHASTICCROSSCORRELATIONH_MSGESAMEPTR "Input and Output pointe rs the same" #define STOCHASTICCROSSCORRELATIONH_MSGESAMEPTR "Input and Output pointe rs the same"
#define STOCHASTICCROSSCORRELATIONH_MSGEZEROLEN "Zero length for data me mber of series" #define STOCHASTICCROSSCORRELATIONH_MSGEZEROLEN "Zero length for data me mber of series"
#define STOCHASTICCROSSCORRELATIONH_MSGENONPOSDELTAF "Negative or zero freq uency spacing" #define STOCHASTICCROSSCORRELATIONH_MSGENONPOSDELTAF "Negative or zero freq uency spacing"
#define STOCHASTICCROSSCORRELATIONH_MSGENONPOSDELTAT "Negative or zero time spacing" #define STOCHASTICCROSSCORRELATIONH_MSGENONPOSDELTAT "Negative or zero time spacing"
#define STOCHASTICCROSSCORRELATIONH_MSGENEGFMIN "Negative start frequency" #define STOCHASTICCROSSCORRELATIONH_MSGENEGFMIN "Negative start frequency"
#define STOCHASTICCROSSCORRELATIONH_MSGEMMTIME "Mismatch in epochs" #define STOCHASTICCROSSCORRELATIONH_MSGEMMTIME "Mismatch in epochs"
#define STOCHASTICCROSSCORRELATIONH_MSGEMMHETERO "Mismatch in heterodynin g frequencies" #define STOCHASTICCROSSCORRELATIONH_MSGEMMHETERO "Mismatch in heterodynin g frequencies"
#define STOCHASTICCROSSCORRELATIONH_MSGEMMFMIN "Mismatch in start frequ encies" #define STOCHASTICCROSSCORRELATIONH_MSGEMMFMIN "Mismatch in start frequ encies"
#define STOCHASTICCROSSCORRELATIONH_MSGEMMDELTAF "Mismatch in frequency s pacings" #define STOCHASTICCROSSCORRELATIONH_MSGEMMDELTAF "Mismatch in frequency s pacings"
#define STOCHASTICCROSSCORRELATIONH_MSGEMMLEN "Mismatch in sequence le ngths" #define STOCHASTICCROSSCORRELATIONH_MSGEMMLEN "Mismatch in sequence le ngths"
#define STOCHASTICCROSSCORRELATIONH_MSGEOORFREF "Out of range reference frequency" #define STOCHASTICCROSSCORRELATIONH_MSGEOORFREF "Out of range reference frequency"
#define STOCHASTICCROSSCORRELATIONH_MSGENONPOSOMEGA "Negative stochastic ba ckground strength" #define STOCHASTICCROSSCORRELATIONH_MSGENONPOSOMEGA "Negative stochastic ba ckground strength"
#define STOCHASTICCROSSCORRELATIONH_MSGENONSYMDIJ "Non-symmetric response tensor" #define STOCHASTICCROSSCORRELATIONH_MSGENONSYMDIJ "Non-symmetric response tensor"
#define STOCHASTICCROSSCORRELATIONH_MSGENONZEROHETERO "Non-zero heterodynin g frequency specified for real time series" #define STOCHASTICCROSSCORRELATIONH_MSGENONZEROHETERO "Non-zero heterodynin g frequency specified for real time series"
#define STOCHASTICCROSSCORRELATIONH_MSGEWRONGUNITS "Inconsistent input unit s" #define STOCHASTICCROSSCORRELATIONH_MSGEWRONGUNITS "Inconsistent input unit s"
#define STOCHASTICCROSSCORRELATIONH_MSGENONPOSWIN "Zero or negative total
for window functions"
#define STOCHASTICCROSSCORRELATIONH_MSGEMEMORY "Memory error"
#define STOCHASTICCROSSCORRELATIONH_MSGENOTYETHETERO "Non-zero heterodyni ng frequency not yet implemented" #define STOCHASTICCROSSCORRELATIONH_MSGENOTYETHETERO "Non-zero heterodyni ng frequency not yet implemented"
/************************************ </lalErrTable> */ /************************************ </lalErrTable> */
/************************************************************* /*************************************************************
* * * *
* Structures and prototypes associated with * * Structures and prototypes associated with *
* StochasticCrossCorrelation.c * * StochasticCrossCorrelation.c *
* * * *
*************************************************************/ *************************************************************/
skipping to change at line 368 skipping to change at line 372
/********** </lalVerbatim> *********/ /********** </lalVerbatim> *********/
/************************************************************* /*************************************************************
* * * *
* Structures and prototypes associated with ZeroPadAndFFT.c * * Structures and prototypes associated with ZeroPadAndFFT.c *
* * * *
*************************************************************/ *************************************************************/
/********************************************************** <lalLaTeX> /********************************************************** <lalLaTeX>
\subsubsection*{\texttt{struct SZeroPadAndFFTParameters}}
\idx[Type]{SZeroPadAndFFTParameters}
\noindent
Contains the parameters of \texttt{LALSZeroPadAndFFT()}.
The fields are:
\begin{description}
\item[\texttt{RealFFTPlan *fftPlan}]
The FFT plan to be used by FFTW
\item[\texttt{REAL4Vector *window}]
The window which is to be applied to the data
\item[\texttt{UINT4 length}]
The length of the data after zero-padding
\end{description}
\subsubsection*{\texttt{struct CZeroPadAndFFTParameters}}
\idx[Type]{CZeroPadAndFFTParameters}
\noindent
Contains the parameters of \texttt{LALCZeroPadAndFFT()}.
The fields are:
\begin{description}
\item[\texttt{ComplexFFTPlan *fftPlan}]
The FFT plan to be used by FFTW
\item[\texttt{REAL4Vector *window}]
The window which is to be applied to the data
\item[\texttt{UINT4 length}]
The length of the data after zero-padding
\end{description}
*********************************************************** </lalLaTeX> */
typedef struct tagSZeroPadAndFFTParameters {
RealFFTPlan *fftPlan;
REAL4Vector *window;
UINT4 length;
} SZeroPadAndFFTParameters;
typedef struct tagCZeroPadAndFFTParameters {
ComplexFFTPlan *fftPlan;
REAL4Vector *window;
UINT4 length;
} CZeroPadAndFFTParameters;
/********************************************************** <lalLaTeX>
\subsubsection*{Prototypes associated with \subsubsection*{Prototypes associated with
\texttt{ZeroPadAndFFT.c} \texttt{ZeroPadAndFFT.c}
(Sec.~\ref{stochastic:ss:ZeroPadAndFFT.c})} (Sec.~\ref{stochastic:ss:ZeroPadAndFFT.c})}
\idx{LALSZeroPadAndFFT()} \idx{LALSZeroPadAndFFT()}
\idx{LALCZeroPadAndFFT()} \idx{LALCZeroPadAndFFT()}
\input{StochasticCrossCorrelationHPZP} \input{StochasticCrossCorrelationHPZP}
********** </lalLaTeX> *********/ ********** </lalLaTeX> *********/
/********** <lalVerbatim file="StochasticCrossCorrelationHPZP"> *********/ /********** <lalVerbatim file="StochasticCrossCorrelationHPZP"> *********/
void void
LALSZeroPadAndFFT(LALStatus *status, LALSZeroPadAndFFT(LALStatus *status,
COMPLEX8FrequencySeries *output, COMPLEX8FrequencySeries *output,
const REAL4TimeSeries *input, const REAL4TimeSeries *input,
RealFFTPlan *fftPlan); SZeroPadAndFFTParameters *parameters);
void void
LALCZeroPadAndFFT(LALStatus *status, LALCZeroPadAndFFT(LALStatus *status,
COMPLEX8FrequencySeries *output, COMPLEX8FrequencySeries *output,
const COMPLEX8TimeSeries *input, const COMPLEX8TimeSeries *input,
ComplexFFTPlan *fftPlan); CZeroPadAndFFTParameters *parameters);
/********** </lalVerbatim> *********/ /********** </lalVerbatim> *********/
/************************************************************* /*************************************************************
* * * *
* Structures and prototypes associated with * * Structures and prototypes associated with *
* StochasticOptimalFilter.c * * StochasticOptimalFilter.c *
* * * *
*************************************************************/ *************************************************************/
skipping to change at line 426 skipping to change at line 478
Contains the inputs of \texttt{LALStochasticOptimalFilter()}. Contains the inputs of \texttt{LALStochasticOptimalFilter()}.
The fields are: The fields are:
\begin{description} \begin{description}
\item[\texttt{REAL4FrequencySeries *overlapReductionFunction}] \item[\texttt{REAL4FrequencySeries *overlapReductionFunction}]
The overlap reduction function $\gamma(f)$ describing the pair of detector The overlap reduction function $\gamma(f)$ describing the pair of detector
sites. sites.
\item[\texttt{REAL4FrequencySeries *omegaGW}] The spectrum \item[\texttt{REAL4FrequencySeries *omegaGW}] The spectrum
$\Omega_{\scriptstyle{\rm GW}}(f)$ of the stochastic gravitational-wave $\Omega_{\scriptstyle{\rm GW}}(f)$ of the stochastic gravitational-wave
background. background.
\item[\texttt{COMPLEX8FrequencySeries *halfWhitenedInverseNoisePSD1}] \item[\texttt{COMPLEX8FrequencySeries *halfCalibratedInverseNoisePSD1}]
The reciprocal The reciprocal
$1/P_1^{\scriptstyle{\rm HW}}(f) $1/P_1^{\scriptstyle{\rm HC}}(f)
=1/(\tilde{R_1}(f)P_1(f)) =1/(\tilde{R_1}(f)P_1(f))
=\tilde{R_1}(f)^* / P_1^{\scriptstyle{\rm W}}(f)$ of the =\tilde{R_1}(f)^* / P_1(f)$ of the
half-whitened noise power spectral density for the first detector. half-calibrated noise power spectral density for the first detector.
\item[\texttt{COMPLEX8FrequencySeries *halfWhitenedInverseNoisePSD2}] \item[\texttt{COMPLEX8FrequencySeries *halfCalibratedInverseNoisePSD2}]
The reciprocal The reciprocal
$1/P_2^{\scriptstyle{\rm HW}}(f) $1/P_2^{\scriptstyle{\rm HC}}(f)
=1/(\tilde{R_2}(f)P_2(f)) =1/(\tilde{R_2}(f)P_2(f))
=\tilde{R_2}(f)^* / P_2^{\scriptstyle{\rm W}}(f)$ of the =\tilde{R_2}(f)^* / P_2(f)$ of the
half-whitened noise power spectral density for the second detector. half-calibrated noise power spectral density for the second detector.
\end{description} \end{description}
*********************************************************** </lalLaTeX> */ *********************************************************** </lalLaTeX> */
typedef struct tagStochasticOptimalFilterInput { typedef struct tagStochasticOptimalFilterInput {
REAL4FrequencySeries *overlapReductionFunction; REAL4FrequencySeries *overlapReductionFunction;
REAL4FrequencySeries *omegaGW; REAL4FrequencySeries *omegaGW;
COMPLEX8FrequencySeries *halfWhitenedInverseNoisePSD1; COMPLEX8FrequencySeries *halfCalibratedInverseNoisePSD1;
COMPLEX8FrequencySeries *halfWhitenedInverseNoisePSD2; COMPLEX8FrequencySeries *halfCalibratedInverseNoisePSD2;
} StochasticOptimalFilterInput; } StochasticOptimalFilterInput;
/********** <lalVerbatim file="StochasticCrossCorrelationHPOF"> *********/ /********** <lalVerbatim file="StochasticCrossCorrelationHPOF"> *********/
void void
LALStochasticOptimalFilter( LALStochasticOptimalFilter(
LALStatus *status, LALStatus *status,
COMPLEX8FrequencySeries *optimalFilter, COMPLEX8FrequencySeries *optimalFilter,
const StochasticOptimalFilterInput *input, const StochasticOptimalFilterInput *input,
const REAL4WithUnits *lambda); const REAL4WithUnits *lambda);
skipping to change at line 517 skipping to change at line 569
\begin{description} \begin{description}
\item[\texttt{REAL4FrequencySeries *overlapReductionFunction}] \item[\texttt{REAL4FrequencySeries *overlapReductionFunction}]
The overlap reduction function $\gamma(f)$ describing the pair of detector The overlap reduction function $\gamma(f)$ describing the pair of detector
sites. sites.
\item[\texttt{REAL4FrequencySeries *omegaGW}] The spectrum \item[\texttt{REAL4FrequencySeries *omegaGW}] The spectrum
$\Omega_{\scriptstyle{\rm GW}}(f)$ of the stochastic gravitational-wave $\Omega_{\scriptstyle{\rm GW}}(f)$ of the stochastic gravitational-wave
background. background.
\item[\texttt{REAL4FrequencySeries *inverseNoisePSD1}] \item[\texttt{REAL4FrequencySeries *inverseNoisePSD1}]
The reciprocal The reciprocal
$1/P_1(f)=|\tilde{R_1}(f)|^2/P_1^{\scriptstyle{\rm W}}(f)$ of the $1/P_1(f)=|\tilde{R_1}(f)|^2/P_1(f)$ of the
unwhitened noise power spectral density for the first detector. ununcalibrated noise power spectral density for the first detector.
\item[\texttt{REAL4FrequencySeries *inverseNoisePSD2}] \item[\texttt{REAL4FrequencySeries *inverseNoisePSD2}]
The reciprocal The reciprocal
$1/P_2(f)=|\tilde{R_2}(f)|^2/P_2^{\scriptstyle{\rm W}}(f)$ of the $1/P_2(f)=|\tilde{R_2}(f)|^2/P_2(f)$ of the
unwhitened noise power spectral density for the second detector. ununcalibrated noise power spectral density for the second detector.
\end{description} \end{description}
*********************************************************** </lalLaTeX> */ *********************************************************** </lalLaTeX> */
typedef struct tagStochasticOptimalFilterNormalizationInput { typedef struct tagStochasticOptimalFilterNormalizationInput {
REAL4FrequencySeries *overlapReductionFunction; REAL4FrequencySeries *overlapReductionFunction;
REAL4FrequencySeries *omegaGW; REAL4FrequencySeries *omegaGW;
REAL4FrequencySeries *inverseNoisePSD1; REAL4FrequencySeries *inverseNoisePSD1;
REAL4FrequencySeries *inverseNoisePSD2; REAL4FrequencySeries *inverseNoisePSD2;
} StochasticOptimalFilterNormalizationInput; } StochasticOptimalFilterNormalizationInput;
skipping to change at line 548 skipping to change at line 600
\noindent \noindent
Contains the parameters of \texttt{LALStochasticOptimalFilterNormalization( )}. Contains the parameters of \texttt{LALStochasticOptimalFilterNormalization( )}.
The fields are: The fields are:
\begin{description} \begin{description}
\item[\texttt{REAL8 fRef}] \item[\texttt{REAL8 fRef}]
The reference frequency used in defining the normalization. The reference frequency used in defining the normalization.
\item[\texttt{BOOLEAN heterodyned}] \item[\texttt{BOOLEAN heterodyned}]
Indicates whether the filter is to be used on heterodyned data or not. Indicates whether the filter is to be used on heterodyned data or not.
\item[\texttt{REAL4Vector window1}]
The windowing function with which the first data stream was windowed
\item[\texttt{REAL4Vector window2}]
The windowing function with which the second data stream was windowed
\end{description} \end{description}
*********************************************************** </lalLaTeX> */ *********************************************************** </lalLaTeX> */
typedef struct tagStochasticOptimalFilterNormalizationParameters { typedef struct tagStochasticOptimalFilterNormalizationParameters {
REAL8 fRef; REAL8 fRef;
BOOLEAN heterodyned; BOOLEAN heterodyned;
REAL4Vector *window1;
REAL4Vector *window2;
} StochasticOptimalFilterNormalizationParameters; } StochasticOptimalFilterNormalizationParameters;
/********** <lalVerbatim file="StochasticCrossCorrelationHPON"> *********/ /********** <lalVerbatim file="StochasticCrossCorrelationHPON"> *********/
void void
LALStochasticOptimalFilterNormalization( LALStochasticOptimalFilterNormalization(
LALStatus *status, LALStatus *status,
StochasticOptimalFilterNormalizationOutput *output, StochasticOptimalFilterNormalizationOutput *output,
const StochasticOptimalFilterNormalizationInput *input, const StochasticOptimalFilterNormalizationInput *input,
const StochasticOptimalFilterNormalizationParameters *parameter s); const StochasticOptimalFilterNormalizationParameters *parameter s);
skipping to change at line 593 skipping to change at line 651
\input{StochasticCrossCorrelationHPIN} \input{StochasticCrossCorrelationHPIN}
\subsubsection*{\texttt{struct StochasticInverseNoiseOutput}} \subsubsection*{\texttt{struct StochasticInverseNoiseOutput}}
\idx[Type]{StochasticInverseNoiseOutput} \idx[Type]{StochasticInverseNoiseOutput}
\noindent \noindent
Contains the outputs of \texttt{LALStochasticInverseNoise()}. Contains the outputs of \texttt{LALStochasticInverseNoise()}.
The fields are: The fields are:
\begin{description} \begin{description}
\item[\texttt{REAL4FrequencySeries *unWhitenedInverseNoisePSD}] \item[\texttt{REAL4FrequencySeries *calibratedInverseNoisePSD}]
The reciprocal The reciprocal
$1/P(f)=|\tilde{R}(f)|^2/P^{\scriptstyle{\rm W}}(f)$ of the $1/P^{\scriptstyle{\rm C}}(f)=|\tilde{R}(f)|^2/P(f)$ of the
unwhitened noise power spectral density. ununcalibrated noise power spectral density.
\item[\texttt{COMPLEX8FrequencySeries *halfWhitenedInverseNoisePSD}] \item[\texttt{COMPLEX8FrequencySeries *halfCalibratedInverseNoisePSD}]
The reciprocal \\ The reciprocal \\
$1/P^{\scriptstyle{\rm HW}}(f)=\tilde{R}(f)^* / P^{\scriptstyle{\rm W}}(f)$ $1/P^{\scriptstyle{\rm HC}}(f)=\tilde{R}(f)^* / P(f)$
of the half-whitened noise power spectral density. of the half-calibrated noise power spectral density.
\end{description} \end{description}
*********************************************************** </lalLaTeX> */ *********************************************************** </lalLaTeX> */
typedef struct tagStochasticInverseNoiseOutput { typedef struct tagStochasticInverseNoiseOutput {
REAL4FrequencySeries *unWhitenedInverseNoisePSD; REAL4FrequencySeries *calibratedInverseNoisePSD;
COMPLEX8FrequencySeries *halfWhitenedInverseNoisePSD; COMPLEX8FrequencySeries *halfCalibratedInverseNoisePSD;
} StochasticInverseNoiseOutput; } StochasticInverseNoiseOutput;
/********************************************************** <lalLaTeX> /********************************************************** <lalLaTeX>
\subsubsection*{\texttt{struct StochasticInverseNoiseInput}} \subsubsection*{\texttt{struct StochasticInverseNoiseInput}}
\idx[Type]{StochasticInverseNoiseInput} \idx[Type]{StochasticInverseNoiseInput}
\noindent \noindent
Contains the inputs to \texttt{LALStochasticInverseNoise()}. Contains the inputs to \texttt{LALStochasticInverseNoise()}.
The fields are: The fields are:
\begin{description} \begin{description}
\item[\texttt{REAL4FrequencySeries *whitenedNoisePSD}] \item[\texttt{REAL4FrequencySeries *unCalibratedNoisePSD}]
The power spectral density $P^{\scriptstyle{\rm W}}(f)$ of the noise The power spectral density $P(f)$ of the noise
contribution to the detector output. contribution to the detector output.
\item[\texttt{COMPLEX8FrequencySeries *whiteningFilter}] \item[\texttt{COMPLEX8FrequencySeries *responseFunction}]
The frequency-domain reponse function $\tilde{R}(f)$. The frequency-domain reponse function $\tilde{R}(f)$.
\end{description} \end{description}
*********************************************************** </lalLaTeX> */ *********************************************************** </lalLaTeX> */
typedef struct tagStochasticInverseNoiseInput { typedef struct tagStochasticInverseNoiseInput {
REAL4FrequencySeries *whitenedNoisePSD ; REAL4FrequencySeries *unCalibratedNoisePSD ;
COMPLEX8FrequencySeries *whiteningFilter; COMPLEX8FrequencySeries *responseFunction;
} StochasticInverseNoiseInput; } StochasticInverseNoiseInput;
/********** <lalVerbatim file="StochasticCrossCorrelationHPIN"> *********/ /********** <lalVerbatim file="StochasticCrossCorrelationHPIN"> *********/
void void
LALStochasticInverseNoise( LALStochasticInverseNoise(
LALStatus *status, LALStatus *status,
StochasticInverseNoiseOutput *output, StochasticInverseNoiseOutput *output,
const StochasticInverseNoiseInput *input); const StochasticInverseNoiseInput *input);
 End of changes. 32 change blocks. 
47 lines changed or deleted 106 lines changed or added


 StreamInput.h   StreamInput.h 
/********************************** <lalVerbatim file="StreamInputHV"> /********************************** <lalVerbatim file="StreamInputHV">
Author: Creighton, T. D. Author: Creighton, T. D.
$Id: StreamInput.h,v 1.1 2001/08/24 22:47:59 teviet Exp $ $Id: StreamInput.h,v 1.4 2002/06/05 00:20:31 teviet Exp $
**************************************************** </lalVerbatim> */ **************************************************** </lalVerbatim> */
/********************************************************** <lalLaTeX> /********************************************************** <lalLaTeX>
\section{Header \texttt{StreamInput.h}} \section{Header \texttt{StreamInput.h}}
\label{s:StreamInput.h} \label{s:StreamInput.h}
Provides routines to read data from an open stream and store it in LAL Provides routines to read data from an open stream and store it in LAL
data structures. data structures.
skipping to change at line 27 skipping to change at line 27
\end{verbatim} \end{verbatim}
\noindent This header provides prototypes for routines that construct \noindent This header provides prototypes for routines that construct
LAL data structures using the data from a file (or other I/O) stream. LAL data structures using the data from a file (or other I/O) stream.
The routines do not provide a system-level interface to create files The routines do not provide a system-level interface to create files
and open or close file streams; they simply assume that they have been and open or close file streams; they simply assume that they have been
passed an open, readable stream. Nonetheless, because they involve passed an open, readable stream. Nonetheless, because they involve
I/O stream manipulation, these routines are placed in the I/O stream manipulation, these routines are placed in the
\verb@lalsupport@ library rather than in \verb@lal@ proper. \verb@lalsupport@ library rather than in \verb@lal@ proper.
These routines are compartmentalized in such a way that they can The routines in \verb@StreamVectorInput.c@ and
easily be converted if the LAL specification later changes the way in \verb@StreamVectorSequenceInput.c@ are compartmentalized in such a way
which I/O streams are handled. In partucular, the only file I/O that they can easily be converted if the LAL specification later
commands used are \verb@fgets()@ and \verb@feof()@. Thus the upgrade changes the way in which I/O streams are handled. In partucular, the
would involve only the following global changes: only file I/O commands used are \verb@fgets()@ and \verb@feof()@.
Thus the upgrade would involve only the following global changes:
\begin{enumerate} \begin{enumerate}
\item Replace all occurrences of \verb@FILE *@ with the name of the \item Replace all occurrences of \verb@FILE *@ with the name of the
LAL I/O stream pointer type. LAL I/O stream pointer type.
\item Replace all occurrences of \verb@fgets()@ and \verb@feof()@ with \item Replace all occurrences of \verb@fgets()@ and \verb@feof()@ with
equivalent LAL functions. equivalent LAL functions.
\end{enumerate} \end{enumerate}
In particular, there is no need to translate routines such as In particular, there is no need to translate routines such as
\verb@fscanf()@; one should simply read data into a LAL \verb@fscanf()@; one should simply read data into a LAL
\verb@CHARVector@ and then use \verb@sscanf()@ to format the input. \verb@CHARVector@ and then use \verb@sscanf()@ to format the input.
This is the philosophy adopted in the following modules. This is the approach used in the numerical input routines in
\verb@StreamVectorInput.c@ and \verb@StreamVectorSequenceInput.c@.
The routines in \verb@StreamSequenceInput.c@ are less robust but much
more efficient: they use \verb@fscanf()@ to parse the input stream
directly. They are intended primarily for test programs that may need
to read large datafiles of undetermined length.
******************************************************* </lalLaTeX> */ ******************************************************* </lalLaTeX> */
#ifndef _STREAMINPUT_H #ifndef _STREAMINPUT_H
#define _STREAMINPUT_H #define _STREAMINPUT_H
#include <lal/LALStdlib.h> #include <lal/LALStdlib.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
NRCSID(STREAMINPUTH,"$Id: StreamInput.h,v 1.1 2001/08/24 22:47:59 teviet Ex p $"); NRCSID(STREAMINPUTH,"$Id: StreamInput.h,v 1.4 2002/06/05 00:20:31 teviet Ex p $");
/********************************************************** <lalLaTeX> /********************************************************** <lalLaTeX>
\subsection*{Error conditions} \subsection*{Error conditions}
****************************************** </lalLaTeX><lalErrTable> */ ****************************************** </lalLaTeX><lalErrTable> */
#define STREAMINPUTH_ENUL 1 #define STREAMINPUTH_ENUL 1
#define STREAMINPUTH_EOUT 2 #define STREAMINPUTH_EOUT 2
#define STREAMINPUTH_EMEM 3 #define STREAMINPUTH_EMEM 3
#define STREAMINPUTH_ELEN 4 #define STREAMINPUTH_ELEN 4
#define STREAMINPUTH_ESLEN 5
#define STREAMINPUTH_MSGENUL "Unexpected null pointer in arguments" #define STREAMINPUTH_EVLEN 6
#define STREAMINPUTH_MSGEOUT "Output handle points to a non-null pointer" #define STREAMINPUTH_EDLEN 7
#define STREAMINPUTH_MSGEMEM "Memory allocation error" #define STREAMINPUTH_EDIM 8
#define STREAMINPUTH_MSGELEN "No numbers were read" #define STREAMINPUTH_EFMT 9
#define STREAMINPUTH_EBUF 10
#define STREAMINPUTH_MSGENUL "Unexpected null pointer in arguments"
#define STREAMINPUTH_MSGEOUT "Output handle points to a non-null pointer"
#define STREAMINPUTH_MSGEMEM "Memory allocation error"
#define STREAMINPUTH_MSGELEN "No numbers were read"
#define STREAMINPUTH_MSGESLEN "Not enough numbers read to fill sequence"
#define STREAMINPUTH_MSGEVLEN "Could not determine complex vectorLength"
#define STREAMINPUTH_MSGEDLEN "No dimLength given"
#define STREAMINPUTH_MSGEDIM "Inconsistent or non-positive arrayDim value"
#define STREAMINPUTH_MSGEFMT "Badly formatted number"
#define STREAMINPUTH_MSGEBUF "BUFFSIZE not a multiple of largest complex t
ype size"
/******************************************** </lalErrTable><lalLaTeX> /******************************************** </lalErrTable><lalLaTeX>
\subsection*{Types} \subsection*{Types}
******************************************************* </lalLaTeX> */ ******************************************************* </lalLaTeX> */
/* <lalLaTeX> /* <lalLaTeX>
\vfill{\footnotesize\input{StreamInputHV}} \vfill{\footnotesize\input{StreamInputHV}}
</lalLaTeX> */ </lalLaTeX> */
/* Function prototypes. */ /* Function prototypes. */
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{StreamVectorInputC} \newpage\input{StreamVectorInputC}
</lalLaTeX> */ </lalLaTeX> */
void void
LALCHARReadVector( LALStatus *stat, CHARVector **vector, FILE *stream ); LALCHARReadVector( LALStatus *stat, CHARVector **vector, FILE *stream );
void void
LALI2ReadVector( LALStatus *stat, INT2Vector **vector, FILE *stream ); LALI2ReadVector( LALStatus *stat, INT2Vector **vector, FILE *stream, BOOLE
AN strict );
void
LALI4ReadVector( LALStatus *stat, INT4Vector **vector, FILE *stream, BOOLE
AN strict );
void
LALI8ReadVector( LALStatus *stat, INT8Vector **vector, FILE *stream, BOOLE
AN strict );
void
LALU2ReadVector( LALStatus *stat, UINT2Vector **vector, FILE *stream, BOOL
EAN strict );
void
LALU4ReadVector( LALStatus *stat, UINT4Vector **vector, FILE *stream, BOOL
EAN strict );
void void
LALI4ReadVector( LALStatus *stat, INT4Vector **vector, FILE *stream ); LALU8ReadVector( LALStatus *stat, UINT8Vector **vector, FILE *stream, BOOL
EAN strict );
void
LALSReadVector( LALStatus *stat, REAL4Vector **vector, FILE *stream, BOOLE
AN strict );
void
LALDReadVector( LALStatus *stat, REAL8Vector **vector, FILE *stream, BOOLE
AN strict );
/* <lalLaTeX>
\newpage\input{StreamVectorSequenceInputC}
</lalLaTeX> */
void
LALCHARReadVectorSequence( LALStatus *stat, CHARVectorSequence **sequence,
FILE *stream );
void void
LALI8ReadVector( LALStatus *stat, INT8Vector **vector, FILE *stream ); LALI2ReadVectorSequence( LALStatus *stat, INT2VectorSequence **sequence, F ILE *stream );
void void
LALU2ReadVector( LALStatus *stat, UINT2Vector **vector, FILE *stream ); LALI4ReadVectorSequence( LALStatus *stat, INT4VectorSequence **sequence, F ILE *stream );
void void
LALU4ReadVector( LALStatus *stat, UINT4Vector **vector, FILE *stream ); LALI8ReadVectorSequence( LALStatus *stat, INT8VectorSequence **sequence, F ILE *stream );
void void
LALU8ReadVector( LALStatus *stat, UINT8Vector **vector, FILE *stream ); LALU2ReadVectorSequence( LALStatus *stat, UINT2VectorSequence **sequence, FILE *stream );
void void
LALI2ReadVector( LALStatus *stat, INT2Vector **vector, FILE *stream ); LALU4ReadVectorSequence( LALStatus *stat, UINT4VectorSequence **sequence, FILE *stream );
void void
LALI4ReadVector( LALStatus *stat, INT4Vector **vector, FILE *stream ); LALU8ReadVectorSequence( LALStatus *stat, UINT8VectorSequence **sequence, FILE *stream );
void void
LALSReadVector( LALStatus *stat, REAL4Vector **vector, FILE *stream ); LALSReadVectorSequence( LALStatus *stat, REAL4VectorSequence **sequence, F ILE *stream );
void void
LALDReadVector( LALStatus *stat, REAL8Vector **vector, FILE *stream ); LALDReadVectorSequence( LALStatus *stat, REAL8VectorSequence **sequence, F ILE *stream );
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{StreamVectorSequenceInputC} \newpage\input{StreamSequenceInputC}
</lalLaTeX> */ </lalLaTeX> */
void void
LALCHARReadVectorSequence( LALStatus *stat, LALCHARReadSequence( LALStatus *stat, CHARSequence **sequence, FILE *stream
CHARVectorSequence **sequence, );
FILE *stream );
void
LALI2ReadSequence( LALStatus *stat, INT2Sequence **sequence, FILE *stream )
;
void
LALI4ReadSequence( LALStatus *stat, INT4Sequence **sequence, FILE *stream )
;
void void
LALI2ReadVectorSequence( LALStatus *stat, LALI8ReadSequence( LALStatus *stat, INT8Sequence **sequence, FILE *stream )
INT2VectorSequence **sequence, ;
FILE *stream );
void void
LALI4ReadVectorSequence( LALStatus *stat, LALU2ReadSequence( LALStatus *stat, UINT2Sequence **sequence, FILE *stream
INT4VectorSequence **sequence, );
FILE *stream );
void void
LALI8ReadVectorSequence( LALStatus *stat, LALU4ReadSequence( LALStatus *stat, UINT4Sequence **sequence, FILE *stream
INT8VectorSequence **sequence, );
FILE *stream );
void void
LALU2ReadVectorSequence( LALStatus *stat, LALU8ReadSequence( LALStatus *stat, UINT8Sequence **sequence, FILE *stream
UINT2VectorSequence **sequence, );
FILE *stream );
void void
LALU4ReadVectorSequence( LALStatus *stat, LALSReadSequence( LALStatus *stat, REAL4Sequence **sequence, FILE *stream )
UINT4VectorSequence **sequence, ;
FILE *stream );
void void
LALU8ReadVectorSequence( LALStatus *stat, LALDReadSequence( LALStatus *stat, REAL8Sequence **sequence, FILE *stream )
UINT8VectorSequence **sequence, ;
FILE *stream );
void void
LALSReadVectorSequence( LALStatus *stat, LALCReadSequence( LALStatus *stat, COMPLEX8Sequence **sequence, FILE *strea
REAL4VectorSequence **sequence, m );
FILE *stream );
void void
LALDReadVectorSequence( LALStatus *stat, LALZReadSequence( LALStatus *stat, COMPLEX16Sequence **sequence, FILE *stre
REAL8VectorSequence **sequence, am );
FILE *stream );
/* <lalLaTeX>
\newpage\input{StreamSeriesInputC}
</lalLaTeX> */
void
LALI2ReadTSeries( LALStatus *stat, INT2TimeSeries *series, FILE *stream );
void
LALI4ReadTSeries( LALStatus *stat, INT4TimeSeries *series, FILE *stream );
void
LALI8ReadTSeries( LALStatus *stat, INT8TimeSeries *series, FILE *stream );
void
LALU2ReadTSeries( LALStatus *stat, UINT2TimeSeries *series, FILE *stream );
void
LALU4ReadTSeries( LALStatus *stat, UINT4TimeSeries *series, FILE *stream );
void
LALU8ReadTSeries( LALStatus *stat, UINT8TimeSeries *series, FILE *stream );
void
LALSReadTSeries( LALStatus *stat, REAL4TimeSeries *series, FILE *stream );
void
LALDReadTSeries( LALStatus *stat, REAL8TimeSeries *series, FILE *stream );
void
LALCReadTSeries( LALStatus *stat, COMPLEX8TimeSeries *series, FILE *stream
);
void
LALZReadTSeries( LALStatus *stat, COMPLEX16TimeSeries *series, FILE *stream
);
void
LALI2ReadTVectorSeries( LALStatus *stat, INT2TimeVectorSeries *series, FILE
*stream );
void
LALI4ReadTVectorSeries( LALStatus *stat, INT4TimeVectorSeries *series, FILE
*stream );
void
LALI8ReadTVectorSeries( LALStatus *stat, INT8TimeVectorSeries *series, FILE
*stream );
void
LALU2ReadTVectorSeries( LALStatus *stat, UINT2TimeVectorSeries *series, FIL
E *stream );
void
LALU4ReadTVectorSeries( LALStatus *stat, UINT4TimeVectorSeries *series, FIL
E *stream );
void
LALU8ReadTVectorSeries( LALStatus *stat, UINT8TimeVectorSeries *series, FIL
E *stream );
void
LALSReadTVectorSeries( LALStatus *stat, REAL4TimeVectorSeries *series, FILE
*stream );
void
LALDReadTVectorSeries( LALStatus *stat, REAL8TimeVectorSeries *series, FILE
*stream );
void
LALCReadTVectorSeries( LALStatus *stat, COMPLEX8TimeVectorSeries *series, F
ILE *stream );
void
LALZReadTVectorSeries( LALStatus *stat, COMPLEX16TimeVectorSeries *series,
FILE *stream );
void
LALI2ReadTArraySeries( LALStatus *stat, INT2TimeArraySeries *series, FILE *
stream );
void
LALI4ReadTArraySeries( LALStatus *stat, INT4TimeArraySeries *series, FILE *
stream );
void
LALI8ReadTArraySeries( LALStatus *stat, INT8TimeArraySeries *series, FILE *
stream );
void
LALU2ReadTArraySeries( LALStatus *stat, UINT2TimeArraySeries *series, FILE
*stream );
void
LALU4ReadTArraySeries( LALStatus *stat, UINT4TimeArraySeries *series, FILE
*stream );
void
LALU8ReadTArraySeries( LALStatus *stat, UINT8TimeArraySeries *series, FILE
*stream );
void
LALSReadTArraySeries( LALStatus *stat, REAL4TimeArraySeries *series, FILE *
stream );
void
LALDReadTArraySeries( LALStatus *stat, REAL8TimeArraySeries *series, FILE *
stream );
void
LALCReadTArraySeries( LALStatus *stat, COMPLEX8TimeArraySeries *series, FIL
E *stream );
void
LALZReadTArraySeries( LALStatus *stat, COMPLEX16TimeArraySeries *series, FI
LE *stream );
void
LALI2ReadFSeries( LALStatus *stat, INT2FrequencySeries *series, FILE *strea
m );
void
LALI4ReadFSeries( LALStatus *stat, INT4FrequencySeries *series, FILE *strea
m );
void
LALI8ReadFSeries( LALStatus *stat, INT8FrequencySeries *series, FILE *strea
m );
void
LALU2ReadFSeries( LALStatus *stat, UINT2FrequencySeries *series, FILE *stre
am );
void
LALU4ReadFSeries( LALStatus *stat, UINT4FrequencySeries *series, FILE *stre
am );
void
LALU8ReadFSeries( LALStatus *stat, UINT8FrequencySeries *series, FILE *stre
am );
void
LALSReadFSeries( LALStatus *stat, REAL4FrequencySeries *series, FILE *strea
m );
void
LALDReadFSeries( LALStatus *stat, REAL8FrequencySeries *series, FILE *strea
m );
void
LALCReadFSeries( LALStatus *stat, COMPLEX8FrequencySeries *series, FILE *st
ream );
void
LALZReadFSeries( LALStatus *stat, COMPLEX16FrequencySeries *series, FILE *s
tream );
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{StreamInputTestC} \newpage\input{StreamInputTestC}
\newpage\input{StreamSeriesInputTestC}
</lalLaTeX> */ </lalLaTeX> */
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* _STREAMINPUT_H */ #endif /* _STREAMINPUT_H */
 End of changes. 26 change blocks. 
55 lines changed or deleted 227 lines changed or added


 TwoDMesh.h   TwoDMesh.h 
/************************************* <lalVerbatim file="TwoDMeshHV"> /************************************* <lalVerbatim file="TwoDMeshHV">
Author: Creighton, T. D. Author: Creighton, T. D.
$Id: TwoDMesh.h,v 1.3 2001/08/21 04:19:51 jolien Exp $ $Id: TwoDMesh.h,v 1.4 2002/05/06 22:01:10 teviet Exp $
**************************************************** </lalVerbatim> */ **************************************************** </lalVerbatim> */
/********************************************************** <lalLaTeX> /********************************************************** <lalLaTeX>
\providecommand{\lessim}{\stackrel{<}{\scriptstyle\sim}} \providecommand{\lessim}{\stackrel{<}{\scriptstyle\sim}}
\section{Header \texttt{TwoDMesh.h}} \section{Header \texttt{TwoDMesh.h}}
\label{s:TwoDMesh.h} \label{s:TwoDMesh.h}
Provides routines to place search meshes for two-dimensional parameter Provides routines to place search meshes for two-dimensional parameter
skipping to change at line 63 skipping to change at line 63
the other, as shown in Fig.~\ref{fig:tiling}(b). As the metric the other, as shown in Fig.~\ref{fig:tiling}(b). As the metric
changes over space, the vertical height and tilt of the tiles in a changes over space, the vertical height and tilt of the tiles in a
column may change, so long as their width remains fixed; we note that column may change, so long as their width remains fixed; we note that
if the tilt changes, the tiles will overlap slightly to ensure if the tilt changes, the tiles will overlap slightly to ensure
complete coverage. Finally, the boundary of the parameter space may complete coverage. Finally, the boundary of the parameter space may
extend outside the ``corners'' of the column, crossing the end of a extend outside the ``corners'' of the column, crossing the end of a
tile between its centre and its edge, as shown in tile between its centre and its edge, as shown in
Fig.~\ref{fig:tiling}(c). These triangular corners can be covered Fig.~\ref{fig:tiling}(c). These triangular corners can be covered
with one or more extra overlapping tiles of reduced width. with one or more extra overlapping tiles of reduced width.
In a parameter space with constant metric, the tile area is maximized
(and the number of covering tiles minimized) when the column width is
$\sqrt{2}$ times smaller than the projected horizontal width of the
ellipses. When the ellipses vary, it is generally best to determine
the column width from the \emph{narrowest} ellipse in a column, to
avoid singular effects when tile widths approach the ellipse widths
and become infinitesimally high.
For the column-placement algorithm to work effectively, we require For the column-placement algorithm to work effectively, we require
that the parameter space be representable as a range that the parameter space be representable as a range
$y\in[y_1(x),y_2(x)]$ between two single-valued functions defined on a $y\in[y_1(x),y_2(x)]$ between two single-valued functions defined on a
domain $x\in[x_\mathrm{min},x_\mathrm{max}]$. If a desired search domain $x\in[x_\mathrm{min},x_\mathrm{max}]$. If a desired search
region is too complicated to express this way (e.g.\ it has region is too complicated to express this way (e.g.\ it has
disconnected regions, or ``branches'' where a vertical line intersects disconnected regions, or ``branches'' where a vertical line intersects
the boundary more than twice), then one should divide the region up the boundary more than twice), then one should divide the region up
into subregions with well-behaved boundary functions and tile these into subregions with well-behaved boundary functions and tile these
subregions separately. subregions separately.
skipping to change at line 90 skipping to change at line 98
#ifndef _TWODMESH_H #ifndef _TWODMESH_H
#define _TWODMESH_H #define _TWODMESH_H
#include <lal/LALStdlib.h> #include <lal/LALStdlib.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#pragma } #pragma }
#endif #endif
NRCSID(TWODMESHH,"$Id: TwoDMesh.h,v 1.3 2001/08/21 04:19:51 jolien Exp $"); NRCSID(TWODMESHH,"$Id: TwoDMesh.h,v 1.4 2002/05/06 22:01:10 teviet Exp $");
/********************************************************** <lalLaTeX> /********************************************************** <lalLaTeX>
\subsection*{Error conditions} \subsection*{Error conditions}
****************************************** </lalLaTeX><lalErrTable> */ ****************************************** </lalLaTeX><lalErrTable> */
#define TWODMESHH_ENUL 1 #define TWODMESHH_ENUL 1
#define TWODMESHH_EOUT 2 #define TWODMESHH_EOUT 2
#define TWODMESHH_EMEM 3 #define TWODMESHH_EMEM 3
#define TWODMESHH_EMETRIC 4 #define TWODMESHH_EMETRIC 4
#define TWODMESHH_EWIDTH 5 #define TWODMESHH_EWIDTH 5
skipping to change at line 186 skipping to change at line 194
argument. The fourth argument can be used to pass function-specific argument. The fourth argument can be used to pass function-specific
parameters. parameters.
\item[\texttt{void *metricParams}] The parameters to be passed as the \item[\texttt{void *metricParams}] The parameters to be passed as the
fourth argument of \verb@*getMetric()@, above. fourth argument of \verb@*getMetric()@, above.
\item[\texttt{REAL4 mThresh}] The maximum mismatch $m_\mathrm{thresh}$ \item[\texttt{REAL4 mThresh}] The maximum mismatch $m_\mathrm{thresh}$
desired between any point in the region and the nearest mesh point; desired between any point in the region and the nearest mesh point;
note that the maximum mismatch is equal to 1 minus the minimum match. note that the maximum mismatch is equal to 1 minus the minimum match.
\item[\texttt{REAL4 widthMaxFac}] The minimum factor by which the \item[\texttt{REAL4 widthMaxFac}] The minimum ratio of mismatch
projected width of the local mismatch ellipse must exceed the column ellipse width (projected onto the horizontal axis) to column width
width, before the mesh placement routine will try a narrower column. that must be maintained throughout the column: if an ellipse falls
If set to $\leq1$, the default value below this ratio due to shrinkage or rotation, as in Fig 29.1.b, the
\verb@TWODMESHINTERNALC_WMAXFAC@=1.2 will be used. code will try a narrower column. If set to $\leq1$, the default value
\verb@TWODMESHINTERNALC_WMAXFAC@=$\sqrt[4]{2}$ will be used.
\item[\texttt{REAL4 widthRetryFac}] If the column is determined to be \item[\texttt{REAL4 widthRetryFac}] If the column is determined to be
too wide (e.g.\ due to the value of \verb@widthMaxFac@, above), the too wide (e.g.\ due to the value of \verb@widthMaxFac@, above), the
column width will be reduced by the factor \verb@widthRetryFac@. If column width will be reduced by the factor \verb@widthRetryFac@. If
set to $\leq1$, the default value \verb@TWODMESHINTERNALC_WRETRYFAC@=2 set to $\leq1$, the default value
will be used. \verb@TWODMESHINTERNALC_WRETRYFAC@=$\sqrt{2}$ will be used.
\item[\texttt{UINT4 maxColumns}] The maximum number of columns the \item[\texttt{UINT4 maxColumns}] The maximum number of columns the
mesh placement routine will try before giving up. If zero, this mesh placement routine will try before giving up. If zero, this
number is ignored. number is ignored.
\item[\texttt{UINT4 nIn}] The maximum number of mesh points allowed, \item[\texttt{UINT4 nIn}] The maximum number of mesh points allowed,
after which the placement routine will quit. If zero, this number is after which the placement routine will quit. If zero, this number is
ignored. ignored.
\item[\texttt{UINT4 nOut}] The number of mesh points added by the \item[\texttt{UINT4 nOut}] The number of mesh points added by the
 End of changes. 5 change blocks. 
9 lines changed or deleted 18 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/