AVFactories.h   AVFactories.h 
/*----------------------------------------------------------------------- /*-----------------------------------------------------------------------
File Name: AVFactories.h File Name: AVFactories.h
<lalVerbatim file="AVFactoriesHV"> <lalVerbatim file="AVFactoriesHV">
Revision: $Id: AVFactories.h,v 1.6 2000/07/23 01:13:06 jolien Exp $ Revision: $Id: AVFactories.h,v 1.7 2000/11/09 23:37:19 jolien Exp $
</lalVerbatim> </lalVerbatim>
-------------------------------------------------------------------------*/ -------------------------------------------------------------------------*/
/* <lalLaTeX> /* <lalLaTeX>
\section{Header \texttt{AVFactories.h}} \section{Header \texttt{AVFactories.h}}
\label{s:AVFactories.h} \label{s:AVFactories.h}
Provides prototype and status code information for use of CreateVector, Provides prototype and status code information for use of CreateVector,
CreateArray, LALDestroyVector and DestroyArray CreateArray, LALDestroyVector and DestroyArray
\subsection*{Synopsis} \subsection*{Synopsis}
\begin{verbatim} \begin{verbatim}
#include "AVFactories.h" #include <lal/AVFactories.h>
\end{verbatim} \end{verbatim}
</lalLaTeX> */ </lalLaTeX> */
#ifndef _AVFACTORIES_H #ifndef _AVFACTORIES_H
#define _AVFACTORIES_H #define _AVFACTORIES_H
#include "LALDatatypes.h" #include <lal/LALDatatypes.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
NRCSID (AVFACTORIESH, "$Id: AVFactories.h,v 1.6 2000/07/23 01:13:06 jolien Exp $"); NRCSID (AVFACTORIESH, "$Id: AVFactories.h,v 1.7 2000/11/09 23:37:19 jolien Exp $");
/* <lalLaTeX> /* <lalLaTeX>
\subsection*{Error conditions} \subsection*{Error conditions}
\input{AVFactoriesHErrTab} \input{AVFactoriesHErrTab}
</lalLaTeX> */ </lalLaTeX> */
/* /*
<lalErrTable file="AVFactoriesHErrTab"> <lalErrTable file="AVFactoriesHErrTab">
 End of changes. 4 change blocks. 
4 lines changed or deleted 4 lines changed or added


 BandPassTimeSeries.h   BandPassTimeSeries.h 
/*************************** <lalVerbatim file="BandPassTimeSeriesHV"> /*************************** <lalVerbatim file="BandPassTimeSeriesHV">
Author: Creighton, T. D. Author: Creighton, T. D.
$Id: BandPassTimeSeries.h,v 1.4 2000/07/23 01:15:14 jolien Exp $ $Id: BandPassTimeSeries.h,v 1.8 2001/08/21 04:19:53 jolien Exp $
**************************** </lalVerbatim> */ **************************************************** </lalVerbatim> */
/* <lalLaTeX> /********************************************************** <lalLaTeX>
\section{Header \texttt{BandPassTimeSeries.h}} \section{Header \texttt{BandPassTimeSeries.h}}
\label{s:BandPassTimeSeries.h} \label{s:BandPassTimeSeries.h}
Provides routines to low- or high-pass filter a time series. Provides routines to low- or high-pass filter a time series.
\subsection*{Synopsis} \subsection*{Synopsis}
\begin{verbatim} \begin{verbatim}
#include "BandPassTimeSeries.h" #include <lal/BandPassTimeSeries.h>
\end{verbatim} \end{verbatim}
\noindent This header covers routines that apply a time-domain low- or \noindent This header covers routines that apply a time-domain low- or
high-pass filter to a data series of type \verb@<datatype>TimeSeries@. high-pass filter to a data series of type \verb@<datatype>TimeSeries@.
Further documentation is given in the individual routines' modules. Further documentation is given in the individual routines' modules.
</lalLaTeX> */ ******************************************************* </lalLaTeX> */
#ifndef _BANDPASSTIMESERIES_H #ifndef _BANDPASSTIMESERIES_H
#define _BANDPASSTIMESERIES_H #define _BANDPASSTIMESERIES_H
#include "LALStdlib.h" #include <lal/LALStdlib.h>
#include "IIRFilter.h" #include <lal/IIRFilter.h>
#include "ZPGFilter.h" #include <lal/ZPGFilter.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#pragma }
#endif #endif
NRCSID(BANDPASSTIMESERIESH,"$Id: BandPassTimeSeries.h,v 1.4 2000/07/23 01:1 NRCSID(BANDPASSTIMESERIESH,"$Id: BandPassTimeSeries.h,v 1.8 2001/08/21 04:1
5:14 jolien Exp $"); 9:53 jolien Exp $");
/* <lalLaTeX>
/********************************************************** <lalLaTeX>
\subsection*{Error conditions} \subsection*{Error conditions}
\begin{tabular}{|c|l|l|} ****************************************** </lalLaTeX><lalErrTable> */
\hline #define BANDPASSTIMESERIESH_ENUL 1
status & status & Explanation #define BANDPASSTIMESERIESH_EBAD 2
\\
code & description & #define BANDPASSTIMESERIESH_MSGENUL "Unexpected null pointer in arguments"
\\ #define BANDPASSTIMESERIESH_MSGEBAD "Bad filter parameters"
\hline /******************************************** </lalErrTable><lalLaTeX>
\tt 1 & \tt Null pointer & Missing a required pointer.
\\ \subsection*{Types}
\tt 2 & \tt Bad filter parameters & Filter creation parameters outside of
\\ \subsubsection*{Structure \texttt{PassBandParamStruc}}
& & acceptable ranges. \idx[Type]{PassBandParamStruc}
\\
\hline This structure stores data used for constructing a low- or high-pass
\end{tabular} filter: either the order and characteristic frequency of the filter,
or the frequencies and desired attenuations at the ends of some
</lalLaTeX> */ transition band. In the latter case, a nonzero filter order parameter
\verb@n@ indicates a maximum allowed order. The fields are:
#define BANDPASSTIMESERIES_ENUL 1
#define BANDPASSTIMESERIES_EBAD 2
#define BANDPASSTIMESERIES_MSGENUL "Null pointer"
#define BANDPASSTIMESERIES_MSGEBAD "Bad filter parameters"
/* <lalLaTeX>
\subsection*{Structures}
\begin{verbatim}
struct PassBandParamStruc
\end{verbatim}
\index{\verb&PassBandParamStruc&}
\noindent This structure stores data used for constructing a low- or
high-pass filter: either the order and characteristic frequency of the
filter, or the frequencies and desired attenuations at the ends of
some transition band. In the latter case, a nonzero filter order
parameter n indicates a maximum allowed order. The fields are:
\begin{description} \begin{description}
\item[\texttt{CHAR *name}] A user-assigned name. \item[\texttt{CHAR *name}] A user-assigned name.
\item[\texttt{INT4 n}] The maximum desired filter order (actual order \item[\texttt{INT4 n}] The maximum desired filter order (actual order
may be less if specified attenuations do not require a high order). may be less if specified attenuations do not require a high order).
\item[\texttt{REAL8 f1}, \texttt{f2}] The reference frequencies of the \item[\texttt{REAL8 f1}, \texttt{f2}] The reference frequencies of the
transition band. transition band.
\item[\texttt{REAL8 a1}, \texttt{a2}] The minimal desired attenuation \item[\texttt{REAL8 a1}, \texttt{a2}] The minimal desired attenuation
factors at the reference frequencies. factors at the reference frequencies.
\end{description} \end{description}
</lalLaTeX> */ ******************************************************* </lalLaTeX> */
typedef struct tagPassBandParamStruc{ typedef struct tagPassBandParamStruc{
CHAR *name; CHAR *name;
INT4 nMax; INT4 nMax;
REAL8 f1; REAL8 f1;
REAL8 f2; REAL8 f2;
REAL8 a1; REAL8 a1;
REAL8 a2; REAL8 a2;
} PassBandParamStruc; } PassBandParamStruc;
/* <lalLaTeX> /* <lalLaTeX>
\vfill{\footnotesize\input{BandPassTimeSeriesHV}} \vfill{\footnotesize\input{BandPassTimeSeriesHV}}
</lalLaTeX> */ </lalLaTeX> */
/* Function prototypes. */ /* Function prototypes. */
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{ButterworthTimeSeriesC} \newpage\input{ButterworthTimeSeriesC}
</lalLaTeX> */ </lalLaTeX> */
void LALButterworthREAL4TimeSeries(LALStatus *stat, void
REAL4TimeSeries *series, LALButterworthREAL4TimeSeries( LALStatus *stat,
PassBandParamStruc *params); REAL4TimeSeries *series,
PassBandParamStruc *params );
void LALButterworthREAL8TimeSeries(LALStatus *stat,
REAL8TimeSeries *series, void
PassBandParamStruc *params); LALButterworthREAL8TimeSeries( LALStatus *stat,
REAL8TimeSeries *series,
PassBandParamStruc *params );
/* Chebyshev filters should also be added, but I'm too busy to write /* Chebyshev filters should also be added, but I'm too busy to write
the routines now. */ the routines now. */
/* Test program. */ /* Test program. */
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{BandPassTestC} \newpage\input{BandPassTestC}
</lalLaTeX> */ </lalLaTeX> */
#ifdef __cplusplus #ifdef __cplusplus
#pragma {
} }
#endif #endif
#endif /* _BANDPASSTIMESERIES_H */ #endif /* _BANDPASSTIMESERIES_H */
 End of changes. 12 change blocks. 
58 lines changed or deleted 41 lines changed or added


 Comm.h   Comm.h 
/*----------------------------------------------------------------------- /*
* <lalVerbatim file="CommHV">
* $Id: Comm.h,v 1.10 2001/12/05 21:11:36 jolien Exp $
* </lalVerbatim>
*/
/*
* <lalLaTeX>
* *
* File Name: Comm.h * \section{Header \texttt{Comm.h}}
* *
* Author: Allen, B. and Creighton, J. D. E. * Provides routines for MPI communication.
* *
* Revision: $Id: Comm.h,v 1.3 2000/07/23 01:12:39 jolien Exp $ * \subsection*{Synopsis}
* \begin{verbatim}
* #include <lal/Comm.h>
* \end{verbatim}
* *
*----------------------------------------------------------------------- * \noindent This header covers the routines for doing MPI communication.
*
* </lalLaTeX>
*/ */
#ifndef _COMM_H #ifndef _COMM_H
#define _COMM_H #define _COMM_H
#include "LALDatatypes.h" #include <lal/LALConfig.h>
#include "AVFactories.h" #ifdef LAL_MPI_ENABLED
#include "mpi.h"
#include <mpi.h>
#include <lal/LALDatatypes.h>
#include <lal/AVFactories.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
NRCSID (COMMH, "$Id: Comm.h,v 1.3 2000/07/23 01:12:39 jolien Exp $"); NRCSID (COMMH, "$Id: Comm.h,v 1.10 2001/12/05 21:11:36 jolien Exp $");
#define COMM_ENULL 1 /*
#define COMM_ESIZE 2 * <lalLaTeX>
#define COMM_ESTRL 4 * \subsection*{Error conditions}
#define COMM_EMPIE 8 * \input{CommHErrTab}
#define COMM_ESENV 16 * </lalLaTeX>
#define COMM_ESYSC 32 *
* <lalErrTable file="CommHErrTab">
#define COMM_MSGENULL "Null pointer" */
#define COMM_MSGESIZE "Invalid size" #define COMMH_ENULL 1
#define COMM_MSGESTRL "String too long" #define COMMH_ENNUL 2
#define COMM_MSGEMPIE "MPI error" #define COMMH_ESIZE 4
#define COMM_MSGESENV "Couldn't set environment variable" #define COMMH_ESZMM 8
#define COMM_MSGESYSC "Error executing system command" #define COMMH_EMPIE 16
#define COMMH_EHAND 32
/* Structure for identifying processors */ #define COMMH_ENOBJ 64
typedef struct
tagMPIId #define COMMH_MSGENULL "Null pointer"
{ #define COMMH_MSGENNUL "Non-Null pointer"
INT4 numProcs; #define COMMH_MSGESIZE "Invalid size"
INT4 myId; #define COMMH_MSGESZMM "Exchange size mismatch"
INT4 nameLen; #define COMMH_MSGEMPIE "MPI error"
CHAR procName[MPI_MAX_PROCESSOR_NAME]; #define COMMH_MSGEHAND "Wrong handshake"
} #define COMMH_MSGENOBJ "Invalid number of objects"
MPIId; /*
* </lalErrTable>
*/
typedef struct /*
tagMPIDebugParams * <lalLaTeX>
{ * \subsection*{Types}
CHAR *debugger; * </lalLaTeX>
CHAR *progName; */
INT4 delay;
INT4 myId;
}
MPIDebugParams;
typedef enum typedef enum
{ {
MPIDone, MPIDone,
MPIMisc, MPIMisc,
MPIErr, MPIErr,
MPIMsg, MPIMsg,
MPICHAR,
MPII2,
MPII4,
MPII8,
MPIU2,
MPIU4,
MPIU8,
MPIS,
MPID,
MPIC,
MPIZ,
MPICHARVector, MPICHARVector,
MPICHARVectorData, MPICHARVectorData,
MPII2Vector, MPII2Vector,
MPII2VectorData, MPII2VectorData,
MPII4Vector, MPII4Vector,
MPII4VectorData, MPII4VectorData,
MPII8Vector, MPII8Vector,
MPII8VectorData, MPII8VectorData,
MPIU2Vector,
MPIU2VectorData,
MPIU4Vector,
MPIU4VectorData,
MPIU8Vector,
MPIU8VectorData,
MPISVector, MPISVector,
MPISVectorData, MPISVectorData,
MPIDVector, MPIDVector,
MPIDVectorData, MPIDVectorData,
MPICVector, MPICVector,
MPICVectorData, MPICVectorData,
MPIZVector, MPIZVector,
MPIZVectorData, MPIZVectorData,
MPII2TimeSeries, MPII2TimeSeries,
MPII4TimeSeries, MPII4TimeSeries,
MPII8TimeSeries, MPII8TimeSeries,
MPIU2TimeSeries,
MPIU4TimeSeries,
MPIU8TimeSeries,
MPISTimeSeries, MPISTimeSeries,
MPIDTimeSeries, MPIDTimeSeries,
MPICTimeSeries, MPICTimeSeries,
MPIZTimeSeries, MPIZTimeSeries,
MPII2FrequencySeries, MPII2FrequencySeries,
MPII4FrequencySeries, MPII4FrequencySeries,
MPII8FrequencySeries, MPII8FrequencySeries,
MPIU2FrequencySeries,
MPIU4FrequencySeries,
MPIU8FrequencySeries,
MPISFrequencySeries, MPISFrequencySeries,
MPIDFrequencySeries, MPIDFrequencySeries,
MPICFrequencySeries, MPICFrequencySeries,
MPIZFrequencySeries MPIZFrequencySeries
} }
MPIMsgCode; MPIMsgCode;
typedef struct typedef struct
tagMPIMessage tagMPIMessage
{ {
INT4 msg; INT4 msg;
INT4 send; INT4 send;
INT4 source; INT4 source;
} }
MPIMessage; MPIMessage;
/*
* <lalLaTeX>
*
* \subsubsection*{Structure \texttt{MPIMessage}}
* \idx[Type]{MPIMessage}
*
* This structure is sent to a remote process, via \verb+LALMPISendMsg()+,
* to alert that process that there is a message. Note that
* \verb+LALMPIRecvMsg()+ is the only \verb+Recv+-type function that does n
ot
* require the source to be identified; the receiver can then identify the
* source from the message received.
*
* Essentially, \verb+LALMPISendMsg()+ and \verb+LALMPIRecvMsg()+ form a
* handshake for a subsequent transmission, and \verb+MPIMessage+ specifies
* the protocol. The local process uses \verb+LALMPISendMsg()+ to communic
ate
* with a remote process, which is waiting to hear from \emph{any} process
* using \verb+LALMPIRecvMsg()+. The message the local process sends speci
fies
* \begin{enumerate}
* \item An integer code telling the remote process what operation it sho
uld
* take (e.g., get ready to exchange some data, tell the remote process
* to terminate, etc.).
* \item A boolean integer that is zero if the remote process is expected
* to send something to the local process, or non-zero if the local pro
cess
* will send something to the remote process.
* \item An integer representing the MPI process number of the local proc
ess.
* \end{enumerate}
*
* The fields are:
* \begin{description}
* \item[\texttt{INT4 msg}] An integer code specifying to the receiver what
* type of operation is to be taken.
* \item[\texttt{INT4 send}] A boolean that is non-zero if the originator
* of the message will be sending something to the recipiant of the messa
ge
* in a subsequent communication, or zero if the recipiant of the message
* is expected to send something to the originator of the message.
* \item[\texttt{INT4 source}] The MPI process number of the originator of
the
* message.
* \end{description}
*
* </lalLaTeX>
*/
typedef struct
tagExchParams
{
INT4 send;
INT4 numObjects;
INT4 partnerProcNum;
INT4 myProcNum;
INT4 exchObjectType;
MPI_Comm mpiComm;
}
ExchParams;
typedef struct
tagInitExchParams
{
INT4 myProcNum;
MPI_Comm mpiComm;
}
InitExchParams;
/*
* <lalLaTeX>
*
* \subsubsection*{Structures \texttt{ExchParams} and \texttt{InitExchParam
s}}
* \idx[Type]{ExchParams}
* \idx[Type]{InitExchParams}
*
* These structures are used in the \verb+Exch+-type routines. The structu
re
* \verb+InitExchParams+ are the parameters used in initializing an exchang
e
* protocol using \verb+LALInitializeExchange+. The fields are:
* \begin{description}
* \item[\texttt{INT4 myProcNum}] The MPI process number of the local pro
cess.
* \item[\texttt{MPI\_Comm mpiComm}] The MPI communicator.
* \end{description}
*
* The structure \verb+ExchParams+ is created by \verb+LALInitializeExchang
e()+,
* destroyed by \verb+LALFinalizeExchange()+, and serves as the parameter f
or
* the various \verb+LALExchange+$\langle\textit{type}\rangle$ functions.
It
* is also required as the input to \verb+LALInitializeExchange()+ for the
* originator of the exchange request. The fields are:
* \begin{description}
* \item[\texttt{INT4 send}] A code that indicates whether this process i
s
* sending (non-zero) or recieving (zero). The process that initialize
s
* the exchange chooses whether it will send in the subsequent exchange
s
* (non-zero value for the \verb+send+ field of the input
* \verb+ExchParams+), or receive (zero value).
* \item[\texttt{INT4 numObjects}] The (maximum) number of objects to be
* exchanged. (The partners in the exchange may have some mechanism to
* decide to terminate the exchange early, e.g., by exchanging a negati
ve
* integer.)
* \item[\texttt{INT4 partnerProcNum}] The MPI process number of the part
ner
* in the exchange.
* \item[\texttt{INT4 myProcNum}] The MPI process number of the local pro
cess.
* \item[\texttt{INT4 exchObjectType}] An integer code representing the t
ype
* of object that will be excanged.
* \item[\texttt{MPI\_Comm mpiComm}] The MPI communicator.
* \end{description}
*
* </lalLaTeX>
*/
/*
* <lalLaTeX>
* \vfill{\footnotesize\input{CommHV}}
* \newpage\input{SendRecvC}
* \newpage\input{ExchangeC}
* \newpage\input{SendRecvTestC}
* \newpage\input{ExchangeTestC}
* </lalLaTeX>
*/
void
LALMPISendMsg(
LALStatus *status,
MPIMessage *msg,
INT4 dest,
MPI_Comm mpiComm
);
void void
LALMPIExportEnvironment ( LALMPIRecvMsg(
LALStatus *status, LALStatus *status,
const CHAR *env, MPIMessage *msg,
INT4 myId MPI_Comm mpiComm
); );
void void
LALMPIDebug ( LALMPISendCHAR(
LALStatus *status, LALStatus *status,
MPIDebugParams *params CHAR *element,
INT4 dest,
MPI_Comm mpiComm
); );
void void
LALMPIKillScript ( LALMPIRecvCHAR(
LALStatus *status, LALStatus *status,
MPIId *id CHAR *element,
INT4 dest,
MPI_Comm mpiComm
); );
void void
LALMPISendMsg ( LALMPISendINT2(
LALStatus *status, LALStatus *status,
MPIMessage *msg, INT2 *element,
INT4 dest INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvINT2(
LALStatus *status,
INT2 *element,
INT4 source,
MPI_Comm mpiComm
); );
void void
LALMPIRecvMsg ( LALMPISendINT4(
LALStatus *status, LALStatus *status,
MPIMessage *msg INT4 *element,
INT4 dest,
MPI_Comm mpiComm
); );
void void
LALMPISendCHARVector ( LALMPIRecvINT4(
LALStatus *status, LALStatus *status,
INT4 *element,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendINT8(
LALStatus *status,
INT8 *element,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvINT8(
LALStatus *status,
INT8 *element,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendUINT2(
LALStatus *status,
UINT2 *element,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvUINT2(
LALStatus *status,
UINT2 *element,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendUINT4(
LALStatus *status,
UINT4 *element,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvUINT4(
LALStatus *status,
UINT4 *element,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendUINT8(
LALStatus *status,
UINT8 *element,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvUINT8(
LALStatus *status,
UINT8 *element,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendREAL4(
LALStatus *status,
REAL4 *element,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvREAL4(
LALStatus *status,
REAL4 *element,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendREAL8(
LALStatus *status,
REAL8 *element,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvREAL8(
LALStatus *status,
REAL8 *element,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendCOMPLEX8(
LALStatus *status,
COMPLEX8 *element,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvCOMPLEX8(
LALStatus *status,
COMPLEX8 *element,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendCOMPLEX16(
LALStatus *status,
COMPLEX16 *element,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvCOMPLEX16(
LALStatus *status,
COMPLEX16 *element,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendCHARVector(
LALStatus *status,
CHARVector *vector, CHARVector *vector,
INT4 dest INT4 dest,
MPI_Comm mpiComm
); );
void void
LALMPIRecvCHARVector ( LALMPIRecvCHARVector(
LALStatus *status, LALStatus *status,
CHARVector *vector, CHARVector *vector,
INT4 source INT4 source,
MPI_Comm mpiComm
); );
void void
LALMPISendINT2Vector ( LALMPISendINT2Vector(
LALStatus *status, LALStatus *status,
INT2Vector *vector, INT2Vector *vector,
INT4 dest INT4 dest,
MPI_Comm mpiComm
); );
void void
LALMPIRecvINT2Vector ( LALMPIRecvINT2Vector(
LALStatus *status, LALStatus *status,
INT2Vector *vector, INT2Vector *vector,
INT4 source INT4 source,
MPI_Comm mpiComm
); );
void void
LALMPISendREAL4Vector ( LALMPISendINT4Vector(
LALStatus *status, LALStatus *status,
INT4Vector *vector,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvINT4Vector(
LALStatus *status,
INT4Vector *vector,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendINT8Vector(
LALStatus *status,
INT8Vector *vector,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvINT8Vector(
LALStatus *status,
INT8Vector *vector,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendUINT2Vector(
LALStatus *status,
UINT2Vector *vector,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvUINT2Vector(
LALStatus *status,
UINT2Vector *vector,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendUINT4Vector(
LALStatus *status,
UINT4Vector *vector,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvUINT4Vector(
LALStatus *status,
UINT4Vector *vector,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendUINT8Vector(
LALStatus *status,
UINT8Vector *vector,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvUINT8Vector(
LALStatus *status,
UINT8Vector *vector,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendREAL4Vector(
LALStatus *status,
REAL4Vector *vector, REAL4Vector *vector,
INT4 dest INT4 dest,
MPI_Comm mpiComm
); );
void void
LALMPIRecvREAL4Vector ( LALMPIRecvREAL4Vector(
LALStatus *status, LALStatus *status,
REAL4Vector *vector, REAL4Vector *vector,
INT4 source INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendREAL8Vector(
LALStatus *status,
REAL8Vector *vector,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvREAL8Vector(
LALStatus *status,
REAL8Vector *vector,
INT4 source,
MPI_Comm mpiComm
); );
void void
LALMPISendCOMPLEX8Vector ( LALMPISendCOMPLEX8Vector(
LALStatus *status, LALStatus *status,
COMPLEX8Vector *vector, COMPLEX8Vector *vector,
INT4 dest INT4 dest,
MPI_Comm mpiComm
); );
void void
LALMPIRecvCOMPLEX8Vector ( LALMPIRecvCOMPLEX8Vector(
LALStatus *status, LALStatus *status,
COMPLEX8Vector *vector, COMPLEX8Vector *vector,
INT4 source INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendCOMPLEX16Vector(
LALStatus *status,
COMPLEX16Vector *vector,
INT4 dest,
MPI_Comm mpiComm
); );
void void
LALMPISendINT2TimeSeries ( LALMPIRecvCOMPLEX16Vector(
LALStatus *status, LALStatus *status,
COMPLEX16Vector *vector,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendINT2TimeSeries(
LALStatus *status,
INT2TimeSeries *series, INT2TimeSeries *series,
INT4 dest INT4 dest,
MPI_Comm mpiComm
); );
void void
LALMPIRecvINT2TimeSeries ( LALMPIRecvINT2TimeSeries(
LALStatus *status, LALStatus *status,
INT2TimeSeries *series, INT2TimeSeries *series,
INT4 source INT4 source,
MPI_Comm mpiComm
); );
void void
LALMPISendREAL4TimeSeries ( LALMPISendINT4TimeSeries(
LALStatus *status, LALStatus *status,
INT4TimeSeries *series,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvINT4TimeSeries(
LALStatus *status,
INT4TimeSeries *series,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendINT8TimeSeries(
LALStatus *status,
INT8TimeSeries *series,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvINT8TimeSeries(
LALStatus *status,
INT8TimeSeries *series,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendUINT2TimeSeries(
LALStatus *status,
UINT2TimeSeries *series,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvUINT2TimeSeries(
LALStatus *status,
UINT2TimeSeries *series,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendUINT4TimeSeries(
LALStatus *status,
UINT4TimeSeries *series,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvUINT4TimeSeries(
LALStatus *status,
UINT4TimeSeries *series,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendUINT8TimeSeries(
LALStatus *status,
UINT8TimeSeries *series,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvUINT8TimeSeries(
LALStatus *status,
UINT8TimeSeries *series,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendREAL4TimeSeries(
LALStatus *status,
REAL4TimeSeries *series, REAL4TimeSeries *series,
INT4 dest INT4 dest,
MPI_Comm mpiComm
); );
void void
LALMPIRecvREAL4TimeSeries ( LALMPIRecvREAL4TimeSeries(
LALStatus *status, LALStatus *status,
REAL4TimeSeries *series, REAL4TimeSeries *series,
INT4 source INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendREAL8TimeSeries(
LALStatus *status,
REAL8TimeSeries *series,
INT4 dest,
MPI_Comm mpiComm
); );
void void
LALMPISendCOMPLEX8TimeSeries ( LALMPIRecvREAL8TimeSeries(
LALStatus *status, LALStatus *status,
REAL8TimeSeries *series,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendCOMPLEX8TimeSeries(
LALStatus *status,
COMPLEX8TimeSeries *series, COMPLEX8TimeSeries *series,
INT4 dest INT4 dest,
MPI_Comm mpiComm
); );
void void
LALMPIRecvCOMPLEX8TimeSeries ( LALMPIRecvCOMPLEX8TimeSeries(
LALStatus *status, LALStatus *status,
COMPLEX8TimeSeries *series, COMPLEX8TimeSeries *series,
INT4 source INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendCOMPLEX16TimeSeries(
LALStatus *status,
COMPLEX16TimeSeries *series,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvCOMPLEX16TimeSeries(
LALStatus *status,
COMPLEX16TimeSeries *series,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendINT2FrequencySeries(
LALStatus *status,
INT2FrequencySeries *series,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvINT2FrequencySeries(
LALStatus *status,
INT2FrequencySeries *series,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendINT4FrequencySeries(
LALStatus *status,
INT4FrequencySeries *series,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvINT4FrequencySeries(
LALStatus *status,
INT4FrequencySeries *series,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendINT8FrequencySeries(
LALStatus *status,
INT8FrequencySeries *series,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvINT8FrequencySeries(
LALStatus *status,
INT8FrequencySeries *series,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendUINT2FrequencySeries(
LALStatus *status,
UINT2FrequencySeries *series,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvUINT2FrequencySeries(
LALStatus *status,
UINT2FrequencySeries *series,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendUINT4FrequencySeries(
LALStatus *status,
UINT4FrequencySeries *series,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvUINT4FrequencySeries(
LALStatus *status,
UINT4FrequencySeries *series,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendUINT8FrequencySeries(
LALStatus *status,
UINT8FrequencySeries *series,
INT4 dest,
MPI_Comm mpiComm
); );
void void
LALMPISendREAL4FrequencySeries ( LALMPIRecvUINT8FrequencySeries(
LALStatus *status, LALStatus *status,
UINT8FrequencySeries *series,
INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendREAL4FrequencySeries(
LALStatus *status,
REAL4FrequencySeries *series, REAL4FrequencySeries *series,
INT4 dest INT4 dest,
MPI_Comm mpiComm
); );
void void
LALMPIRecvREAL4FrequencySeries ( LALMPIRecvREAL4FrequencySeries(
LALStatus *status, LALStatus *status,
REAL4FrequencySeries *series, REAL4FrequencySeries *series,
INT4 source INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendREAL8FrequencySeries(
LALStatus *status,
REAL8FrequencySeries *series,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvREAL8FrequencySeries(
LALStatus *status,
REAL8FrequencySeries *series,
INT4 source,
MPI_Comm mpiComm
); );
void void
LALMPISendCOMPLEX8FrequencySeries ( LALMPISendCOMPLEX8FrequencySeries(
LALStatus *status, LALStatus *status,
COMPLEX8FrequencySeries *series, COMPLEX8FrequencySeries *series,
INT4 dest INT4 dest,
MPI_Comm mpiComm
); );
void void
LALMPIRecvCOMPLEX8FrequencySeries ( LALMPIRecvCOMPLEX8FrequencySeries(
LALStatus *status, LALStatus *status,
COMPLEX8FrequencySeries *series, COMPLEX8FrequencySeries *series,
INT4 source INT4 source,
MPI_Comm mpiComm
);
void
LALMPISendCOMPLEX16FrequencySeries(
LALStatus *status,
COMPLEX16FrequencySeries *series,
INT4 dest,
MPI_Comm mpiComm
);
void
LALMPIRecvCOMPLEX16FrequencySeries(
LALStatus *status,
COMPLEX16FrequencySeries *series,
INT4 source,
MPI_Comm mpiComm
);
void
LALInitializeExchange(
LALStatus *status,
ExchParams **exchParamsOut,
ExchParams *exchParamsInp,
InitExchParams *params
);
void
LALFinalizeExchange(
LALStatus *status,
ExchParams **exchParams
);
void
LALExchangeCHAR(
LALStatus *status,
CHAR *object,
ExchParams *exchParms
);
void
LALExchangeINT2(
LALStatus *status,
INT2 *object,
ExchParams *exchParms
);
void
LALExchangeINT4(
LALStatus *status,
INT4 *object,
ExchParams *exchParms
);
void
LALExchangeINT8(
LALStatus *status,
INT8 *object,
ExchParams *exchParms
);
void
LALExchangeUINT2(
LALStatus *status,
UINT2 *object,
ExchParams *exchParms
);
void
LALExchangeUINT4(
LALStatus *status,
UINT4 *object,
ExchParams *exchParms
);
void
LALExchangeUINT8(
LALStatus *status,
UINT8 *object,
ExchParams *exchParms
);
void
LALExchangeREAL4(
LALStatus *status,
REAL4 *object,
ExchParams *exchParms
);
void
LALExchangeREAL8(
LALStatus *status,
REAL8 *object,
ExchParams *exchParms
);
void
LALExchangeCOMPLEX8(
LALStatus *status,
COMPLEX8 *object,
ExchParams *exchParms
);
void
LALExchangeCOMPLEX16(
LALStatus *status,
COMPLEX16 *object,
ExchParams *exchParms
);
void
LALExchangeCHARVector(
LALStatus *status,
CHARVector *object,
ExchParams *exchParms
);
void
LALExchangeINT2Vector(
LALStatus *status,
INT2Vector *object,
ExchParams *exchParms
);
void
LALExchangeINT4Vector(
LALStatus *status,
INT4Vector *object,
ExchParams *exchParms
);
void
LALExchangeINT8Vector(
LALStatus *status,
INT8Vector *object,
ExchParams *exchParms
);
void
LALExchangeUINT2Vector(
LALStatus *status,
UINT2Vector *object,
ExchParams *exchParms
);
void
LALExchangeUINT4Vector(
LALStatus *status,
UINT4Vector *object,
ExchParams *exchParms
);
void
LALExchangeUINT8Vector(
LALStatus *status,
UINT8Vector *object,
ExchParams *exchParms
);
void
LALExchangeREAL4Vector(
LALStatus *status,
REAL4Vector *object,
ExchParams *exchParms
);
void
LALExchangeREAL8Vector(
LALStatus *status,
REAL8Vector *object,
ExchParams *exchParms
);
void
LALExchangeCOMPLEX8Vector(
LALStatus *status,
COMPLEX8Vector *object,
ExchParams *exchParms
);
void
LALExchangeCOMPLEX16Vector(
LALStatus *status,
COMPLEX16Vector *object,
ExchParams *exchParms
);
void
LALExchangeINT2TimeSeries(
LALStatus *status,
INT2TimeSeries *object,
ExchParams *exchParms
);
void
LALExchangeINT4TimeSeries(
LALStatus *status,
INT4TimeSeries *object,
ExchParams *exchParms
);
void
LALExchangeINT8TimeSeries(
LALStatus *status,
INT8TimeSeries *object,
ExchParams *exchParms
);
void
LALExchangeUINT2TimeSeries(
LALStatus *status,
UINT2TimeSeries *object,
ExchParams *exchParms
);
void
LALExchangeUINT4TimeSeries(
LALStatus *status,
UINT4TimeSeries *object,
ExchParams *exchParms
);
void
LALExchangeUINT8TimeSeries(
LALStatus *status,
UINT8TimeSeries *object,
ExchParams *exchParms
);
void
LALExchangeREAL4TimeSeries(
LALStatus *status,
REAL4TimeSeries *object,
ExchParams *exchParms
);
void
LALExchangeREAL8TimeSeries(
LALStatus *status,
REAL8TimeSeries *object,
ExchParams *exchParms
);
void
LALExchangeCOMPLEX8TimeSeries(
LALStatus *status,
COMPLEX8TimeSeries *object,
ExchParams *exchParms
);
void
LALExchangeCOMPLEX16TimeSeries(
LALStatus *status,
COMPLEX16TimeSeries *object,
ExchParams *exchParms
);
void
LALExchangeINT2FrequencySeries(
LALStatus *status,
INT2FrequencySeries *object,
ExchParams *exchParms
);
void
LALExchangeINT4FrequencySeries(
LALStatus *status,
INT4FrequencySeries *object,
ExchParams *exchParms
);
void
LALExchangeINT8FrequencySeries(
LALStatus *status,
INT8FrequencySeries *object,
ExchParams *exchParms
);
void
LALExchangeUINT2FrequencySeries(
LALStatus *status,
UINT2FrequencySeries *object,
ExchParams *exchParms
);
void
LALExchangeUINT4FrequencySeries(
LALStatus *status,
UINT4FrequencySeries *object,
ExchParams *exchParms
);
void
LALExchangeUINT8FrequencySeries(
LALStatus *status,
UINT8FrequencySeries *object,
ExchParams *exchParms
);
void
LALExchangeREAL4FrequencySeries(
LALStatus *status,
REAL4FrequencySeries *object,
ExchParams *exchParms
);
void
LALExchangeREAL8FrequencySeries(
LALStatus *status,
REAL8FrequencySeries *object,
ExchParams *exchParms
);
void
LALExchangeCOMPLEX8FrequencySeries(
LALStatus *status,
COMPLEX8FrequencySeries *object,
ExchParams *exchParms
);
void
LALExchangeCOMPLEX16FrequencySeries(
LALStatus *status,
COMPLEX16FrequencySeries *object,
ExchParams *exchParms
); );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* LAL_MPI_ENABLED */
#endif /* _COMM_H */ #endif /* _COMM_H */
 End of changes. 57 change blocks. 
112 lines changed or deleted 1122 lines changed or added


 ComplexFFT.h   ComplexFFT.h 
/*----------------------------------------------------------------------- /**** <lalVerbatim file="ComplexFFTHV">
* * $Id: ComplexFFT.h,v 1.9 2001/08/27 17:25:04 jolien Exp $
* File Name: ComplexFFT.h **** </lalVerbatim> */
*
* Author: Creighton, J. D. E. /**** <lalLaTeX>
*
* Revision: $Id: ComplexFFT.h,v 1.2 2000/07/23 01:13:20 jolien Exp $
*
*-----------------------------------------------------------------------
* *
* NAME * \section{Header \texttt{ComplexFFT.h}}
* ComplexFFT.h * \label{s:ComplexFFT.h}
* *
* SYNOPSIS * Performs complex-to-complex FFTs.
* #include "ComplexFFT.h"
* *
* DESCRIPTION * \subsection*{Synopsis}
* \begin{verbatim}
* #include <lal/ComplexFFT.h>
* \end{verbatim}
* *
* DIAGNOSTICS * Perform complex-to-complex fast Fourier transforms of vectors using the
* package FFTW~\cite{fj:1998}.
* *
*----------------------------------------------------------------------- **** </lalLaTeX> */
*/
#ifndef _COMPLEXFFT_H #ifndef _COMPLEXFFT_H
#define _COMPLEXFFT_H #define _COMPLEXFFT_H
#include "LALDatatypes.h" #include <lal/LALDatatypes.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#pragma }
#endif #endif
NRCSID( COMPLEXFFTH, "$Id: ComplexFFT.h,v 1.2 2000/07/23 01:13:20 jolien Ex p $" ); NRCSID( COMPLEXFFTH, "$Id: ComplexFFT.h,v 1.9 2001/08/27 17:25:04 jolien Ex p $" );
#define COMPLEXFFT_ENULL 1 /**** <lalLaTeX>
#define COMPLEXFFT_ENNUL 2 * \subsection*{Error conditions}
#define COMPLEXFFT_ESIZE 4 **** </lalLaTeX> */
#define COMPLEXFFT_ESZMM 8 /**** <lalErrTable> */
#define COMPLEXFFT_ESLEN 16
#define COMPLEXFFT_ESAME 32 #define COMPLEXFFTH_ENULL 1
#define COMPLEXFFTH_ENNUL 2
#define COMPLEXFFT_MSGENULL "Null pointer" #define COMPLEXFFTH_ESIZE 4
#define COMPLEXFFT_MSGENNUL "Non-null pointer" #define COMPLEXFFTH_ESZMM 8
#define COMPLEXFFT_MSGESIZE "Invalid input size" #define COMPLEXFFTH_ESLEN 16
#define COMPLEXFFT_MSGESZMM "Size mismatch" #define COMPLEXFFTH_ESAME 32
#define COMPLEXFFT_MSGESLEN "Invalid/mismatched sequence lengths" #define COMPLEXFFTH_EALOC 64
#define COMPLEXFFT_MSGESAME "Input/Output data vectors are the same" #define COMPLEXFFTH_EFFTW 128
typedef struct #define COMPLEXFFTH_MSGENULL "Null pointer"
tagComplexFFTPlan #define COMPLEXFFTH_MSGENNUL "Non-null pointer"
{ #define COMPLEXFFTH_MSGESIZE "Invalid input size"
INT4 sign; #define COMPLEXFFTH_MSGESZMM "Size mismatch"
UINT4 size; #define COMPLEXFFTH_MSGESLEN "Invalid/mismatched sequence lengths"
void *plan; #define COMPLEXFFTH_MSGESAME "Input/Output data vectors are the same"
} #define COMPLEXFFTH_MSGEFFTW "Error in FFTW"
ComplexFFTPlan; #define COMPLEXFFTH_MSGEALOC "Memory allocation failed"
/**** </lalErrTable> */
/**** <lalLaTeX>
*
* \subsection*{Structures}
*
**** </lalLaTeX> */
/**** <lalVerbatim> */
typedef struct tagComplexFFTPlan ComplexFFTPlan;
/**** </lalVerbatim> */
/**** <lalLaTeX>
*
* This structure contains the parameters necessary for performing an FFT o
f a
* given size and direction. The contents should not be manually adjusted.
*
* \newpage\input{ComplexFFTC}
* \newpage\input{ComplexFFTTestC}
**** </lalLaTeX> */
/* #define KEEP_OLD_COMPLEX_FFT */
void
LALCreateForwardComplexFFTPlan(
LALStatus *status,
ComplexFFTPlan **plan,
UINT4 size,
INT4 measure
);
void
LALCreateReverseComplexFFTPlan(
LALStatus *status,
ComplexFFTPlan **plan,
UINT4 size,
INT4 measure
);
void
LALDestroyComplexFFTPlan (
LALStatus *status,
ComplexFFTPlan **plan
);
void
LALCOMPLEX8VectorFFT (
LALStatus *status,
COMPLEX8Vector *output,
COMPLEX8Vector *input,
ComplexFFTPlan *plan
);
#ifdef KEEP_OLD_FFT
#define KEEP_OLD_COMPLEX_FFT
#endif
#ifdef KEEP_OLD_COMPLEX_FFT
void void
LALEstimateFwdComplexFFTPlan ( LALEstimateFwdComplexFFTPlan (
LALStatus *stat, LALStatus *stat,
ComplexFFTPlan **plan, ComplexFFTPlan **plan,
UINT4 size UINT4 size
); );
void void
LALEstimateInvComplexFFTPlan ( LALEstimateInvComplexFFTPlan (
skipping to change at line 86 skipping to change at line 141
UINT4 size UINT4 size
); );
void void
LALMeasureInvComplexFFTPlan ( LALMeasureInvComplexFFTPlan (
LALStatus *stat, LALStatus *stat,
ComplexFFTPlan **plan, ComplexFFTPlan **plan,
UINT4 size UINT4 size
); );
void #endif /* KEEP_OLD_COMPLEX_FFT */
LALDestroyComplexFFTPlan (
LALStatus *stat,
ComplexFFTPlan **plan
);
void
LALCOMPLEX8VectorFFT (
LALStatus *stat,
COMPLEX8Vector *vout,
COMPLEX8Vector *vinp,
ComplexFFTPlan *plan
);
#ifdef __cplusplus #ifdef __cplusplus
#pragma {
} }
#endif #endif
#endif /* _COMPLEXFFT_H */ #endif /* _COMPLEXFFT_H */
 End of changes. 12 change blocks. 
54 lines changed or deleted 99 lines changed or added


 DataBuffer.h   DataBuffer.h 
/*----------------------------------------------------------------------- #if 0 /* autodoc block */
*
* File Name: DataBuffer.h <lalVerbatim file="DataBufferHV">
* $Id: DataBuffer.h,v 1.7 2001/05/04 18:37:03 duncan Exp $
* Author: Creighton, J. D. E. </lalVerbatim>
*
* Revision: $Id: DataBuffer.h,v 1.3 2000/07/23 01:13:41 jolien Exp $ <lalLaTeX>
*
*----------------------------------------------------------------------- \section{Header \texttt{DataBuffer.h}}
*/ \label{s:DataBuffer.h}
Root finding routines.
\subsection*{Synopsis}
\begin{verbatim}
#include <lal/DataBuffer.h>
\end{verbatim}
\noindent Gets segments of IFO\_DMRO data along with its (averaged over sev
eral
segments) power spectrum and response function.
</lalLaTeX>
#endif /* autodoc block */
#ifndef _DATABUFFER_H #ifndef _DATABUFFER_H
#define _DATABUFFER_H #define _DATABUFFER_H
#include "LALDatatypes.h" #include <lal/LALDatatypes.h>
#include "FrameData.h" #include <lal/FrameData.h>
#include "SpecBuffer.h" #include <lal/SpecBuffer.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
NRCSID (DATABUFFERH, "$Id: DataBuffer.h,v 1.3 2000/07/23 01:13:41 jolien Ex NRCSID (DATABUFFERH, "$Id: DataBuffer.h,v 1.7 2001/05/04 18:37:03 duncan Ex
p $"); p $");
#if 0 /* autodoc block */
<lalLaTeX>
\subsection*{Error conditions}
\input{DataBufferHErrTab}
</lalLaTeX>
<lalErrTable file="DataBufferHErrTab">
#endif /* autodoc block */
#define DATABUFFERH_ENULL 1
#define DATABUFFERH_ENNUL 2
#define DATABUFFERH_ESIZE 4
#define DATABUFFERH_ESZMM 8
#define DATABUFFERH_MSGENULL "Null pointer"
#define DATABUFFERH_MSGENNUL "Non-null pointer"
#define DATABUFFERH_MSGESIZE "Invalid input size"
#define DATABUFFERH_MSGESZMM "Size mismatch"
#if 0 /* autodoc block */
</lalErrTable>
<lalLaTeX>
\subsection*{Structures}
\begin{verbatim}
typedef struct
tagDataSegment
{
INT2TimeSeries *data;
REAL4FrequencySeries *spec;
COMPLEX8FrequencySeries *resp;
INT4 endOfData;
INT4 newLock;
INT4 newCal;
INT4 number;
INT4 level;
}
DataSegment;
\end{verbatim}
The data structure returned by the data aquisition routine. The fields are
:
\begin{description}
\item[\texttt{data}] The time-series data.
\item[\texttt{spec}] The corresponding estimated (averaged) power spectrum.
\item[\texttt{resp}] The current response function, built from the swept-si
ne
calibration information.
\item[\texttt{endOfData}] Boolean that is non-zero if there is no more data
.
\item[\texttt{newLock}] Boolean that is non-zero if a new locked segment ha
s
been entered.
\item[\texttt{newCal}] Boolean that is non-zero if a new calibration
information has been read.
\item[\texttt{number}] The segment number.
\item[\texttt{level}] A field that Duncan wanted.
\end{description}
\begin{verbatim}
typedef struct
tagDataBufferPar
{
INT4 numSpec;
INT4 numPoints;
WindowType windowType;
RealFFTPlan *plan;
CHAR *framePath;
}
DataBufferPar;
\end{verbatim}
This is the parameter structure used when creating a data buffer. The fiel
ds
are:
\begin{description}
\item[\texttt{numSpec}] The number of spectra to average to get an average
spectrum.
\item[\texttt{numPoints}] The number of points of data in each segment.
\item[\texttt{windowType}] The type of window to use when creating the
spectra (see the \texttt{window} package).
\item[\texttt{plan}] The FFT plan to use when creating the spectra (see the
\texttt{fft} package).
\item[\texttt{framePath}] The path of the directory containing the frame fi
les.
\end{description}
\begin{verbatim}
typedef struct
tagDataBuffer
{
INT4 endOfData;
INT4 newLock;
INT4 newCal;
/* ... private data ... */
}
\end{verbatim}
This is the buffer of data segments. The ``public'' fields are:
\begin{description}
\item[\texttt{endOfData}] Boolean that is non-zero if there is no more data
.
\item[\texttt{newLock}] Boolean that is non-zero if a new locked segment ha
s
been entered.
\item[\texttt{newCal}] Boolean that is non-zero if a new calibration
information has been read.
\end{description}
\begin{verbatim}
typedef struct tagDataBlock DataBlock;
\end{verbatim}
An internal structure.
#define DATABUFFER_ENULL 1 </lalLaTeX>
#define DATABUFFER_ENNUL 2
#define DATABUFFER_ESIZE 4 #endif /* autodoc block */
#define DATABUFFER_ESZMM 8
#define DATABUFFER_MSGENULL "Null pointer"
#define DATABUFFER_MSGENNUL "Non-null pointer"
#define DATABUFFER_MSGESIZE "Invalid input size"
#define DATABUFFER_MSGESZMM "Size mismatch"
typedef struct typedef struct
tagDataBlock tagDataBlock
{ {
INT4 number; INT4 number;
INT4 continuous; INT4 continuous;
INT4 anomalous; INT4 anomalous;
INT2TimeSeries *framedata; INT2TimeSeries *framedata;
} }
DataBlock; DataBlock;
skipping to change at line 86 skipping to change at line 205
WindowType windowType; WindowType windowType;
RealFFTPlan *plan; RealFFTPlan *plan;
CHAR *framePath; CHAR *framePath;
} }
DataBufferPar; DataBufferPar;
typedef struct typedef struct
tagDataSegment tagDataSegment
{ {
INT2TimeSeries *data; INT2TimeSeries *data;
REAL4TimeSeries *real4Data;
REAL4FrequencySeries *spec; REAL4FrequencySeries *spec;
COMPLEX8FrequencySeries *resp; COMPLEX8FrequencySeries *resp;
INT4 endOfData; INT4 endOfData;
INT4 newLock; INT4 newLock;
INT4 newCal; INT4 newCal;
INT4 number; INT4 number;
INT4 level;
} }
DataSegment; DataSegment;
#if 0 /* autodoc block */
<lalLaTeX>
\newpage\input{DataBufferC}
</lalLaTeX>
#endif /* autodoc block */
void void
LALCreateDataBuffer ( LALCreateDataBuffer (
LALStatus *status, LALStatus *status,
DataBuffer **buffer, DataBuffer **buffer,
DataBufferPar *params DataBufferPar *params
); );
void void
LALDestroyDataBuffer ( LALDestroyDataBuffer (
LALStatus *status, LALStatus *status,
skipping to change at line 116 skipping to change at line 245
); );
void void
LALGetData ( LALGetData (
LALStatus *status, LALStatus *status,
DataSegment *output, DataSegment *output,
INT4 advance, INT4 advance,
DataBuffer *buffer DataBuffer *buffer
); );
#if 0 /* autodoc block */
<lalLaTeX>
\newpage\input{DataBufferTestC}
</lalLaTeX>
#endif /* autodoc block */
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* _DATABUFFER_H */ #endif /* _DATABUFFER_H */
 End of changes. 8 change blocks. 
24 lines changed or deleted 170 lines changed or added


 Date.h   Date.h 
/*----------------------------------------------------------------------- /* <lalVerbatim file="DateHV">
*
* File Name: Date.h Author: David Chin <dwchin@umich.edu> +1-734-730-1274
* $Id: Date.h,v 1.31 2001/12/08 21:28:38 dwchin Exp $
* Author: David Chin <dwchin@umich.edu>
* </lalVerbatim> */
* Revision: $Id: Date.h,v 1.2 2000/07/23 01:12:54 jolien Exp $
* /* <lalLaTeX>
*-----------------------------------------------------------------------
* \section{Header \texttt{Date.h}}
* NAME \label{s:Date.h}
* Date.h
* Provides routines for manipulating date and time information.
* SYNOPSIS
* #include "Date.h" \subsection*{Synopsis}
* \begin{verbatim}
* DESCRIPTION #include <lal/Date.h>
* Data type definitions for date and time manipulation. \end{verbatim}
* Function prototypes for date and time manipulation functions.
* This header covers routines for manipulating date and time
* DIAGNOSTICS information. The various time systems are discussed in~\cite{esaa:1992}.
*
*----------------------------------------------------------------------- </lalLaTeX> */
*/
#ifndef _DATE_H #ifndef _DATE_H
#define _DATE_H #define _DATE_H
/* the following two preprocessor defines are to include the prototypes for
* gmtime_r() and asctime_r() from /usr/include/time.h
* HOWEVER, they do no good if -ansi is used in gcc: warnings are generated
* that the prototypes have not been seen */
/* HP-UX and Solaris */
#ifndef _REENTRANT #ifndef _REENTRANT
# define _REENTRANT # define _REENTRANT
#endif #endif
#ifndef _POSIX_PTHREAD_SEMANTICS
# define _POSIX_PTHREAD_SEMANTICS
#endif
/* Linux */
#ifndef __USE_POSIX
# define __USE_POSIX
#endif
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <time.h> #include <time.h>
#include "LALRCSID.h" #include <lal/LALRCSID.h>
#include "LALConstants.h" #include <lal/LALConstants.h>
#include "LALAtomicDatatypes.h" #include <lal/LALAtomicDatatypes.h>
#include "LALDatatypes.h" #include <lal/LALDatatypes.h>
#include "LALStatusMacros.h" #include <lal/LALStatusMacros.h>
#include "LALStdlib.h" #include <lal/LALStdlib.h>
#include <lal/DetectorSite.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
NRCSID (DATEH, "$Id: Date.h,v 1.2 2000/07/23 01:12:54 jolien Exp $"); NRCSID (DATEH, "$Id: Date.h,v 1.31 2001/12/08 21:28:38 dwchin Exp $");
/* /* <lalLaTeX>
* Julian.c \subsection*{Error conditions}
*/ </lalLaTeX> */
#define JULIAN_ENULLINPUT 1
#define JULIAN_ENULLOUTPUT 2
#define JULIAN_EDATETOOEARLY 3
#define JULIAN_MSGENULLINPUT "Input is NULL"
#define JULIAN_MSGENULLOUTPUT "Output is NULL"
#define JULIAN_MSGEDATETOOEARLY "Date too early: Julian Day can only be com
puted for dates >= 1900-Mar"
/* /* <lalErrTable> */
* UtoGPS.c #define DATEH_ENULLINPUT 1
*/ #define DATEH_ENULLOUTPUT 2
#define UTOGPS_ENULLINPUT 1 #define DATEH_EDATETOOEARLY 3
#define UTOGPS_ENULLOUTPUT 2 #define DATEH_ERANGEGPSABS 4
#define DATEH_EBUFFTOOSMALL 5
#define DATEH_EASCTIMEFAIL 6
#define DATEH_EGPSDATETOOEARLY 7
#define UTOGPS_MSGENULLINPUT "Input is NULL" #define DATEH_MSGENULLINPUT "Input is NULL"
#define UTOGPS_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_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_MSGEBUFFTOOSMALL "Output timestamp string too small: min. siz
e = 26"
#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"
/* /* </lalErrTable>
* Utime.c
*/
#define UTIME_ENULLINPUT 1
#define UTIME_ENULLOUTPUT 2
#define UTIME_ERANGE 3
#define UTIME_MSGENULLINPUT "Input is NULL"
#define UTIME_MSGENULLOUTPUT "Output is NULL"
#define UTIME_MSGERANGE "Input time out of range: 0 <= utc_seconds <= 94668
4823"
/* <lalLaTeX>
* DateString.c
*/
#define DATESTRING_ENULLINPUT 1
#define DATESTRING_ENULLOUTPUT 2
#define DATESTRING_EBUFFTOOSMALL 3
#define DATESTRING_MSGENULLINPUT "Input is NULL"
#define DATESTRING_MSGENULLOUTPUT "Output is NULL"
#define DATESTRING_MSGEBUFFTOOSMALL "Output timestamp string too small: min
. size = 26"
/* \subsection*{Structures}
* LMST1.c
*/
#define LMST1_ENULLINPUT 1
#define LMST1_ENULLOUTPUT 2
#define GMST1_ENULLINPUT 1 </lalLaTeX> */
#define GMST1_ENULLOUTPUT 2
#define LMST1_MSGENULLINPUT "Input is NULL" /* <lalLaTeX>
#define LMST1_MSGENULLOUTPUT "Output is NULL"
#define GMST1_MSGENULLINPUT "Input is NULL" \vfill{\footnotesize\input{DateHV}}
#define GMST1_MSGENULLOUTPUT "Output is NULL"
#define MST_SEC 0
#define MST_HRS 1
#define MST_DEG 2
#define MST_RAD 3
/* </lalLaTeX> */
* SecsToLALDate.c
*/ /* <lalLaTeX>
#define SECSTOLALDATE_ENULLOUTPUT 1
\subsection*{Types}
\subsubsection*{Enumeration \texttt{LALMSTUnits}}
\idx[Type]{LALMSTUnits}
This enumerated type is used as a parameter for Mean Sidereal Time
routines to specify the units in which to return the Mean Sidereal
Time. The allowed values are:
\medskip\noindent
\begin{tabular}{ll}
\verb+MST_SEC+ & arc-seconds \\
\verb+MST_HRS+ & arc-hours (\textit{i.e.} units of Right Ascension)\\
\verb+MST_DEG+ & degrees \\
\verb+MST_RAD+ & radians
\end{tabular}
\bigskip
</lalLaTeX> */
typedef enum
{
MST_SEC, /* arc seconds */
MST_HRS, /* arc hours (i.e. units of Right Ascension) */
MST_DEG, /* degrees */
MST_RAD /* radians */
} LALMSTUnits;
/* <lalLaTeX>
\subsubsection*{Enumeration \texttt{LALLeapSecAccuracy}}
\idx[Type]{LALLeapSecAccuracy}
This enumerated type is used as a parameter for \texttt{LALGPStoUTC()} and
\texttt{LALUTCtoGPS()} to specify if complete accuracy is required in use
of leap seconds. The allowed values are:
\medskip\noindent
\begin{tabular}{ll}
\verb+LALLEAPSEC_LOOSE+ & may miss leap seconds \\
\verb+LALLEAPSEC_STRICT+ & require all leap seconds
\end{tabular}
\bigskip
If strict accuracy is selected, the code will \texttt{ABORT} if leap second
data is not current. Otherwise, a warning will be printed, and the code
will continue execution.
</lalLaTeX> */
typedef enum
{
LALLEAPSEC_LOOSE,
LALLEAPSEC_STRICT
} LALLeapSecAccuracy;
/* <lalLaTeX>
#define SECSTOLALDATE_MSGENULLOUTPUT "Output is NULL" \subsubsection*{Structure \texttt{LALUnixDate}}
\idx[Type]{LALUnixDate}
/* The standard Unix tm structure */ This structure is just the standard Unix \texttt{tm} structure. We shall
{\em always} ignore the daylight savings time field, \verb+tm_isdst+.
</lalLaTeX> */
/*
* The standard Unix tm structure
*/
typedef struct typedef struct
tm tm
LALUnixDate; LALUnixDate;
/* This time object is exactly like LIGOTimeGPS, except for the name */ /* <lalLaTeX>
typedef struct
tagLIGOTimeUnix \subsubsection{Structure \texttt{LALTimeInterval}}
{ \idx[Type]{LALTimeInterval}
INT4 unixSeconds;
INT4 unixNanoSeconds; This structure is used for storing intervals of \texttt{LIGOTimeGPS}
} and \texttt{LIGOTimeUnix} times. The fields are:
LIGOTimeUnix;
\begin{description}
\item{\texttt{INT4 seconds}} Integral part of the time interval
\item{\texttt{INT8 nanoSeconds}} Residual nanoseconds (\textit{i.e.}
fractional part, in nanoseconds)
\end{description}
/* Encode timezone information */ </lalLaTeX> */
/*
* This time object is for time intervals, i.e. no reference epoch implied
*/
typedef struct typedef struct
tagLALTimezone tagLALTimeInterval
{ {
INT4 secondsWest; /* seconds West of UTC */ INT4 seconds;
INT4 dst; /* Daylight Savings Time correction to apply */ INT8 nanoSeconds;
} }
LALTimezone; LALTimeInterval;
/* <lalLaTeX>
\subsubsection{Structure \texttt{LALDate}}
\idx[Type]{LALDate}
/* Date and time structure */ This structure is an extension of \texttt{LALUnixDate} to include residual
nanosecond information. The fields are:
\begin{description}
\item{\texttt{LALUnixDate unixDate}} Unix date in \texttt{struct tm}
format
\item{\texttt{INT4 residualNanoSeconds}} Residual nanoseconds
\end{description}
</lalLaTeX> */
/*
* Date and time structure
*/
typedef struct typedef struct
tagLALDate tagLALDate
{ {
LALUnixDate unixDate; LALUnixDate unixDate;
INT4 residualNanoSeconds; /* residual nanoseconds */ INT4 residualNanoSeconds; /* residual nanoseconds */
LALTimezone timezone; /* timezone information */
} }
LALDate; LALDate;
/* <lalLaTeX>
\subsubsection{Structure \texttt{LALPlaceAndGPS}}
\idx[Type]{LALPlaceAndGPS}
This structure stores pointers to a \texttt{LALDetector} and a
\texttt{LIGOTimeGPS}. Its sole purpose is to aggregate these
structures for passing to functions. The fields are:
\begin{description}
\item{\verb+LALDetector *p_detector+} Pointer to a detector
\item{\verb+LIGOTimeGPS *p_gps+} Pointer to a GPS time structure
\end{description}
</lalLaTeX> */
/* /*
* 9. Functions Declarations (i.e., prototypes). * Place and time structures
*/ */
void LALJulianDay (LALStatus*, INT4*, const LALDate*); /* First, with GPS */
void LALModJulianDay(LALStatus*, REAL8*, const LALDate*); typedef struct
void LALJulianDate(LALStatus*, REAL8*, const LALDate*); tagLALPlaceAndGPS
void LALModJulianDate(LALStatus*, REAL8*, const LALDate*); {
void LALUtoGPS(LALStatus*, LIGOTimeGPS*, const LIGOTimeUnix*); LALDetector *p_detector; /* pointer to a detector */
void LALGPStoU(LALStatus*, LIGOTimeUnix*, const LIGOTimeGPS*); LIGOTimeGPS *p_gps; /* pointer to GPS time */
void LALUtime(LALStatus*, LALDate*, const LIGOTimeUnix*); }
void LALDateString(LALStatus*, CHARVector*, const LALDate*); LALPlaceAndGPS;
void LALGMST1(LALStatus*, REAL8*, const LALDate*, INT4);
void LALLMST1(LALStatus*, REAL8*, const LALDate*, REAL8, INT4); /* <lalLaTeX>
void LALSecsToLALDate(LALStatus*, LALDate*, REAL8);
\subsubsection{Structure \texttt{LALPlaceAndDate}}
\idx[Type]{LALPlaceAndDate}
Like \texttt{LALPlaceAndGPS}, this structure aggregates a pointer to a
detector and a pointer to a date. This is another convenience
structure, used in calling \texttt{LALLMST1()}. The fields are:
\begin{description}
\item{\verb+LALDetector *p_detector+} Pointer to a detector
\item{\verb+LALDate *p_date+} Pointer to a date
\end{description}
</lalLaTeX> */
/* Second, with Date-Time */
typedef struct
tagLALPlaceAndDate
{
LALDetector *p_detector; /* pointer to a detector */
LALDate *p_date; /* pointer to a date */
}
LALPlaceAndDate;
/*
* Function prototypes
*/
/* <lalLaTeX>
\newpage\input{JulianC}
</lalLaTeX> */
void LALJulianDay(LALStatus *status,
INT4 *jDay,
const LALDate *date);
void LALJulianDate (LALStatus *status,
REAL8 *jDateOut,
const LALDate *date);
void LALModJulianDate (LALStatus *status,
REAL8 *modJDate,
const LALDate *date);
/* <lalLaTeX>
\newpage\input{DateStringC}
</lalLaTeX> */
void LALDateString (LALStatus *status,
CHARVector *timestamp,
const LALDate *date);
/* <lalLaTeX>
\newpage\input{LMST1C}
</lalLaTeX> */
void LALGMST1 (LALStatus *status,
REAL8 *gmst, /* output - GMST1 */
const LALDate *date, /* input - date and time */
LALMSTUnits outunits); /* GMST1 units */
void LALGPStoGMST1( LALStatus *status,
REAL8 *gmst, /* output - GMST1 */
const LIGOTimeGPS *gps, /* input - GPS time */
LALMSTUnits outunits); /* GMST1 units */
void LALLMST1 (LALStatus *status,
REAL8 *lmst, /* output - LMST1 */
const LALPlaceAndDate *placeAndDate, /* input -
location
and date */
LALMSTUnits outunits); /* LMST1 units */
void LALGPStoLMST1( LALStatus *status,
REAL8 *lmst, /* output - LMST1 */
const LALPlaceAndGPS *placeAndGps, /* input -
location and
GPS */
LALMSTUnits outunits); /* LMST1 units
*/
/* <lalLaTeX>
\newpage\input{SecsToLALDateC}
</lalLaTeX> */
void LALSecsToLALDate(LALStatus*,
LALDate*,
REAL8);
/* <lalLaTeX>
\newpage\input{GPStoUTCC}
</lalLaTeX> */
void
LALGPStoUTC (LALStatus *status,
LALDate *pUtcDate,
const LIGOTimeGPS *pGpsTime,
const LALLeapSecAccuracy *pAccuracy);
void
LALUTCtoGPS (LALStatus *status,
LIGOTimeGPS *pGpsTime,
const LALDate *pUtcDate,
const LALLeapSecAccuracy *pAccuracy);
/* The following is from S.J. Berukoff, included at his request */
/* <lalLaTeX>
\newpage\input{GPStoFloatC}
</lalLaTeX> */
void LALGPStoFloat (LALStatus *,
REAL8 *,
LIGOTimeGPS *);
void LALFloatToGPS(LALStatus *,
LIGOTimeGPS *,
REAL8 *);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* _DATE_H */ #endif /* _DATE_H */
 End of changes. 30 change blocks. 
121 lines changed or deleted 330 lines changed or added


 Dirichlet.h   Dirichlet.h 
/*----------------------------------------------------------------------- /************************************ <lalVerbatim file="DirichletHV">
* Author: UTB Relativity Group; contact whelan@oates.utb.edu
* File Name: Dirichlet.h $Id: Dirichlet.h,v 1.10 2001/12/09 04:24:18 whelan Exp $
* *********************************************************** </lalVerbatim>
* Author: UTB Relativity Group */
*
* Revision: $Id: Dirichlet.h,v 1.4 2000/07/23 01:14:47 jolien Exp $
*
*-----------------------------------------------------------------------
*
* NAME
* Dirichlet.h
*
* SYNOPSIS
* #include "Dirichlet.h"
*
* DESCRIPTION
* Error codes, typedefs, and prototype for function LALDirichlet()
*
* DIAGNOSTICS
*
*-----------------------------------------------------------------------
*/
#ifndef _DIRICHLET_H /********************************************************** <lalLaTeX>
#define _DIRICHLET_H \section{Header \texttt{Dirichlet.h}}
\label{stochastic:s:Dirichlet.h}
#include "LALStdlib.h" Provides prototype and error code information for \texttt{LALDirichlet()},
a routine which calculates the values of the Dirichlet kernel
${\cal D}_N(x)$.
\subsection*{Synopsis}
\begin{verbatim}
#include "Dirichlet.h"
\end{verbatim}
\noindent
% Add more information here, if necessary.
\subsection*{Error conditions}
\input{DirichletHErrTable}
\subsection*{Structures}
\begin{verbatim}
struct DirichletParameters
\end{verbatim}
\idx[Type]{DirichletParameters}
\noindent
Contains parameters that specify the Dirichlet kernel $\mathcal{D}_N(x)$.
The fields are:
\begin{description}
\item[\texttt{UINT4 n}] Dirichlet parameter $N$.
\item[\texttt{UINT4 length}] Specified length of output vector.
\item[\texttt{REAL8 deltaX}] Spacing of $x$ values.
\end{description}
\vfill{\footnotesize\input{DirichletHV}}
\newpage\input{DirichletC}
\newpage\input{DirichletTestC}
*********************************************************** </lalLaTeX> */
#ifndef _DIRICHLET_H
#define _DIRICHLET_H
#include <lal/LALStdlib.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
NRCSID (DIRICHLETH, "$Id: Dirichlet.h,v 1.4 2000/07/23 01:14:47 jolien Exp $"); NRCSID (DIRICHLETH, "$Id: Dirichlet.h,v 1.10 2001/12/09 04:24:18 whelan Exp $");
#define DIRICHLET_ENULLIP 1 /******************************** <lalErrTable file="DirichletHErrTable"> *
#define DIRICHLET_ENVALUE 2 /
#define DIRICHLET_ESIZE 4
#define DIRICHLET_EDELTAX 8 #define DIRICHLETH_ENULLPIN 1
#define DIRICHLET_ENULLOP 16 #define DIRICHLETH_ENVALUE 2
#define DIRICHLET_ESIZEMM 32 #define DIRICHLETH_ESIZE 3
#define DIRICHLET_ENULLD 64 #define DIRICHLETH_EDELTAX 4
#define DIRICHLETH_ENULLPOUT 5
#define DIRICHLET_MSGENULLIP "Pointer to input parameters must be non-null #define DIRICHLETH_ESIZEMM 6
" #define DIRICHLETH_ENULLPDOUT 7
#define DIRICHLET_MSGENVALUE "LALDirichlet parameter N must be > 0"
#define DIRICHLET_MSGESIZE "Specified length of output vector must be > #define DIRICHLETH_MSGENULLPIN "Null pointer to input parameters"
0" #define DIRICHLETH_MSGENVALUE "Dirichlet parameter N less than or equal
#define DIRICHLET_MSGEDELTAX "Spacing of x values must be > 0" to zero"
#define DIRICHLET_MSGENULLOP "Pointer to ouput vector must be non-null" #define DIRICHLETH_MSGESIZE "Length parameter less than or equal to ze
#define DIRICHLET_MSGESIZEMM "Length of output vector must agree with leng ro"
th specified in input parameters" #define DIRICHLETH_MSGEDELTAX "Spacing of x values less than or equal to
#define DIRICHLET_MSGENULLD "Pointer to data member of output vector must zero"
be non-null" #define DIRICHLETH_MSGENULLPOUT "Null pointer to ouput vector"
#define DIRICHLETH_MSGESIZEMM "Length of data member of output vector do
es not equal length specified in input parameters"
#define DIRICHLETH_MSGENULLPDOUT "Null pointer to data member of output vec
tor"
/************************************ </lalErrTable> */
typedef struct tagDirichletParameters{ typedef struct tagDirichletParameters{
INT4 n; /* LALDirichlet parameter N */ UINT4 n; /* LALDirichlet parameter N */
INT4 length; /* specified length of output vector */ UINT4 length; /* specified length of output vector */
REAL8 deltaX; /* spacing of x values */ REAL8 deltaX; /* spacing of x values */
} DirichletParameters; } DirichletParameters;
void void
LALDirichlet ( LALStatus*, REAL4Vector*, DirichletParameters* ); LALDirichlet(LALStatus*,
REAL4Vector*,
const DirichletParameters*);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif /* C++ protection */
#endif /* _DIRICHLET_H */ #endif /* _DIRICHLET_H */
 End of changes. 8 change blocks. 
51 lines changed or deleted 84 lines changed or added


 ExcessPower.h   ExcessPower.h 
/*----------------------------------------------------------------------- /********************************** <lalVerbatim file="ExcessPowerHV">
* Author: Flanagan, E
* File Name: ExcessPower.h $Id: ExcessPower.h,v 1.6 2001/08/19 22:40:57 patrick Exp $
* **************************************************** </lalVerbatim> */
* Author: Eanna Flanagan
*
* Revision: $Id: ExcessPower.h,v 1.2 2000/07/23 01:12:26 jolien Exp $
*
*-----------------------------------------------------------------------
*
* NAME
* ExcessPower.h
*
* SYNOPSIS
* #include "ExcessPower.h"
*
* DESCRIPTION
* Error codes, typedefs, and protypes for the functions chisqCdf() and
* related functions
*
* DIAGNOSTICS
*
*-----------------------------------------------------------------------
*/
#ifndef _EXCESSPOWER_H #ifndef _EXCESSPOWER_H
#define _EXCESSPOWER_H #define _EXCESSPOWER_H
#include "LALStdlib.h" #include <lal/LALStdlib.h>
#include "LALDatatypes.h" #include <lal/LALDatatypes.h>
#include "TFTransform.h" #include <lal/TFTransform.h>
#include "LALRCSID.h" #include <lal/LALRCSID.h>
#ifdef __cplusplus /* C++ protection. */ #ifdef __cplusplus /* C++ protection. */
extern "C" { extern "C" {
#endif #endif
NRCSID (EXCESSPOWERH, "$Id: ExcessPower.h,v 1.2 2000/07/23 01:12:26 jolien Exp $"); NRCSID (EXCESSPOWERH, "$Id: ExcessPower.h,v 1.6 2001/08/19 22:40:57 patrick Exp $");
#define EXCESSPOWER_ENULLP 1 /******** <lalErrTable file="ExcessPowerHErrTab"> ********/
#define EXCESSPOWER_EPOSARG 2 #define EXCESSPOWERH_ENULLP 1
#define EXCESSPOWER_EPOW2 4 #define EXCESSPOWERH_EPOSARG 2
#define EXCESSPOWER_EMALLOC 8 #define EXCESSPOWERH_EPOW2 4
#define EXCESSPOWER_EINCOMP 16 #define EXCESSPOWERH_EMALLOC 8
#define EXCESSPOWER_EORDER 32 #define EXCESSPOWERH_EINCOMP 16
#define EXCESSPOWER_ENONNULL 64 #define EXCESSPOWERH_EORDER 32
#define EXCESSPOWERH_ENONNULL 64
#define EXCESSPOWER_MSGENULLP "Null pointer" #define EXCESSPOWERH_ETILES 65
#define EXCESSPOWER_MSGEPOSARG "Arguments must be non-negative"
#define EXCESSPOWER_MSGEPOW2 "Length of supplied data must be a power o #define EXCESSPOWERH_MSGENULLP "Null pointer"
f 2" #define EXCESSPOWERH_MSGEPOSARG "Arguments must be non-negative"
#define EXCESSPOWER_MSGEMALLOC "Malloc failure" #define EXCESSPOWERH_MSGEPOW2 "Length of supplied data must be a power
#define EXCESSPOWER_MSGEINCOMP "Incompatible arguments" of 2"
#define EXCESSPOWER_MSGEORDER "Routines called in illegal order" #define EXCESSPOWERH_MSGEMALLOC "Malloc failure"
#define EXCESSPOWER_MSGENONNULL "Null pointer expected" #define EXCESSPOWERH_MSGEINCOMP "Incompatible arguments"
#define EXCESSPOWERH_MSGEORDER "Routines called in illegal order"
#define EXCESSPOWERH_MSGENONNULL "Null pointer expected"
#define EXCESSPOWERH_MSGETILES "Malloc failed while assigning memory for
a tile"
/******** </lalErrTable> ********/
typedef struct typedef struct
tagTFTile tagTFTile
{ {
INT4 fstart; INT4 fstart;
INT4 fend; INT4 fend;
INT4 tstart; INT4 tstart;
INT4 tend; INT4 tend;
INT4 whichPlane; INT4 whichPlane;
REAL8 deltaT; /* deltaF will always be 1/ deltaT */
REAL8 excessPower; REAL8 excessPower;
REAL8 alpha; REAL8 alpha;
REAL8 weight; REAL8 weight;
BOOLEAN firstCutFlag; BOOLEAN firstCutFlag;
struct tagTFTile *nextTile; struct tagTFTile *nextTile;
} }
TFTile; TFTile;
typedef struct typedef struct
tagTFTiling tagTFTiling
 End of changes. 5 change blocks. 
45 lines changed or deleted 31 lines changed or added


 FindChirpExch.h   FindChirpExch.h 
/*----------------------------------------------------------------------- /*-----------------------------------------------------------------------
* *
* File Name: FindChirpExch.h * File Name: FindChirpExch.h
* *
* Author: Allen, B. and Creighton, J. D. E. * Author: Allen, B., Brown, D. A. and Creighton, J. D. E.
* *
* Revision: $Id: FindChirpExch.h,v 1.3 2000/07/23 01:13:31 jolien Exp $ * Revision: $Id: FindChirpExch.h,v 1.11 2001/05/09 17:35:54 duncan Exp $
* *
*----------------------------------------------------------------------- *-----------------------------------------------------------------------
*/ */
#ifndef _FINDCHIRPEXCH_H #if 0
#define _FINDCHIRPEXCH_H <lalVerbatim file="FindChirpEngineHV">
Author: Allen, B., Brown, D. A. and Creighton, J. D. E.
$Id: FindChirpExch.h,v 1.11 2001/05/09 17:35:54 duncan Exp $
</lalVerbatim>
#include "LALDatatypes.h" <lalLaTeX>
#include "Comm.h"
#include "DataBuffer.h"
#ifdef __cplusplus \section{Header \texttt{FindChirpExch.h}}
extern "C" { \label{s:FindChirp.h}
#endif
NRCSID (FINDCHIRPEXCHH, "$Id: FindChirpExch.h,v 1.3 2000/07/23 01:13:31 jol Provides routines to filter IFO data for binary inspiral chirps.
ien Exp $");
#define FINDCHIRPEXCH_ENULL 1
#define FINDCHIRPEXCH_ENNUL 2
#define FINDCHIRPEXCH_ENOBJ 4
#define FINDCHIRPEXCH_EHAND 8
#define FINDCHIRPEXCH_MSGENULL "Null pointer"
#define FINDCHIRPEXCH_MSGENNUL "Non-null pointer"
#define FINDCHIRPEXCH_MSGENOBJ "Invalid number of objects"
#define FINDCHIRPEXCH_MSGEHAND "Wrong handshake"
typedef enum
{
ExchDataSegment,
ExchInspiralBankIn,
ExchInspiralTemplate,
ExchInspiralEvent,
ExchFinished
}
ExchObjectType;
typedef struct </lalLaTeX>
tagExchParams #endif
{
ExchObjectType exchObjectType;
INT4 send;
INT4 numObjects;
INT4 partnerProcNum;
}
ExchParams;
typedef enum
{
M1AndM2,
TotalMassAndEta,
TotalMassAndMu
}
InputMasses;
typedef enum #ifndef _FINDCHIRPEXCHH_H
{ #define _FINDCHIRPEXCHH_H
Best,
TaylorTime20,
TaylorFreq20,
Papprox20
}
InspiralMethod;
typedef struct #include <lal/LALDatatypes.h>
tagInspiralTemplate #include <lal/Comm.h>
{ #include <lal/DataBuffer.h>
INT4 number; #include <lal/LALInspiral.h>
REAL4 mass1; #include <lal/FindChirp.h>
REAL4 mass2;
REAL4 spin1[3];
REAL4 spin2[3];
REAL4 inclination;
REAL4 eccentricity;
REAL8 totalMass;
REAL8 mu;
REAL8 eta;
REAL8 fLower;
REAL8 fCutoff;
REAL8 tSampling;
REAL8 phaseShift;
INT4 nStartPad;
INT4 nEndPad;
InputMasses massChoice;
InspiralMethod method;
}
InspiralTemplate;
/* the various interferometer codes */
typedef enum
{
Caltech40m, Hanford4km, Hanford2km, Livingston4km, GEO600m, TAMA300m
}
Detector;
/* input for specifying a template bank */ #ifdef __cplusplus
typedef struct extern "C" {
tagInspiralBankIn #endif
{
REAL4 mMin;
REAL4 mMax;
REAL4 ffCoarse;
REAL4 ffFine;
Detector detector;
InspiralMethod method;
}
InspiralBankIn;
typedef struct NRCSID (FINDCHIRPEXCHH, "$Id: FindChirpExch.h,v 1.11 2001/05/09 17:35:54 du
tagInspiralEvent ncan Exp $");
{
LIGOTimeGPS time;
InspiralTemplate tmplt;
REAL4 snrsq;
REAL4 chisq;
REAL4 sigma;
}
InspiralEvent;
void #if 0
LALInitializeExchange ( <lalLaTeX>
LALStatus *status, \subsection*{Error codes}
ExchParams **exchParamsOut, </lalLaTeX>
ExchParams *exchParamsInp, #endif
INT4 myProcNum /* <lalErrTable> */
); #define FINDCHIRPEXCHH_ENULL 1
#define FINDCHIRPEXCHH_ENNUL 2
void #define FINDCHIRPEXCHH_ENOBJ 4
LALFinalizeExchange ( #define FINDCHIRPEXCHH_EHAND 8
LALStatus *status, #define FINDCHIRPEXCHH_MSGENULL "Null pointer"
ExchParams **exchParams #define FINDCHIRPEXCHH_MSGENNUL "Non-null pointer"
); #define FINDCHIRPEXCHH_MSGENOBJ "Invalid number of objects"
#define FINDCHIRPEXCHH_MSGEHAND "Wrong handshake"
/* </lalErrTable> */
void void
LALExchangeDataSegment ( LALExchangeDataSegment (
LALStatus *status, LALStatus *status,
DataSegment *segment, DataSegment *segment,
ExchParams *exchParams ExchParams *exchParams
); );
void void
LALExchangeInspiralBankIn (
LALStatus *status,
InspiralBankIn *bankIn,
ExchParams *exchParams
);
void
LALExchangeInspiralTemplate ( LALExchangeInspiralTemplate (
LALStatus *status, LALStatus *status,
InspiralTemplate *tmplt, InspiralTemplate *tmplt,
ExchParams *exchParams ExchParams *exchParams
); );
void void
LALExchangeInspiralEvent ( LALExchangeInspiralEvent (
LALStatus *status, LALStatus *status,
InspiralEvent *event, InspiralEvent *event,
ExchParams *exchParams ExchParams *exchParams
); );
void
LALExchangeInspiralEventList (
LALStatus *status,
InspiralEvent **eventHead,
ExchParams *exchParams
);
void
LALExchangeTemplateBank (
LALStatus *status,
InspiralTemplate **tmpltHead,
ExchParams *exchParms
);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* _FINDCHIRPEXCH_H */ #endif /* _FINDCHIRPEXCHH_H */
 End of changes. 15 change blocks. 
129 lines changed or deleted 54 lines changed or added


 FindRoot.h   FindRoot.h 
/*----------------------------------------------------------------------- #if 0 /* autodoc block */
*
* File Name: FindRoot.h <lalVerbatim file="FindRootHV">
* $Id: FindRoot.h,v 1.6 2001/02/22 00:27:07 jolien Exp $
* Revision: $Id: FindRoot.h,v 1.4 2000/07/23 01:15:53 jolien Exp $ </lalVerbatim>
*
*----------------------------------------------------------------------- <lalLaTeX>
*/
\section{Header \texttt{FindRoot.h}}
\label{s:FindRoot.h}
Root finding routines.
\subsection*{Synopsis}
\begin{verbatim}
#include <lal/FindRoot.h>
\end{verbatim}
\noindent This header covers the routines for root finding.
</lalLaTeX>
#endif /* autodoc block */
#ifndef _FINDROOT_H #ifndef _FINDROOT_H
#define _FINDROOT_H #define _FINDROOT_H
#include "LALDatatypes.h" #include <lal/LALDatatypes.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
NRCSID (FINDROOTH, "$Id: FindRoot.h,v 1.4 2000/07/23 01:15:53 jolien Exp $" NRCSID (FINDROOTH, "$Id: FindRoot.h,v 1.6 2001/02/22 00:27:07 jolien Exp $"
); );
#if 0 /* autodoc block */
<lalLaTeX>
\subsection*{Error conditions}
\input{FindRootHErrTab}
</lalLaTeX>
<lalErrTable file="FindRootHErrTab">
#endif /* autodoc block */
#define FINDROOTH_ENULL 1
#define FINDROOTH_EIDOM 2
#define FINDROOTH_EMXIT 4
#define FINDROOTH_EBRKT 8
#define FINDROOT_ENULL 1 #define FINDROOTH_MSGENULL "Null pointer"
#define FINDROOT_EIDOM 2 #define FINDROOTH_MSGEIDOM "Invalid initial domain"
#define FINDROOT_EMXIT 4 #define FINDROOTH_MSGEMXIT "Maximum iterations exceeded"
#define FINDROOT_EBRKT 8 #define FINDROOTH_MSGEBRKT "Root not bracketed"
#define FINDROOT_MSGENULL "Null pointer"
#define FINDROOT_MSGEIDOM "Invalid initial domain"
#define FINDROOT_MSGEMXIT "Maximum iterations exceeded"
#define FINDROOT_MSGEBRKT "Root not bracketed"
#if 0 /* autodoc block */
</lalErrTable>
<lalLaTeX>
\subsection*{Structures}
\begin{verbatim}
typedef void (REAL4LALFunction) (LALStatus *s, REAL4 *y, REAL4 x, void *p); typedef void (REAL4LALFunction) (LALStatus *s, REAL4 *y, REAL4 x, void *p);
typedef void (REAL8LALFunction) (LALStatus *s, REAL8 *y, REAL8 x, void *p); typedef void (REAL8LALFunction) (LALStatus *s, REAL8 *y, REAL8 x, void *p);
\end{verbatim}
These are function pointers to functions that map real numbers to real numb
ers.
\begin{verbatim}
typedef struct typedef struct
tagSFindRootIn tagSFindRootIn
{ {
REAL4LALFunction *function; REAL4LALFunction *function;
REAL4 xmax; REAL4 xmax;
REAL4 xmin; REAL4 xmin;
REAL4 xacc; REAL4 xacc;
} }
SFindRootIn; SFindRootIn;
typedef struct typedef struct
tagDFindRootIn tagDFindRootIn
{ {
REAL8LALFunction *function; REAL8LALFunction *function;
REAL8 xmax; REAL8 xmax;
REAL8 xmin; REAL8 xmin;
REAL8 xacc; REAL8 xacc;
} }
DFindRootIn; DFindRootIn;
\end{verbatim}
These are the input structures to the root finding routines. The fields ar
e:
\begin{description}
\item[\texttt{function}] The function to find the root of.
\item[\texttt{xmax}] The maximum value of the domain interval to look for t
he root.
\item[\texttt{xmax}] The minimum value of the domain interval to look for t
he root.
\item[\texttt{xacc}] The accuracy desired for the root.
\end{description}
</lalLaTeX>
#endif /* autodoc block */
typedef void (REAL4LALFunction) (LALStatus *s, REAL4 *y, REAL4 x, void *p);
typedef void (REAL8LALFunction) (LALStatus *s, REAL8 *y, REAL8 x, void *p);
typedef struct
tagSFindRootIn
{
REAL4LALFunction *function;
REAL4 xmax;
REAL4 xmin;
REAL4 xacc;
}
SFindRootIn;
typedef struct
tagDFindRootIn
{
REAL8LALFunction *function;
REAL8 xmax;
REAL8 xmin;
REAL8 xacc;
}
DFindRootIn;
#if 0 /* autodoc block */
<lalLaTeX>
\newpage\input{FindRootC}
</lalLaTeX>
#endif /* autodoc block */
void void
LALSBracketRoot ( LALSBracketRoot (
LALStatus *status, LALStatus *status,
SFindRootIn *inout, SFindRootIn *inout,
void *params void *params
); );
void void
LALDBracketRoot ( LALDBracketRoot (
skipping to change at line 84 skipping to change at line 168
); );
void void
LALDBisectionFindRoot ( LALDBisectionFindRoot (
LALStatus *status, LALStatus *status,
REAL8 *root, REAL8 *root,
DFindRootIn *input, DFindRootIn *input,
void *params void *params
); );
#if 0 /* autodoc block */
<lalLaTeX>
\newpage\input{FindRootTestC}
</lalLaTeX>
#endif /* autodoc block */
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* _FINDROOT_H */ #endif /* _FINDROOT_H */
 End of changes. 9 change blocks. 
20 lines changed or deleted 116 lines changed or added


 FrameData.h   FrameData.h 
/*----------------------------------------------------------------------- #if 0 /* autodoc block */
*
* File Name: FrameData.h <lalVerbatim file="FrameDataHV">
* $Id: FrameData.h,v 1.5 2001/02/23 23:46:25 jolien Exp $
* Author: Creighton, J. D. E. </lalVerbatim>
*
* Revision: $Id: FrameData.h,v 1.3 2000/07/23 01:13:42 jolien Exp $ <lalLaTeX>
*
*----------------------------------------------------------------------- \section{Header \texttt{FrameData.h}}
*/ \label{s:FrameData.h}
Root finding routines.
\subsection*{Synopsis}
\begin{verbatim}
#include <lal/FrameData.h>
\end{verbatim}
\noindent Gets IFO\_DMRO data from frame files.
</lalLaTeX>
#endif /* autodoc block */
#ifndef _FRAMEDATA_H #ifndef _FRAMEDATA_H
#define _FRAMEDATA_H #define _FRAMEDATA_H
#include "LALDatatypes.h" #include <lal/LALDatatypes.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
NRCSID (FRAMEDATAH, "$Id: FrameData.h,v 1.3 2000/07/23 01:13:42 jolien Exp $"); NRCSID (FRAMEDATAH, "$Id: FrameData.h,v 1.5 2001/02/23 23:46:25 jolien Exp $");
#define FRAMEDATA_ENULL 1 #if 0 /* autodoc block */
#define FRAMEDATA_ENNUL 2
#define FRAMEDATA_EREAD 4 <lalLaTeX>
#define FRAMEDATA_EOPEN 8 \subsection*{Error conditions}
#define FRAMEDATA_ENOSS 16 \input{FrameDataHErrTab}
#define FRAMEDATA_EDMRO 32 </lalLaTeX>
#define FRAMEDATA_ELOCK 64
#define FRAMEDATA_ELOHI 128 <lalErrTable file="FrameDataHErrTab">
#define FRAMEDATA_ESIZE 256
#define FRAMEDATA_ESSSZ 512 #endif /* autodoc block */
#define FRAMEDATA_MSGENULL "Null pointer" #define FRAMEDATAH_ENULL 1
#define FRAMEDATA_MSGENNUL "Non-null pointer" #define FRAMEDATAH_ENNUL 2
#define FRAMEDATA_MSGEREAD "Error reading frame directory" #define FRAMEDATAH_EREAD 4
#define FRAMEDATA_MSGEOPEN "Error opening frame file" #define FRAMEDATAH_EOPEN 8
#define FRAMEDATA_MSGENOSS "No sweptsine calibration data in frame" #define FRAMEDATAH_ENOSS 16
#define FRAMEDATA_MSGEDMRO "No IFO_DMRO data in frame" #define FRAMEDATAH_EDMRO 32
#define FRAMEDATA_MSGELOCK "No IFO_Lock data in frame" #define FRAMEDATAH_ELOCK 64
#define FRAMEDATA_MSGELOHI "No locklo/lockhi data in frame" #define FRAMEDATAH_ELOHI 128
#define FRAMEDATA_MSGESIZE "Invalid vector length" #define FRAMEDATAH_ESIZE 256
#define FRAMEDATA_MSGESSSZ "Bad sweptsine calibration data" #define FRAMEDATAH_ESSSZ 512
#define FRAMEDATAH_MSGENULL "Null pointer"
#define FRAMEDATAH_MSGENNUL "Non-null pointer"
#define FRAMEDATAH_MSGEREAD "Error reading frame directory"
#define FRAMEDATAH_MSGEOPEN "Error opening frame file"
#define FRAMEDATAH_MSGENOSS "No sweptsine calibration data in frame"
#define FRAMEDATAH_MSGEDMRO "No IFO-DMRO data in frame"
#define FRAMEDATAH_MSGELOCK "No IFO-Lock data in frame"
#define FRAMEDATAH_MSGELOHI "No locklo/lockhi data in frame"
#define FRAMEDATAH_MSGESIZE "Invalid vector length"
#define FRAMEDATAH_MSGESSSZ "Bad sweptsine calibration data"
#if 0 /* autodoc block */
</lalErrTable>
<lalLaTeX>
\subsection*{Structures}
\begin{verbatim}
typedef struct
tagFrameData
{
INT4 inLock;
INT4 endOfData;
INT4 newLock;
INT4 newCalibration;
/* ... private data ... */
}
FrameData;
\end{verbatim}
This is the frame data parameter structure: think of it as something like a
file pointer to the frame data. The ``public'' fields are:
\begin{description}
\item[\texttt{inLock}] Boolean that user should set to non-zero if data tha
t
is not ``in lock'' according to the IFO\_Lock channel is desired.
\item[\texttt{endOfData}] Boolean that is non-zero if there is no more data
.
\item[\texttt{newLock}] Boolean that is non-zero if starting a new locked
section of data.
\item[\texttt{newCalibration}] Boolean that is non-zero if new calibration
data
is available.
\end{description}
</lalLaTeX>
#endif /* autodoc block */
typedef struct typedef struct
tagFrameData tagFrameData
{ {
/* /*
* *
* public data: * public data:
* *
*/ */
INT4 inLock; /* data aquisition mode */ INT4 inLock; /* data aquisition mode */
skipping to change at line 88 skipping to change at line 150
INT4 numLock; INT4 numLock;
INT4 curLock; INT4 curLock;
INT4 ratio; INT4 ratio;
REAL8 sampleRate; REAL8 sampleRate;
INT2 lockLow; INT2 lockLow;
INT2 lockHigh; INT2 lockHigh;
INT4 dataBreak; INT4 dataBreak;
} }
FrameData; FrameData;
#if 0 /* autodoc block */
<lalLaTeX>
\newpage\input{FrameDataC}
</lalLaTeX>
#endif /* autodoc block */
void void
LALInitializeFrameData ( LALInitializeFrameData (
LALStatus *status, LALStatus *status,
FrameData **frameData, FrameData **frameData,
CHAR *framePath CHAR *framePath
); );
void void
LALFinalizeFrameData ( LALFinalizeFrameData (
LALStatus *status, LALStatus *status,
skipping to change at line 115 skipping to change at line 185
FrameData *frameData FrameData *frameData
); );
void void
LALGetFrameDataResponse ( LALGetFrameDataResponse (
LALStatus *status, LALStatus *status,
COMPLEX8FrequencySeries *response, COMPLEX8FrequencySeries *response,
FrameData *frameData FrameData *frameData
); );
#if 0 /* autodoc block */
<lalLaTeX>
\newpage\input{FrameDataTestC}
</lalLaTeX>
#endif /* autodoc block */
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* _FRAMEDATA_H */ #endif /* _FRAMEDATA_H */
 End of changes. 6 change blocks. 
33 lines changed or deleted 114 lines changed or added


 IIRFilter.h   IIRFilter.h 
/************************************ <lalVerbatim file="IIRFilterHV"> /************************************ <lalVerbatim file="IIRFilterHV">
Author: Creighton, T. D. Author: Creighton, T. D.
$Id: IIRFilter.h,v 1.4 2000/07/23 01:15:14 jolien Exp $ $Id: IIRFilter.h,v 1.8 2001/08/21 04:19:53 jolien Exp $
************************************* </lalVerbatim> */ **************************************************** </lalVerbatim> */
/* <lalLaTeX> /********************************************************** <lalLaTeX>
\section{Header \texttt{IIRFilter.h}} \section{Header \texttt{IIRFilter.h}}
\label{s:IIRFilter.h} \label{s:IIRFilter.h}
Provides routines to make and apply IIR filters. Provides routines to make and apply IIR filters.
\subsection*{Synopsis} \subsection*{Synopsis}
\begin{verbatim} \begin{verbatim}
#include "IIRFilter.h" #include <lal/IIRFilter.h>
\end{verbatim} \end{verbatim}
\noindent This header covers routines that create, destroy, and apply \noindent This header covers routines that create, destroy, and apply
generic time-domain filters, given by objects of type generic time-domain filters, given by objects of type
\verb@<datatype>IIRFilter@, where \verb@<datatype>@ is either \verb@<datatype>IIRFilter@, where \verb@<datatype>@ is either
\verb@REAL4@ or \verb@REAL8@. \verb@REAL4@ or \verb@REAL8@.
An IIR (Infinite Impulse Response) filter is a generalized linear An IIR (Infinite Impulse Response) filter is a generalized linear
causal time-domain filter, in which the filter output $y_n=y(t_n)$ at causal time-domain filter, in which the filter output $y_n=y(t_n)$ at
any sampled time $t_n=t_0+n\Delta t$ is a linear combination of the any sampled time $t_n=t_0+n\Delta t$ is a linear combination of the
skipping to change at line 65 skipping to change at line 65
feeding data point by point to the filter, the filter needs only feeding data point by point to the filter, the filter needs only
``remember'' the previous $M$ or $N$ (whichever is larger) values of ``remember'' the previous $M$ or $N$ (whichever is larger) values of
$w$, rather than remembering the previous $M$ values of $x$ \emph{and} $w$, rather than remembering the previous $M$ values of $x$ \emph{and}
the previous $N$ values of $y$. Second, when filtering a large stored the previous $N$ values of $y$. Second, when filtering a large stored
data vector, the filter response can be computed in place: one first data vector, the filter response can be computed in place: one first
runs forward through the vector replacing $x$ with $w$, and then runs forward through the vector replacing $x$ with $w$, and then
backward replacing $w$ with $y$. backward replacing $w$ with $y$.
Although the IIR filters in these routines are explicitly real, one Although the IIR filters in these routines are explicitly real, one
can consider formally their complex response. A sinusoidal input can can consider formally their complex response. A sinusoidal input can
thus be written as $x_n=X\exp(2\pi ifn\Delta t)=z^n$, where $X$ is a thus be written as $x_n=X\exp(2\pi ifn\Delta t)=Xz^n$, where $X$ is a
complex amplitude and $z=\exp(2\pi if\Delta t)$ is a complex complex amplitude and $z=\exp(2\pi if\Delta t)$ is a complex
parametrization of the frequency. By linearity, the output must also parametrization of the frequency. By linearity, the output must also
be sinusoidal: $y_m=Y\exp(2\pi ifm\Delta t)=z^m$. Putting these into be sinusoidal: $y_m=Y\exp(2\pi ifm\Delta t)=Yz^m$. Putting these into
the bilinear equation, one can easily compute the filter's complex the bilinear equation, one can easily compute the filter's complex
transfer function: transfer function:
$$ $$
T(z) = \frac{Y}{X} = \frac{\sum_{k=0}^M c_k z^{-k}} T(z) = \frac{Y}{X} = \frac{\sum_{k=0}^M c_k z^{-k}}
{1 - \sum_{l=1}^N d_l z^{-l}} {1 - \sum_{l=1}^N d_l z^{-l}}
$$ $$
This can be readily converted to and from the ``zeros, poles, gain'' This can be readily converted to and from the ``zeros, poles, gain''
representation of a filter, which expresses $T(z)$ as a factored representation of a filter, which expresses $T(z)$ as a factored
rational function of $z$. rational function of $z$.
It should also be noted that, in the routines covered by this header, It should also be noted that, in the routines covered by this header,
I have adopted the convention of including a redundant recursive I have adopted the convention of including a redundant recursive
coefficient $d_0$, in order to make the indexing more intuitive. For coefficient $d_0$, in order to make the indexing more intuitive. For
formal correctness $d_0$ should be set to $-1$, although the filtering formal correctness $d_0$ should be set to $-1$, although the filtering
routines never actually use this coefficient. routines never actually use this coefficient.
</lalLaTeX> */ ******************************************************* </lalLaTeX> */
#ifndef _IIRFILTER_H #ifndef _IIRFILTER_H
#define _IIRFILTER_H #define _IIRFILTER_H
#include "LALStdlib.h" #include <lal/LALStdlib.h>
#include "ZPGFilter.h" #include <lal/ZPGFilter.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#pragma }
#endif #endif
NRCSID(IIRFILTERH,"$Id: IIRFilter.h,v 1.4 2000/07/23 01:15:14 jolien Exp $" NRCSID(IIRFILTERH,"$Id: IIRFilter.h,v 1.8 2001/08/21 04:19:53 jolien Exp $"
); );
/* <lalLaTeX>
/********************************************************** <lalLaTeX>
\subsection*{Error conditions} \subsection*{Error conditions}
****************************************** </lalLaTeX><lalErrTable> */
%\begin{tabular}{|c|l|l|} #define IIRFILTERH_ENUL 1
%\hline #define IIRFILTERH_EOUT 2
%status & status & Explanation \\ #define IIRFILTERH_EMEM 3
% code & description & \\ #define IIRFILTERH_EPAIR 4
%\hline
%\tt 1 & \tt Null pointer & Missing a required pointer. #define IIRFILTERH_MSGENUL "Unexpected null pointer in arguments"
\\ #define IIRFILTERH_MSGEOUT "Output handle points to a non-null pointer"
%\tt 2 & \tt Output already exists & Can't allocate to a non-null pointe #define IIRFILTERH_MSGEMEM "Memory allocation error"
r. \\ #define IIRFILTERH_MSGEPAIR "Input has unpaired nonreal poles or zeros"
%\tt 3 & \tt Memory allocation error & Could not allocate memory. /******************************************** </lalErrTable><lalLaTeX>
\\
%\tt 4 & \tt Input has unpaired & For real filters, complex poles or \subsection*{Types}
\\
% & \tt nonreal poles or zeros & zeros must come in conjugate pairs. \subsubsection*{Structure \texttt{<datatype>IIRFilter}}
\\ \idx[Type]{REAL4IIRFilter}
%\hline \idx[Type]{REAL8IIRFilter}
%\end{tabular}
This structure stores the direct and recursive filter coefficients, as
LALStatus codes are represented by the symbol well as the history of the auxiliary sequence $w$. \verb@<datatype>@
\verb@IIRFILTERH_E@\textit{name}. LALStatus descriptions are represented may be \verb@REAL4@ or \verb@REAL8@. The length of the history vector
by the symbol \verb@IIRFILTERH_MSGE@\textit{name}. gives the order of the filter. The fields are:
\begin{center}
\begin{tabular}{|lcp{4.5in}|}
\hline
\it name & code & description \\
\hline
\tt NUL & 1 & \vspace{-1.4ex}\tt "Arguments contain an unexpected null poi
nter" \\
\tt OUT & 2 & \vspace{-1.4ex}\tt "Output already exists; cannot allocate m
emory to a non-null pointer" \\
\tt MEM & 3 & \vspace{-1.4ex}\tt "Memory allocation failed" \\
\tt PAIR & 4 & \vspace{-1.4ex}\tt "Input contains nonreal poles or zeros th
at do not have complex conjugate pairs" \\
\hline
\end{tabular}
\end{center}
</lalLaTeX> */
/* <lalVerbati***> */
/* Missing a required pointer. */
#define IIRFILTER_ENUL 1
#define IIRFILTER_MSGENUL "Null pointer"
/* Can't allocate to a non-null pointer. */
#define IIRFILTER_EOUT 2
#define IIRFILTER_MSGEOUT "Output already exists"
/* Could not allocate memory. */
#define IIRFILTER_EMEM 3
#define IIRFILTER_MSGEMEM "Memory allocation error"
/* For real filters, complex poles or zeros must come in conjugate pairs. *
/
#define IIRFILTER_EPAIR 4
#define IIRFILTER_MSGEPAIR "Input has unpaired nonreal poles or zeros"
/* </lalVerbati***> */
/* <lalLaTeX>
\subsection*{Structures}
\begin{verbatim}
<datatype>IIRFilter
\end{verbatim}
\index{\verb&REAL4IIRFilter&}
\index{\verb&REAL8IIRFilter&}
\noindent This structure stores the direct and recursive filter
coefficients, as well as the history of the auxiliary sequence $w$.
\verb@<datatype>@ may be \verb@REAL4@ or \verb@REAL8@. The length of
the history vector gives the order of the filter. The fields are:
\begin{description} \begin{description}
\item[\texttt{CHAR *name}] A user-assigned name. \item[\texttt{CHAR *name}] A user-assigned name.
\item[\texttt{REAL8 deltaT}] The sampling time interval of the filter.
If $\leq0$, it will be ignored (i.e.\ it will be taken from the data
stream).
\item[\texttt{<datatype>Vector *directCoef}] The direct filter \item[\texttt{<datatype>Vector *directCoef}] The direct filter
coefficients. coefficients.
\item[\texttt{<datatype>Vector *recursCoef}] The recursive filter \item[\texttt{<datatype>Vector *recursCoef}] The recursive filter
coefficients. coefficients.
\item[\texttt{<datatype>Vector *history}] The previous values of $w$. \item[\texttt{<datatype>Vector *history}] The previous values of $w$.
\end{description} \end{description}
</lalLaTeX> */ ******************************************************* </lalLaTeX> */
typedef struct tagREAL4IIRFilter{ typedef struct tagREAL4IIRFilter{
CHAR *name; /* User assigned name. */ CHAR *name; /* User assigned name. */
REAL8 deltaT; /* Sampling time interval. */
REAL4Vector *directCoef; /* The direct filter coefficients. */ REAL4Vector *directCoef; /* The direct filter coefficients. */
REAL4Vector *recursCoef; /* The recursive filter coefficients. */ REAL4Vector *recursCoef; /* The recursive filter coefficients. */
REAL4Vector *history; /* The previous values of w. */ REAL4Vector *history; /* The previous values of w. */
} REAL4IIRFilter; } REAL4IIRFilter;
typedef struct tagREAL8IIRFilter{ typedef struct tagREAL8IIRFilter{
CHAR *name; /* User assigned name. */ CHAR *name; /* User assigned name. */
REAL8 deltaT; /* Sampling time interval. */
REAL8Vector *directCoef; /* The direct filter coefficients. */ REAL8Vector *directCoef; /* The direct filter coefficients. */
REAL8Vector *recursCoef; /* The recursive filter coefficients. */ REAL8Vector *recursCoef; /* The recursive filter coefficients. */
REAL8Vector *history; /* The previous values of w. */ REAL8Vector *history; /* The previous values of w. */
} REAL8IIRFilter; } REAL8IIRFilter;
/* <lalLaTeX> /* <lalLaTeX>
\vfill{\footnotesize\input{IIRFilterHV}} \vfill{\footnotesize\input{IIRFilterHV}}
</lalLaTeX> */ </lalLaTeX> */
/* Function prototypes. */ /* Function prototypes. */
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{CreateIIRFilterC} \newpage\input{CreateIIRFilterC}
</lalLaTeX> */ </lalLaTeX> */
void LALCreateREAL4IIRFilter(LALStatus *stat, void
REAL4IIRFilter **output, LALCreateREAL4IIRFilter( LALStatus *stat,
COMPLEX8ZPGFilter *input); REAL4IIRFilter **output,
COMPLEX8ZPGFilter *input );
void LALCreateREAL8IIRFilter(LALStatus *stat,
REAL8IIRFilter **output, void
COMPLEX16ZPGFilter *input); LALCreateREAL8IIRFilter( LALStatus *stat,
REAL8IIRFilter **output,
COMPLEX16ZPGFilter *input );
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{DestroyIIRFilterC} \newpage\input{DestroyIIRFilterC}
</lalLaTeX> */ </lalLaTeX> */
void LALDestroyREAL4IIRFilter(LALStatus *stat, void
REAL4IIRFilter **input); LALDestroyREAL4IIRFilter( LALStatus *stat,
REAL4IIRFilter **input );
void LALDestroyREAL8IIRFilter(LALStatus *stat,
REAL8IIRFilter **input); void
LALDestroyREAL8IIRFilter( LALStatus *stat,
REAL8IIRFilter **input );
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{IIRFilterC} \newpage\input{IIRFilterC}
</lalLaTeX> */ </lalLaTeX> */
void LALIIRFilterREAL4(LALStatus *stat, void
REAL4 *output, LALIIRFilterREAL4( LALStatus *stat,
REAL4 input, REAL4 *output,
REAL4IIRFilter *filter); REAL4 input,
REAL4IIRFilter *filter );
void LALIIRFilterREAL8(LALStatus *stat,
REAL8 *output, void
REAL8 input, LALIIRFilterREAL8( LALStatus *stat,
REAL8IIRFilter *filter); REAL8 *output,
REAL8 input,
REAL8IIRFilter *filter );
REAL4 LALSIIRFilter(REAL4 x, REAL4IIRFilter *filter); REAL4
LALSIIRFilter( REAL4 x, REAL4IIRFilter *filter );
REAL8 LALDIIRFilter(REAL8 x, REAL8IIRFilter *filter); REAL8
LALDIIRFilter( REAL8 x, REAL8IIRFilter *filter );
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{IIRFilterVectorC} \newpage\input{IIRFilterVectorC}
</lalLaTeX> */ </lalLaTeX> */
void LALIIRFilterREAL4Vector(LALStatus *stat, void
REAL4Vector *vector, LALIIRFilterREAL4Vector( LALStatus *stat,
REAL4IIRFilter *filter); REAL4Vector *vector,
REAL4IIRFilter *filter );
void LALIIRFilterREAL8Vector(LALStatus *stat,
REAL8Vector *vector, void
REAL8IIRFilter *filter); LALIIRFilterREAL8Vector( LALStatus *stat,
REAL8Vector *vector,
REAL8IIRFilter *filter );
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{IIRFilterVectorRC} \newpage\input{IIRFilterVectorRC}
</lalLaTeX> */ </lalLaTeX> */
void LALIIRFilterREAL4VectorR(LALStatus *stat, void
REAL4Vector *vector, LALIIRFilterREAL4VectorR( LALStatus *stat,
REAL4IIRFilter *filter); REAL4Vector *vector,
REAL4IIRFilter *filter );
void LALIIRFilterREAL8VectorR(LALStatus *stat,
REAL8Vector *vector, void
REAL8IIRFilter *filter); LALIIRFilterREAL8VectorR( LALStatus *stat,
REAL8Vector *vector,
REAL8IIRFilter *filter );
/* <lalLaTeX> /* <lalLaTeX>
\newpage\input{IIRFilterTestC} \newpage\input{IIRFilterTestC}
</lalLaTeX> */ </lalLaTeX> */
#ifdef __cplusplus #ifdef __cplusplus
#pragma {
} }
#endif #endif
#endif /* _IIRFILTER_H */ #endif /* _IIRFILTER_H */
 End of changes. 23 change blocks. 
124 lines changed or deleted 92 lines changed or added


 Integrate.h   Integrate.h 
/*----------------------------------------------------------------------- #if 0 /* autodoc block */
*
* File Name: Integrate.h <lalVerbatim file="IntegrateHV">
* $Id: Integrate.h,v 1.6 2001/02/22 00:27:08 jolien Exp $
* Revision: $Id: Integrate.h,v 1.4 2000/07/23 01:15:53 jolien Exp $ </lalVerbatim>
*
*----------------------------------------------------------------------- <lalLaTeX>
*/
\section{Header \texttt{Integrate.h}}
\label{s:Integrate.h}
Integrates a function.
\subsection*{Synopsis}
\begin{verbatim}
#include <lal/Integrate.h>
\end{verbatim}
\noindent This header covers the routines for integrating a function.
</lalLaTeX>
#endif /* autodoc block */
#ifndef _INTEGRATE_H #ifndef _INTEGRATE_H
#define _INTEGRATE_H #define _INTEGRATE_H
#include "LALDatatypes.h" #include <lal/LALDatatypes.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
NRCSID (INTEGRATEH, "$Id: Integrate.h,v 1.4 2000/07/23 01:15:53 jolien Exp NRCSID (INTEGRATEH, "$Id: Integrate.h,v 1.6 2001/02/22 00:27:08 jolien Exp
$"); $");
#if 0 /* autodoc block */
<lalLaTeX>
\subsection*{Error conditions}
\input{IntegrateHErrTab}
</lalLaTeX>
<lalErrTable file="IntegrateHErrTab">
#endif /* autodoc block */
#define INTEGRATEH_ENULL 1
#define INTEGRATEH_ETYPE 2
#define INTEGRATEH_EIDOM 4
#define INTEGRATEH_EMXIT 8
#define INTEGRATEH_MSGENULL "Null pointer"
#define INTEGRATEH_MSGETYPE "Unknown integral type"
#define INTEGRATEH_MSGEIDOM "Invalid domain"
#define INTEGRATEH_MSGEMXIT "Maximum iterations exceeded"
#define INTEGRATE_ENULL 1 #if 0 /* autodoc block */
#define INTEGRATE_ETYPE 2
#define INTEGRATE_EIDOM 4 </lalErrTable>
#define INTEGRATE_EMXIT 8
<lalLaTeX>
#define INTEGRATE_MSGENULL "Null pointer"
#define INTEGRATE_MSGETYPE "Unknown integral type" \subsection*{Structures}
#define INTEGRATE_MSGEIDOM "Invalid domain"
#define INTEGRATE_MSGEMXIT "Maximum iterations exceeded" \begin{verbatim}
typedef void (REAL4LALFunction) (LALStatus *s, REAL4 *y, REAL4 x, void *p);
typedef void (REAL8LALFunction) (LALStatus *s, REAL8 *y, REAL8 x, void *p);
\end{verbatim}
These are function pointers to functions that map real numbers to real numb
ers.
\begin{verbatim}
typedef enum
{
ClosedInterval,
OpenInterval,
SingularLowerLimit,
SingularUpperLimit,
InfiniteDomainPow,
InfiniteDomainExp
}
IntegralType;
typedef struct
tagSIntegrateIn
{
REAL4LALFunction *function;
REAL4 xmax;
REAL4 xmin;
IntegralType type;
}
SIntegrateIn;
typedef struct
tagDIntegrateIn
{
REAL8LALFunction *function;
REAL8 xmax;
REAL8 xmin;
IntegralType type;
}
DIntegrateIn;
\end{verbatim}
These are input structures to the integration routines. The fields are:
\begin{description}
\item[\texttt{function}] The function to integrate.
\item[\texttt{xmax}] The maximum value of the domain of integration.
\item[\texttt{xmax}] The minimum value of the domain of integration.
\item[\texttt{type}] The type of integration. This is an enumerated type
which can take on one of the following values:
\noindent
\begin{tabular}{|l|l|}
\hline
Enumeration constant & Meaning \\
\hline
\verb+ClosedInterval+ & Evaluate integral on a closed interval \\
\verb+OpenInterval+ & Evaluate integral on an open interval \\
\verb+SingularLowerLimit+ & Integrate an inverse square-root singularity
at lower limit \\
\verb+SingularUpperLimit+ & Integrate an inverse square-root singularity
at upper limit \\
\verb+InfiniteDomainPow+ & Integrate an infinite domain with power-law f
alloff \\
\verb+InfiniteDomainExp+ & Integrate an infinite domain with exponential
falloff \\
\hline
\end{tabular}
\noindent
The types of integration are the following: I.\@ \verb+ClosedInterval+
indicates that the integral should be computed on equal-spaced domain
intervals including the boundary. II.\@ \verb+OpenInterval+ indicates th
at
the integral should be computed on intervals of the domain not including
the
boundary. III.\@ \verb+SingularLowerLimit+ indicates that the integral
should be evaluated on an open interval with a transformation so that a
inverse-square-root singularity at the lower limit can be integrated. IV
.\@
\verb+SingularUpperLimit+ is the same as above but for a singularity at t
he
upper limit. V.\@ \verb+InfiniteDomainPow+ indicates that the integral
should be evaluated over an semi-infinite domain---appropriate when both
limits have the same sign (though one is very large) and when the integra
nd
vanishes faster than $x^{-1}$ at infinity. VI.\@ \verb+InfiniteDomainExp
+
indicates that the integral should be evaluated over an infinite domain
starting at \verb+xmin+ and going to infinity (\verb+xmax+ is ignored)---
the
integrand should vanish exponentially for large $x$.
\end{description}
</lalLaTeX>
#endif /* autodoc block */
typedef void (REAL4LALFunction) (LALStatus *s, REAL4 *y, REAL4 x, void *p); typedef void (REAL4LALFunction) (LALStatus *s, REAL4 *y, REAL4 x, void *p);
typedef void (REAL8LALFunction) (LALStatus *s, REAL8 *y, REAL8 x, void *p); typedef void (REAL8LALFunction) (LALStatus *s, REAL8 *y, REAL8 x, void *p);
typedef enum typedef enum
{ {
ClosedInterval, /* evaluate integral on a closed interval */ ClosedInterval, /* evaluate integral on a closed interval */
OpenInterval, /* evaluate integral on an open interval */ OpenInterval, /* evaluate integral on an open interval */
SingularLowerLimit, /* integrate an inv sqrt singularity at lower limit */ SingularLowerLimit, /* integrate an inv sqrt singularity at lower limit */
SingularUpperLimit, /* integrate an inv sqrt singularity at upper limit */ SingularUpperLimit, /* integrate an inv sqrt singularity at upper limit */
skipping to change at line 65 skipping to change at line 183
typedef struct typedef struct
tagDIntegrateIn tagDIntegrateIn
{ {
REAL8LALFunction *function; REAL8LALFunction *function;
REAL8 xmax; REAL8 xmax;
REAL8 xmin; REAL8 xmin;
IntegralType type; IntegralType type;
} }
DIntegrateIn; DIntegrateIn;
#if 0 /* autodoc block */
<lalLaTeX>
\newpage\input{IntegrateC}
</lalLaTeX>
#endif /* autodoc block */
void void
LALSRombergIntegrate ( LALSRombergIntegrate (
LALStatus *status, LALStatus *status,
REAL4 *result, REAL4 *result,
SIntegrateIn *input, SIntegrateIn *input,
void *params void *params
); );
void void
LALDRombergIntegrate ( LALDRombergIntegrate (
LALStatus *status, LALStatus *status,
REAL8 *result, REAL8 *result,
DIntegrateIn *input, DIntegrateIn *input,
void *params void *params
); );
#if 0 /* autodoc block */
<lalLaTeX>
\newpage\input{IntegrateTestC}
</lalLaTeX>
#endif /* autodoc block */
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* _INTEGRATE_H */ #endif /* _INTEGRATE_H */
 End of changes. 6 change blocks. 
20 lines changed or deleted 166 lines changed or added


 Interpolate.h   Interpolate.h 
/*----------------------------------------------------------------------- #if 0 /* autodoc block */
*
* File Name: Interpolate.h <lalVerbatim file="InterpolateHV">
* $Id: Interpolate.h,v 1.6 2001/02/22 00:27:08 jolien Exp $
* Revision: $Id: Interpolate.h,v 1.4 2000/07/23 01:15:53 jolien Exp $ </lalVerbatim>
*
*----------------------------------------------------------------------- <lalLaTeX>
*/
\section{Header \texttt{Interpolate.h}}
\label{s:Interpolate.h}
Generates random numbers.
\subsection*{Synopsis}
\begin{verbatim}
#include <lal/Interpolate.h>
\end{verbatim}
\noindent This header covers the routines for interpolation.
</lalLaTeX>
#endif /* autodoc block */
#ifndef _INTERPOLATE_H #ifndef _INTERPOLATE_H
#define _INTERPOLATE_H #define _INTERPOLATE_H
#include "LALDatatypes.h" #include <lal/LALDatatypes.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
NRCSID (INTERPOLATEH, "$Id: Interpolate.h"); NRCSID (INTERPOLATEH, "$Id: Interpolate.h");
#define INTERPOLATE_ENULL 1 #if 0 /* autodoc block */
#define INTERPOLATE_ESIZE 2
#define INTERPOLATE_EZERO 4 <lalLaTeX>
\subsection*{Error conditions}
#define INTERPOLATE_MSGENULL "Null pointer" \input{InterpolateHErrTab}
#define INTERPOLATE_MSGESIZE "Invalid size" </lalLaTeX>
#define INTERPOLATE_MSGEZERO "Zero divide"
<lalErrTable file="InterpolateHErrTab">
#endif /* autodoc block */
#define INTERPOLATEH_ENULL 1
#define INTERPOLATEH_ESIZE 2
#define INTERPOLATEH_EZERO 4
#define INTERPOLATEH_MSGENULL "Null pointer"
#define INTERPOLATEH_MSGESIZE "Invalid size"
#define INTERPOLATEH_MSGEZERO "Zero divide"
#if 0 /* autodoc block */
</lalErrTable>
<lalLaTeX>
\subsection*{Structures}
\begin{verbatim}
typedef struct typedef struct
tagSInterpolateOut tagSInterpolateOut
{ {
REAL4 y; REAL4 y;
REAL4 dy; REAL4 dy;
} }
SInterpolateOut; SInterpolateOut;
typedef struct typedef struct
tagDInterpolateOut tagDInterpolateOut
{ {
REAL8 y; REAL8 y;
REAL8 dy; REAL8 dy;
} }
DInterpolateOut; DInterpolateOut;
\end{verbatim}
These structures contain the output of the interpolation. The two fields a
re:
\begin{description}
\item[\texttt{y}] The interpolated value.
\item[\texttt{dy}] The estimated error in the interpolated value.
\end{description}
\begin{verbatim}
typedef struct typedef struct
tagSInterpolatePar tagSInterpolatePar
{ {
UINT4 n; UINT4 n;
REAL4 *x; REAL4 *x;
REAL4 *y; REAL4 *y;
} }
SInterpolatePar; SInterpolatePar;
typedef struct typedef struct
tagDInterpolatePar tagDInterpolatePar
{ {
UINT4 n; UINT4 n;
REAL8 *x; REAL8 *x;
REAL8 *y; REAL8 *y;
} }
DInterpolatePar; DInterpolatePar;
\end{verbatim}
These structures contain the interpolation parameters. These are the array
s
of \verb+n+ domain values \verb+x[0]+\ldots\verb+x[n-1]+ and their
corresponding values \verb+y[0]+\ldots\verb+y[n-1]+. The fields are:
\begin{description}
\item[\texttt{n}] The number of points in the arrays to use in the
interpolation.
\item[\texttt{x}] The array of domain values.
\item[\texttt{y}] The array of values to interpolate.
\end{description}
</lalLaTeX>
#endif /* autodoc block */
typedef struct
tagSInterpolateOut
{
REAL4 y;
REAL4 dy;
}
SInterpolateOut;
typedef struct
tagDInterpolateOut
{
REAL8 y;
REAL8 dy;
}
DInterpolateOut;
typedef struct
tagSInterpolatePar
{
UINT4 n;
REAL4 *x;
REAL4 *y;
}
SInterpolatePar;
typedef struct
tagDInterpolatePar
{
UINT4 n;
REAL8 *x;
REAL8 *y;
}
DInterpolatePar;
#if 0 /* autodoc block */
<lalLaTeX>
\newpage\input{InterpolateC}
</lalLaTeX>
#endif /* autodoc block */
void void
LALSPolynomialInterpolation ( LALSPolynomialInterpolation (
LALStatus *status, LALStatus *status,
SInterpolateOut *output, SInterpolateOut *output,
REAL4 target, REAL4 target,
SInterpolatePar *params SInterpolatePar *params
); );
void void
LALDPolynomialInterpolation ( LALDPolynomialInterpolation (
LALStatus *status, LALStatus *status,
DInterpolateOut *output, DInterpolateOut *output,
REAL8 target, REAL8 target,
DInterpolatePar *params DInterpolatePar *params
); );
#if 0 /* autodoc block */
<lalLaTeX>
\newpage\input{InterpolateTestC}
</lalLaTeX>
#endif /* autodoc block */
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* _INTERPOLATE_H */ #endif /* _INTERPOLATE_H */
 End of changes. 8 change blocks. 
16 lines changed or deleted 126 lines changed or added


 LALAtomicDatatypes.h   LALAtomicDatatypes.h 
/*************************** <lalVerbatim file="LALAtomicDatatypesHV"> /*************************** <lalVerbatim file="LALAtomicDatatypesHV">
Author: Finn, L. S. Author: J. D. E. Creighton, T. D. Creighton
$Id: LALAtomicDatatypes.h,v 1.3 2000/06/29 22:42:06 jolien Exp $ $Id: LALAtomicDatatypes.h,v 1.5 2001/12/01 22:09:43 jolien Exp $
**************************** </lalVerbatim> */ **************************** </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\subsection{Primitive datatypes} \subsection{Primitive datatypes}
\label{ss:LALAtomicDatatypes.h} \label{ss:LALAtomicDatatypes.h}
The primitive datatypes are defined in a separate header The primitive datatypes are defined in a separate header
\verb@LALAtomicDatatypes.h@, which is included by \verb@LALAtomicDatatypes.h@, which is included by
\verb@LALDatatypes.h@. This is done in order to facilitate the \verb@LALDatatypes.h@. This is done in order to facilitate the
skipping to change at line 99 skipping to change at line 99
used to represent the binary number in decimal notation: the first is used to represent the binary number in decimal notation: the first is
the maximum number of digits that are guaranteed not to change upon the maximum number of digits that are guaranteed not to change upon
conversion to binary, the second is the number of digits required to conversion to binary, the second is the number of digits required to
represent a unique binary quantity. represent a unique binary quantity.
</lalLaTeX> */ </lalLaTeX> */
#ifndef _LALATOMICDATATYPES_H #ifndef _LALATOMICDATATYPES_H
#define _LALATOMICDATATYPES_H #define _LALATOMICDATATYPES_H
#ifdef LDAS_BUILD
#include "LDASConfig.h"
#else
#include "LALConfig.h"
#include "LALRCSID.h"
NRCSID( LALATOMICDATATYPESH, "$Id: LALAtomicDatatypes.h,v 1.3 2000/06/29 22
:42:06 jolien Exp $" );
#endif
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
typedef char CHAR; typedef char CHAR;
typedef unsigned char UCHAR; typedef unsigned char UCHAR;
typedef unsigned char BOOLEAN; typedef unsigned char BOOLEAN;
#ifdef LDAS_BUILD
#include <lal/LDASConfig.h>
/* Integer types */ /* Integer types */
#if SIZEOF_SHORT == 2 #if SIZEOF_SHORT == 2
typedef short INT2; typedef short INT2;
typedef unsigned short UINT2; typedef unsigned short UINT2;
#elif SIZEOF_INT == 2 #elif SIZEOF_INT == 2
typedef int INT2; typedef int INT2;
typedef unsigned int UINT2; typedef unsigned int UINT2;
#else #else
# error "ERROR: NO 2 BYTE INTEGER FOUND" # error "ERROR: NO 2 BYTE INTEGER FOUND"
skipping to change at line 161 skipping to change at line 157
#else #else
# error "ERROR: NO 4 BYTE REAL FOUND" # error "ERROR: NO 4 BYTE REAL FOUND"
#endif #endif
#if SIZEOF_DOUBLE == 8 #if SIZEOF_DOUBLE == 8
typedef double REAL8; typedef double REAL8;
#else #else
# error "ERROR: NO 8 BYTE REAL FOUND" # error "ERROR: NO 8 BYTE REAL FOUND"
#endif #endif
#else /* ! LDAS_BUILD */
#include <lal/LALConfig.h>
#include <lal/LALRCSID.h>
NRCSID( LALATOMICDATATYPESH, "$Id: LALAtomicDatatypes.h,v 1.5 2001/12/01 22
:09:43 jolien Exp $" );
/* Integer types */
#if LAL_SIZEOF_SHORT == 2
typedef short INT2;
typedef unsigned short UINT2;
#elif LAL_SIZEOF_INT == 2
typedef int INT2;
typedef unsigned int UINT2;
#else
# error "ERROR: NO 2 BYTE INTEGER FOUND"
#endif
#if LAL_SIZEOF_INT == 4
typedef int INT4;
typedef unsigned int UINT4;
#elif LAL_SIZEOF_LONG == 4
typedef long INT4;
typedef unsigned long UINT4;
#else
# error "ERROR: NO 4 BYTE INTEGER FOUND"
#endif
#if LAL_SIZEOF_LONG == 8
typedef long INT8;
typedef unsigned long UINT8;
#elif LAL_SIZEOF_LONG_LONG == 8
typedef long long INT8;
typedef unsigned long long UINT8;
#else
# error "ERROR: NO 8 BYTE INTEGER FOUND"
#endif
/* Real types */
#if LAL_SIZEOF_FLOAT == 4
typedef float REAL4;
#else
# error "ERROR: NO 4 BYTE REAL FOUND"
#endif
#if LAL_SIZEOF_DOUBLE == 8
typedef double REAL8;
#else
# error "ERROR: NO 8 BYTE REAL FOUND"
#endif
#endif /* LDAS_BUILD */
/* <lalLaTeX> /* <lalLaTeX>
\subsubsection*{Complex datatypes} \subsubsection*{Complex datatypes}
LAL represents complex numbers as structures with two floating-point LAL represents complex numbers as structures with two floating-point
fields, storing the real and imaginary parts. These are considered fields, storing the real and imaginary parts. These are considered
primitive datatypes (rather than aggregate or structured datatypes) primitive datatypes (rather than aggregate or structured datatypes)
because they conceptually represent a single number. Furthermore, because they conceptually represent a single number. Furthermore,
atomic and complex datatypes are treated equivalently by LAL aggregate atomic and complex datatypes are treated equivalently by LAL aggregate
and structured datatypes. and structured datatypes.
 End of changes. 4 change blocks. 
11 lines changed or deleted 61 lines changed or added


 LALConfig.h   LALConfig.h 
/* include/lal/LALConfig.h. Generated automatically by configure. */
/* only include this file if LAL's config.h has not been included */
#ifndef CONFIG_H__LAL
#ifndef _LALCONFIG_H #ifndef _LALCONFIG_H
#define _LALCONFIG_H #define _LALCONFIG_H
#include "LALConfigure.h"
/* LAL Version */
#define LAL_VERSION "0.10"
/* LAL Version Major Number */
#define LAL_VERSION_MAJOR 0
/* LAL Version Minor Number */
#define LAL_VERSION_MINOR 10
/* LAL Configure Arguments */
#define LAL_CONFIGURE_ARGS " --enable-shared --prefix=/home/ut/testing/lal/
0.10 --exec-prefix=/home/ut/testing/lal/0.10 --sysconfdir=/home/ut/testing/
lal/0.10 --datadir=/home/ut/testing/lal/0.10/share"
/* LAL Configure Date */
#define LAL_CONFIGURE_DATE "2013/11/20 00:35:34 UTC"
/* The number of bytes in a double. */
#define LAL_SIZEOF_DOUBLE 8
/* The number of bytes in a float. */
#define LAL_SIZEOF_FLOAT 4
/* The number of bytes in a int. */
#define LAL_SIZEOF_INT 4
/* The number of bytes in a long. */
#define LAL_SIZEOF_LONG 4
/* The number of bytes in a long long. */
#define LAL_SIZEOF_LONG_LONG 8
/* The number of bytes in a short. */
#define LAL_SIZEOF_SHORT 2
/* Suppress debugging code */
/* #undef LAL_NDEBUG */
/* Use functions rather than macros */
/* #undef NOLALMACROS */
/* Use pthread mutex lock for threadsafety */
/* #undef LAL_PTHREAD_LOCK */
/* Define if using Frame library */
/* #undef LAL_FRAME_ENABLED */
/* Define if using MPI */
/* #undef LAL_MPI_ENABLED */
#endif /* _LALCONFIG_H */ #endif /* _LALCONFIG_H */
#endif /* CONFIG_H__LAL */
 End of changes. 3 change blocks. 
1 lines changed or deleted 55 lines changed or added


 LALConstants.h   LALConstants.h 
/********************************* <lalVerbatim file="LALConstantsHV"> /********************************* <lalVerbatim file="LALConstantsHV">
Author: Creighton, T. D. Author: Creighton, T. D.
$Id: LALConstants.h,v 1.4 2000/06/03 21:38:59 jolien Exp $ $Id: LALConstants.h,v 1.9 2001/08/21 04:19:52 jolien Exp $
********************************** </lalVerbatim> */ ********************************** </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\section{Header \texttt{LALConstants.h}} \section{Header \texttt{LALConstants.h}}
\label{s:LALConstants.h} \label{s:LALConstants.h}
Provides standard numerical constants for LAL. Provides standard numerical constants for LAL.
\subsection*{Synopsis} \subsection*{Synopsis}
\begin{verbatim} \begin{verbatim}
#include "LALConstants.h" #include <lal/LALConstants.h>
\end{verbatim} \end{verbatim}
\noindent This header defines a number of useful numerical constants \noindent This header defines a number of useful numerical constants
for use in LAL routines. These constants come in three basic for use in LAL routines. These constants come in three basic
flavours: arithmetic and mathematical constants, fundamental (or flavours: arithmetic and mathematical constants, fundamental (or
defined) physical constants, and measured astrophysical and defined) physical constants, and measured astrophysical and
cosmological parameters. cosmological parameters.
Note that, unlike the other headers in the \verb@std@ package, this Note that, unlike the other headers in the \verb@std@ package, this
header is \emph{not} included automatically by the header header is \emph{not} included automatically by the header
\verb@LALStdlib.h@. Include it explicitly if you need any of these \verb@LALStdlib.h@. Include it explicitly if you need any of these
constants. constants.
</lalLaTeX> */ </lalLaTeX> */
#ifndef _LALCONSTANTS_H #ifndef _LALCONSTANTS_H
#define _LALCONSTANTS_H #define _LALCONSTANTS_H
#include "LALRCSID.h" #include <lal/LALRCSID.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
NRCSID (LALCONSTANTSH, "$Id: LALConstants.h,v 1.4 2000/06/03 21:38:59 jolie n Exp $"); NRCSID (LALCONSTANTSH, "$Id: LALConstants.h,v 1.9 2001/08/21 04:19:52 jolie n Exp $");
/* <lalLaTeX> /* <lalLaTeX>
\subsection*{Mathematical constants} \subsection*{Mathematical constants}
\idx[Constant]{LAL\_REAL4\_MANT}
\idx[Constant]{LAL\_REAL4\_MAX}
\idx[Constant]{LAL\_REAL4\_MIN}
\idx[Constant]{LAL\_REAL4\_EPS}
\idx[Constant]{LAL\_REAL8\_MANT}
\idx[Constant]{LAL\_REAL8\_MAX}
\idx[Constant]{LAL\_REAL8\_MIN}
\idx[Constant]{LAL\_REAL8\_EPS}
\idx[Constant]{LAL\_E}
\idx[Constant]{LAL\_LOG2E}
\idx[Constant]{LAL\_LOG10E}
\idx[Constant]{LAL\_LN2}
\idx[Constant]{LAL\_LN10}
\idx[Constant]{LAL\_SQRT2}
\idx[Constant]{LAL\_SQRT1\_2}
\idx[Constant]{LAL\_GAMMA}
\idx[Constant]{LAL\_PI}
\idx[Constant]{LAL\_TWOPI}
\idx[Constant]{LAL\_PI\_2}
\idx[Constant]{LAL\_PI\_4}
\idx[Constant]{LAL\_1\_PI}
\idx[Constant]{LAL\_2\_PI}
\idx[Constant]{LAL\_2\_SQRTPI}
\idx[Constant]{LAL\_PI\_180}
\idx[Constant]{LAL\_180\_PI}
The following constants define the precision and range of The following constants define the precision and range of
floating-point arithmetic in LAL. They are taken from the IEEE floating-point arithmetic in LAL. They are taken from the IEEE
standard~754 for binary arithmetic. All numbers are dimensionless. standard~754 for binary arithmetic. All numbers are dimensionless.
\begin{center} \begin{center}
\begin{tabular}{|lll|} \begin{tabular}{|lll|}
\hline \hline
Name & Value & Description \\ Name & Value & Description \\
\hline \hline
skipping to change at line 122 skipping to change at line 147
\tt LAL\_SQRT2 & 1.4142135623730950488016887242096981 & $\sqrt{2}$ \\ \tt LAL\_SQRT2 & 1.4142135623730950488016887242096981 & $\sqrt{2}$ \\
\tt LAL\_SQRT1\_2 & 0.7071067811865475244008443621048490 & $1/\sqrt{2}$ \\ \tt LAL\_SQRT1\_2 & 0.7071067811865475244008443621048490 & $1/\sqrt{2}$ \\
\tt LAL\_GAMMA & 0.5772156649015328606065120900824024 & $\gamma$ \\ \tt LAL\_GAMMA & 0.5772156649015328606065120900824024 & $\gamma$ \\
\tt LAL\_PI & 3.1415926535897932384626433832795029 & $\pi$ \\ \tt LAL\_PI & 3.1415926535897932384626433832795029 & $\pi$ \\
\tt LAL\_TWOPI & 6.2831853071795864769252867665590058 & $2\pi$ \\ \tt LAL\_TWOPI & 6.2831853071795864769252867665590058 & $2\pi$ \\
\tt LAL\_PI\_2 & 1.5707963267948966192313216916397514 & $\pi/2$ \\ \tt LAL\_PI\_2 & 1.5707963267948966192313216916397514 & $\pi/2$ \\
\tt LAL\_PI\_4 & 0.7853981633974483096156608458198757 & $\pi/4$ \\ \tt LAL\_PI\_4 & 0.7853981633974483096156608458198757 & $\pi/4$ \\
\tt LAL\_1\_PI & 0.3183098861837906715377675267450287 & $1/\pi$ \\ \tt LAL\_1\_PI & 0.3183098861837906715377675267450287 & $1/\pi$ \\
\tt LAL\_2\_PI & 0.6366197723675813430755350534900574 & $2/\pi$ \\ \tt LAL\_2\_PI & 0.6366197723675813430755350534900574 & $2/\pi$ \\
\tt LAL\_2\_SQRTPI & 1.1283791670955125738961589031215452 & $2/\sqrt{\pi}$ \\ \tt LAL\_2\_SQRTPI & 1.1283791670955125738961589031215452 & $2/\sqrt{\pi}$ \\
\tt LAL\_PI\_180 & 1.7453292519943295769236907684886127$\times10^{-2}$ &
$\pi/180$ \\
\tt LAL\_180\_PI & 57.295779513082320876798154814105170 & $180/\pi$ \\
\hline \hline
\end{tabular} \end{tabular}
\end{center} \end{center}
</lalLaTeX> */ </lalLaTeX> */
#define LAL_E 2.7182818284590452353602874713526625L /* e */ #define LAL_E 2.7182818284590452353602874713526625L /* e */
#define LAL_LOG2E 1.4426950408889634073599246810018922L /* log_2 e */ #define LAL_LOG2E 1.4426950408889634073599246810018922L /* log_2 e */
#define LAL_LOG10E 0.4342944819032518276511289189166051L /* log_10 e */ #define LAL_LOG10E 0.4342944819032518276511289189166051L /* log_10 e */
#define LAL_LN2 0.6931471805599453094172321214581766L /* log_e 2 */ #define LAL_LN2 0.6931471805599453094172321214581766L /* log_e 2 */
skipping to change at line 144 skipping to change at line 172
#define LAL_SQRT1_2 0.7071067811865475244008443621048490L /* 1/sqrt(2) * / #define LAL_SQRT1_2 0.7071067811865475244008443621048490L /* 1/sqrt(2) * /
#define LAL_GAMMA 0.5772156649015328606065120900824024L /* gamma */ #define LAL_GAMMA 0.5772156649015328606065120900824024L /* gamma */
/* Assuming we're not near a black hole or in Tennessee... */ /* Assuming we're not near a black hole or in Tennessee... */
#define LAL_PI 3.1415926535897932384626433832795029L /* pi */ #define LAL_PI 3.1415926535897932384626433832795029L /* pi */
#define LAL_TWOPI 6.2831853071795864769252867665590058L /* 2*pi */ #define LAL_TWOPI 6.2831853071795864769252867665590058L /* 2*pi */
#define LAL_PI_2 1.5707963267948966192313216916397514L /* pi/2 */ #define LAL_PI_2 1.5707963267948966192313216916397514L /* pi/2 */
#define LAL_PI_4 0.7853981633974483096156608458198757L /* pi/4 */ #define LAL_PI_4 0.7853981633974483096156608458198757L /* pi/4 */
#define LAL_1_PI 0.3183098861837906715377675267450287L /* 1/pi */ #define LAL_1_PI 0.3183098861837906715377675267450287L /* 1/pi */
#define LAL_2_PI 0.6366197723675813430755350534900574L /* 2/pi */ #define LAL_2_PI 0.6366197723675813430755350534900574L /* 2/pi */
#define LAL_2_SQRTPI 1.1283791670955125738961589031215452L /* 2/sqrt(pi) */ #define LAL_2_SQRTPI 1.1283791670955125738961589031215452L /* 2/sqrt(pi) */
#define LAL_PI_180 1.7453292519943295769236907684886127e-2L /* pi/180 */
#define LAL_180_PI 57.295779513082320876798154814105170L /* 180/pi */
/* <lalLaTeX> /* <lalLaTeX>
\subsection*{Physical constants} \subsection*{Physical constants}
\idx[Constant]{LAL\_C\_SI}
\idx[Constant]{LAL\_EPSILON0\_SI}
\idx[Constant]{LAL\_MU0\_SI}
\idx[Constant]{LAL\_GEARTH\_SI}
\idx[Constant]{LAL\_PATM\_SI}
\idx[Constant]{LAL\_G\_SI}
\idx[Constant]{LAL\_H\_SI}
\idx[Constant]{LAL\_HBAR\_SI}
\idx[Constant]{LAL\_MPL\_SI}
\idx[Constant]{LAL\_LPL\_SI}
\idx[Constant]{LAL\_TPL\_SI}
\idx[Constant]{LAL\_K\_SI}
\idx[Constant]{LAL\_R\_SI}
\idx[Constant]{LAL\_MOL}
\idx[Constant]{LAL\_BWIEN\_SI}
\idx[Constant]{LAL\_SIGMA\_SI}
\idx[Constant]{LAL\_AMU\_SI}
\idx[Constant]{LAL\_MP\_SI}
\idx[Constant]{LAL\_ME\_SI}
\idx[Constant]{LAL\_QP\_SI}
\idx[Constant]{LAL\_ALPHA}
\idx[Constant]{LAL\_RE\_SI}
\idx[Constant]{LAL\_LAMBDAE\_SI}
\idx[Constant]{LAL\_AB\_SI}
\idx[Constant]{LAL\_MUB\_SI}
\idx[Constant]{LAL\_MUN\_SI}
The following physical constants are defined to have exact values. The following physical constants are defined to have exact values.
The values of $c$ and $g$ are taken from~\cite{Barnet:1996}, The values of $c$ and $g$ are taken from~\cite{Barnet:1996},
$p_\mathrm{atm}$ is from~\cite{Lang:1992}, while $\epsilon_0$ and $p_\mathrm{atm}$ is from~\cite{Lang:1992}, while $\epsilon_0$ and
$\mu_0$ are computed from $c$ using exact formulae. They are given in $\mu_0$ are computed from $c$ using exact formulae. They are given in
the SI units shown. the SI units shown.
\begin{center} \begin{center}
\begin{tabular}{|lll|} \begin{tabular}{|lll|}
\hline \hline
skipping to change at line 262 skipping to change at line 318
#define LAL_ALPHA 7.297354677e-3 /* Fine structure constant, dimensionless */ #define LAL_ALPHA 7.297354677e-3 /* Fine structure constant, dimensionless */
#define LAL_RE_SI 2.81794092e-15 /* Classical electron radius, m */ #define LAL_RE_SI 2.81794092e-15 /* Classical electron radius, m */
#define LAL_LAMBDAE_SI 3.86159323e-13 /* Electron Compton wavelength, m */ #define LAL_LAMBDAE_SI 3.86159323e-13 /* Electron Compton wavelength, m */
#define LAL_AB_SI 5.29177249e-11 /* Bohr radius, m */ #define LAL_AB_SI 5.29177249e-11 /* Bohr radius, m */
#define LAL_MUB_SI 9.27401543e-24 /* Bohr magneton, J T^-1 */ #define LAL_MUB_SI 9.27401543e-24 /* Bohr magneton, J T^-1 */
#define LAL_MUN_SI 5.05078658e-27 /* Nuclear magneton, J T^-1 */ #define LAL_MUN_SI 5.05078658e-27 /* Nuclear magneton, J T^-1 */
/* <lalLaTeX> /* <lalLaTeX>
\subsection*{Astrophysical parameters} \subsection*{Astrophysical parameters}
\idx[Constant]{LAL\_REARTH\_SI}
\idx[Constant]{LAL\_AWGS84\_SI}
\idx[Constant]{LAL\_BWGS84\_SI}
\idx[Constant]{LAL\_MEARTH\_SI}
\idx[Constant]{LAL\_IEARTH}
\idx[Constant]{LAL\_EEARTH}
\idx[Constant]{LAL\_RSUN\_SI}
\idx[Constant]{LAL\_MSUN\_SI}
\idx[Constant]{LAL\_MRSUN\_SI}
\idx[Constant]{LAL\_MTSUN\_SI}
\idx[Constant]{LAL\_LSUN\_SI}
\idx[Constant]{LAL\_AU\_SI}
\idx[Constant]{LAL\_PC\_SI}
\idx[Constant]{LAL\_YRTROP\_SI}
\idx[Constant]{LAL\_YRSID\_SI}
\idx[Constant]{LAL\_DAYSID\_SI}
\idx[Constant]{LAL\_LYR\_SI}
\idx[Constant]{LAL\_H0\_SI}
\idx[Constant]{LAL\_H0FAC\_SI}
\idx[Constant]{LAL\_RHOC\_SI}
\idx[Constant]{LAL\_RHOCFAC\_SI}
\idx[Constant]{LAL\_TCBR\_SI}
\idx[Constant]{LAL\_VCBR\_SI}
\idx[Constant]{LAL\_RHOCBR\_SI}
\idx[Constant]{LAL\_NCBR\_SI}
\idx[Constant]{LAL\_SCBR\_SI}
The following parameters are derived from measured properties of the The following parameters are derived from measured properties of the
Earth and Sun. The values are taken from~\cite{Barnet:1996}, except Earth and Sun. The values are taken from~\cite{Barnet:1996}, except
for the obliquity of the ecliptic plane and the eccentricity of for the obliquity of the ecliptic plane and the eccentricity of
Earth's orbit, which are taken from~\cite{Lang:1992}. All values are Earth's orbit, which are taken from~\cite{Lang:1992}. All values are
given in the SI units shown. given in the SI units shown.
\begin{center} \begin{center}
\begin{tabular}{|lll|} \begin{tabular}{|lll|}
\hline \hline
Name & Value & Description \\ Name & Value & Description \\
\hline \hline
\tt LAL\_REARTH\_SI & $6.378140\times10^6\,\mathrm{m}$ & \tt LAL\_REARTH\_SI & $6.378140\times10^6\,\mathrm{m}$ &
Earth equatorial radius \\ Earth equatorial radius \\
\tt LAL\_AWGS84\_SI & $6.378137\times10^6\,\mathrm{m}$ &
Semimajor axis of WGS-84 Reference Ellipsoid \\
\tt LAL\_BWGS84\_SI & $6.356752314\times10^6\,\mathrm{m}$ &
Semiminor axis of WGS-84 Reference Ellipsoid \\
\tt LAL\_MEARTH\_SI & $5.97370\times10^{24}\,\mathrm{kg}$ & Earth mass \\ \tt LAL\_MEARTH\_SI & $5.97370\times10^{24}\,\mathrm{kg}$ & Earth mass \\
\tt LAL\_IEARTH & $0.409092804\,\mathrm{rad}$ & \tt LAL\_IEARTH & $0.409092804\,\mathrm{rad}$ &
Obliquity of the ecliptic (2000) \\ Obliquity of the ecliptic (2000) \\
\tt LAL\_EEARTH & 0.0167 & Earth orbital eccentricity \\ \tt LAL\_EEARTH & 0.0167 & Earth orbital eccentricity \\
\tt LAL\_RSUN\_SI & $6.960\times10^8\,\mathrm{m}$ & Solar equatorial radi us\\ \tt LAL\_RSUN\_SI & $6.960\times10^8\,\mathrm{m}$ & Solar equatorial radi us\\
\tt LAL\_MSUN\_SI & $1.98892\times10^{30}\,\mathrm{kg}$ & Solar mass \\ \tt LAL\_MSUN\_SI & $1.98892\times10^{30}\,\mathrm{kg}$ & Solar mass \\
\tt LAL\_MRSUN\_SI & $1.47662504\times10^3\,\mathrm{m}$ & \tt LAL\_MRSUN\_SI & $1.47662504\times10^3\,\mathrm{m}$ &
Geometrized solar mass (length) \\ Geometrized solar mass (length) \\
\tt LAL\_MTSUN\_SI & $4.92549095\times10^{-6}\,\mathrm{s}$ & \tt LAL\_MTSUN\_SI & $4.92549095\times10^{-6}\,\mathrm{s}$ &
Geometrized solar mass (time) \\ Geometrized solar mass (time) \\
skipping to change at line 302 skipping to change at line 388
\tt LAL\_DAYSID\_SI & $86\,164.09053\,\mathrm{s}$ & Mean sidereal day \\ \tt LAL\_DAYSID\_SI & $86\,164.09053\,\mathrm{s}$ & Mean sidereal day \\
\tt LAL\_LYR\_SI & $9.46052817\times10^{15}\,\mathrm{m}$ & \tt LAL\_LYR\_SI & $9.46052817\times10^{15}\,\mathrm{m}$ &
$c\times$tropical year (1994) \\ $c\times$tropical year (1994) \\
\hline \hline
\end{tabular} \end{tabular}
\end{center} \end{center}
</lalLaTeX> */ </lalLaTeX> */
#define LAL_REARTH_SI 6.378140e6 /* Earth equatorial radius, m */ #define LAL_REARTH_SI 6.378140e6 /* Earth equatorial radius, m */
#define LAL_AWGS84_SI 6.378137e6 /* Semimajor axis of WGS-84 Reference
Ellipsoid, m */
#define LAL_BWGS84_SI 6.356752314e6 /* Semiminor axis of WGS-84 Reference
Ellipsoid, m */
#define LAL_MEARTH_SI 5.97370e24 /* Earth mass, kg */ #define LAL_MEARTH_SI 5.97370e24 /* Earth mass, kg */
#define LAL_IEARTH 0.409092804 /* Earth inclination (2000), radians */ #define LAL_IEARTH 0.409092804 /* Earth inclination (2000), radians */
#define LAL_EEARTH 0.0167 /* Earth orbital eccentricity */ #define LAL_EEARTH 0.0167 /* Earth orbital eccentricity */
#define LAL_RSUN_SI 6.960e8 /* Solar equatorial radius, m */ #define LAL_RSUN_SI 6.960e8 /* Solar equatorial radius, m */
#define LAL_MSUN_SI 1.98892e30 /* Solar mass, kg */ #define LAL_MSUN_SI 1.98892e30 /* Solar mass, kg */
#define LAL_MRSUN_SI 1.47662504e3 /* Geometrized solar mass, m */ #define LAL_MRSUN_SI 1.47662504e3 /* Geometrized solar mass, m */
#define LAL_MTSUN_SI 4.92549095e-6 /* Geometrized solar mass, s */ #define LAL_MTSUN_SI 4.92549095e-6 /* Geometrized solar mass, s */
#define LAL_LSUN_SI 3.846e26 /* Solar luminosity, W */ #define LAL_LSUN_SI 3.846e26 /* Solar luminosity, W */
#define LAL_AU_SI 1.4959787066e11 /* Astronomical unit, m */ #define LAL_AU_SI 1.4959787066e11 /* Astronomical unit, m */
#define LAL_PC_SI 3.0856775807e16 /* Parsec, m */ #define LAL_PC_SI 3.0856775807e16 /* Parsec, m */
 End of changes. 11 change blocks. 
4 lines changed or deleted 94 lines changed or added


 LALDatatypes.h   LALDatatypes.h 
/********************************* <lalVerbatim file="LALDatatypesHV"> /********************************* <lalVerbatim file="LALDatatypesHV">
Author: Finn, L. S. Author: J. D. E. Creighton, T. D. Creighton
$Id: LALDatatypes.h,v 1.8 2000/07/23 01:14:34 jolien Exp $ $Id: LALDatatypes.h,v 1.11 2001/12/01 22:09:43 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}
\begin{verbatim} \begin{verbatim}
#include "LALDatatypes.h" #include <lal/LALDatatypes.h>
\end{verbatim} \end{verbatim}
\noindent This header defines the standard data types and data \noindent This header defines the standard data types and data
structures that are used throughout LAL. They fall into three general structures that are used throughout LAL. They fall into three general
categories: \emph{primitive} datatypes, \emph{aggregates} of primitive categories: \emph{primitive} datatypes, \emph{aggregates} of primitive
datatypes, and \emph{structured} datatypes. The LAL status structure datatypes, and \emph{structured} datatypes. The LAL status structure
is a special case of a structured datatype that is used in every is a special case of a structured datatype that is used in every
standard LAL function. standard LAL function.
This header file is automatically included by the header This header file is automatically included by the header
skipping to change at line 38 skipping to change at line 38
following section. following section.
</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 "LALAtomicDatatypes.h" #include <lal/LALAtomicDatatypes.h>
#include "LALRCSID.h" #include <lal/LALRCSID.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
NRCSID (LALDATATYPESH, "$Id: LALDatatypes.h,v 1.8 2000/07/23 01:14:34 jolie n Exp $"); NRCSID (LALDATATYPESH, "$Id: LALDatatypes.h,v 1.11 2001/12/01 22:09:43 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
skipping to change at line 603 skipping to change at line 603
{ {
INT4 gpsSeconds; INT4 gpsSeconds;
INT4 gpsNanoSeconds; INT4 gpsNanoSeconds;
} }
LIGOTimeGPS; LIGOTimeGPS;
/* <lalLaTeX> /* <lalLaTeX>
\vspace{2ex} \vspace{2ex}
\begin{verbatim} \begin{verbatim}
LALUnit
\end{verbatim}
This structure stores units in the mksA system (plus Kelvin, Strain,
and ADC Count). It also stores an overall power-of-ten scaling factor.
The fields are:
\begin{description}
\item[\texttt{INT2 powerOfTen}] The power $p$ of ten scaling factor.
\item[\texttt{INT2 unitNumerator[LALNumUnits]}] Array of unit numerators,
$N_i$, $i=0\ldots\textrm{LALNumUnits}-1$.
\item[\texttt{INT2 unitDenominatorMinusOne[LALNumUnits]}] Array of unit
denominators-minus-one, $D_i$, $i=0\ldots\textrm{LALNumUnits}-1$.
\end{description}
Thus, the units are given by
\begin{equation}
10^p\times\textrm{m}^{N_0/(1+D_0)}\times\textrm{kg}^{N_1/(1+D_1)}
\times\textrm{s}^{N_2/(1+D_2)}\times\textrm{A}^{N_3/(1+D_3)}
\times\textrm{K}^{N_4/(1+D_4)}\times\textrm{strain}^{N_5/(1+D_5)}
\times\textrm{count}^{N_6/(1+D_6)}
\end{equation}
The indexes of the units can be specified using the constants
\texttt{LALUnitIndexMeter},
\texttt{LALUnitIndexKiloGram},
\texttt{LALUnitIndexSecond},
\texttt{LALUnitIndexAmpere},
\texttt{LALUnitIndexKelvin},
\texttt{LALUnitIndexStrain},
\texttt{LALUnitIndexADCCount},
while \texttt{LALNumUnits} is the total number of units.
</lalLaTeX> */
enum
{
LALUnitIndexMeter,
LALUnitIndexKiloGram,
LALUnitIndexSecond,
LALUnitIndexAmpere,
LALUnitIndexKelvin,
LALUnitIndexStrain,
LALUnitIndexADCCount,
LALNumUnits
};
typedef struct
tagLALUnit
{
INT2 powerOfTen;
INT2 unitNumerator[LALNumUnits];
UINT2 unitDenominatorMinusOne[LALNumUnits];
}
LALUnit;
/* <lalLaTeX>
\vspace{2ex}
\begin{verbatim}
<datatype>TimeSeries <datatype>TimeSeries
\end{verbatim} \end{verbatim}
This structure represents a sequence of data of type \verb@<datatype>@ This structure represents a sequence of data of type \verb@<datatype>@
(where \verb@<datatype>@ can be any primitive datatype), sampled over (where \verb@<datatype>@ can be any primitive datatype), sampled over
uniform time intervals $t_0, t_0+\Delta t, \ldots , t_0+l\Delta t$. uniform time intervals $t_0, t_0+\Delta t, \ldots , t_0+l\Delta t$.
Essentially this is a \verb@<datatype>Sequence@ with extra fields Essentially this is a \verb@<datatype>Sequence@ with extra fields
defining the sample times and the type of data being sampled. The raw defining the sample times and the type of data being sampled. The raw
data may also have been \emph{heterodyned}; that is, multiplied by a data may also have been \emph{heterodyned}; that is, multiplied by a
sinusoid of some frequency $f_0$, low-pass filtered, and resampled, in sinusoid of some frequency $f_0$, low-pass filtered, and resampled, in
order to extract the behaviour in a small bandwidth about $f_0$. The order to extract the behaviour in a small bandwidth about $f_0$. The
fields are: fields are:
\begin{description} \begin{description}
\item[\texttt{CHAR *name}] The name of the data series (i.e.\ the type \item[\texttt{CHAR name[LALNameLength]}] The name of the data series (i.e.\
of data being sampled). the type of data being sampled).
\item[\texttt{LIGOTimeGPS epoch}] The start time $t_0$ of the data \item[\texttt{LIGOTimeGPS epoch}] The start time $t_0$ of the data
series. series.
\item[\texttt{REAL8 deltaT}] The sampling interval $\Delta t$, in \item[\texttt{REAL8 deltaT}] The sampling interval $\Delta t$, in
seconds. seconds.
\item[\texttt{REAL8 f0}] The heterodyning frequency $f_0$, in hertz. \item[\texttt{REAL8 f0}] The heterodyning frequency $f_0$, in hertz.
\item[\texttt{CHARVector *sampleUnits}] The physical units of the \item[\texttt{LALUnit sampleUnits}] The physical units of the
quantity being sampled. quantity being sampled.
\item[\texttt{<datatype>Sequence *data}] The sequence of sampled data. \item[\texttt{<datatype>Sequence *data}] The sequence of sampled data.
\end{description} \end{description}
</lalLaTeX> */ </lalLaTeX> */
enum { LALNameLength = 64 };
typedef struct typedef struct
tagINT2TimeSeries tagINT2TimeSeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
INT2Sequence *data; INT2Sequence *data;
} }
INT2TimeSeries; INT2TimeSeries;
typedef struct typedef struct
tagUINT2TimeSeries tagUINT2TimeSeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
UINT2Sequence *data; UINT2Sequence *data;
} }
UINT2TimeSeries; UINT2TimeSeries;
typedef struct typedef struct
tagINT4TimeSeries tagINT4TimeSeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
INT4Sequence *data; INT4Sequence *data;
} }
INT4TimeSeries; INT4TimeSeries;
typedef struct typedef struct
tagUINT4TimeSeries tagUINT4TimeSeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
UINT4Sequence *data; UINT4Sequence *data;
} }
UINT4TimeSeries; UINT4TimeSeries;
typedef struct typedef struct
tagINT8TimeSeries tagINT8TimeSeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
INT8Sequence *data; INT8Sequence *data;
} }
INT8TimeSeries; INT8TimeSeries;
typedef struct typedef struct
tagUINT8TimeSeries tagUINT8TimeSeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
UINT8Sequence *data; UINT8Sequence *data;
} }
UINT8TimeSeries; UINT8TimeSeries;
typedef struct typedef struct
tagREAL4TimeSeries tagREAL4TimeSeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
REAL4Sequence *data; REAL4Sequence *data;
} }
REAL4TimeSeries; REAL4TimeSeries;
typedef struct typedef struct
tagREAL8TimeSeries tagREAL8TimeSeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
REAL8Sequence *data; REAL8Sequence *data;
} }
REAL8TimeSeries; REAL8TimeSeries;
typedef struct typedef struct
tagCOMPLEX8TimeSeries tagCOMPLEX8TimeSeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
COMPLEX8Sequence *data; COMPLEX8Sequence *data;
} }
COMPLEX8TimeSeries; COMPLEX8TimeSeries;
typedef struct typedef struct
tagCOMPLEX16TimeSeries tagCOMPLEX16TimeSeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
COMPLEX16Sequence *data; COMPLEX16Sequence *data;
} }
COMPLEX16TimeSeries; COMPLEX16TimeSeries;
/* <lalLaTeX> /* <lalLaTeX>
\vspace{2ex} \vspace{2ex}
\begin{verbatim} \begin{verbatim}
<datatype>TimeVectorSeries <datatype>TimeVectorSeries
\end{verbatim} \end{verbatim}
Like \verb@<datatype>TimeSeries@, above, except that the sampled data Like \verb@<datatype>TimeSeries@, above, except that the sampled data
are of type type \verb@<datatype>Vector@ (where \verb@<datatype>@ can are of type type \verb@<datatype>Vector@ (where \verb@<datatype>@ can
be any primitive datatype). The fields are: be any primitive datatype). The fields are:
\begin{description} \begin{description}
\item[\texttt{CHAR *name}] The name of the data series (i.e.\ the type \item[\texttt{CHAR name[LALNameLength]}] The name of the data series (i.e.\
of data being sampled). the type of data being sampled).
\item[\texttt{LIGOTimeGPS epoch}] The start time of the data series. \item[\texttt{LIGOTimeGPS epoch}] The start time of the data series.
\item[\texttt{REAL8 deltaT}] The sampling interval, in seconds. \item[\texttt{REAL8 deltaT}] The sampling interval, in seconds.
\item[\texttt{REAL8 f0}] The heterodyning frequency, in hertz. \item[\texttt{REAL8 f0}] The heterodyning frequency, in hertz.
\item[\texttt{CHARVector *sampleUnits}] The physical units of the \item[\texttt{LALUnit sampleUnits}] The physical units of the
quantity being sampled. quantity being sampled.
\item[\texttt{<datatype>VectorSequence *data}] The sequence of sampled \item[\texttt{<datatype>VectorSequence *data}] The sequence of sampled
data. data.
\end{description} \end{description}
</lalLaTeX> */ </lalLaTeX> */
typedef struct typedef struct
tagINT2TimeVectorSeries tagINT2TimeVectorSeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
INT2VectorSequence *data; INT2VectorSequence *data;
} }
INT2TimeVectorSeries; INT2TimeVectorSeries;
typedef struct typedef struct
tagUINT2TimeVectorSeries tagUINT2TimeVectorSeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
UINT2VectorSequence *data; UINT2VectorSequence *data;
} }
UINT2TimeVectorSeries; UINT2TimeVectorSeries;
typedef struct typedef struct
tagINT4TimeVectorSeries tagINT4TimeVectorSeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
INT4VectorSequence *data; INT4VectorSequence *data;
} }
INT4TimeVectorSeries; INT4TimeVectorSeries;
typedef struct typedef struct
tagUINT4TimeVectorSeries tagUINT4TimeVectorSeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
UINT4VectorSequence *data; UINT4VectorSequence *data;
} }
UINT4TimeVectorSeries; UINT4TimeVectorSeries;
typedef struct typedef struct
tagINT8TimeVectorSeries tagINT8TimeVectorSeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
INT8VectorSequence *data; INT8VectorSequence *data;
} }
INT8TimeVectorSeries; INT8TimeVectorSeries;
typedef struct typedef struct
tagUINT8TimeVectorSeries tagUINT8TimeVectorSeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
UINT8VectorSequence *data; UINT8VectorSequence *data;
} }
UINT8TimeVectorSeries; UINT8TimeVectorSeries;
typedef struct typedef struct
tagREAL4TimeVectorSeries tagREAL4TimeVectorSeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
REAL4VectorSequence *data; REAL4VectorSequence *data;
} }
REAL4TimeVectorSeries; REAL4TimeVectorSeries;
typedef struct typedef struct
tagREAL8TimeVectorSeries tagREAL8TimeVectorSeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
REAL8VectorSequence *data; REAL8VectorSequence *data;
} }
REAL8TimeVectorSeries; REAL8TimeVectorSeries;
typedef struct typedef struct
tagCOMPLEX8TimeVectorSeries tagCOMPLEX8TimeVectorSeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
COMPLEX8VectorSequence *data; COMPLEX8VectorSequence *data;
} }
COMPLEX8TimeVectorSeries; COMPLEX8TimeVectorSeries;
typedef struct typedef struct
tagCOMPLEX16TimeVectorSeries tagCOMPLEX16TimeVectorSeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
COMPLEX16VectorSequence *data; COMPLEX16VectorSequence *data;
} }
COMPLEX16TimeVectorSeries; COMPLEX16TimeVectorSeries;
/* <lalLaTeX> /* <lalLaTeX>
\vspace{2ex} \vspace{2ex}
\begin{verbatim} \begin{verbatim}
<datatype>TimeArraySeries <datatype>TimeArraySeries
\end{verbatim} \end{verbatim}
Like \verb@<datatype>TimeSeries@, above, except that the sampled data Like \verb@<datatype>TimeSeries@, above, except that the sampled data
are of type type \verb@<datatype>Array@ (where \verb@<datatype>@ can are of type type \verb@<datatype>Array@ (where \verb@<datatype>@ can
be any primitive datatype). The fields are: be any primitive datatype). The fields are:
\begin{description} \begin{description}
\item[\texttt{CHAR *name}] The name of the data series (i.e.\ the type \item[\texttt{CHAR name[LALNameLength]}] The name of the data series (i.e.\
of data being sampled). the type of data being sampled).
\item[\texttt{LIGOTimeGPS epoch}] The start time of the data series. \item[\texttt{LIGOTimeGPS epoch}] The start time of the data series.
\item[\texttt{REAL8 deltaT}] The sampling interval, in seconds. \item[\texttt{REAL8 deltaT}] The sampling interval, in seconds.
\item[\texttt{REAL8 f0}] The heterodyning frequency, in hertz. \item[\texttt{REAL8 f0}] The heterodyning frequency, in hertz.
\item[\texttt{CHARVector *sampleUnits}] The physical units of the \item[\texttt{LALUnit sampleUnits}] The physical units of the
quantity being sampled. quantity being sampled.
\item[\texttt{<datatype>ArraySequence *data}] The sequence of sampled \item[\texttt{<datatype>ArraySequence *data}] The sequence of sampled
data. data.
\end{description} \end{description}
</lalLaTeX> */ </lalLaTeX> */
typedef struct typedef struct
tagINT2TimeArraySeries tagINT2TimeArraySeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
INT2ArraySequence *data; INT2ArraySequence *data;
} }
INT2TimeArraySeries; INT2TimeArraySeries;
typedef struct typedef struct
tagUINT2TimeArraySeries tagUINT2TimeArraySeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
UINT2ArraySequence *data; UINT2ArraySequence *data;
} }
UINT2TimeArraySeries; UINT2TimeArraySeries;
typedef struct typedef struct
tagINT4TimeArraySeries tagINT4TimeArraySeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
INT4ArraySequence *data; INT4ArraySequence *data;
} }
INT4TimeArraySeries; INT4TimeArraySeries;
typedef struct typedef struct
tagUINT4TimeArraySeries tagUINT4TimeArraySeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
UINT4ArraySequence *data; UINT4ArraySequence *data;
} }
UINT4TimeArraySeries; UINT4TimeArraySeries;
typedef struct typedef struct
tagINT8TimeArraySeries tagINT8TimeArraySeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
INT8ArraySequence *data; INT8ArraySequence *data;
} }
INT8TimeArraySeries; INT8TimeArraySeries;
typedef struct typedef struct
tagUINT8TimeArraySeries tagUINT8TimeArraySeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
UINT8ArraySequence *data; UINT8ArraySequence *data;
} }
UINT8TimeArraySeries; UINT8TimeArraySeries;
typedef struct typedef struct
tagREAL4TimeArraySeries tagREAL4TimeArraySeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
REAL4ArraySequence *data; REAL4ArraySequence *data;
} }
REAL4TimeArraySeries; REAL4TimeArraySeries;
typedef struct typedef struct
tagREAL8TimeArraySeries tagREAL8TimeArraySeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
REAL8ArraySequence *data; REAL8ArraySequence *data;
} }
REAL8TimeArraySeries; REAL8TimeArraySeries;
typedef struct typedef struct
tagCOMPLEX8TimeArraySeries tagCOMPLEX8TimeArraySeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
COMPLEX8ArraySequence *data; COMPLEX8ArraySequence *data;
} }
COMPLEX8TimeArraySeries; COMPLEX8TimeArraySeries;
typedef struct typedef struct
tagCOMPLEX16TimeArraySeries tagCOMPLEX16TimeArraySeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 deltaT; REAL8 deltaT;
REAL8 f0; REAL8 f0;
CHARVector *sampleUnits; LALUnit sampleUnits;
COMPLEX16ArraySequence *data; COMPLEX16ArraySequence *data;
} }
COMPLEX16TimeArraySeries; COMPLEX16TimeArraySeries;
/* <lalLaTeX> /* <lalLaTeX>
\vspace{2ex} \vspace{2ex}
\begin{verbatim} \begin{verbatim}
<datatype>FrequencySeries <datatype>FrequencySeries
\end{verbatim} \end{verbatim}
This structure represents a frequency spectrum of data of type This structure represents a frequency spectrum of data of type
\verb@<datatype>@ (where \verb@<datatype>@ can be any primitive \verb@<datatype>@ (where \verb@<datatype>@ can be any primitive
datatype), sampled over uniform frequency intervals $f_0, f_0+\Delta datatype), sampled over uniform frequency intervals $f_0, f_0+\Delta
f, \ldots , f_0+l\Delta f$. Essentially this is a f, \ldots , f_0+l\Delta f$. Essentially this is a
\verb@<datatype>Sequence@ with extra fields defining the sample \verb@<datatype>Sequence@ with extra fields defining the sample
frequencies, the timestamp of the spectrum, and the type of data being frequencies, the timestamp of the spectrum, and the type of data being
sampled. The fields are: sampled. The fields are:
\begin{description} \begin{description}
\item[\texttt{CHAR *name}] The name of the data series (i.e.\ the type \item[\texttt{CHAR name[LALNameLength]}] The name of the data series (i.e.\
of data being sampled). the type of data being sampled).
\item[\texttt{LIGOTimeGPS epoch}] The start time of the \emph{time} \item[\texttt{LIGOTimeGPS epoch}] The start time of the \emph{time}
series from which the spectrum was calculated. series from which the spectrum was calculated.
\item[\texttt{REAL8 f0}] The lowest frequency $f_0$ being sampled, in \item[\texttt{REAL8 f0}] The lowest frequency $f_0$ being sampled, in
hertz. hertz.
\item[\texttt{REAL8 deltaF}] The frequency sampling interval $\Delta \item[\texttt{REAL8 deltaF}] The frequency sampling interval $\Delta
f$, in hertz. f$, in hertz.
\item[\texttt{CHARVector *sampleUnits}] The physical units of the \item[\texttt{LALUnit sampleUnits}] The physical units of the
quantity being sampled. quantity being sampled.
\item[\texttt{<datatype>Sequence *data}] The sequence of sampled data. \item[\texttt{<datatype>Sequence *data}] The sequence of sampled data.
\end{description} \end{description}
</lalLaTeX> */ </lalLaTeX> */
typedef struct typedef struct
tagINT2FrequencySeries tagINT2FrequencySeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 f0; REAL8 f0;
REAL8 deltaF; REAL8 deltaF;
CHARVector *sampleUnits; LALUnit sampleUnits;
INT2Sequence *data; INT2Sequence *data;
} }
INT2FrequencySeries; INT2FrequencySeries;
typedef struct typedef struct
tagUINT2FrequencySeries tagUINT2FrequencySeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 f0; REAL8 f0;
REAL8 deltaF; REAL8 deltaF;
CHARVector *sampleUnits; LALUnit sampleUnits;
UINT2Sequence *data; UINT2Sequence *data;
} }
UINT2FrequencySeries; UINT2FrequencySeries;
typedef struct typedef struct
tagINT4FrequencySeries tagINT4FrequencySeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 f0; REAL8 f0;
REAL8 deltaF; REAL8 deltaF;
CHARVector *sampleUnits; LALUnit sampleUnits;
INT4Sequence *data; INT4Sequence *data;
} }
INT4FrequencySeries; INT4FrequencySeries;
typedef struct typedef struct
tagUINT4FrequencySeries tagUINT4FrequencySeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 f0; REAL8 f0;
REAL8 deltaF; REAL8 deltaF;
CHARVector *sampleUnits; LALUnit sampleUnits;
UINT4Sequence *data; UINT4Sequence *data;
} }
UINT4FrequencySeries; UINT4FrequencySeries;
typedef struct typedef struct
tagINT8FrequencySeries tagINT8FrequencySeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 f0; REAL8 f0;
REAL8 deltaF; REAL8 deltaF;
CHARVector *sampleUnits; LALUnit sampleUnits;
INT8Sequence *data; INT8Sequence *data;
} }
INT8FrequencySeries; INT8FrequencySeries;
typedef struct typedef struct
tagUINT8FrequencySeries tagUINT8FrequencySeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 f0; REAL8 f0;
REAL8 deltaF; REAL8 deltaF;
CHARVector *sampleUnits; LALUnit sampleUnits;
UINT8Sequence *data; UINT8Sequence *data;
} }
UINT8FrequencySeries; UINT8FrequencySeries;
typedef struct typedef struct
tagREAL4FrequencySeries tagREAL4FrequencySeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 f0; REAL8 f0;
REAL8 deltaF; REAL8 deltaF;
CHARVector *sampleUnits; LALUnit sampleUnits;
REAL4Sequence *data; REAL4Sequence *data;
} }
REAL4FrequencySeries; REAL4FrequencySeries;
typedef struct typedef struct
tagREAL8FrequencySeries tagREAL8FrequencySeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 f0; REAL8 f0;
REAL8 deltaF; REAL8 deltaF;
CHARVector *sampleUnits; LALUnit sampleUnits;
REAL8Sequence *data; REAL8Sequence *data;
} }
REAL8FrequencySeries; REAL8FrequencySeries;
typedef struct typedef struct
tagCOMPLEX8FrequencySeries tagCOMPLEX8FrequencySeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 f0; REAL8 f0;
REAL8 deltaF; REAL8 deltaF;
CHARVector *sampleUnits; LALUnit sampleUnits;
COMPLEX8Sequence *data; COMPLEX8Sequence *data;
} }
COMPLEX8FrequencySeries; COMPLEX8FrequencySeries;
typedef struct typedef struct
tagCOMPLEX16FrequencySeries tagCOMPLEX16FrequencySeries
{ {
CHAR *name; CHAR name[LALNameLength];
LIGOTimeGPS epoch; LIGOTimeGPS epoch;
REAL8 f0; REAL8 f0;
REAL8 deltaF; REAL8 deltaF;
CHARVector *sampleUnits; LALUnit sampleUnits;
COMPLEX16Sequence *data; COMPLEX16Sequence *data;
} }
COMPLEX16FrequencySeries; COMPLEX16FrequencySeries;
/* <lalLaTeX> /* <lalLaTeX>
\vspace{2ex} \vspace{2ex}
\begin{verbatim} \begin{verbatim}
<datatype>ZPGFilter <datatype>ZPGFilter
\end{verbatim} \end{verbatim}
skipping to change at line 1208 skipping to change at line 1266
$H(f)=g\times\prod_k(\zeta-z_k)/\prod_l(\zeta-p_l)$, where $z_k$ are $H(f)=g\times\prod_k(\zeta-z_k)/\prod_l(\zeta-p_l)$, where $z_k$ are
the complex \emph{zeros}, $p_l$ are the complex \emph{poles}, and $g$ the complex \emph{zeros}, $p_l$ are the complex \emph{poles}, and $g$
is the complex \emph{gain} of the response function. Some common is the complex \emph{gain} of the response function. Some common
complex frequency representations are the $z$-plane representation complex frequency representations are the $z$-plane representation
$\zeta(f\Delta t)=\exp(2\pi if\Delta t)$, which maps the Nyquist $\zeta(f\Delta t)=\exp(2\pi if\Delta t)$, which maps the Nyquist
interval $f\in[0,1/2\Delta t)$ onto the upper-half unit circle in interval $f\in[0,1/2\Delta t)$ onto the upper-half unit circle in
$\zeta$, and the $w$-plane representation $\zeta(f\Delta t)=\tan(\pi $\zeta$, and the $w$-plane representation $\zeta(f\Delta t)=\tan(\pi
f\Delta t)$, which maps the Nyquist interval onto the positive real f\Delta t)$, which maps the Nyquist interval onto the positive real
axis in $\zeta$. The fields of \verb@<datatype>ZPGFilter@ are: axis in $\zeta$. The fields of \verb@<datatype>ZPGFilter@ are:
\begin{description} \begin{description}
\item[\texttt{CHAR *name}] The name of the filter or transfer \item[\texttt{CHAR name[LALNameLength]}] The name of the filter or transfer
function. This should also mention its complex frequency function. This should also mention its complex frequency
representation. representation.
\item[\texttt{REAL8 deltaT}] The sampling time or reference timescale \item[\texttt{REAL8 deltaT}] The sampling time or reference timescale
$\Delta t$ for the filter, in seconds. If zero, it will be treated as $\Delta t$ for the filter, in seconds. If zero, it will be treated as
being equal to the sampling interval of the data being filtered. being equal to the sampling interval of the data being filtered.
\item[\texttt{<datatype>Vector *zeros}] Pointer to a vector storing \item[\texttt{<datatype>Vector *zeros}] Pointer to a vector storing
the zeros $z_k$ of the filter. the zeros $z_k$ of the filter.
\item[\texttt{<datatype>Vector *poles}] Pointer to a vector storing \item[\texttt{<datatype>Vector *poles}] Pointer to a vector storing
the poles $p_k$ of the filter. the poles $p_k$ of the filter.
\item[\texttt{<datatype> gain}] The gain $g$ of the filter. \item[\texttt{<datatype> gain}] The gain $g$ of the filter.
\end{description} \end{description}
</lalLaTeX> */ </lalLaTeX> */
typedef struct typedef struct
tagCOMPLEX8ZPGFilter tagCOMPLEX8ZPGFilter
{ {
CHAR *name; CHAR name[LALNameLength];
REAL8 deltaT; REAL8 deltaT;
COMPLEX8Vector *zeros; COMPLEX8Vector *zeros;
COMPLEX8Vector *poles; COMPLEX8Vector *poles;
COMPLEX8 gain; COMPLEX8 gain;
} }
COMPLEX8ZPGFilter; COMPLEX8ZPGFilter;
typedef struct typedef struct
tagCOMPLEX16ZPGFilter tagCOMPLEX16ZPGFilter
{ {
CHAR *name; CHAR name[LALNameLength];
REAL8 deltaT; REAL8 deltaT;
COMPLEX16Vector *zeros; COMPLEX16Vector *zeros;
COMPLEX16Vector *poles; COMPLEX16Vector *poles;
COMPLEX16 gain; COMPLEX16 gain;
} }
COMPLEX16ZPGFilter; COMPLEX16ZPGFilter;
/* <lalLaTeX> /* <lalLaTeX>
\newpage \newpage
\subsection{The LAL universal status structure \texttt{LALStatus}} \subsection{The LAL universal status structure \texttt{LALStatus}}
 End of changes. 97 change blocks. 
101 lines changed or deleted 159 lines changed or added


 LALError.h   LALError.h 
/************************************ <lalVerbatim file="LALErrorHV"> /************************************ <lalVerbatim file="LALErrorHV">
$Id: LALError.h,v 1.6 2000/09/08 23:19:25 jolien Exp $ $Id: LALError.h,v 1.11 2001/11/27 01:55:24 jolien Exp $
************************************* </lalVerbatim> */ ************************************* </lalVerbatim> */
/* <lalLaTeX> /* <lalLaTeX>
\section{Header \texttt{LALError.h}} \section{Header \texttt{LALError.h}}
\label{s:LALError.h} \label{s:LALError.h}
Provides routines to report and handle errors. Provides routines to report and handle errors.
\subsection*{Synopsis} \subsection*{Synopsis}
\begin{verbatim} \begin{verbatim}
#include "LALError.h" #include <lal/LALError.h>
\end{verbatim} \end{verbatim}
\noindent This header covers routines that print status messages, and \noindent This header covers routines that print status messages, and
that allow functions to abort. that allow functions to abort.
\vfill{\footnotesize\input{LALErrorHV}} \vfill{\footnotesize\input{LALErrorHV}}
\newpage\input{LALErrorC} \newpage\input{LALErrorC}
</lalLaTeX> */ </lalLaTeX> */
#ifndef _LALERROR_H #ifndef _LALERROR_H
#define _LALERROR_H #define _LALERROR_H
#include "LALDatatypes.h" #include <lal/LALDatatypes.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
NRCSID( LALERRORH, "$Id: LALError.h,v 1.6 2000/09/08 23:19:25 jolien Exp $" ); NRCSID( LALERRORH, "$Id: LALError.h,v 1.11 2001/11/27 01:55:24 jolien Exp $ " );
/* lalDebugLevel bit field values: */ /* lalDebugLevel bit field values: */
enum enum
{ {
LALNDEBUG = 0, LALNDEBUG = 0,
LALERROR = 1, LALERROR = 1,
LALWARNING = 2, LALWARNING = 2,
LALINFO = 4, LALINFO = 4,
LALTRACE = 8, LALTRACE = 8,
LALMEMINFO = 16, LALMEMINFO = 16,
LALMEMDBG = ~( -1U >> 1 ) /* any non-zero value that doesn't interfere w LALNMEMDBG = 32,
ith LALNMEMPAD = 64,
other bits: meaningless to combine this wit LALNMEMTRK = 128,
h LALMEMDBG = 16384 /* convenience: don't combine with other bits */
any other bit */
}; };
/* composite lalDebugLevels: */ /* composite lalDebugLevels: */
enum { LALMSGLVL1 = LALERROR }; enum { LALMSGLVL1 = LALERROR };
enum { LALMSGLVL2 = LALERROR | LALWARNING }; enum { LALMSGLVL2 = LALERROR | LALWARNING };
enum { LALMSGLVL3 = LALERROR | LALWARNING | LALINFO }; enum { LALMSGLVL3 = LALERROR | LALWARNING | LALINFO };
enum { LALMEMTRACE = LALTRACE | LALMEMINFO }; enum { LALMEMTRACE = LALTRACE | LALMEMINFO };
enum { LALALLDBG = ~0 }; enum { LALALLDBG = ~( LALNMEMDBG | LALNMEMPAD | LALNMEMTRK ) };
extern int ( *lalRaiseHook )( int, const char *, ... );
extern void ( *lalAbortHook )( const char *, ... );
int int
LALPrintError( const char *fmt, ... ); LALPrintError( const char *fmt, ... );
int
LALRaise( int sig, const char *fmt, ... );
void void
LALAbort( const char *fmt, ... ); LALAbort( const char *fmt, ... );
int int
LALError( LALStatus *status, const char *statement ); LALError( LALStatus *status, const char *statement );
int int
LALWarning( LALStatus *status, const char *warning ); LALWarning( LALStatus *status, const char *warning );
int int
LALInfo( LALStatus *status, const char *info ); LALInfo( LALStatus *status, const char *info );
int int
LALTrace( LALStatus *status, int exit ); LALTrace( LALStatus *status, int exitflg );
int int
LALInitStatus( LALStatus *status, const char *function, const char *id, LALInitStatus( LALStatus *status, const char *function, const char *id,
const char *file, const int line ); const char *file, const int line );
int int
LALPrepareReturn( LALStatus *status, const char *file, const int line ); LALPrepareReturn( LALStatus *status, const char *file, const int line );