| AVFactories.h | | AVFactories.h | |
| /*----------------------------------------------------------------------- | | /*----------------------------------------------------------------------- | |
| | | | |
| File Name: AVFactories.h | | File Name: AVFactories.h | |
| | | | |
|
| <lalVerbatim file="AVFactoriesHV"> | | | |
| Revision: $Id$ | | | |
| </lalVerbatim> | | | |
| | | | |
| -------------------------------------------------------------------------*/ | | -------------------------------------------------------------------------*/ | |
| | | | |
|
| /* <lalLaTeX> | | | |
| | | | |
| \section{Header \texttt{AVFactories.h}} | | | |
| \label{s:AVFactories.h} | | | |
| | | | |
| Provides prototype and status code information for use of CreateVector, | | | |
| CreateArray, ResizeVector, ResizeArray, DestroyVector and DestroyArray | | | |
| | | | |
| \subsection*{Synopsis} | | | |
| \begin{verbatim} | | | |
| #include <lal/AVFactories.h> | | | |
| \end{verbatim} | | | |
| | | | |
| </lalLaTeX> */ | | | |
| | | | |
| #ifndef _AVFACTORIES_H | | #ifndef _AVFACTORIES_H | |
| #define _AVFACTORIES_H | | #define _AVFACTORIES_H | |
| | | | |
| #include <lal/LALDatatypes.h> | | #include <lal/LALDatatypes.h> | |
| #include <stdarg.h> | | #include <stdarg.h> | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| | | | |
| NRCSID (AVFACTORIESH, "$Id$"); | | NRCSID (AVFACTORIESH, "$Id$"); | |
| | | | |
|
| /* <lalLaTeX> | | /** | |
| | | \defgroup AVFactories_h AVFactories_h | |
| \subsection*{Error conditions} | | \ingroup factories | |
| \input{AVFactoriesHErrTab} | | | |
| | | | |
| </lalLaTeX> */ | | | |
| | | | |
| /* | | | |
| <lalErrTable file="AVFactoriesHErrTab"> | | | |
| */ | | | |
| #define AVFACTORIESH_ELENGTH 1 | | | |
| #define AVFACTORIESH_EVPTR 2 | | | |
| #define AVFACTORIESH_EUPTR 4 | | | |
| #define AVFACTORIESH_EDPTR 8 | | | |
| #define AVFACTORIESH_EMALLOC 16 | | | |
| #define AVFACTORIESH_MSGELENGTH "Illegal length." | | | |
| #define AVFACTORIESH_MSGEVPTR "Null vector/array handle." | | | |
| #define AVFACTORIESH_MSGEUPTR "Non-null vector/array pointer." | | | |
| #define AVFACTORIESH_MSGEDPTR "Null vector/array data." | | | |
| #define AVFACTORIESH_MSGEMALLOC "Malloc failure." | | | |
| /* | | | |
| </lalErrTable> | | | |
| */ | | | |
| | | | |
| /* Function prototypes. */ | | | |
| /* <lalLaTeX> | | | |
| \newpage\input{VectorFactoriesC} | | | |
| \newpage\input{ArrayFactoriesC} | | | |
| | | | |
|
| \newpage | | \brief Provides prototype and status code information for use of CreateVect | |
| \subsection{XLAL Functions} | | or, | |
| | | CreateArray, ResizeVector, ResizeArray, DestroyVector and DestroyArray | |
| | | | |
|
| \subsubsection*{Synopsis} | | \heading{Synopsis} | |
| \begin{verbatim} | | \code | |
| #include <lal/AVFactories.h> | | #include <lal/AVFactories.h> | |
|
| | | \endcode | |
| | | | |
| | | \section secXLALfcts XLAL Functions | |
| | | | |
|
| | | \code | |
| REAL4Vector * XLALCreateVector(UINT4 length); | | REAL4Vector * XLALCreateVector(UINT4 length); | |
| REAL4Vector * XLALResizeVector(REAL4Vector *vector, UINT4 length); | | REAL4Vector * XLALResizeVector(REAL4Vector *vector, UINT4 length); | |
| void XLALDestroyVector(REAL4Vector *vector, UINT4 length); | | void XLALDestroyVector(REAL4Vector *vector, UINT4 length); | |
| | | | |
| <vectype> * XLALCreate<vectype>(UINT4 length ); | | <vectype> * XLALCreate<vectype>(UINT4 length ); | |
| <vectype> * XLALResize<vectype>(<vectype> *vector, UINT4 length ); | | <vectype> * XLALResize<vectype>(<vectype> *vector, UINT4 length ); | |
| void XLALDestroy<vectype>(<vectype> *vector); | | void XLALDestroy<vectype>(<vectype> *vector); | |
| | | | |
| REAL4Array * XLALCreateArrayL(UINT4 ndim, ...); | | REAL4Array * XLALCreateArrayL(UINT4 ndim, ...); | |
| REAL4Array * XLALCreateArrayV(UINT4 ndim, UINT4 *dims); | | REAL4Array * XLALCreateArrayV(UINT4 ndim, UINT4 *dims); | |
| | | | |
| skipping to change at line 97 | | skipping to change at line 57 | |
| REAL4Array * XLALResizeArray(REAL4Array *array, UINT4Vector *dimLength); | | REAL4Array * XLALResizeArray(REAL4Array *array, UINT4Vector *dimLength); | |
| void XLALDestroyArray(REAL4Array *array); | | void XLALDestroyArray(REAL4Array *array); | |
| | | | |
| <arrtype> * XLALCreate<arrtype>L(UINT4 ndim, ...); | | <arrtype> * XLALCreate<arrtype>L(UINT4 ndim, ...); | |
| <arrtype> * XLALCreate<arrtype>V(UINT4 ndim, UINT4 *dims); | | <arrtype> * XLALCreate<arrtype>V(UINT4 ndim, UINT4 *dims); | |
| <arrtype> * XLALCreate<arrtype>(UINT4Vector *dimLength); | | <arrtype> * XLALCreate<arrtype>(UINT4Vector *dimLength); | |
| <arrtype> * XLALResize<arrtype>L(<arrtype> *array, UINT4 ndim, ...); | | <arrtype> * XLALResize<arrtype>L(<arrtype> *array, UINT4 ndim, ...); | |
| <arrtype> * XLALResize<arrtype>V(<arrtype> *array, UINT4 ndim, UINT4 *dims)
; | | <arrtype> * XLALResize<arrtype>V(<arrtype> *array, UINT4 ndim, UINT4 *dims)
; | |
| <arrtype> * XLALResize<arrtype>(<arrtype> *array, UINT4Vector *dimLength); | | <arrtype> * XLALResize<arrtype>(<arrtype> *array, UINT4Vector *dimLength); | |
| void XLALDestroy<arrtype>(<arrtype> *array); | | void XLALDestroy<arrtype>(<arrtype> *array); | |
|
| \end{verbatim} | | \endcode | |
| \idx{XLALCreateVector} | | | |
| \idx{XLALResizeVector} | | | |
| \idx{XLALDestroyVector} | | | |
| \idx{XLALCreateArrayL} | | | |
| \idx{XLALCreateArrayV} | | | |
| \idx{XLALCreateArray} | | | |
| \idx{XLALResizeArrayL} | | | |
| \idx{XLALResizeArrayV} | | | |
| \idx{XLALResizeArray} | | | |
| \idx{XLALDestroyArray} | | | |
| \idx{XLALCreate<type>Vector} | | | |
| \idx{XLALResize<type>Vector} | | | |
| \idx{XLALDestroy<type>Vector} | | | |
| \idx{XLALCreate<type>ArrayL} | | | |
| \idx{XLALCreate<type>ArrayV} | | | |
| \idx{XLALCreate<type>Array} | | | |
| \idx{XLALResize<type>ArrayL} | | | |
| \idx{XLALResize<type>ArrayV} | | | |
| \idx{XLALResize<type>Array} | | | |
| \idx{XLALDestroy<type>Array} | | | |
| | | | |
|
| Here \verb+<vectype>+ is one of | | Here <tt>\<vectype\></tt> is one of | |
| \verb+COMPLEX16Vector+, | | \c COMPLEX16Vector, | |
| \verb+COMPLEX8Vector+, | | \c COMPLEX8Vector, | |
| \verb+REAL8Vector+, | | \c REAL8Vector, | |
| \verb+REAL4Vector+, | | \c REAL4Vector, | |
| \verb+INT8Vector+, | | \c INT8Vector, | |
| \verb+INT4Vector+, | | \c INT4Vector, | |
| \verb+INT2Vector+, | | \c INT2Vector, | |
| \verb+UINT8Vector+, | | \c UINT8Vector, | |
| \verb+UINT4Vector+, | | \c UINT4Vector, | |
| \verb+UINT2Vector+, or | | \c UINT2Vector, or | |
| \verb+CHARVector+, | | \c CHARVector, | |
| and \verb+<arrtype>+ is one of | | and <tt>\<arrtype\></tt> is one of | |
| \verb+COMPLEX16Array+, | | \c COMPLEX16Array, | |
| \verb+COMPLEX8Array+, | | \c COMPLEX8Array, | |
| \verb+REAL8Array+, | | \c REAL8Array, | |
| \verb+REAL4Array+, | | \c REAL4Array, | |
| \verb+INT8Array+, | | \c INT8Array, | |
| \verb+INT4Array+, | | \c INT4Array, | |
| \verb+INT2Array+, | | \c INT2Array, | |
| \verb+UINT8Array+, | | \c UINT8Array, | |
| \verb+UINT4Array+, or | | \c UINT4Array, or | |
| \verb+UINT2Array+. | | \c UINT2Array. | |
| | | | |
|
| \subsubsection*{Description} | | \subsection ss_AVF_desc Description | |
| | | | |
|
| The \verb+XLALCreate<type>Vector+ functions create vectors of the specified | | The <tt>XLALCreate\<type\>%Vector</tt> functions create vectors of the spec | |
| \verb+length+ number of objects of type \verb+<type>+. The function | | ified | |
| \verb+XLALCreateVector+ is the same as \verb+XLALCreateREAL4Vector+. | | \c length number of objects of type <tt>\<type\></tt>. The function | |
| | | \c XLALCreateVector() is the same as \c XLALCreateREAL4Vector(). | |
| | | | |
|
| The \verb+XLALDestroy<type>Vector+ functions deallocate the memory allocati | | The <tt>XLALDestroy\<type\>%Vector</tt> functions deallocate the memory all | |
| on | | ocation | |
| pointed to by \verb+vector+ including its contents. The function | | pointed to by \c vector including its contents. The function | |
| \verb+XLALDestroyVector+ is the same as \verb+XLALDestroyREAL4Vector+. | | \c XLALDestroyVector() is the same as \c XLALDestroyREAL4Vector(). | |
| | | | |
|
| The \verb+XLALResize<type>Vector+ functions resize the supplied vector | | The <tt>XLALResize\<type\>%Vector</tt> functions resize the supplied vector | |
| \verb+vector+ to the new size \verb+length+. If \verb+vector+ is \verb+NUL | | \c vector to the new size \c length. If \c vector is \c NULL | |
| L+ | | then this is equivalent to <tt>XLALCreate\<type\>%Vector</tt>. If \c lengt | |
| then this is equivalent to \verb+XLALCreate<type>Vector+. If \verb+length+ | | h | |
| is zero then this is equivalent to \verb+XLALDestroy<type>Vector+ and the | | is zero then this is equivalent to <tt>XLALDestroy\<type\>%Vector</tt> and | |
| routine returns \verb+NULL+. Otherwise, the amount of data in the vector | | the | |
| is realloced using \verb+LALRealloc+. The function | | routine returns \c NULL. Otherwise, the amount of data in the vector | |
| \verb+XLALResizeVector+ is the same as \verb+XLALResizeREAL4Vector+. | | is realloced using \c LALRealloc(). The function | |
| | | \c XLALResizeVector() is the same as \c XLALResizeREAL4Vector(). | |
| | | | |
|
| The \verb+XLALCreate<type>Array+ | | The <tt>XLALCreate\<type\>Array</tt> | |
| \verb+XLALCreate<type>ArrayL+ | | <tt>XLALCreate\<type\>ArrayL</tt> | |
| \verb+XLALCreate<type>ArrayV+ | | <tt>XLALCreate\<type\>ArrayV</tt> | |
| all create an object of type \verb+<type>Array+. They differ in the way | | all create an object of type <tt>\<type\>Array</tt>. They differ in the wa | |
| | | y | |
| that the dimensions of the array are specified. The function | | that the dimensions of the array are specified. The function | |
|
| \verb+XLALCreate<type>Array+ allocates an array with dimensions specified | | <tt>XLALCreate\<type\>Array</tt> allocates an array with dimensions specifi | |
| by the \verb+UINT4Vector+ \verb+dimLength+ which is a vector of dimension | | ed | |
| | | by the \c UINT4Vector \c dimLength which is a vector of dimension | |
| lengths for the array. The function | | lengths for the array. The function | |
|
| \verb+XLALCreate<type>ArrayV+ provides these dimensions with two arguments: | | <tt>XLALCreate\<type\>ArrayV</tt> provides these dimensions with two argume | |
| \verb+ndim+ is the number of dimensions and \verb+dims+ is an array of | | nts: | |
| \verb+UINT4+ values for the dimensions. The function | | \c ndim is the number of dimensions and \c dims is an array of | |
| \verb+XLALCreate<type>ArrayL+ also specifies the dimensions as arguments. | | \c UINT4 values for the dimensions. The function | |
| Here, the first argument, \verb+ndim+, is the number of dimensions, and | | <tt>XLALCreate\<type\>ArrayL</tt> also specifies the dimensions as argument | |
| this is followed by \verb+ndim+ arguments that provide the dimensions. | | s. | |
| | | Here, the first argument, \c ndim, is the number of dimensions, and | |
| | | this is followed by \c ndim arguments that provide the dimensions. | |
| Note that for this function, a maximum of 16 dimensions can be provided | | Note that for this function, a maximum of 16 dimensions can be provided | |
|
| (that is, \verb+ndim+ cannot be more than 16 and there cannot be more than | | (that is, \c ndim cannot be more than 16 and there cannot be more than | |
| 16 arguments after the first). | | 16 arguments after the first). | |
|
| The \verb+XLALCreateArray+ | | The \c XLALCreateArray() | |
| \verb+XLALCreateArrayL+ | | \c XLALCreateArrayL() | |
| \verb+XLALCreateArrayV+ | | \c XLALCreateArrayV() | |
| functions are equivalent to the | | functions are equivalent to the | |
|
| \verb+XLALCreateREAL4Array+ | | \c XLALCreateREAL4Array() | |
| \verb+XLALCreateREAL4ArrayL+ | | \c XLALCreateREAL4ArrayL() | |
| \verb+XLALCreateREAL4ArrayV+ | | \c XLALCreateREAL4ArrayV() | |
| functions respectively. | | functions respectively. | |
| | | | |
|
| The \verb+XLALDestroy<type>Array+ functions deallocate the memory allocatio | | The <tt>XLALDestroy\<type\>Array</tt> functions deallocate the memory alloc | |
| n | | ation | |
| pointed to by \verb+array+ including its contents. The function | | pointed to by \c array including its contents. The function | |
| \verb+XLALDestroyArray+ is the same as \verb+XLALDestroyREAL4Array+. | | \c XLALDestroyArray() is the same as \c XLALDestroyREAL4Array(). | |
| | | | |
|
| The \verb+XLALResize<type>Array+ | | The <tt>XLALResize\<type\>Array</tt> | |
| \verb+XLALResize<type>ArrayL+ | | <tt>XLALResize\<type\>ArrayL</tt> | |
| \verb+XLALResize<type>ArrayV+ | | <tt>XLALResize\<type\>ArrayV</tt> | |
| functions resize the provided array \verb+array+. The arguments after the | | functions resize the provided array \c array. The arguments after the | |
| first are interpreted in the same way as for the | | first are interpreted in the same way as for the | |
|
| \verb+XLALCreate<type>Array+ | | <tt>XLALCreate\<type\>Array</tt> | |
| \verb+XLALCreate<type>ArrayL+ | | <tt>XLALCreate\<type\>ArrayL</tt> | |
| \verb+XLALCreate<type>ArrayV+ | | <tt>XLALCreate\<type\>ArrayV</tt> | |
| functions. If \verb+array+ is \verb+NULL+, the resize functions are equiva | | functions. If \c array is \c NULL, the resize functions are equivalent | |
| lent | | to the corresponding create function. If \c ndim is zero for | |
| to the corresponding create function. If \verb+ndim+ is zero for | | <tt>XLALResize\<type\>ArrayL</tt> or | |
| \verb+XLALResize<type>ArrayL+ or | | <tt>XLALResize\<type\>ArrayV</tt>, or if \c dimLength is \c NULL for | |
| \verb+XLALResize<type>ArrayV+, or if \verb+dimLength+ is \verb+NULL+ for | | <tt>XLALResize\<type\>Array</tt>, then these functions are equivalent to | |
| \verb+XLALResize<type>Array+, then these functions are equivalent to | | <tt>XLALDestroy\<type\>Array</tt>. | |
| \verb+XLALDestroy<type>Array+. | | The \c XLALResizeArray() | |
| The \verb+XLALResizeArray+ | | \c XLALResizeArrayL() | |
| \verb+XLALResizeArrayL+ | | \c XLALResizeArrayV() | |
| \verb+XLALResizeArrayV+ | | | |
| functions are equivalent to the | | functions are equivalent to the | |
|
| \verb+XLALResizeREAL4Array+ | | \c XLALResizeREAL4Array() | |
| \verb+XLALResizeREAL4ArrayL+ | | \c XLALResizeREAL4ArrayL() | |
| \verb+XLALResizeREAL4ArrayV+ | | \c XLALResizeREAL4ArrayV() | |
| functions respectively. | | functions respectively. | |
| | | | |
|
| \subsubsection*{Return Values} | | \subsection ss_AVF_return Return Values | |
| | | | |
| If successful, the create and resize functions return a pointer to the same | | If successful, the create and resize functions return a pointer to the same | |
| data that was passed to the function. The resize functions will return | | data that was passed to the function. The resize functions will return | |
|
| a \verb+NULL+ pointer if the size of the new object was zero. Upon failure | | a \c NULL pointer if the size of the new object was zero. Upon failure | |
| these routines will return \verb+NULL+ and will set \verb+xlalErrno+ to | | these routines will return \c NULL and will set \c xlalErrno to | |
| one of these values: \verb+XLAL_ENOMEM+ if a memory allocation failed, | | one of these values: \c #XLAL_ENOMEM if a memory allocation failed, | |
| \verb+XLAL_EBADLEN+ if an invalid length was provided (for example, a | | \c #XLAL_EBADLEN if an invalid length was provided (for example, a | |
| zero-size allocation with a create function), \verb+XLAL_EINVAL+ if an | | zero-size allocation with a create function), \c XLAL_EINVAL if an | |
| invalid argument is provided (for example, if the pointer to an | | invalid argument is provided (for example, if the pointer to an | |
|
| array of dimensions is \verb+NULL+). | | array of dimensions is \c NULL). | |
| | | | |
| The destroy function does not return any value. If the function is passed
a | | The destroy function does not return any value. If the function is passed
a | |
|
| \verb+NULL+ pointer, it will set \verb+xlalErrno+ to \verb+XLAL_EFAULT+. | | \c NULL pointer, it will set \c xlalErrno to \c #XLAL_EFAULT. | |
| If the function is passed an object that appears corrupted (e.g., a | | If the function is passed an object that appears corrupted (e.g., a | |
|
| vector with zero length or will a \verb+NULL+ data pointer) it will set | | vector with zero length or will a \c NULL data pointer) it will set | |
| \verb+xlalErrno+ to \verb+XLAL_EINVAL+. | | \c xlalErrno to \c #XLAL_EINVAL. | |
| | | | |
| </lalLaTeX> */ | | | |
| | | | |
|
| /* | | */ | |
| | | /*@{ */ | |
| | | /** \name Error Codes *//*@{*/ | |
| | | #define AVFACTORIESH_ELENGTH 1 | |
| | | #define AVFACTORIESH_EVPTR 2 | |
| | | #define AVFACTORIESH_EUPTR 4 | |
| | | #define AVFACTORIESH_EDPTR 8 | |
| | | #define AVFACTORIESH_EMALLOC 16 | |
| | | #define AVFACTORIESH_MSGELENGTH "Illegal length." | |
| | | #define AVFACTORIESH_MSGEVPTR "Null vector/array handle." | |
| | | #define AVFACTORIESH_MSGEUPTR "Non-null vector/array pointer." | |
| | | #define AVFACTORIESH_MSGEDPTR "Null vector/array data." | |
| | | #define AVFACTORIESH_MSGEMALLOC "Malloc failure." | |
| | | /*@}*/ | |
| | | /*@}*/ | |
| | | | |
|
| * CHAR | | /* CHAR vector prototypes */ | |
| */ | | | |
| CHARVector * XLALCreateCHARVector ( UINT4 length ); | | CHARVector * XLALCreateCHARVector ( UINT4 length ); | |
| CHARVector * XLALResizeCHARVector ( CHARVector * vector, UINT4 length ); | | CHARVector * XLALResizeCHARVector ( CHARVector * vector, UINT4 length ); | |
| void XLALDestroyCHARVector ( CHARVector * vector ); | | void XLALDestroyCHARVector ( CHARVector * vector ); | |
| void LALCHARCreateVector ( LALStatus *, CHARVector **, UINT4 ); | | void LALCHARCreateVector ( LALStatus *, CHARVector **, UINT4 ); | |
| void LALCHARResizeVector ( LALStatus *, CHARVector **, UINT4 ); | | void LALCHARResizeVector ( LALStatus *, CHARVector **, UINT4 ); | |
| void LALCHARDestroyVector ( LALStatus *, CHARVector ** ); | | void LALCHARDestroyVector ( LALStatus *, CHARVector ** ); | |
| | | | |
|
| /* | | /* INT2 vector prototypes */ | |
| | | | |
| * INT2 | | | |
| */ | | | |
| INT2Vector * XLALCreateINT2Vector ( UINT4 length ); | | INT2Vector * XLALCreateINT2Vector ( UINT4 length ); | |
| INT2Vector * XLALResizeINT2Vector ( INT2Vector * vector, UINT4 length ); | | INT2Vector * XLALResizeINT2Vector ( INT2Vector * vector, UINT4 length ); | |
| void XLALDestroyINT2Vector ( INT2Vector * vector ); | | void XLALDestroyINT2Vector ( INT2Vector * vector ); | |
| void LALI2CreateVector ( LALStatus *, INT2Vector **, UINT4 ); | | void LALI2CreateVector ( LALStatus *, INT2Vector **, UINT4 ); | |
| void LALI2ResizeVector ( LALStatus *, INT2Vector **, UINT4 ); | | void LALI2ResizeVector ( LALStatus *, INT2Vector **, UINT4 ); | |
| void LALI2DestroyVector ( LALStatus *, INT2Vector ** ); | | void LALI2DestroyVector ( LALStatus *, INT2Vector ** ); | |
| | | | |
|
| /* | | /* INT2 array prototypes */ | |
| | | | |
| * INT2 | | | |
| */ | | | |
| INT2Array * XLALCreateINT2ArrayL ( UINT4, ... ); | | INT2Array * XLALCreateINT2ArrayL ( UINT4, ... ); | |
| INT2Array * XLALCreateINT2ArrayV ( UINT4, UINT4 * ); | | INT2Array * XLALCreateINT2ArrayV ( UINT4, UINT4 * ); | |
| INT2Array * XLALCreateINT2Array ( UINT4Vector * ); | | INT2Array * XLALCreateINT2Array ( UINT4Vector * ); | |
| INT2Array * XLALResizeINT2ArrayL ( INT2Array *, UINT4, ... ); | | INT2Array * XLALResizeINT2ArrayL ( INT2Array *, UINT4, ... ); | |
| INT2Array * XLALResizeINT2ArrayV ( INT2Array *, UINT4, UINT4 * ); | | INT2Array * XLALResizeINT2ArrayV ( INT2Array *, UINT4, UINT4 * ); | |
| INT2Array * XLALResizeINT2Array ( INT2Array *, UINT4Vector * ); | | INT2Array * XLALResizeINT2Array ( INT2Array *, UINT4Vector * ); | |
| void XLALDestroyINT2Array ( INT2Array * ); | | void XLALDestroyINT2Array ( INT2Array * ); | |
| void LALI2CreateArray ( LALStatus *, INT2Array **, UINT4Vector * ); | | void LALI2CreateArray ( LALStatus *, INT2Array **, UINT4Vector * ); | |
| void LALI2ResizeArray ( LALStatus *, INT2Array **, UINT4Vector * ); | | void LALI2ResizeArray ( LALStatus *, INT2Array **, UINT4Vector * ); | |
| void LALI2DestroyArray ( LALStatus *, INT2Array ** ); | | void LALI2DestroyArray ( LALStatus *, INT2Array ** ); | |
| | | | |
|
| /* | | /* INT4 vector prototypes */ | |
| | | | |
| * INT4 | | | |
| */ | | | |
| INT4Vector * XLALCreateINT4Vector ( UINT4 length ); | | INT4Vector * XLALCreateINT4Vector ( UINT4 length ); | |
| INT4Vector * XLALResizeINT4Vector ( INT4Vector * vector, UINT4 length ); | | INT4Vector * XLALResizeINT4Vector ( INT4Vector * vector, UINT4 length ); | |
| void XLALDestroyINT4Vector ( INT4Vector * vector ); | | void XLALDestroyINT4Vector ( INT4Vector * vector ); | |
| void LALI4CreateVector ( LALStatus *, INT4Vector **, UINT4 ); | | void LALI4CreateVector ( LALStatus *, INT4Vector **, UINT4 ); | |
| void LALI4ResizeVector ( LALStatus *, INT4Vector **, UINT4 ); | | void LALI4ResizeVector ( LALStatus *, INT4Vector **, UINT4 ); | |
| void LALI4DestroyVector ( LALStatus *, INT4Vector ** ); | | void LALI4DestroyVector ( LALStatus *, INT4Vector ** ); | |
| | | | |
|
| /* | | /* INT4 array prototypes */ | |
| | | | |
| * INT4 | | | |
| */ | | | |
| INT4Array * XLALCreateINT4ArrayL ( UINT4, ... ); | | INT4Array * XLALCreateINT4ArrayL ( UINT4, ... ); | |
| INT4Array * XLALCreateINT4ArrayV ( UINT4, UINT4 * ); | | INT4Array * XLALCreateINT4ArrayV ( UINT4, UINT4 * ); | |
| INT4Array * XLALCreateINT4Array ( UINT4Vector * ); | | INT4Array * XLALCreateINT4Array ( UINT4Vector * ); | |
| INT4Array * XLALResizeINT4ArrayL ( INT4Array *, UINT4, ... ); | | INT4Array * XLALResizeINT4ArrayL ( INT4Array *, UINT4, ... ); | |
| INT4Array * XLALResizeINT4ArrayV ( INT4Array *, UINT4, UINT4 * ); | | INT4Array * XLALResizeINT4ArrayV ( INT4Array *, UINT4, UINT4 * ); | |
| INT4Array * XLALResizeINT4Array ( INT4Array *, UINT4Vector * ); | | INT4Array * XLALResizeINT4Array ( INT4Array *, UINT4Vector * ); | |
| void XLALDestroyINT4Array ( INT4Array * ); | | void XLALDestroyINT4Array ( INT4Array * ); | |
| void LALI4CreateArray ( LALStatus *, INT4Array **, UINT4Vector * ); | | void LALI4CreateArray ( LALStatus *, INT4Array **, UINT4Vector * ); | |
| void LALI4ResizeArray ( LALStatus *, INT4Array **, UINT4Vector * ); | | void LALI4ResizeArray ( LALStatus *, INT4Array **, UINT4Vector * ); | |
| void LALI4DestroyArray ( LALStatus *, INT4Array ** ); | | void LALI4DestroyArray ( LALStatus *, INT4Array ** ); | |
| | | | |
|
| /* | | /* INT8 vector prototypes */ | |
| | | | |
| * INT8 | | | |
| */ | | | |
| INT8Vector * XLALCreateINT8Vector ( UINT4 length ); | | INT8Vector * XLALCreateINT8Vector ( UINT4 length ); | |
| INT8Vector * XLALResizeINT8Vector ( INT8Vector * vector, UINT4 length ); | | INT8Vector * XLALResizeINT8Vector ( INT8Vector * vector, UINT4 length ); | |
| void XLALDestroyINT8Vector ( INT8Vector * vector ); | | void XLALDestroyINT8Vector ( INT8Vector * vector ); | |
| void LALI8CreateVector ( LALStatus *, INT8Vector **, UINT4 ); | | void LALI8CreateVector ( LALStatus *, INT8Vector **, UINT4 ); | |
| void LALI8ResizeVector ( LALStatus *, INT8Vector **, UINT4 ); | | void LALI8ResizeVector ( LALStatus *, INT8Vector **, UINT4 ); | |
| void LALI8DestroyVector ( LALStatus *, INT8Vector ** ); | | void LALI8DestroyVector ( LALStatus *, INT8Vector ** ); | |
| | | | |
|
| /* | | /* INT8 array prototypes */ | |
| | | | |
| * INT8 | | | |
| */ | | | |
| INT8Array * XLALCreateINT8ArrayL ( UINT4, ... ); | | INT8Array * XLALCreateINT8ArrayL ( UINT4, ... ); | |
| INT8Array * XLALCreateINT8ArrayV ( UINT4, UINT4 * ); | | INT8Array * XLALCreateINT8ArrayV ( UINT4, UINT4 * ); | |
| INT8Array * XLALCreateINT8Array ( UINT4Vector * ); | | INT8Array * XLALCreateINT8Array ( UINT4Vector * ); | |
| INT8Array * XLALResizeINT8ArrayL ( INT8Array *, UINT4, ... ); | | INT8Array * XLALResizeINT8ArrayL ( INT8Array *, UINT4, ... ); | |
| INT8Array * XLALResizeINT8ArrayV ( INT8Array *, UINT4, UINT4 * ); | | INT8Array * XLALResizeINT8ArrayV ( INT8Array *, UINT4, UINT4 * ); | |
| INT8Array * XLALResizeINT8Array ( INT8Array *, UINT4Vector * ); | | INT8Array * XLALResizeINT8Array ( INT8Array *, UINT4Vector * ); | |
| void XLALDestroyINT8Array ( INT8Array * ); | | void XLALDestroyINT8Array ( INT8Array * ); | |
| void LALI8CreateArray ( LALStatus *, INT8Array **, UINT4Vector * ); | | void LALI8CreateArray ( LALStatus *, INT8Array **, UINT4Vector * ); | |
| void LALI8ResizeArray ( LALStatus *, INT8Array **, UINT4Vector * ); | | void LALI8ResizeArray ( LALStatus *, INT8Array **, UINT4Vector * ); | |
| void LALI8DestroyArray ( LALStatus *, INT8Array ** ); | | void LALI8DestroyArray ( LALStatus *, INT8Array ** ); | |
| | | | |
|
| /* | | /* UINT2 vector prototypes */ | |
| | | | |
| * UINT2 | | | |
| */ | | | |
| UINT2Vector * XLALCreateUINT2Vector ( UINT4 length ); | | UINT2Vector * XLALCreateUINT2Vector ( UINT4 length ); | |
| UINT2Vector * XLALResizeUINT2Vector ( UINT2Vector * vector, UINT4 length ); | | UINT2Vector * XLALResizeUINT2Vector ( UINT2Vector * vector, UINT4 length ); | |
| void XLALDestroyUINT2Vector ( UINT2Vector * vector ); | | void XLALDestroyUINT2Vector ( UINT2Vector * vector ); | |
| void LALU2CreateVector ( LALStatus *, UINT2Vector **, UINT4 ); | | void LALU2CreateVector ( LALStatus *, UINT2Vector **, UINT4 ); | |
| void LALU2ResizeVector ( LALStatus *, UINT2Vector **, UINT4 ); | | void LALU2ResizeVector ( LALStatus *, UINT2Vector **, UINT4 ); | |
| void LALU2DestroyVector ( LALStatus *, UINT2Vector ** ); | | void LALU2DestroyVector ( LALStatus *, UINT2Vector ** ); | |
| | | | |
|
| /* | | /* UINT2 array prototypes */ | |
| | | | |
| * UINT2 | | | |
| */ | | | |
| UINT2Array * XLALCreateUINT2ArrayL ( UINT4, ... ); | | UINT2Array * XLALCreateUINT2ArrayL ( UINT4, ... ); | |
| UINT2Array * XLALCreateUINT2ArrayV ( UINT4, UINT4 * ); | | UINT2Array * XLALCreateUINT2ArrayV ( UINT4, UINT4 * ); | |
| UINT2Array * XLALCreateUINT2Array ( UINT4Vector * ); | | UINT2Array * XLALCreateUINT2Array ( UINT4Vector * ); | |
| UINT2Array * XLALResizeUINT2ArrayL ( UINT2Array *, UINT4, ... ); | | UINT2Array * XLALResizeUINT2ArrayL ( UINT2Array *, UINT4, ... ); | |
| UINT2Array * XLALResizeUINT2ArrayV ( UINT2Array *, UINT4, UINT4 * ); | | UINT2Array * XLALResizeUINT2ArrayV ( UINT2Array *, UINT4, UINT4 * ); | |
| UINT2Array * XLALResizeUINT2Array ( UINT2Array *, UINT4Vector * ); | | UINT2Array * XLALResizeUINT2Array ( UINT2Array *, UINT4Vector * ); | |
| void XLALDestroyUINT2Array ( UINT2Array * ); | | void XLALDestroyUINT2Array ( UINT2Array * ); | |
| void LALU2CreateArray ( LALStatus *, UINT2Array **, UINT4Vector * ); | | void LALU2CreateArray ( LALStatus *, UINT2Array **, UINT4Vector * ); | |
| void LALU2ResizeArray ( LALStatus *, UINT2Array **, UINT4Vector * ); | | void LALU2ResizeArray ( LALStatus *, UINT2Array **, UINT4Vector * ); | |
| void LALU2DestroyArray ( LALStatus *, UINT2Array ** ); | | void LALU2DestroyArray ( LALStatus *, UINT2Array ** ); | |
| | | | |
|
| /* | | /* UINT4 vector prototypes */ | |
| | | | |
| * UINT4 | | | |
| */ | | | |
| UINT4Vector * XLALCreateUINT4Vector ( UINT4 length ); | | UINT4Vector * XLALCreateUINT4Vector ( UINT4 length ); | |
| UINT4Vector * XLALResizeUINT4Vector ( UINT4Vector * vector, UINT4 length ); | | UINT4Vector * XLALResizeUINT4Vector ( UINT4Vector * vector, UINT4 length ); | |
| void XLALDestroyUINT4Vector ( UINT4Vector * vector ); | | void XLALDestroyUINT4Vector ( UINT4Vector * vector ); | |
| void LALU4CreateVector ( LALStatus *, UINT4Vector **, UINT4 ); | | void LALU4CreateVector ( LALStatus *, UINT4Vector **, UINT4 ); | |
| void LALU4ResizeVector ( LALStatus *, UINT4Vector **, UINT4 ); | | void LALU4ResizeVector ( LALStatus *, UINT4Vector **, UINT4 ); | |
| void LALU4DestroyVector ( LALStatus *, UINT4Vector ** ); | | void LALU4DestroyVector ( LALStatus *, UINT4Vector ** ); | |
| | | | |
|
| /* | | /* UINT4 array prototypes */ | |
| | | | |
| * UINT4 | | | |
| */ | | | |
| UINT4Array * XLALCreateUINT4ArrayL ( UINT4, ... ); | | UINT4Array * XLALCreateUINT4ArrayL ( UINT4, ... ); | |
| UINT4Array * XLALCreateUINT4ArrayV ( UINT4, UINT4 * ); | | UINT4Array * XLALCreateUINT4ArrayV ( UINT4, UINT4 * ); | |
| UINT4Array * XLALCreateUINT4Array ( UINT4Vector * ); | | UINT4Array * XLALCreateUINT4Array ( UINT4Vector * ); | |
| UINT4Array * XLALResizeUINT4ArrayL ( UINT4Array *, UINT4, ... ); | | UINT4Array * XLALResizeUINT4ArrayL ( UINT4Array *, UINT4, ... ); | |
| UINT4Array * XLALResizeUINT4ArrayV ( UINT4Array *, UINT4, UINT4 * ); | | UINT4Array * XLALResizeUINT4ArrayV ( UINT4Array *, UINT4, UINT4 * ); | |
| UINT4Array * XLALResizeUINT4Array ( UINT4Array *, UINT4Vector * ); | | UINT4Array * XLALResizeUINT4Array ( UINT4Array *, UINT4Vector * ); | |
| void XLALDestroyUINT4Array ( UINT4Array * ); | | void XLALDestroyUINT4Array ( UINT4Array * ); | |
| void LALU4CreateArray ( LALStatus *, UINT4Array **, UINT4Vector * ); | | void LALU4CreateArray ( LALStatus *, UINT4Array **, UINT4Vector * ); | |
| void LALU4ResizeArray ( LALStatus *, UINT4Array **, UINT4Vector * ); | | void LALU4ResizeArray ( LALStatus *, UINT4Array **, UINT4Vector * ); | |
| void LALU4DestroyArray ( LALStatus *, UINT4Array ** ); | | void LALU4DestroyArray ( LALStatus *, UINT4Array ** ); | |
| | | | |
|
| /* | | /* UINT8 vector prototypes */ | |
| | | | |
| * UINT8 | | | |
| */ | | | |
| UINT8Vector * XLALCreateUINT8Vector ( UINT4 length ); | | UINT8Vector * XLALCreateUINT8Vector ( UINT4 length ); | |
| UINT8Vector * XLALResizeUINT8Vector ( UINT8Vector * vector, UINT4 length ); | | UINT8Vector * XLALResizeUINT8Vector ( UINT8Vector * vector, UINT4 length ); | |
| void XLALDestroyUINT8Vector ( UINT8Vector * vector ); | | void XLALDestroyUINT8Vector ( UINT8Vector * vector ); | |
| void LALU8CreateVector ( LALStatus *, UINT8Vector **, UINT4 ); | | void LALU8CreateVector ( LALStatus *, UINT8Vector **, UINT4 ); | |
| void LALU8ResizeVector ( LALStatus *, UINT8Vector **, UINT4 ); | | void LALU8ResizeVector ( LALStatus *, UINT8Vector **, UINT4 ); | |
| void LALU8DestroyVector ( LALStatus *, UINT8Vector ** ); | | void LALU8DestroyVector ( LALStatus *, UINT8Vector ** ); | |
| | | | |
|
| /* | | /* UINT8 array prototypes */ | |
| | | | |
| * UINT8 | | | |
| */ | | | |
| UINT8Array * XLALCreateUINT8ArrayL ( UINT4, ... ); | | UINT8Array * XLALCreateUINT8ArrayL ( UINT4, ... ); | |
| UINT8Array * XLALCreateUINT8ArrayV ( UINT4, UINT4 * ); | | UINT8Array * XLALCreateUINT8ArrayV ( UINT4, UINT4 * ); | |
| UINT8Array * XLALCreateUINT8Array ( UINT4Vector * ); | | UINT8Array * XLALCreateUINT8Array ( UINT4Vector * ); | |
| UINT8Array * XLALResizeUINT8ArrayL ( UINT8Array *, UINT4, ... ); | | UINT8Array * XLALResizeUINT8ArrayL ( UINT8Array *, UINT4, ... ); | |
| UINT8Array * XLALResizeUINT8ArrayV ( UINT8Array *, UINT4, UINT4 * ); | | UINT8Array * XLALResizeUINT8ArrayV ( UINT8Array *, UINT4, UINT4 * ); | |
| UINT8Array * XLALResizeUINT8Array ( UINT8Array *, UINT4Vector * ); | | UINT8Array * XLALResizeUINT8Array ( UINT8Array *, UINT4Vector * ); | |
| void XLALDestroyUINT8Array ( UINT8Array * ); | | void XLALDestroyUINT8Array ( UINT8Array * ); | |
| void LALU8CreateArray ( LALStatus *, UINT8Array **, UINT4Vector * ); | | void LALU8CreateArray ( LALStatus *, UINT8Array **, UINT4Vector * ); | |
| void LALU8ResizeArray ( LALStatus *, UINT8Array **, UINT4Vector * ); | | void LALU8ResizeArray ( LALStatus *, UINT8Array **, UINT4Vector * ); | |
| void LALU8DestroyArray ( LALStatus *, UINT8Array ** ); | | void LALU8DestroyArray ( LALStatus *, UINT8Array ** ); | |
| | | | |
|
| /* | | /* REAL4 vector prototypes */ | |
| | | | |
| * REAL4 | | | |
| */ | | | |
| REAL4Vector * XLALCreateREAL4Vector ( UINT4 length ); | | REAL4Vector * XLALCreateREAL4Vector ( UINT4 length ); | |
| REAL4Vector * XLALResizeREAL4Vector ( REAL4Vector * vector, UINT4 length ); | | REAL4Vector * XLALResizeREAL4Vector ( REAL4Vector * vector, UINT4 length ); | |
| void XLALDestroyREAL4Vector ( REAL4Vector * vector ); | | void XLALDestroyREAL4Vector ( REAL4Vector * vector ); | |
| void LALSCreateVector ( LALStatus *, REAL4Vector **, UINT4 ); | | void LALSCreateVector ( LALStatus *, REAL4Vector **, UINT4 ); | |
| void LALSResizeVector ( LALStatus *, REAL4Vector **, UINT4 ); | | void LALSResizeVector ( LALStatus *, REAL4Vector **, UINT4 ); | |
| void LALSDestroyVector ( LALStatus *, REAL4Vector ** ); | | void LALSDestroyVector ( LALStatus *, REAL4Vector ** ); | |
| | | | |
|
| /* | | /* REAL4 array prototypes */ | |
| | | | |
| * REAL4 | | | |
| */ | | | |
| REAL4Array * XLALCreateREAL4ArrayL ( UINT4, ... ); | | REAL4Array * XLALCreateREAL4ArrayL ( UINT4, ... ); | |
| REAL4Array * XLALCreateREAL4ArrayV ( UINT4, UINT4 * ); | | REAL4Array * XLALCreateREAL4ArrayV ( UINT4, UINT4 * ); | |
| REAL4Array * XLALCreateREAL4Array ( UINT4Vector * ); | | REAL4Array * XLALCreateREAL4Array ( UINT4Vector * ); | |
| REAL4Array * XLALResizeREAL4ArrayL ( REAL4Array *, UINT4, ... ); | | REAL4Array * XLALResizeREAL4ArrayL ( REAL4Array *, UINT4, ... ); | |
| REAL4Array * XLALResizeREAL4ArrayV ( REAL4Array *, UINT4, UINT4 * ); | | REAL4Array * XLALResizeREAL4ArrayV ( REAL4Array *, UINT4, UINT4 * ); | |
| REAL4Array * XLALResizeREAL4Array ( REAL4Array *, UINT4Vector * ); | | REAL4Array * XLALResizeREAL4Array ( REAL4Array *, UINT4Vector * ); | |
| void XLALDestroyREAL4Array ( REAL4Array * ); | | void XLALDestroyREAL4Array ( REAL4Array * ); | |
| void LALSCreateArray ( LALStatus *, REAL4Array **, UINT4Vector * ); | | void LALSCreateArray ( LALStatus *, REAL4Array **, UINT4Vector * ); | |
| void LALSResizeArray ( LALStatus *, REAL4Array **, UINT4Vector * ); | | void LALSResizeArray ( LALStatus *, REAL4Array **, UINT4Vector * ); | |
| void LALSDestroyArray ( LALStatus *, REAL4Array ** ); | | void LALSDestroyArray ( LALStatus *, REAL4Array ** ); | |
| | | | |
|
| /* | | /* REAL8 vector prototypes */ | |
| | | | |
| * REAL8 | | | |
| */ | | | |
| REAL8Vector * XLALCreateREAL8Vector ( UINT4 length ); | | REAL8Vector * XLALCreateREAL8Vector ( UINT4 length ); | |
| REAL8Vector * XLALResizeREAL8Vector ( REAL8Vector * vector, UINT4 length ); | | REAL8Vector * XLALResizeREAL8Vector ( REAL8Vector * vector, UINT4 length ); | |
| void XLALDestroyREAL8Vector ( REAL8Vector * vector ); | | void XLALDestroyREAL8Vector ( REAL8Vector * vector ); | |
| void LALDCreateVector ( LALStatus *, REAL8Vector **, UINT4 ); | | void LALDCreateVector ( LALStatus *, REAL8Vector **, UINT4 ); | |
| void LALDResizeVector ( LALStatus *, REAL8Vector **, UINT4 ); | | void LALDResizeVector ( LALStatus *, REAL8Vector **, UINT4 ); | |
| void LALDDestroyVector ( LALStatus *, REAL8Vector ** ); | | void LALDDestroyVector ( LALStatus *, REAL8Vector ** ); | |
| | | | |
|
| /* | | /* REAL8 array prototypes */ | |
| | | | |
| * REAL8 | | | |
| */ | | | |
| REAL8Array * XLALCreateREAL8ArrayL ( UINT4, ... ); | | REAL8Array * XLALCreateREAL8ArrayL ( UINT4, ... ); | |
| REAL8Array * XLALCreateREAL8ArrayV ( UINT4, UINT4 * ); | | REAL8Array * XLALCreateREAL8ArrayV ( UINT4, UINT4 * ); | |
| REAL8Array * XLALCreateREAL8Array ( UINT4Vector * ); | | REAL8Array * XLALCreateREAL8Array ( UINT4Vector * ); | |
| REAL8Array * XLALResizeREAL8ArrayL ( REAL8Array *, UINT4, ... ); | | REAL8Array * XLALResizeREAL8ArrayL ( REAL8Array *, UINT4, ... ); | |
| REAL8Array * XLALResizeREAL8ArrayV ( REAL8Array *, UINT4, UINT4 * ); | | REAL8Array * XLALResizeREAL8ArrayV ( REAL8Array *, UINT4, UINT4 * ); | |
| REAL8Array * XLALResizeREAL8Array ( REAL8Array *, UINT4Vector * ); | | REAL8Array * XLALResizeREAL8Array ( REAL8Array *, UINT4Vector * ); | |
| void XLALDestroyREAL8Array ( REAL8Array * ); | | void XLALDestroyREAL8Array ( REAL8Array * ); | |
| void LALDCreateArray ( LALStatus *, REAL8Array **, UINT4Vector * ); | | void LALDCreateArray ( LALStatus *, REAL8Array **, UINT4Vector * ); | |
| void LALDResizeArray ( LALStatus *, REAL8Array **, UINT4Vector * ); | | void LALDResizeArray ( LALStatus *, REAL8Array **, UINT4Vector * ); | |
| void LALDDestroyArray ( LALStatus *, REAL8Array ** ); | | void LALDDestroyArray ( LALStatus *, REAL8Array ** ); | |
| | | | |
|
| /* | | /* COMPLEX8 vector prototypes */ | |
| | | | |
| * COMPLEX8 | | | |
| */ | | | |
| COMPLEX8Vector * XLALCreateCOMPLEX8Vector ( UINT4 length ); | | COMPLEX8Vector * XLALCreateCOMPLEX8Vector ( UINT4 length ); | |
| COMPLEX8Vector * XLALResizeCOMPLEX8Vector ( COMPLEX8Vector * vector, UINT4
length ); | | COMPLEX8Vector * XLALResizeCOMPLEX8Vector ( COMPLEX8Vector * vector, UINT4
length ); | |
| void XLALDestroyCOMPLEX8Vector ( COMPLEX8Vector * vector ); | | void XLALDestroyCOMPLEX8Vector ( COMPLEX8Vector * vector ); | |
| void LALCCreateVector ( LALStatus *, COMPLEX8Vector **, UINT4 ); | | void LALCCreateVector ( LALStatus *, COMPLEX8Vector **, UINT4 ); | |
| void LALCResizeVector ( LALStatus *, COMPLEX8Vector **, UINT4 ); | | void LALCResizeVector ( LALStatus *, COMPLEX8Vector **, UINT4 ); | |
| void LALCDestroyVector ( LALStatus *, COMPLEX8Vector ** ); | | void LALCDestroyVector ( LALStatus *, COMPLEX8Vector ** ); | |
| | | | |
|
| /* | | /* COMPLEX8 array prototypes */ | |
| | | | |
| * COMPLEX8 | | | |
| */ | | | |
| COMPLEX8Array * XLALCreateCOMPLEX8ArrayL ( UINT4, ... ); | | COMPLEX8Array * XLALCreateCOMPLEX8ArrayL ( UINT4, ... ); | |
| COMPLEX8Array * XLALCreateCOMPLEX8ArrayV ( UINT4, UINT4 * ); | | COMPLEX8Array * XLALCreateCOMPLEX8ArrayV ( UINT4, UINT4 * ); | |
| COMPLEX8Array * XLALCreateCOMPLEX8Array ( UINT4Vector * ); | | COMPLEX8Array * XLALCreateCOMPLEX8Array ( UINT4Vector * ); | |
| COMPLEX8Array * XLALResizeCOMPLEX8ArrayL ( COMPLEX8Array *, UINT4, ... ); | | COMPLEX8Array * XLALResizeCOMPLEX8ArrayL ( COMPLEX8Array *, UINT4, ... ); | |
| COMPLEX8Array * XLALResizeCOMPLEX8ArrayV ( COMPLEX8Array *, UINT4, UINT4 *
); | | COMPLEX8Array * XLALResizeCOMPLEX8ArrayV ( COMPLEX8Array *, UINT4, UINT4 *
); | |
| COMPLEX8Array * XLALResizeCOMPLEX8Array ( COMPLEX8Array *, UINT4Vector * ); | | COMPLEX8Array * XLALResizeCOMPLEX8Array ( COMPLEX8Array *, UINT4Vector * ); | |
| void XLALDestroyCOMPLEX8Array ( COMPLEX8Array * ); | | void XLALDestroyCOMPLEX8Array ( COMPLEX8Array * ); | |
| void LALCCreateArray ( LALStatus *, COMPLEX8Array **, UINT4Vector * ); | | void LALCCreateArray ( LALStatus *, COMPLEX8Array **, UINT4Vector * ); | |
| void LALCResizeArray ( LALStatus *, COMPLEX8Array **, UINT4Vector * ); | | void LALCResizeArray ( LALStatus *, COMPLEX8Array **, UINT4Vector * ); | |
| void LALCDestroyArray ( LALStatus *, COMPLEX8Array ** ); | | void LALCDestroyArray ( LALStatus *, COMPLEX8Array ** ); | |
| | | | |
|
| /* | | /* COMPLEX16 vector prototypes */ | |
| | | | |
| * COMPLEX16 | | | |
| */ | | | |
| COMPLEX16Vector * XLALCreateCOMPLEX16Vector ( UINT4 length ); | | COMPLEX16Vector * XLALCreateCOMPLEX16Vector ( UINT4 length ); | |
| COMPLEX16Vector * XLALResizeCOMPLEX16Vector ( COMPLEX16Vector * vector, UIN
T4 length ); | | COMPLEX16Vector * XLALResizeCOMPLEX16Vector ( COMPLEX16Vector * vector, UIN
T4 length ); | |
| void XLALDestroyCOMPLEX16Vector ( COMPLEX16Vector * vector ); | | void XLALDestroyCOMPLEX16Vector ( COMPLEX16Vector * vector ); | |
| void LALZCreateVector ( LALStatus *, COMPLEX16Vector **, UINT4 ); | | void LALZCreateVector ( LALStatus *, COMPLEX16Vector **, UINT4 ); | |
| void LALZResizeVector ( LALStatus *, COMPLEX16Vector **, UINT4 ); | | void LALZResizeVector ( LALStatus *, COMPLEX16Vector **, UINT4 ); | |
| void LALZDestroyVector ( LALStatus *, COMPLEX16Vector ** ); | | void LALZDestroyVector ( LALStatus *, COMPLEX16Vector ** ); | |
| | | | |
|
| /* | | /* COMPLEX16 array prototypes */ | |
| | | | |
| * COMPLEX16 | | | |
| */ | | | |
| COMPLEX16Array * XLALCreateCOMPLEX16ArrayL ( UINT4, ... ); | | COMPLEX16Array * XLALCreateCOMPLEX16ArrayL ( UINT4, ... ); | |
| COMPLEX16Array * XLALCreateCOMPLEX16ArrayV ( UINT4, UINT4 * ); | | COMPLEX16Array * XLALCreateCOMPLEX16ArrayV ( UINT4, UINT4 * ); | |
| COMPLEX16Array * XLALCreateCOMPLEX16Array ( UINT4Vector * ); | | COMPLEX16Array * XLALCreateCOMPLEX16Array ( UINT4Vector * ); | |
| COMPLEX16Array * XLALResizeCOMPLEX16ArrayL ( COMPLEX16Array *, UINT4, ... )
; | | COMPLEX16Array * XLALResizeCOMPLEX16ArrayL ( COMPLEX16Array *, UINT4, ... )
; | |
| COMPLEX16Array * XLALResizeCOMPLEX16ArrayV ( COMPLEX16Array *, UINT4, UINT4
* ); | | COMPLEX16Array * XLALResizeCOMPLEX16ArrayV ( COMPLEX16Array *, UINT4, UINT4
* ); | |
| COMPLEX16Array * XLALResizeCOMPLEX16Array ( COMPLEX16Array *, UINT4Vector *
); | | COMPLEX16Array * XLALResizeCOMPLEX16Array ( COMPLEX16Array *, UINT4Vector *
); | |
| void XLALDestroyCOMPLEX16Array ( COMPLEX16Array * ); | | void XLALDestroyCOMPLEX16Array ( COMPLEX16Array * ); | |
| void LALZCreateArray ( LALStatus *, COMPLEX16Array **, UINT4Vector * ); | | void LALZCreateArray ( LALStatus *, COMPLEX16Array **, UINT4Vector * ); | |
| void LALZResizeArray ( LALStatus *, COMPLEX16Array **, UINT4Vector * ); | | void LALZResizeArray ( LALStatus *, COMPLEX16Array **, UINT4Vector * ); | |
| void LALZDestroyArray ( LALStatus *, COMPLEX16Array ** ); | | void LALZDestroyArray ( LALStatus *, COMPLEX16Array ** ); | |
| | | | |
|
| /* | | /* REAL4 vector prototypes */ | |
| | | | |
| * REAL4 | | | |
| */ | | | |
| REAL4Vector * XLALCreateVector ( UINT4 length ); | | REAL4Vector * XLALCreateVector ( UINT4 length ); | |
| REAL4Vector * XLALResizeVector ( REAL4Vector * vector, UINT4 length ); | | REAL4Vector * XLALResizeVector ( REAL4Vector * vector, UINT4 length ); | |
| void XLALDestroyVector ( REAL4Vector * vector ); | | void XLALDestroyVector ( REAL4Vector * vector ); | |
| void LALCreateVector ( LALStatus *, REAL4Vector **, UINT4 ); | | void LALCreateVector ( LALStatus *, REAL4Vector **, UINT4 ); | |
| void LALResizeVector ( LALStatus *, REAL4Vector **, UINT4 ); | | void LALResizeVector ( LALStatus *, REAL4Vector **, UINT4 ); | |
| void LALDestroyVector ( LALStatus *, REAL4Vector ** ); | | void LALDestroyVector ( LALStatus *, REAL4Vector ** ); | |
| | | | |
|
| /* | | /* REAL4 array prototypes */ | |
| | | | |
| * REAL4 | | | |
| */ | | | |
| REAL4Array * XLALCreateArrayL ( UINT4, ... ); | | REAL4Array * XLALCreateArrayL ( UINT4, ... ); | |
| REAL4Array * XLALCreateArrayV ( UINT4, UINT4 * ); | | REAL4Array * XLALCreateArrayV ( UINT4, UINT4 * ); | |
| REAL4Array * XLALCreateArray ( UINT4Vector * ); | | REAL4Array * XLALCreateArray ( UINT4Vector * ); | |
| REAL4Array * XLALResizeArrayL ( REAL4Array *, UINT4, ... ); | | REAL4Array * XLALResizeArrayL ( REAL4Array *, UINT4, ... ); | |
| REAL4Array * XLALResizeArrayV ( REAL4Array *, UINT4, UINT4 * ); | | REAL4Array * XLALResizeArrayV ( REAL4Array *, UINT4, UINT4 * ); | |
| REAL4Array * XLALResizeArray ( REAL4Array *, UINT4Vector * ); | | REAL4Array * XLALResizeArray ( REAL4Array *, UINT4Vector * ); | |
| void XLALDestroyArray ( REAL4Array * ); | | void XLALDestroyArray ( REAL4Array * ); | |
| void LALCreateArray ( LALStatus *, REAL4Array **, UINT4Vector * ); | | void LALCreateArray ( LALStatus *, REAL4Array **, UINT4Vector * ); | |
| void LALResizeArray ( LALStatus *, REAL4Array **, UINT4Vector * ); | | void LALResizeArray ( LALStatus *, REAL4Array **, UINT4Vector * ); | |
| void LALDestroyArray ( LALStatus *, REAL4Array ** ); | | void LALDestroyArray ( LALStatus *, REAL4Array ** ); | |
| | | | |
|
| /* Test program. */ | | | |
| | | | |
| /* <lalLaTeX> | | | |
| \newpage\input{VectorFactoriesTestC} | | | |
| \newpage\input{ArrayFactoriesTestC} | | | |
| </lalLaTeX> */ | | | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| #endif /* _AVFACTORIES_H */ | | #endif /* _AVFACTORIES_H */ | |
| | | | |
End of changes. 53 change blocks. |
| 264 lines changed or deleted | | 148 lines changed or added | |
|
| Calibration.h | | Calibration.h | |
| | | | |
| skipping to change at line 20 | | skipping to change at line 20 | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | | * GNU General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with with program; see the file COPYING. If not, write to the | | * along with with program; see the file COPYING. If not, write to the | |
| * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | | * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | |
| * MA 02111-1307 USA | | * MA 02111-1307 USA | |
| */ | | */ | |
| | | | |
|
| /**** <lalVerbatim file="CalibrationHV"> | | | |
| * Author: P. R. Brady, J. D. E. Creighton | | | |
| * $Id$ | | | |
| **** </lalVerbatim> */ | | | |
| | | | |
| /**** <lalLaTeX> | | | |
| * | | | |
| * \section{Header \texttt{Calibration.h}} | | | |
| * | | | |
| * \subsection*{Synopsis} | | | |
| * \begin{verbatim} | | | |
| * #include <lal/Calibration.h> | | | |
| * \end{verbatim} | | | |
| * | | | |
| **** </lalLaTeX> */ | | | |
| | | | |
| #ifndef _CALIBRATION_H | | #ifndef _CALIBRATION_H | |
| #define _CALIBRATION_H | | #define _CALIBRATION_H | |
| | | | |
|
| | | /* remove SWIG interface directives */ | |
| | | #if !defined(SWIG) && !defined(SWIGLAL_STRUCT) | |
| | | #define SWIGLAL_STRUCT(...) | |
| | | #endif | |
| | | | |
| #include <lal/LALDatatypes.h> | | #include <lal/LALDatatypes.h> | |
| #include <lal/BandPassTimeSeries.h> | | #include <lal/BandPassTimeSeries.h> | |
| | | | |
| NRCSID (CALIBRATIONH,"$Id$"); | | NRCSID (CALIBRATIONH,"$Id$"); | |
| | | | |
|
| #ifdef __cplusplus | | #if defined(__cplusplus) | |
| extern "C" { | | extern "C" { | |
|
| #pragma } /** to match the previous brace **/ | | #elif 0 | |
| | | } /* so that editors will match preceding brace */ | |
| #endif | | #endif | |
| | | | |
|
| /**** <lalLaTeX> | | /** | |
| | | * \author P. R. Brady, J. D. E. Creighton | |
| | | * \addtogroup Calibration_h | |
| * | | * | |
|
| * \subsection*{Error conditions} | | * \heading{Synopsis} | |
| | | * \code | |
| | | * #include <lal/Calibration.h> | |
| | | * \endcode | |
| * | | * | |
|
| **** </lalLaTeX> */ | | */ | |
| /**** <lalErrTable> */ | | /** @{ */ | |
| #define CALIBRATIONH_ENULL 001 | | | |
| #define CALIBRATIONH_ESIZE 002 | | | |
| #define CALIBRATIONH_ESZMM 004 | | | |
| #define CALIBRATIONH_EZERO 010 | | | |
| #define CALIBRATIONH_ETIME 020 | | | |
| #define CALIBRATIONH_EUNIT 040 | | | |
| | | | |
|
| | | /**\name Error Codes */ /*@{*/ | |
| | | #define CALIBRATIONH_ENULL 001 /**< Null pointer */ | |
| | | #define CALIBRATIONH_ESIZE 002 /**< Invalid size */ | |
| | | #define CALIBRATIONH_ESZMM 004 /**< Size mismatch */ | |
| | | #define CALIBRATIONH_EZERO 010 /**< Zero factor */ | |
| | | #define CALIBRATIONH_ETIME 020 /**< Time out of range */ | |
| | | #define CALIBRATIONH_EUNIT 040 /**< Incompatible units */ | |
| | | /*@}*/ | |
| | | | |
| | | /** \cond DONT_DOXYGEN */ | |
| #define CALIBRATIONH_MSGENULL "Null pointer" | | #define CALIBRATIONH_MSGENULL "Null pointer" | |
| #define CALIBRATIONH_MSGESIZE "Invalid size" | | #define CALIBRATIONH_MSGESIZE "Invalid size" | |
| #define CALIBRATIONH_MSGESZMM "Size mismatch" | | #define CALIBRATIONH_MSGESZMM "Size mismatch" | |
| #define CALIBRATIONH_MSGEZERO "Zero factor" | | #define CALIBRATIONH_MSGEZERO "Zero factor" | |
| #define CALIBRATIONH_MSGETIME "Time out of range" | | #define CALIBRATIONH_MSGETIME "Time out of range" | |
| #define CALIBRATIONH_MSGEUNIT "Incompatible units" | | #define CALIBRATIONH_MSGEUNIT "Incompatible units" | |
|
| /**** </lalErrTable> */ | | /** \endcond */ | |
| | | | |
|
| /**** <lalLaTeX> | | /** UNDOCUMENTED */ | |
| * | | | |
| * \subsection*{Structures} | | | |
| * \idx[Type]{CalibrationType} | | | |
| * \idx[Type]{CalibrationRecord} | | | |
| * \idx[Type]{CalibrationFunctions} | | | |
| * \idx[Type]{CalibrationUpdateParams} | | | |
| * | | | |
| * \subsubsection*{Type \texttt{CalibrationType}} | | | |
| * | | | |
| **** </lalLaTeX> */ | | | |
| /**** <lalVerbatim> */ | | | |
| typedef enum | | typedef enum | |
| { | | { | |
| CalibrationAmplitude = 001, | | CalibrationAmplitude = 001, | |
| CalibrationOffset = 002, | | CalibrationOffset = 002, | |
| CalibrationDelay = 004, | | CalibrationDelay = 004, | |
| CalibrationTransfer = 010, | | CalibrationTransfer = 010, | |
| CalibrationZPG = 020 | | CalibrationZPG = 020 | |
| } | | } | |
| CalibrationType; | | CalibrationType; | |
|
| /**** </lalVerbatim> */ | | | |
| | | | |
|
| /**** <lalLaTeX> | | /** UNDOCUMENTED */ | |
| * | | | |
| * Document \verb+CalibrationType+ | | | |
| * | | | |
| * \subsubsection*{Type \texttt{CalFactors}} | | | |
| * | | | |
| **** </lalLaTeX> */ | | | |
| /**** <lalVerbatim> */ | | | |
| typedef struct | | typedef struct | |
| tagCalFactors | | tagCalFactors | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(CalFactors); | |
| COMPLEX16 alpha; | | COMPLEX16 alpha; | |
| COMPLEX16 alphabeta; | | COMPLEX16 alphabeta; | |
| COMPLEX16 beta; | | COMPLEX16 beta; | |
| COMPLEX16 exc; | | COMPLEX16 exc; | |
| COMPLEX16 asq; | | COMPLEX16 asq; | |
| COMPLEX16 darm; | | COMPLEX16 darm; | |
| } | | } | |
| CalFactors; | | CalFactors; | |
|
| /**** </lalVerbatim> */ | | | |
| | | | |
|
| /**** <lalLaTeX> | | /** UNDOCUMENTED */ | |
| * | | | |
| * Document \verb+CalibrationType+ | | | |
| * | | | |
| * \subsubsection*{Type \texttt{UpdateFactorsParams}} | | | |
| * | | | |
| **** </lalLaTeX> */ | | | |
| /**** <lalVerbatim> */ | | | |
| typedef struct | | typedef struct | |
| tagUpdateFactorsParams | | tagUpdateFactorsParams | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(UpdateFactorsParams); | |
| REAL8 lineFrequency; | | REAL8 lineFrequency; | |
| COMPLEX16 openloop; | | COMPLEX16 openloop; | |
| COMPLEX16 digital; | | COMPLEX16 digital; | |
| COMPLEX16 whitener; | | COMPLEX16 whitener; | |
| REAL4TimeSeries *darmCtrl; | | REAL4TimeSeries *darmCtrl; | |
| REAL4TimeSeries *asQ; | | REAL4TimeSeries *asQ; | |
| REAL4TimeSeries *exc; | | REAL4TimeSeries *exc; | |
| } | | } | |
| UpdateFactorsParams; | | UpdateFactorsParams; | |
|
| /**** </lalVerbatim> */ | | | |
| | | | |
|
| /**** <lalLaTeX> | | /** UNDOCUMENTED */ | |
| * | | | |
| * Document \verb+CalibrationType+ | | | |
| * | | | |
| * \subsubsection*{Type \texttt{CalibrationRecord}} | | | |
| * | | | |
| **** </lalLaTeX> */ | | | |
| /**** <lalVerbatim> */ | | | |
| typedef struct | | typedef struct | |
| tagCalibrationRecord | | tagCalibrationRecord | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(CalibrationRecord); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LIGOTimeGPS epoch; | | LIGOTimeGPS epoch; | |
| REAL8 duration; | | REAL8 duration; | |
| CHAR reference[LALNameLength]; | | CHAR reference[LALNameLength]; | |
| LALUnit units; | | LALUnit units; | |
| UINT4 type; | | UINT4 type; | |
| REAL8 conversion; | | REAL8 conversion; | |
| REAL8 offset; | | REAL8 offset; | |
| REAL8 delay; | | REAL8 delay; | |
| COMPLEX8FrequencySeries *transfer; | | COMPLEX8FrequencySeries *transfer; | |
| REAL8Vector *zeros; | | REAL8Vector *zeros; | |
| REAL8Vector *poles; | | REAL8Vector *poles; | |
| REAL8 gain; | | REAL8 gain; | |
| } | | } | |
| CalibrationRecord; | | CalibrationRecord; | |
|
| /**** </lalVerbatim> */ | | | |
| | | | |
|
| /**** <lalLaTeX> | | /** The type CalibrationFunctions contains two calibration functions, | |
| * | | * the sensing function \f$C(f)\f$ and the response function \f$R(f)\f$. W | |
| * Document \verb+CalibrationRecord+ | | hile the | |
| * | | * response function is the function that is most often wanted, the sensing | |
| * \subsubsection*{Type \texttt{CalibrationFunctions}} | | * function is needed in updating calibration from one epoch to another. | |
| * | | */ | |
| **** </lalLaTeX> */ | | | |
| /**** <lalVerbatim> */ | | | |
| typedef struct | | typedef struct | |
| tagCalibrationFunctions | | tagCalibrationFunctions | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(CalibrationFunctions); | |
| COMPLEX8FrequencySeries *responseFunction; | | COMPLEX8FrequencySeries *responseFunction; | |
| COMPLEX8FrequencySeries *sensingFunction; | | COMPLEX8FrequencySeries *sensingFunction; | |
| } | | } | |
| CalibrationFunctions; | | CalibrationFunctions; | |
|
| /**** </lalVerbatim> */ | | | |
| /**** <lalLaTeX> | | /** The type \c CalibrationUpdateParams contains two time series | |
| * The type \texttt{CalibrationFunctions} contains two calibration function | | * representing an overall gain factor for the open-loop gain function \f$H | |
| s, | | (f)\f$ | |
| * the sensing function $C(f)$ and the response function $R(f)$. While the | | * and the sensing function \f$C(f)\f$. These transfer functions are known | |
| * response function is the function that is most often wanted, the sensing | | to | |
| * function is needed in updating calibration from one epoch to another. | | * change (by an overall factor) with time, and these two factors can be | |
| * | | * tracked using the injected calibration lines. The factors are stored | |
| * \subsubsection*{Type \texttt{CalibrationUpdateParams}} | | * in this structure as (very-slowly varying) time series, and are to be | |
| * | | * used in updating the calibration functions described previously. | |
| **** </lalLaTeX> */ | | * (The response function can be computed from the open-loop gain and the | |
| /**** <lalVerbatim> */ | | * sensing function. It is simply \f$R(f)=[1+H(f)]/C(f)\f$.) In addition, | |
| | | this | |
| | | * structure contains the present epoch and the duration of the data to be | |
| | | * calibrated to identify the particular set of | |
| | | * factors (from those recorded in the time series) to use. | |
| | | */ | |
| typedef struct | | typedef struct | |
| tagCalibrationUpdateParams | | tagCalibrationUpdateParams | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(CalibrationUpdateParams); | |
| LIGOTimeGPS epoch; | | LIGOTimeGPS epoch; | |
| LIGOTimeGPS duration; | | LIGOTimeGPS duration; | |
| CHAR *ifo; | | CHAR *ifo; | |
| COMPLEX8 alpha; | | COMPLEX8 alpha; | |
| COMPLEX8 alphabeta; | | COMPLEX8 alphabeta; | |
| COMPLEX8TimeSeries *openLoopFactor; | | COMPLEX8TimeSeries *openLoopFactor; | |
| COMPLEX8TimeSeries *sensingFactor; | | COMPLEX8TimeSeries *sensingFactor; | |
| } | | } | |
| CalibrationUpdateParams; | | CalibrationUpdateParams; | |
|
| /**** </lalVerbatim> */ | | | |
| /**** <lalLaTeX> | | | |
| * The type \texttt{CalibrationUpdateParams} contains two time series | | | |
| * representing an overall gain factor for the open-loop gain function $H(f | | | |
| )$ | | | |
| * and the sensing function $C(f)$. These transfer functions are known to | | | |
| * change (by an overall factor) with time, and these two factors can be | | | |
| * tracked using the injected calibration lines. The factors are stored | | | |
| * in this structure as (very-slowly varying) time series, and are to be | | | |
| * used in updating the calibration functions described previously. | | | |
| * (The response function can be computed from the open-loop gain and the | | | |
| * sensing function. It is simply $R(f)=[1+H(f)]/C(f)$.) In addition, thi | | | |
| s | | | |
| * structure contains the present epoch and the duration of the data to be | | | |
| * calibrated to identify the particular set of | | | |
| * factors (from those recorded in the time series) to use. | | | |
| * | | | |
| * \vfill{\footnotesize\input{CalibrationHV}} | | | |
| * \newpage\input{ComputeTransferC} | | | |
| * | | | |
| **** </lalLaTeX> */ | | | |
| | | | |
|
| | | /** UNDOCUMENTED */ | |
| typedef | | typedef | |
|
| struct StrainOutTag { | | struct tagStrainOut { | |
| REAL8TimeSeries h; /* timeseries containing h(t) */ | | SWIGLAL_STRUCT(StrainOut); | |
| REAL8TimeSeries hC; /* timeseries containing the control signal * | | REAL8TimeSeries h; /**< timeseries containing h(t) */ | |
| / | | REAL8TimeSeries hC; /**< timeseries containing the control signa | |
| REAL8TimeSeries hR; /* timeseries containing the residual signal | | l */ | |
| */ | | REAL8TimeSeries hR; /**< timeseries containing the residual sign | |
| COMPLEX16TimeSeries alpha; /* alpha time series */ | | al */ | |
| COMPLEX16TimeSeries beta; /* beta time series */ | | COMPLEX16TimeSeries alpha; /**< alpha time series */ | |
| COMPLEX16TimeSeries alphabeta; /* alpha time series */ | | COMPLEX16TimeSeries beta; /**< beta time series */ | |
| INT2TimeSeries science_mode; /* flag = 1 for science mode, 0 otherwise | | COMPLEX16TimeSeries alphabeta;/**< alpha time series */ | |
| */ | | INT2TimeSeries science_mode; /**< flag = 1 for science mode, 0 otherwise | |
| | | */ | |
| } StrainOut; | | } StrainOut; | |
| | | | |
|
| | | /** UNDOCUMENTED */ | |
| typedef | | typedef | |
|
| struct StrainInTag { | | struct tagStrainIn { | |
| REAL4TimeSeries AS_Q ; /* timeseries containing ASQ */ | | SWIGLAL_STRUCT(StrainIn); | |
| REAL4TimeSeries DARM_ERR;/* timeseries containing DARM_ERR */ | | REAL4TimeSeries AS_Q ; /**< timeseries containing ASQ */ | |
| REAL4TimeSeries DARM ; /* timeseries containing DARM_CTRL */ | | REAL4TimeSeries DARM_ERR;/**< timeseries containing DARM_ERR */ | |
| REAL4TimeSeries EXC ; /* timeseries containing the excitation */ | | REAL4TimeSeries DARM ; /**< timeseries containing DARM_CTRL */ | |
| REAL4TimeSeries StateVector; /* timeseries containing the State Vector ( | | REAL4TimeSeries EXC ; /**< timeseries containing the excitation */ | |
| IFO-SV_STATE_VECTOR) */ | | REAL4TimeSeries StateVector; /**< timeseries containing the State Vector | |
| REAL4TimeSeries LAX; /* timeseries containing the Light-in-X-arm (LSC | | (IFO-SV_STATE_VECTOR) */ | |
| -LA_PTRX_NORM) */ | | REAL4TimeSeries LAX; /**< timeseries containing the Light-in-X-arm (L | |
| REAL4TimeSeries LAY; /* timeseries containing the Light-in-Y-arm (LSC | | SC-LA_PTRX_NORM) */ | |
| -LA_PTRY_NORM) */ | | REAL4TimeSeries LAY; /**< timeseries containing the Light-in-Y-arm (L | |
| COMPLEX16 Do; /* digital filter at cal line frequency */ | | SC-LA_PTRY_NORM) */ | |
| COMPLEX16 Go; /* OLG at cal line frequency */ | | COMPLEX16 Do; /**< digital filter at cal line frequency */ | |
| COMPLEX16 Wo; /* Whitening filter at cal line frequency */ | | COMPLEX16 Go; /**< OLG at cal line frequency */ | |
| REAL8 f; /* calibration line frequency */ | | COMPLEX16 Wo; /**< Whitening filter at cal line frequency */ | |
| REAL4 To; /* factors integration time */ | | REAL8 f; /**< calibration line frequency */ | |
| char filter_vc_info[1024]; /* version control information in the filters | | REAL4 To; /**< factors integration time */ | |
| file */ | | char filter_vc_info[1024]; /**< version control information in the filter | |
| char filter_chksum[64]; /* checksum of the contents of the filters file | | s file */ | |
| */ | | char filter_chksum[64]; /**< checksum of the contents of the filters fil | |
| REAL8IIRFilter *Cinv; /* Filters for inverse of sensing function */ | | e */ | |
| INT4 CinvUSF; /* Upsampling factor for sensing function */ | | REAL8IIRFilter *Cinv; /**< Filters for inverse of sensing function */ | |
| INT4 CinvDelay; /* Overall inverse sensing function delay */ | | INT4 CinvUSF; /**< Upsampling factor for sensing function */ | |
| REAL8IIRFilter *A; /* Filters for analog actuation function */ | | INT4 CinvDelay; /**< Overall inverse sensing function delay */ | |
| REAL8IIRFilter *D; /* Filters for analog actuation function */ | | REAL8IIRFilter *A; /**< Filters for analog actuation function */ | |
| REAL8IIRFilter *AW; /* Filters for analog actuation function */ | | REAL8IIRFilter *D; /**< Filters for analog actuation function */ | |
| REAL8 gamma_fudgefactor; | | REAL8IIRFilter *AW; /**< Filters for analog actuation function */ | |
| INT4 delta; | | REAL8 gamma_fudgefactor; /**< UNDOCUMENTED */ | |
| INT4 usefactors; | | INT4 delta; /**< UNDOCUMENTED */ | |
| INT4 wings; /* size of wings in seconds */ | | INT4 usefactors; /**< UNDOCUMENTED */ | |
| INT4 fftconv; | | INT4 wings; /**< size of wings in seconds */ | |
| INT4 outalphas; | | INT4 fftconv; /**< UNDOCUMENTED */ | |
| INT4 darmctrl; | | INT4 outalphas;/**< UNDOCUMENTED */ | |
| | | INT4 darmctrl;/**< UNDOCUMENTED */ | |
| /* Stuff needed to run old IIR code */ | | /* Stuff needed to run old IIR code */ | |
|
| REAL8IIRFilter *AA; /* Filters for analog actuation function */ | | REAL8IIRFilter *AA; /**< Filters for analog actuation function */ | |
| INT4 AADelay; /* Overall analog actuation function delay */ | | INT4 AADelay; /**< Overall analog actuation function delay */ | |
| REAL8IIRFilter *AX; /* Digital filters for x arm actuation function | | REAL8IIRFilter *AX; /**< Digital filters for x arm actuation functio | |
| */ | | n */ | |
| REAL8IIRFilter *AY; /* Digital filters for y arm actuation function | | REAL8IIRFilter *AY; /**< Digital filters for y arm actuation functio | |
| */ | | n */ | |
| INT4 NCinv; /* Numbers of filters of each type */ | | INT4 NCinv; /**< Numbers of filters of each type */ | |
| INT4 ND; | | INT4 ND;/**< UNDOCUMENTED */ | |
| INT4 NAA; | | INT4 NAA;/**< UNDOCUMENTED */ | |
| INT4 NAX; | | INT4 NAX;/**< UNDOCUMENTED */ | |
| INT4 NAY; | | INT4 NAY;/**< UNDOCUMENTED */ | |
| | | | |
| } StrainIn; | | } StrainIn; | |
| | | | |
|
| | | /** UNDOCUMENTED */ | |
| typedef | | typedef | |
|
| struct MyIIRFilter { | | struct tagMyIIRFilter { | |
| | | SWIGLAL_STRUCT(MyIIRFilter); | |
| INT4 yOrder; | | INT4 yOrder; | |
| INT4 xOrder; | | INT4 xOrder; | |
| REAL8 a[20]; | | REAL8 a[20]; | |
| REAL8 b[20]; | | REAL8 b[20]; | |
| REAL8 yhist[20]; | | REAL8 yhist[20]; | |
| REAL8 xhist[20]; | | REAL8 xhist[20]; | |
| } MyIIRFilter; | | } MyIIRFilter; | |
| | | | |
|
| | | /** @} */ | |
| | | | |
| | | /* ----- Prototypes ----- */ | |
| | | | |
| void LALComputeTransfer( LALStatus *status, CalibrationRecord *calrec ); | | void LALComputeTransfer( LALStatus *status, CalibrationRecord *calrec ); | |
| | | | |
| void | | void | |
| LALUpdateCalibration( | | LALUpdateCalibration( | |
| LALStatus *status, | | LALStatus *status, | |
| CalibrationFunctions *output, | | CalibrationFunctions *output, | |
| CalibrationFunctions *input, | | CalibrationFunctions *input, | |
| CalibrationUpdateParams *params | | CalibrationUpdateParams *params | |
| ); | | ); | |
| | | | |
| | | | |
| skipping to change at line 347 | | skipping to change at line 305 | |
| void LALMakeFIRLP(LALStatus *status, | | void LALMakeFIRLP(LALStatus *status, | |
| REAL8IIRFilter *G, | | REAL8IIRFilter *G, | |
| int USF); | | int USF); | |
| | | | |
| void LALMakeFIRLPALPHAS(LALStatus *status, | | void LALMakeFIRLPALPHAS(LALStatus *status, | |
| REAL8IIRFilter *G); | | REAL8IIRFilter *G); | |
| | | | |
| void LALMakeFIRHP(LALStatus *status, | | void LALMakeFIRHP(LALStatus *status, | |
| REAL8IIRFilter *G); | | REAL8IIRFilter *G); | |
| | | | |
|
| int XALFIRFilter(REAL8TimeSeries *tseries, | | int XLALFIRFilter(REAL8TimeSeries *tseries, | |
| REAL8IIRFilter *FIR); | | REAL8IIRFilter *FIR); | |
| | | | |
| void LALFFTFIRFilter(LALStatus *status, | | void LALFFTFIRFilter(LALStatus *status, | |
| REAL8TimeSeries *tseries, | | REAL8TimeSeries *tseries, | |
| REAL8IIRFilter *FIR); | | REAL8IIRFilter *FIR); | |
| | | | |
|
| void LALFIRFilter(LALStatus *status, | | | |
| REAL8TimeSeries *tseries, | | | |
| REAL8IIRFilter *FIR); | | | |
| | | | |
| void LALFreeFilter(LALStatus *status, REAL8IIRFilter *F2, int ORDER); | | void LALFreeFilter(LALStatus *status, REAL8IIRFilter *F2, int ORDER); | |
| void LALCopyFilter(LALStatus *status, REAL8IIRFilter **F2, REAL8IIRFilter *
F1, int ORDER); | | void LALCopyFilter(LALStatus *status, REAL8IIRFilter **F2, REAL8IIRFilter *
F1, int ORDER); | |
| | | | |
| int XLALDivideTimeSeries(REAL8TimeSeries *hR, REAL8TimeSeries *ALPHAS); | | int XLALDivideTimeSeries(REAL8TimeSeries *hR, REAL8TimeSeries *ALPHAS); | |
| int XLALUpsample(REAL8TimeSeries *uphR, REAL8TimeSeries *hR, int up_factor)
; | | int XLALUpsample(REAL8TimeSeries *uphR, REAL8TimeSeries *hR, int up_factor)
; | |
| int XLALUpsampleLinear(REAL8TimeSeries *uphR, REAL8TimeSeries *hR, int up_f
actor); | | int XLALUpsampleLinear(REAL8TimeSeries *uphR, REAL8TimeSeries *hR, int up_f
actor); | |
| | | | |
|
| #ifdef __cplusplus | | #if 0 | |
| #pragma { /** to match the next brace **/ | | { /* so that editors will match succeeding brace */ | |
| | | #elif defined(__cplusplus) | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| #endif /* _CALIBRATION_H */ | | #endif /* _CALIBRATION_H */ | |
| | | | |
End of changes. 36 change blocks. |
| 174 lines changed or deleted | | 130 lines changed or added | |
|
| ComplexFFT.h | | ComplexFFT.h | |
| | | | |
| skipping to change at line 20 | | skipping to change at line 20 | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | | * GNU General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with with program; see the file COPYING. If not, write to the | | * along with with program; see the file COPYING. If not, write to the | |
| * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | | * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | |
| * MA 02111-1307 USA | | * MA 02111-1307 USA | |
| */ | | */ | |
| | | | |
|
| /**** <lalVerbatim file="ComplexFFTHV"> | | | |
| * $Id$ | | | |
| **** </lalVerbatim> */ | | | |
| | | | |
| /**** <lalLaTeX> | | | |
| * | | | |
| * \section{Header \texttt{ComplexFFT.h}} | | | |
| * \label{s:ComplexFFT.h} | | | |
| * | | | |
| * Performs complex-to-complex FFTs. | | | |
| * | | | |
| * \subsection*{Synopsis} | | | |
| * \begin{verbatim} | | | |
| * #include <lal/ComplexFFT.h> | | | |
| * \end{verbatim} | | | |
| * | | | |
| * 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 <lal/LALDatatypes.h> | | #include <lal/LALDatatypes.h> | |
| | | | |
|
| #ifdef __cplusplus | | #if defined(__cplusplus) | |
| extern "C" { | | extern "C" { | |
|
| #pragma } | | #elif 0 | |
| | | } /* so that editors will match preceding brace */ | |
| | | #endif | |
| | | | |
| | | #ifdef __cplusplus | |
| | | #ifdef __GNUC__ | |
| | | #define RESTRICT __restrict__ | |
| | | #else | |
| | | #define RESTRICT | |
| | | #endif | |
| | | #else | |
| | | #define RESTRICT restrict | |
| #endif | | #endif | |
| | | | |
| NRCSID( COMPLEXFFTH, "$Id$" ); | | NRCSID( COMPLEXFFTH, "$Id$" ); | |
| | | | |
|
| /**** <lalLaTeX> | | /** | |
| * \subsection*{Error conditions} | | * \addtogroup ComplexFFT_h | |
| **** </lalLaTeX> */ | | * | |
| /**** <lalErrTable> */ | | * \brief Performs complex-to-complex FFTs. | |
| | | * | |
| | | * \heading{Synopsis} | |
| | | * \code | |
| | | * #include <lal/ComplexFFT.h> | |
| | | * \endcode | |
| | | * | |
| | | * Perform complex-to-complex fast Fourier transforms of vectors using the | |
| | | * package FFTW [\ref fj_1998]. | |
| | | * | |
| | | */ | |
| | | /*@{*/ | |
| | | | |
|
| #define COMPLEXFFTH_ENULL 1 | | /** \name Error Codes */ /*@{*/ | |
| #define COMPLEXFFTH_ENNUL 2 | | #define COMPLEXFFTH_ENULL 1 /**< Null pointer */ | |
| #define COMPLEXFFTH_ESIZE 4 | | #define COMPLEXFFTH_ENNUL 2 /**< Non-null pointer */ | |
| #define COMPLEXFFTH_ESZMM 8 | | #define COMPLEXFFTH_ESIZE 4 /**< Invalid input size */ | |
| #define COMPLEXFFTH_ESLEN 16 | | #define COMPLEXFFTH_ESZMM 8 /**< Size mismatch */ | |
| #define COMPLEXFFTH_ESAME 32 | | #define COMPLEXFFTH_ESLEN 16 /**< Invalid/mismatched sequence lengths */ | |
| #define COMPLEXFFTH_EALOC 64 | | #define COMPLEXFFTH_ESAME 32 /**< Input/Output data vectors are the same | |
| #define COMPLEXFFTH_EFFTW 128 | | */ | |
| #define COMPLEXFFTH_ESNGL 256 | | #define COMPLEXFFTH_EALOC 64 /**< Memory allocation failed */ | |
| #define COMPLEXFFTH_EINTL 512 | | #define COMPLEXFFTH_EFFTW 128 /**< Error in FFTW */ | |
| #define COMPLEXFFTH_ESIGN 1024 | | #define COMPLEXFFTH_ESNGL 256 /**< FFTW library is not single-precision */ | |
| | | #define COMPLEXFFTH_EINTL 512 /**< Error in Intel FFT library */ | |
| | | #define COMPLEXFFTH_ESIGN 1024 /**< Unknown sign of transform in plan */ | |
| | | /*@}*/ | |
| | | | |
|
| | | /** \cond DONT_DOXYGEN */ | |
| #define COMPLEXFFTH_MSGENULL "Null pointer" | | #define COMPLEXFFTH_MSGENULL "Null pointer" | |
| #define COMPLEXFFTH_MSGENNUL "Non-null pointer" | | #define COMPLEXFFTH_MSGENNUL "Non-null pointer" | |
| #define COMPLEXFFTH_MSGESIZE "Invalid input size" | | #define COMPLEXFFTH_MSGESIZE "Invalid input size" | |
| #define COMPLEXFFTH_MSGESZMM "Size mismatch" | | #define COMPLEXFFTH_MSGESZMM "Size mismatch" | |
| #define COMPLEXFFTH_MSGESLEN "Invalid/mismatched sequence lengths" | | #define COMPLEXFFTH_MSGESLEN "Invalid/mismatched sequence lengths" | |
| #define COMPLEXFFTH_MSGESAME "Input/Output data vectors are the same" | | #define COMPLEXFFTH_MSGESAME "Input/Output data vectors are the same" | |
|
| #define COMPLEXFFTH_MSGEFFTW "Error in FFTW" | | | |
| #define COMPLEXFFTH_MSGEALOC "Memory allocation failed" | | #define COMPLEXFFTH_MSGEALOC "Memory allocation failed" | |
|
| | | #define COMPLEXFFTH_MSGEFFTW "Error in FFTW" | |
| #define COMPLEXFFTH_MSGESNGL "FFTW library is not single-precision" | | #define COMPLEXFFTH_MSGESNGL "FFTW library is not single-precision" | |
| #define COMPLEXFFTH_MSGEINTL "Error in Intel FFT library" | | #define COMPLEXFFTH_MSGEINTL "Error in Intel FFT library" | |
| #define COMPLEXFFTH_MSGESIGN "Unknown sign of transform in plan" | | #define COMPLEXFFTH_MSGESIGN "Unknown sign of transform in plan" | |
|
| | | /** \endcond */ | |
| | | | |
|
| /**** </lalErrTable> */ | | | |
| /**** <lalLaTeX> | | | |
| * | | | |
| * \subsection*{Structures} | | | |
| * | | | |
| **** </lalLaTeX> */ | | | |
| /**** <lalVerbatim> */ | | | |
| /** Plan to perform FFT of COMPLEX8 data */ | | /** Plan to perform FFT of COMPLEX8 data */ | |
| typedef struct tagCOMPLEX8FFTPlan COMPLEX8FFTPlan; | | typedef struct tagCOMPLEX8FFTPlan COMPLEX8FFTPlan; | |
| /** Plan to perform FFT of COMPLEX16 data */ | | /** Plan to perform FFT of COMPLEX16 data */ | |
| typedef struct tagCOMPLEX16FFTPlan COMPLEX16FFTPlan; | | typedef struct tagCOMPLEX16FFTPlan COMPLEX16FFTPlan; | |
| #define tagComplexFFTPlan tagCOMPLEX8FFTPlan | | #define tagComplexFFTPlan tagCOMPLEX8FFTPlan | |
| #define ComplexFFTPlan COMPLEX8FFTPlan | | #define ComplexFFTPlan COMPLEX8FFTPlan | |
|
| /**** </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> */ | | | |
| | | | |
| /* | | /* | |
| * | | * | |
| * XLAL COMPLEX8 functions | | * XLAL COMPLEX8 functions | |
| * | | * | |
| */ | | */ | |
| | | | |
| /** Returns a new COMPLEX8FFTPlan | | /** Returns a new COMPLEX8FFTPlan | |
| * | | * | |
| * A COMPLEX8FFTPlan is required to perform a FFT that involves complex dat
a. | | * A COMPLEX8FFTPlan is required to perform a FFT that involves complex dat
a. | |
| | | | |
| skipping to change at line 234 | | skipping to change at line 223 | |
| * @par Errors: | | * @par Errors: | |
| * The \c XLALCOMPLEX8VectorFFT() function shall fail if: | | * The \c XLALCOMPLEX8VectorFFT() function shall fail if: | |
| * - [\c XLAL_EFAULT] A \c NULL pointer is provided as one of the argument
s. | | * - [\c XLAL_EFAULT] A \c NULL pointer is provided as one of the argument
s. | |
| * - [\c XLAL_EINVAL] A argument is invalid or the input and output data | | * - [\c XLAL_EINVAL] A argument is invalid or the input and output data | |
| * vectors are the same. | | * vectors are the same. | |
| * - [\c XLAL_EBADLEN] The input vector, output vector, and plan size are | | * - [\c XLAL_EBADLEN] The input vector, output vector, and plan size are | |
| * incompatible. | | * incompatible. | |
| * - [\c XLAL_ENOMEM] Insufficient storage space is available. | | * - [\c XLAL_ENOMEM] Insufficient storage space is available. | |
| * . | | * . | |
| */ | | */ | |
|
| int XLALCOMPLEX8VectorFFT( COMPLEX8Vector * restrict output, COMPLEX8Vector
* restrict input, | | int XLALCOMPLEX8VectorFFT( COMPLEX8Vector * RESTRICT output, COMPLEX8Vector
* RESTRICT input, | |
| const COMPLEX8FFTPlan *plan ); | | const COMPLEX8FFTPlan *plan ); | |
| | | | |
| /* | | /* | |
| * | | * | |
| * XLAL COMPLEX16 functions | | * XLAL COMPLEX16 functions | |
| * | | * | |
| */ | | */ | |
| | | | |
| /** Returns a new COMPLEX16FFTPlan | | /** Returns a new COMPLEX16FFTPlan | |
| * | | * | |
| | | | |
| skipping to change at line 366 | | skipping to change at line 355 | |
| * @par Errors: | | * @par Errors: | |
| * The \c XLALCOMPLEX16VectorFFT() function shall fail if: | | * The \c XLALCOMPLEX16VectorFFT() function shall fail if: | |
| * - [\c XLAL_EFAULT] A \c NULL pointer is provided as one of the argument
s. | | * - [\c XLAL_EFAULT] A \c NULL pointer is provided as one of the argument
s. | |
| * - [\c XLAL_EINVAL] A argument is invalid or the input and output data | | * - [\c XLAL_EINVAL] A argument is invalid or the input and output data | |
| * vectors are the same. | | * vectors are the same. | |
| * - [\c XLAL_EBADLEN] The input vector, output vector, and plan size are | | * - [\c XLAL_EBADLEN] The input vector, output vector, and plan size are | |
| * incompatible. | | * incompatible. | |
| * - [\c XLAL_ENOMEM] Insufficient storage space is available. | | * - [\c XLAL_ENOMEM] Insufficient storage space is available. | |
| * . | | * . | |
| */ | | */ | |
|
| int XLALCOMPLEX16VectorFFT( COMPLEX16Vector * restrict output, COMPLEX16Vec
tor * restrict input, | | int XLALCOMPLEX16VectorFFT( COMPLEX16Vector * RESTRICT output, COMPLEX16Vec
tor * RESTRICT input, | |
| const COMPLEX16FFTPlan *plan ); | | const COMPLEX16FFTPlan *plan ); | |
| | | | |
| /* | | /* | |
| * | | * | |
| * LAL COMPLEX8 functions | | * LAL COMPLEX8 functions | |
| * | | * | |
| */ | | */ | |
| | | | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALCreateForwardCOMPLEX8FFTPlan instead. | | * @deprecated Use XLALCreateForwardCOMPLEX8FFTPlan() instead. | |
| * @see XLALCreateForwardCOMPLEX8FFTPlan | | | |
| */ | | */ | |
| void | | void | |
| LALCreateForwardCOMPLEX8FFTPlan( | | LALCreateForwardCOMPLEX8FFTPlan( | |
| LALStatus *status, | | LALStatus *status, | |
| COMPLEX8FFTPlan **plan, | | COMPLEX8FFTPlan **plan, | |
| UINT4 size, | | UINT4 size, | |
| INT4 measure | | INT4 measure | |
| ); | | ); | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALCreateForwardCOMPLEX8FFTPlan instead. | | * @deprecated Use XLALCreateForwardCOMPLEX8FFTPlan() instead. | |
| * @see XLALCreateForwardCOMPLEX8FFTPlan | | | |
| */ | | */ | |
| #define LALCreateForwardComplexFFTPlan LALCreateForwardCOMPLEX8FFTPlan | | #define LALCreateForwardComplexFFTPlan LALCreateForwardCOMPLEX8FFTPlan | |
| | | | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALCreateReverseCOMPLEX8FFTPlan instead. | | * @deprecated Use XLALCreateReverseCOMPLEX8FFTPlan() instead. | |
| * @see XLALCreateReverseCOMPLEX8FFTPlan | | | |
| */ | | */ | |
| void | | void | |
| LALCreateReverseCOMPLEX8FFTPlan( | | LALCreateReverseCOMPLEX8FFTPlan( | |
| LALStatus *status, | | LALStatus *status, | |
| COMPLEX8FFTPlan **plan, | | COMPLEX8FFTPlan **plan, | |
| UINT4 size, | | UINT4 size, | |
| INT4 measure | | INT4 measure | |
| ); | | ); | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALCreateReverseCOMPLEX8FFTPlan instead. | | * @deprecated Use XLALCreateReverseCOMPLEX8FFTPlan() instead. | |
| * @see XLALCreateReverseCOMPLEX8FFTPlan | | | |
| */ | | */ | |
| #define LALCreateReverseComplexFFTPlan LALCreateReverseCOMPLEX8FFTPlan | | #define LALCreateReverseComplexFFTPlan LALCreateReverseCOMPLEX8FFTPlan | |
| | | | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALDestroyCOMPLEX8FFTPlan instead. | | * @deprecated Use XLALDestroyCOMPLEX8FFTPlan() instead. | |
| * @see XLALDestroyCOMPLEX8FFTPlan | | | |
| */ | | */ | |
| void | | void | |
| LALDestroyCOMPLEX8FFTPlan ( | | LALDestroyCOMPLEX8FFTPlan ( | |
| LALStatus *status, | | LALStatus *status, | |
| COMPLEX8FFTPlan **plan | | COMPLEX8FFTPlan **plan | |
| ); | | ); | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALDestroyCOMPLEX8FFTPlan instead. | | * @deprecated Use XLALDestroyCOMPLEX8FFTPlan() instead. | |
| * @see XLALDestroyCOMPLEX8FFTPlan | | | |
| */ | | */ | |
| #define LALDestroyComplexFFTPlan LALDestroyCOMPLEX8FFTPlan | | #define LALDestroyComplexFFTPlan LALDestroyCOMPLEX8FFTPlan | |
| | | | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALCOMPLEX8VectorFFT instead. | | * @deprecated Use XLALCOMPLEX8VectorFFT() instead. | |
| * @see XLALCOMPLEX8VectorFFT | | | |
| */ | | */ | |
| void | | void | |
| LALCOMPLEX8VectorFFT ( | | LALCOMPLEX8VectorFFT ( | |
| LALStatus *status, | | LALStatus *status, | |
| COMPLEX8Vector *output, | | COMPLEX8Vector *output, | |
| COMPLEX8Vector *input, | | COMPLEX8Vector *input, | |
| COMPLEX8FFTPlan *plan | | COMPLEX8FFTPlan *plan | |
| ); | | ); | |
| | | | |
| /* | | /* | |
| * | | * | |
| * LAL COMPLEX16 functions | | * LAL COMPLEX16 functions | |
| * | | * | |
| */ | | */ | |
| | | | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALCreateForwardCOMPLEX16FFTPlan instead. | | * @deprecated Use XLALCreateForwardCOMPLEX16FFTPlan() instead. | |
| * @see XLALCreateForwardCOMPLEX16FFTPlan | | | |
| */ | | */ | |
| void | | void | |
| LALCreateForwardCOMPLEX16FFTPlan( | | LALCreateForwardCOMPLEX16FFTPlan( | |
| LALStatus *status, | | LALStatus *status, | |
| COMPLEX16FFTPlan **plan, | | COMPLEX16FFTPlan **plan, | |
| UINT4 size, | | UINT4 size, | |
| INT4 measure | | INT4 measure | |
| ); | | ); | |
| | | | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALCreateReverseCOMPLEX16FFTPlan instead. | | * @deprecated Use XLALCreateReverseCOMPLEX16FFTPlan() instead. | |
| * @see XLALCreateReverseCOMPLEX16FFTPlan | | | |
| */ | | */ | |
| void | | void | |
| LALCreateReverseCOMPLEX16FFTPlan( | | LALCreateReverseCOMPLEX16FFTPlan( | |
| LALStatus *status, | | LALStatus *status, | |
| COMPLEX16FFTPlan **plan, | | COMPLEX16FFTPlan **plan, | |
| UINT4 size, | | UINT4 size, | |
| INT4 measure | | INT4 measure | |
| ); | | ); | |
| | | | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALDestroyCOMPLEX16FFTPlan instead. | | * @deprecated Use XLALDestroyCOMPLEX16FFTPlan() instead. | |
| * @see XLALDestroyCOMPLEX16FFTPlan | | | |
| */ | | */ | |
| void | | void | |
| LALDestroyCOMPLEX16FFTPlan ( | | LALDestroyCOMPLEX16FFTPlan ( | |
| LALStatus *status, | | LALStatus *status, | |
| COMPLEX16FFTPlan **plan | | COMPLEX16FFTPlan **plan | |
| ); | | ); | |
| | | | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALCOMPLEX16VectorFFT instead. | | * @deprecated Use XLALCOMPLEX16VectorFFT() instead. | |
| * @see XLALCOMPLEX16VectorFFT | | | |
| */ | | */ | |
| void | | void | |
| LALCOMPLEX16VectorFFT ( | | LALCOMPLEX16VectorFFT ( | |
| LALStatus *status, | | LALStatus *status, | |
| COMPLEX16Vector *output, | | COMPLEX16Vector *output, | |
| COMPLEX16Vector *input, | | COMPLEX16Vector *input, | |
| COMPLEX16FFTPlan *plan | | COMPLEX16FFTPlan *plan | |
| ); | | ); | |
| | | | |
|
| #ifdef __cplusplus | | /*@} */ | |
| #pragma { | | #undef RESTRICT | |
| | | | |
| | | #if 0 | |
| | | { /* so that editors will match succeeding brace */ | |
| | | #elif defined(__cplusplus) | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| #endif /* _COMPLEXFFT_H */ | | #endif /* _COMPLEXFFT_H */ | |
| | | | |
End of changes. 25 change blocks. |
| 82 lines changed or deleted | | 64 lines changed or added | |
|
| Date.h | | Date.h | |
| | | | |
| skipping to change at line 20 | | skipping to change at line 20 | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | | * GNU General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with with program; see the file COPYING. If not, write to the | | * along with with program; see the file COPYING. If not, write to the | |
| * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | | * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | |
| * MA 02111-1307 USA | | * MA 02111-1307 USA | |
| */ | | */ | |
| | | | |
|
| /** \file | | /** | |
| * \ingroup std | | * \defgroup Date_h Time Conversions | |
| * \author Chin, D. W. and Creighton, J. D. E. | | * \ingroup date | |
| * \brief Routines for converting between various time representations. | | * \author D.W. Chin, J.D.E. Creighton and Kipp Cannon | |
| * | | * \brief Provides routines for manipulating date and time information. | |
| */ | | | |
| /* <lalVerbatim file="DateHV"> | | | |
| | | | |
| Author: David Chin <dwchin@umich.edu> +1-734-709-9119 | | | |
| | | | |
| </lalVerbatim> */ | | | |
| | | | |
| /* <lalLaTeX> | | | |
| | | | |
| \section{Header \texttt{Date.h}} | | | |
| \label{s:Date.h} | | | |
| | | | |
| Provides routines for manipulating date and time information. | | | |
| | | | |
|
| \subsection*{Synopsis} | | \heading{Synopsis} | |
| \begin{verbatim} | | \code | |
| #include <lal/Date.h> | | #include <lal/Date.h> | |
|
| \end{verbatim} | | \endcode | |
| | | | |
| This header covers routines for manipulating date and time | | This header covers routines for manipulating date and time | |
|
| information. The various time systems are discussed in~\cite{esaa:1992}. | | information. The various time systems are discussed in [\ref esaa1992]. | |
| | | | |
|
| </lalLaTeX> */ | | */ | |
| | | | |
| #ifndef _DATE_H | | #ifndef _DATE_H | |
| #define _DATE_H | | #define _DATE_H | |
| | | | |
|
| | | /* remove SWIG interface directives */ | |
| | | #if !defined(SWIG) && !defined(SWIGLAL_STRUCT) | |
| | | #define SWIGLAL_STRUCT(...) | |
| | | #endif | |
| | | | |
| /* the following two preprocessor defines are to include the prototypes for | | /* the following two preprocessor defines are to include the prototypes for | |
| * gmtime_r() and asctime_r() from /usr/include/time.h | | * gmtime_r() and asctime_r() from /usr/include/time.h | |
| * HOWEVER, they do no good if -ansi is used in gcc: warnings are generated | | * HOWEVER, they do no good if -ansi is used in gcc: warnings are generated | |
| * that the prototypes have not been seen */ | | * that the prototypes have not been seen */ | |
| | | | |
| /* HP-UX and Solaris */ | | /* HP-UX and Solaris */ | |
| #ifndef _REENTRANT | | #ifndef _REENTRANT | |
| # define _REENTRANT | | # define _REENTRANT | |
| #endif | | #endif | |
| | | | |
| | | | |
| skipping to change at line 88 | | skipping to change at line 80 | |
| #include <lal/LALDatatypes.h> | | #include <lal/LALDatatypes.h> | |
| #include <lal/LALStdlib.h> | | #include <lal/LALStdlib.h> | |
| | | | |
| #include <lal/DetectorSite.h> | | #include <lal/DetectorSite.h> | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" | | extern "C" | |
| { | | { | |
| #endif | | #endif | |
| | | | |
|
| | | #define XLAL_BILLION_INT4 1000000000 | |
| | | #define XLAL_BILLION_INT8 LAL_INT8_C( 1000000000 ) | |
| | | #define XLAL_BILLION_REAL8 1e9 | |
| | | | |
| | | /** \ingroup Date_h *//*@{*/ | |
| /** The UNIX time of the GPS origin epoch. | | /** The UNIX time of the GPS origin epoch. | |
| * | | * | |
| * 1980 6 JAN 0h UTC is 3657 days after 1970 1 JAN 0h UTC: | | * 1980 6 JAN 0h UTC is 3657 days after 1970 1 JAN 0h UTC: | |
| * 8 standard years of 365 days = 2920 days | | * 8 standard years of 365 days = 2920 days | |
| * 2 leap years of 366 days = 734 days | | * 2 leap years of 366 days = 734 days | |
| * 5 extra days. | | * 5 extra days. | |
| * Hence 3657*86400=315964800. | | * Hence 3657*86400=315964800. | |
| * | | * | |
| * Note that this deliberately does not account for any leap seconds in the | | * Note that this deliberately does not account for any leap seconds in the | |
| * interval. POSIX:2001 defines the relation between the UNIX time | | * interval. POSIX:2001 defines the relation between the UNIX time | |
| | | | |
| skipping to change at line 117 | | skipping to change at line 114 | |
| * \c t=315964800. That is what this is. | | * \c t=315964800. That is what this is. | |
| */ | | */ | |
| #define XLAL_EPOCH_UNIX_GPS 315964800 | | #define XLAL_EPOCH_UNIX_GPS 315964800 | |
| #define XLAL_EPOCH_J2000_0_JD 2451545.0 /**< Julian Day of the J2000.0 epoc
h (2000 JAN 1 12h UTC). */ | | #define XLAL_EPOCH_J2000_0_JD 2451545.0 /**< Julian Day of the J2000.0 epoc
h (2000 JAN 1 12h UTC). */ | |
| #define XLAL_EPOCH_J2000_0_TAI_UTC 32 /**< Leap seconds (TAI-UTC) on the J2
000.0 epoch (2000 JAN 1 12h UTC). */ | | #define XLAL_EPOCH_J2000_0_TAI_UTC 32 /**< Leap seconds (TAI-UTC) on the J2
000.0 epoch (2000 JAN 1 12h UTC). */ | |
| #define XLAL_EPOCH_J2000_0_GPS 630763213 /**< GPS seconds of the J2000.0 ep
och (2000 JAN 1 12h UTC). */ | | #define XLAL_EPOCH_J2000_0_GPS 630763213 /**< GPS seconds of the J2000.0 ep
och (2000 JAN 1 12h UTC). */ | |
| #define XLAL_EPOCH_GPS_JD 2444244.5 /**< Julian Day of the GPS epoch (1980
JAN 6 0h UTC) */ | | #define XLAL_EPOCH_GPS_JD 2444244.5 /**< Julian Day of the GPS epoch (1980
JAN 6 0h UTC) */ | |
| #define XLAL_EPOCH_GPS_TAI_UTC 19 /**< Leap seconds (TAI-UTC) on the GPS ep
och (1980 JAN 6 0h UTC) */ | | #define XLAL_EPOCH_GPS_TAI_UTC 19 /**< Leap seconds (TAI-UTC) on the GPS ep
och (1980 JAN 6 0h UTC) */ | |
| #define XLAL_MJD_REF 2400000.5 /**< Reference Julian Day for Mean Julian Da
y. */ | | #define XLAL_MJD_REF 2400000.5 /**< Reference Julian Day for Mean Julian Da
y. */ | |
| #define XLAL_MODIFIED_JULIEN_DAY(utc) (XLALJulianDay(utc)-XLAL_MJD_REF) /**
< Modified Julian Day for specified civil time structure. */ | | #define XLAL_MODIFIED_JULIEN_DAY(utc) (XLALJulianDay(utc)-XLAL_MJD_REF) /**
< Modified Julian Day for specified civil time structure. */ | |
|
| | | /*@}*/ | |
| | | | |
|
| /** Converts GPS time to nano seconds stored as an INT8. */ | | /* Converts GPS time to nano seconds stored as an INT8. */ | |
| INT8 XLALGPSToINT8NS( const LIGOTimeGPS *epoch ); | | INT8 XLALGPSToINT8NS( const LIGOTimeGPS *epoch ); | |
| | | | |
|
| /** Converts nano seconds stored as an INT8 to GPS time. */ | | /* Converts nano seconds stored as an INT8 to GPS time. */ | |
| LIGOTimeGPS * XLALINT8NSToGPS( LIGOTimeGPS *epoch, INT8 ns ); | | LIGOTimeGPS * XLALINT8NSToGPS( LIGOTimeGPS *epoch, INT8 ns ); | |
| | | | |
|
| /** Sets GPS time given GPS integer seconds and residual nanoseconds. */ | | /* Sets GPS time given GPS integer seconds and residual nanoseconds. */ | |
| LIGOTimeGPS * XLALGPSSet( LIGOTimeGPS *epoch, INT4 gpssec, INT4 gpsnan ); | | LIGOTimeGPS * XLALGPSSet( LIGOTimeGPS *epoch, INT4 gpssec, INT4 gpsnan ); | |
| | | | |
|
| /** Sets GPS time given GPS seconds as a REAL8. */ | | /* Sets GPS time given GPS seconds as a REAL8. */ | |
| LIGOTimeGPS * XLALGPSSetREAL8( LIGOTimeGPS *epoch, REAL8 t ); | | LIGOTimeGPS * XLALGPSSetREAL8( LIGOTimeGPS *epoch, REAL8 t ); | |
| | | | |
|
| /** Returns GPS time as a REAL8. */ | | /* Returns GPS time as a REAL8. */ | |
| REAL8 XLALGPSGetREAL8( const LIGOTimeGPS *epoch ); | | REAL8 XLALGPSGetREAL8( const LIGOTimeGPS *epoch ); | |
| | | | |
|
| /** Adds dt to a GPS time. */ | | /* Adds dt to a GPS time. */ | |
| LIGOTimeGPS * XLALGPSAdd( LIGOTimeGPS *epoch, REAL8 dt ); | | LIGOTimeGPS * XLALGPSAdd( LIGOTimeGPS *epoch, REAL8 dt ); | |
| | | | |
|
| /** Adds two GPS times. */ | | /* Adds two GPS times. */ | |
| LIGOTimeGPS * XLALGPSAddGPS( LIGOTimeGPS *epoch, const LIGOTimeGPS *dt ); | | LIGOTimeGPS * XLALGPSAddGPS( LIGOTimeGPS *epoch, const LIGOTimeGPS *dt ); | |
| | | | |
|
| /** Difference between two GPS times. */ | | /* Difference between two GPS times. */ | |
| REAL8 XLALGPSDiff( const LIGOTimeGPS *t1, const LIGOTimeGPS *t0 ); | | REAL8 XLALGPSDiff( const LIGOTimeGPS *t1, const LIGOTimeGPS *t0 ); | |
| | | | |
|
| /** Compares two GPS times. | | /* Compares two GPS times. */ | |
| * Returns: | | | |
| * - -1 if t0 < t1 | | | |
| * - 0 if t0 == t1 | | | |
| * - 1 if t0 > t1. | | | |
| */ | | | |
| int XLALGPSCmp( const LIGOTimeGPS *t0, const LIGOTimeGPS *t1 ); | | int XLALGPSCmp( const LIGOTimeGPS *t0, const LIGOTimeGPS *t1 ); | |
| | | | |
|
| /** Multiply a GPS time by a REAL8 */ | | /* Multiply a GPS time by a REAL8 */ | |
| LIGOTimeGPS *XLALGPSMultiply( LIGOTimeGPS *gps, REAL8 x ); | | LIGOTimeGPS *XLALGPSMultiply( LIGOTimeGPS *gps, REAL8 x ); | |
| | | | |
|
| /** Divide a GPS time by a REAL8 */ | | /* Divide a GPS time by a REAL8 */ | |
| LIGOTimeGPS *XLALGPSDivide( LIGOTimeGPS *gps, REAL8 x ); | | LIGOTimeGPS *XLALGPSDivide( LIGOTimeGPS *gps, REAL8 x ); | |
| | | | |
|
| /** Returns the leap seconds TAI-UTC at a given GPS second. */ | | /* Returns the leap seconds TAI-UTC at a given GPS second. */ | |
| int XLALLeapSeconds( INT4 gpssec /**< [In] Seconds relative to GPS epoch.*/
); | | int XLALLeapSeconds( INT4 gpssec /**< [In] Seconds relative to GPS epoch.*/
); | |
| | | | |
|
| /** Returns the leap seconds GPS-UTC at a given GPS second. */ | | /* Returns the leap seconds GPS-UTC at a given GPS second. */ | |
| int XLALGPSLeapSeconds( INT4 gpssec /**< [In] Seconds relative to GPS epoch
.*/ ); | | int XLALGPSLeapSeconds( INT4 gpssec /**< [In] Seconds relative to GPS epoch
.*/ ); | |
| | | | |
|
| /** Returns the leap seconds TAI-UTC for a given UTC broken down time. */ | | /* Returns the leap seconds TAI-UTC for a given UTC broken down time. */ | |
| int XLALLeapSecondsUTC( const struct tm *utc /**< [In] UTC as a broken down
time.*/ ); | | int XLALLeapSecondsUTC( const struct tm *utc /**< [In] UTC as a broken down
time.*/ ); | |
| | | | |
|
| /** Returns the GPS seconds since the GPS epoch for a | | /* Returns the GPS seconds since the GPS epoch for a specified UTC time str | |
| * specified UTC time structure. */ | | ucture. */ | |
| INT4 XLALUTCToGPS( const struct tm *utc /**< [In] UTC time in a broken down
time structure. */ ); | | INT4 XLALUTCToGPS( const struct tm *utc /**< [In] UTC time in a broken down
time structure. */ ); | |
| | | | |
|
| /** Returns a pointer to a tm structure representing the time | | /* Returns a pointer to a tm structure representing the time | |
| * specified in seconds since the GPS epoch. */ | | * specified in seconds since the GPS epoch. */ | |
| struct tm * XLALGPSToUTC( | | struct tm * XLALGPSToUTC( | |
| struct tm *utc, /**< [Out] Pointer to tm struct where result is stored.
*/ | | struct tm *utc, /**< [Out] Pointer to tm struct where result is stored.
*/ | |
| INT4 gpssec /**< [In] Seconds since the GPS epoch. */ | | INT4 gpssec /**< [In] Seconds since the GPS epoch. */ | |
| ); | | ); | |
| | | | |
|
| /** Returns the Julian Day (JD) corresponding to the date given in a broken | | /* Returns the Julian Day (JD) corresponding to the date given in a broken | |
| * down time structure. */ | | * down time structure. */ | |
| REAL8 XLALJulianDay( const struct tm *utc /**< [In] UTC time in a broken do
wn time structure. */ ); | | REAL8 XLALJulianDay( const struct tm *utc /**< [In] UTC time in a broken do
wn time structure. */ ); | |
| | | | |
|
| /** Returns the Modified Julian Day (MJD) corresponding to the date given | | /* Returns the Modified Julian Day (MJD) corresponding to the date given in | |
| * in a broken down time structure. | | a broken down time structure.*/ | |
| * | | | |
| * Note: | | | |
| * - By convention, MJD is an integer. | | | |
| * - MJD number starts at midnight rather than noon. | | | |
| * | | | |
| * If you want a Modified Julian Day that has a fractional part, simply use | | | |
| * the macro: | | | |
| * | | | |
| * #define XLAL_MODIFIED_JULIAN_DAY(utc) (XLALJulianDay(utc)-XLAL_MJD_REF) | | | |
| */ | | | |
| INT4 XLALModifiedJulianDay( const struct tm *utc /**< [In] UTC time in a br
oken down time structure. */ ); | | INT4 XLALModifiedJulianDay( const struct tm *utc /**< [In] UTC time in a br
oken down time structure. */ ); | |
| | | | |
|
| /** Returns the Greenwich mean or aparent sideral time in radians. | | /* Returns the Greenwich mean or aparent sideral time in radians. */ | |
| */ | | | |
| REAL8 XLALGreenwichSiderealTime( | | REAL8 XLALGreenwichSiderealTime( | |
| const LIGOTimeGPS *gpstime, | | const LIGOTimeGPS *gpstime, | |
| REAL8 equation_of_equinoxes | | REAL8 equation_of_equinoxes | |
| ); | | ); | |
| | | | |
|
| /** Returns the Greenwich Mean Sidereal Time in RADIANS for a specified GPS | | /* Returns the Greenwich Mean Sidereal Time in RADIANS for a specified GPS | |
| * time. */ | | time. */ | |
| REAL8 XLALGreenwichMeanSiderealTime( | | REAL8 XLALGreenwichMeanSiderealTime( | |
| const LIGOTimeGPS *gpstime | | const LIGOTimeGPS *gpstime | |
| ); | | ); | |
| | | | |
|
| /** Returns the GPS time for the given Greenwich mean sidereal time (in | | /* Returns the GPS time for the given Greenwich mean sidereal time (in radi | |
| * radians). */ | | ans). */ | |
| LIGOTimeGPS *XLALGreenwichMeanSiderealTimeToGPS( | | LIGOTimeGPS *XLALGreenwichMeanSiderealTimeToGPS( | |
| REAL8 gmst, | | REAL8 gmst, | |
| LIGOTimeGPS *gps | | LIGOTimeGPS *gps | |
| ); | | ); | |
| | | | |
|
| /** Returns the GPS time for the given Greenwich sidereal time (in | | /* Returns the GPS time for the given Greenwich sidereal time (in radians). | |
| * radians). */ | | */ | |
| LIGOTimeGPS *XLALGreenwichSiderealTimeToGPS( | | LIGOTimeGPS *XLALGreenwichSiderealTimeToGPS( | |
| REAL8 gmst, | | REAL8 gmst, | |
| REAL8 equation_of_equinoxes, | | REAL8 equation_of_equinoxes, | |
| LIGOTimeGPS *gps | | LIGOTimeGPS *gps | |
| ); | | ); | |
| | | | |
|
| /* <lalLaTeX> | | /** \ingroup Date_h | |
| | | * This structure is just the standard Unix \c tm structure, described | |
| \subsection*{Structures} | | * in the man page for <tt>ctime(3)</tt>. We shall | |
| | | * {\em always} ignore the daylight savings time field, \c tm_isdst. | |
| \vfill{\footnotesize\input{DateHV}} | | | |
| | | | |
| \subsubsection*{Structure \texttt{LALUnixDate}} | | | |
| \idx[Type]{LALUnixDate} | | | |
| | | | |
| This structure is just the standard Unix \texttt{tm} structure, described | | | |
| in the man page for \texttt{ctime(3)}. 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; | |
| | | | |
|
| /* <lalLaTeX> | | /** \ingroup Date_h | |
| | | * This structure stores pointers to a ::LALDetector and a | |
| \subsubsection{Structure \texttt{LALPlaceAndGPS}} | | * ::LIGOTimeGPS. Its sole purpose is to aggregate these | |
| \idx[Type]{LALPlaceAndGPS} | | * structures for passing to functions. | |
| | | | |
| 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> */ | | | |
| | | | |
| /* | | | |
| * Place and time structures | | | |
| */ | | */ | |
|
| /* First, with GPS */ | | | |
| typedef struct | | typedef struct | |
| tagLALPlaceAndGPS | | tagLALPlaceAndGPS | |
| { | | { | |
|
| LALDetector *p_detector; /* pointer to a detector */ | | SWIGLAL_STRUCT(LALPlaceAndGPS); | |
| LIGOTimeGPS *p_gps; /* pointer to GPS time */ | | LALDetector *p_detector; /**< pointer to a detector */ | |
| | | LIGOTimeGPS *p_gps; /**< Pointer to a GPS time structure */ | |
| } | | } | |
| LALPlaceAndGPS; | | LALPlaceAndGPS; | |
| | | | |
| /* | | /* | |
| * Function prototypes | | * Function prototypes | |
| */ | | */ | |
| | | | |
| int XLALStrToGPS(LIGOTimeGPS *t, const char *nptr, char **endptr); | | int XLALStrToGPS(LIGOTimeGPS *t, const char *nptr, char **endptr); | |
| char *XLALGPSToStr(char *, const LIGOTimeGPS *t); | | char *XLALGPSToStr(char *, const LIGOTimeGPS *t); | |
| | | | |
| /* This function returns the current GPS time according to the system clock
*/ | | /* This function returns the current GPS time according to the system clock
*/ | |
| LIGOTimeGPS * | | LIGOTimeGPS * | |
| XLALGPSTimeNow ( | | XLALGPSTimeNow ( | |
| LIGOTimeGPS *gpstime | | LIGOTimeGPS *gpstime | |
| ); | | ); | |
| | | | |
|
| /* <lalLaTeX> | | | |
| \newpage\input{PlaygroundC} | | | |
| </lalLaTeX> */ | | | |
| int | | int | |
| XLALINT8NanoSecIsPlayground ( | | XLALINT8NanoSecIsPlayground ( | |
| INT8 ns | | INT8 ns | |
| ); | | ); | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| #endif /* _DATE_H */ | | #endif /* _DATE_H */ | |
| | | | |
End of changes. 35 change blocks. |
| 107 lines changed or deleted | | 59 lines changed or added | |
|
| DetResponse.h | | DetResponse.h | |
| | | | |
| skipping to change at line 20 | | skipping to change at line 20 | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | | * GNU General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with with program; see the file COPYING. If not, write to the | | * along with with program; see the file COPYING. If not, write to the | |
| * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | | * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | |
| * MA 02111-1307 USA | | * MA 02111-1307 USA | |
| */ | | */ | |
| | | | |
|
| /* <lalVerbatim file="DetResponseHV"> | | | |
| | | | |
| Author: David Chin <dwchin@umich.edu> +1-734-709-9119 | | | |
| $Id$ | | | |
| | | | |
| </lalVerbatim>*/ | | | |
| | | | |
| /* | | | |
| <lalLaTeX> | | | |
| | | | |
| \section{Header \texttt{DetResponse.h}} | | | |
| \label{sec:DetResponse.h} | | | |
| | | | |
| Provides routines to compute gravitational wave detector response to | | | |
| polarized planar gravitational wave originating from a given source, | | | |
| detected at a given time. | | | |
| | | | |
| \subsection{Synopsis} | | | |
| \label{ss:Synopsis} | | | |
| | | | |
| \begin{verbatim} | | | |
| #include <lal/DetResponse.h> | | | |
| \end{verbatim} | | | |
| | | | |
| </lalLaTeX> | | | |
| */ | | | |
| | | | |
| #ifndef _DETRESPONSE_H | | #ifndef _DETRESPONSE_H | |
| #define _DETRESPONSE_H | | #define _DETRESPONSE_H | |
| | | | |
|
| | | /* remove SWIG interface directives */ | |
| | | #if !defined(SWIG) && !defined(SWIGLAL_STRUCT) | |
| | | #define SWIGLAL_STRUCT(...) | |
| | | #endif | |
| | | | |
| #include <lal/LALStdlib.h> | | #include <lal/LALStdlib.h> | |
| #include <lal/LALStdio.h> | | #include <lal/LALStdio.h> | |
| #include <lal/LALConstants.h> | | #include <lal/LALConstants.h> | |
| #include <lal/DetectorSite.h> | | #include <lal/DetectorSite.h> | |
| #include <lal/SkyCoordinates.h> | | #include <lal/SkyCoordinates.h> | |
| #include <lal/Date.h> | | #include <lal/Date.h> | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" | | extern "C" | |
| { | | { | |
| #endif | | #endif | |
| | | | |
| NRCSID( DETRESPONSEH, "$Id$" ); | | NRCSID( DETRESPONSEH, "$Id$" ); | |
| | | | |
|
| /* | | /** | |
| <lalLaTeX> | | \author David Chin <dwchin@umich.edu>, Kipp Cannon <kipp@gravity.phys.uwm.e | |
| \subsection*{Error conditions} | | du> | |
| </lalLaTeX> | | \addtogroup DetResponse_h | |
| */ | | | |
| | | | |
|
| /* | | \brief Provides routines to compute gravitational wave detector response to | |
| <lalErrTable> | | polarized planar gravitational wave originating from a given source, | |
| */ | | detected at a given time. | |
| #define DETRESPONSEH_ENULLINPUT 1 | | | |
| #define DETRESPONSEH_ENULLOUTPUT 2 | | | |
| #define DETRESPONSEH_ESRCNOTEQUATORIAL 3 | | | |
| | | | |
|
| #define DETRESPONSEH_MSGENULLINPUT "Input is NULL" | | \heading{Synopsis} | |
| #define DETRESPONSEH_MSGENULLOUTPUT "Output is NULL" | | | |
| #define DETRESPONSEH_MSGESRCNOTEQUATORIAL "Source coordinates not in Equato | | | |
| rial system" | | | |
| | | | |
|
| /* | | \code | |
| </lalErrTable> | | #include <lal/DetResponse.h> | |
| */ | | \endcode | |
| | | | |
|
| /* | | \heading{Description} | |
| <lalLaTeX> | | | |
| \subsection*{Types and Structures} | | | |
| </lalLaTeX> | | | |
| */ | | | |
| | | | |
|
| /* <lalLaTeX> | | These routines compute the antenna beam pattern for all supported detector | |
| | | types. <tt>XLALComputeDetAMResponse()</tt> computes the response at one | |
| | | instance in time, and <tt>XLALComputeDetAMResponseSeries()</tt> computes a | |
| | | vector of response for some length of time. | |
| | | | |
|
| \vfill{\footnotesize\input{DetResponseHV}} | | \heading{Algorithm} | |
| | | | |
|
| </lalLaTeX> */ | | This code is a translation of the algorithm in the Maple worksheet by | |
| | | Anderson, <em>et al.</em> [\ref Anderson_2000]. We compute the \f$h\f$-ten | |
| | | sors for | |
| | | \f$+\f$- and \f$\times\f$-polarized in the Earth-fixed frame, and then cont | |
| | | ract | |
| | | them (take the scalar product) with the detector response tensors as | |
| | | described in the \ref LALDetectors_h section of the \c tools package. | |
| | | | |
|
| /* <lalLaTeX> | | \ref LALDetectors_h in the \c tools package provides predefined | |
| \subsubsection*{Structure \texttt{LALSource}} | | \c LALDetector structures representing most current detectors, | |
| \idx[Type]{LALSource} | | including LIGO (Hanford and Livingston), and GEO. | |
| | | | |
|
| This structure contains gravitational wave source position (in Equatorial | | \heading{Uses} | |
| co\"{o}rdinates), and orientation angle. The orientation is measured | | LALGPStoGMST1() | |
| counter-clockwise with respect to the ``line of ascending nodes'', | | | |
| \textit{i.e.} counter-clockwise with respect to a line perpendicular to the | | | |
| source's meridian and extending westwards. For a source in the Northern | | | |
| celestial hemisphere, and an observer in the Northern hemisphere standing | | | |
| such that they are facing South, this angle is measured counter-clockwise | | | |
| from a 3 o'clock position (pointing West) at the source. The polarization | | | |
| convention is chosen such that if the source orientation were zero, the | | | |
| source would be a pure $+$-polarized source. | | | |
| | | | |
|
| The fields are: | | \heading{Notes} | |
| \begin{description} | | | |
| \item[\texttt{CHAR *name}] Name of source | | | |
| \item[\texttt{SkyPosition equatorialCoords}] Equatorial co\"{o}rdinates of | | | |
| source | | | |
| \item[\texttt{REAL8 orientation}] Orientation angle ($\psi$) of source: | | | |
| counter-clockwise angle $x$-axis makes with a line perpendicular to | | | |
| meridian of source in Westward direction (\textit{i.e.} North of West), | | | |
| in decimal radians. | | | |
| \end{description} | | | |
| | | | |
|
| </lalLaTeX> */ | | For examples of usage, please see the test programs in the \c test | |
| | | directory. | |
| | | | |
| | | */ | |
| | | | |
| | | /** @{ */ | |
| | | | |
| | | /** \name Error Codes */ | |
| | | /*@{*/ | |
| | | #define DETRESPONSEH_ENULLINPUT 1 /**< Input is NULL */ | |
| | | #define DETRESPONSEH_ENULLOUTPUT 2 /**< Output is NULL */ | |
| | | #define DETRESPONSEH_ESRCNOTEQUATORIAL 3 /**< Source coordinates not | |
| | | in Equatorial system */ | |
| | | /*@}*/ | |
| | | | |
| | | /** \cond DONT_DOXYGEN */ | |
| | | #define DETRESPONSEH_MSGENULLINPUT "Input is NULL" | |
| | | #define DETRESPONSEH_MSGENULLOUTPUT "Output is NULL" | |
| | | #define DETRESPONSEH_MSGESRCNOTEQUATORIAL "Source coordinates not in Equato | |
| | | rial system" | |
| | | /** \endcond */ | |
| | | | |
|
| | | /** This structure contains gravitational wave source position (in Equatori | |
| | | al | |
| | | * coördinates), and orientation angle. | |
| | | * The orientation is measured counter-clockwise with respect to the "line | |
| | | of ascending nodes", | |
| | | * i.e. counter-clockwise with respect to a line perpendicular to the | |
| | | * source's meridian and extending westwards. For a source in the Northern | |
| | | * celestial hemisphere, and an observer in the Northern hemisphere standin | |
| | | g | |
| | | * such that they are facing South, this angle is measured counter-clockwis | |
| | | e | |
| | | * from a 3 o'clock position (pointing West) at the source. The polarizati | |
| | | on | |
| | | * convention is chosen such that if the source orientation were zero, the | |
| | | * source would be a pure \f$+\f$-polarized source. | |
| | | */ | |
| typedef struct | | typedef struct | |
| tagLALSource | | tagLALSource | |
| { | | { | |
|
| CHAR name[LALNameLength]; /* name of source, e.g. catalog number | | SWIGLAL_STRUCT(LALSource); | |
| */ | | CHAR name[LALNameLength]; /**< name of source, eg catalog number | |
| SkyPosition equatorialCoords; /* equatorial coordinates of source, | | */ | |
| in decimal RADIANS */ | | SkyPosition equatorialCoords; /**< equatorial coordinates of source, | |
| REAL8 orientation; /* counter-clockwise angle x-axis make | | in decimal RADIANS */ | |
| s | | REAL8 orientation; /**< Orientation angle (\f$\psi\f$) of | |
| with a line perpendicular to meridi | | source: | |
| an | | * counter-clockwise angle \f$x\f$-axi | |
| of object in Westward direction, in | | s makes with a line perpendicular to | |
| decimal RADIANS (i.e. North of West | | * meridian of source in Westward dire | |
| ) */ | | ction (i.e. North of West), | |
| | | * in decimal radians. | |
| | | */ | |
| } | | } | |
| LALSource; | | LALSource; | |
| | | | |
|
| /* <lalLaTeX> | | /** This structure aggregates a pointer to a \c LALDetector and a | |
| \subsubsection*{Structure \texttt{LALDetAndSource}} | | * \c LALSource. Its sole function is to allow the user to pass | |
| \idx[Type]{LALDetAndSource} | | * detector and source parameters to the functions | |
| | | * LALComputeDetAMResponse() and | |
| This structure aggregates a pointer to a \texttt{LALDetector} and a | | * LALComputeDetAMResponseSeries(). | |
| \texttt{LALSource}. Its sole function is to allow the user to pass | | */ | |
| detector and source parameters to the functions | | | |
| \texttt{LALComputeDetAMResponse()} and | | | |
| \texttt{LALComputeDetAMResponseSeries()}. | | | |
| | | | |
| The fields are: | | | |
| \begin{description} | | | |
| \item[\texttt{LALDetector *pDetector}] Pointer to \texttt{LALDetector} | | | |
| object containing information about the detector | | | |
| \item[\texttt{LALSource *pSource}] Pointer to \texttt{LALSource} object | | | |
| containing information about the source | | | |
| \end{description} | | | |
| </lalLaTeX> */ | | | |
| | | | |
| typedef struct | | typedef struct | |
| tagLALDetAndSource | | tagLALDetAndSource | |
| { | | { | |
|
| LALDetector *pDetector; | | SWIGLAL_STRUCT(LALDetAndSource); | |
| LALSource *pSource; | | LALDetector *pDetector; /**< Pointer to ::LALDetector object contain | |
| | | ing information about the detector */ | |
| | | LALSource *pSource; /**< Pointer to ::LALSource object containin | |
| | | g information about the source */ | |
| } | | } | |
| LALDetAndSource; | | LALDetAndSource; | |
| | | | |
|
| /* <lalLaTeX> | | /** This structure encapsulates the detector AM (beam pattern) coefficients | |
| \subsubsection{Structure \texttt{LALDetAMResponse}} | | for | |
| \idx[Type]{LALDetAMResponse} | | * one source at one instance in time. | |
| | | */ | |
| This structure encapsulates the detector AM (beam pattern) coefficients for | | | |
| one source at one instance in time. The fields are: | | | |
| | | | |
| \begin{description} | | | |
| \item[\texttt{REAL4 plus}] Detector response to $+$-polarized gravitational | | | |
| radiation | | | |
| \item[\texttt{REAL4 cross}] Detector response to $\times$-polarized | | | |
| gravitational radiation | | | |
| \item[\texttt{REAL4 scalar}] Detector response to scalar gravitational | | | |
| radiation (NB: ignored at present -- scalar response computation is not | | | |
| yet implemented) | | | |
| \end{description} | | | |
| | | | |
| </lalLaTeX> */ | | | |
| | | | |
| typedef struct | | typedef struct | |
| tagLALDetAMResponse | | tagLALDetAMResponse | |
| { | | { | |
|
| REAL4 plus; | | SWIGLAL_STRUCT(LALDetAMResponse); | |
| REAL4 cross; | | REAL4 plus; /**< Detector response to \f$+\f$-polarized gravitational ra | |
| REAL4 scalar; | | diation */ | |
| | | REAL4 cross; /**< Detector response to \f$\times\f$-polarized gravitation | |
| | | al radiation */ | |
| | | REAL4 scalar; /**< Detector response to scalar gravitational radia | |
| | | tion (NB: ignored at present -- scalar response computation not yet impleme | |
| | | nted) */ | |
| } | | } | |
| LALDetAMResponse; | | LALDetAMResponse; | |
| | | | |
|
| /* <lalLaTeX> | | /** This structure aggregates together three ::REAL4TimeSeries objects cont | |
| \subsubsection{Structure \texttt{LALDetAMResponseSeries}} | | aining | |
| \idx[Type]{LALDetAMResponseSeries} | | * time series of detector AM response. | |
| | | */ | |
| This structure aggregates together three \texttt{REAL4Vector}s containing | | | |
| time series of detector AM response. Since these quantities are | | | |
| dimensionless, they cannot be accurately stored in a \texttt{TimeSeries} | | | |
| structure. However, \texttt{REAL4Vector}s may be conveniently converted to | | | |
| \texttt{TimeSeries} format. | | | |
| | | | |
| \begin{description} | | | |
| \item[\texttt{REAL4TimeSeries *pPlus}] Pointer to a \texttt{REAL4TimeSeries | | | |
| } | | | |
| containing detector response to $+$-polarized gravitational radiation | | | |
| over a span of time | | | |
| \item[\texttt{REAL4TimeSeries *pCross}] Pointer to a \texttt{REAL4TimeSerie | | | |
| s} | | | |
| containing detector response to $\times$-polarized gravitational radiatio | | | |
| n | | | |
| over a span of time | | | |
| \item[\texttt{REAL4TimeSeries *pScalar}] Pointer to a \texttt{REAL4TimeSeri | | | |
| es} | | | |
| containing detector response to scalar gravitational radiation | | | |
| over a span of time. (NB: This is unused for the moment. Response to | | | |
| scalar gravitational radiation is not yet implemented.) | | | |
| \end{description} | | | |
| </lalLaTeX> */ | | | |
| | | | |
| typedef struct | | typedef struct | |
| tagLALDetAMResponseSeries | | tagLALDetAMResponseSeries | |
| { | | { | |
|
| REAL4TimeSeries *pPlus; | | SWIGLAL_STRUCT(LALDetAMResponseSeries); | |
| REAL4TimeSeries *pCross; | | REAL4TimeSeries *pPlus; /**< timeseries of detector response to \f$+ | |
| REAL4TimeSeries *pScalar; | | \f$-polarized gravitational radiation */ | |
| | | REAL4TimeSeries *pCross; /**< timeseries of detector response to \f$\ | |
| | | times\f$-polarized gravitational radiation */ | |
| | | REAL4TimeSeries *pScalar; /**< timeseries of detector response to scal | |
| | | ar gravitational radiation (NB: not yet implemented.) */ | |
| } | | } | |
| LALDetAMResponseSeries; | | LALDetAMResponseSeries; | |
| | | | |
|
| /* <lalLaTeX> | | /** This structure encapsulates time and sampling information for computing | |
| \subsubsection*{Structure \texttt{LALTimeIntervalAndNSample}} | | a | |
| \idx[Type]{LALTimeIntervalAndNSample} | | * ::LALDetAMResponseSeries. Its fields correspond to some fields of the | |
| | | * TimeSeries structures for easy conversion. | |
| This structure encapsulates time and sampling information for computing a | | */ | |
| \texttt{LALDetAMResponseSeries}. Its fields correspond to some fields of th | | | |
| e | | | |
| \texttt{TimeSeries} structures for easy conversion. | | | |
| | | | |
| \begin{description} | | | |
| \item[\texttt{LIGOTimeGPS epoch}] The start time $t_0$ of the time series | | | |
| \item[\texttt{REAL8 deltaT}] The sampling interval $\Delta t$, in seconds | | | |
| \item[\texttt{UINT4 nSample}] The total number of samples to be computed | | | |
| \item[\texttt{LALLeapSecAccuracy accuracy}] The required accuracy for handl | | | |
| ing leap seconds | | | |
| \end{description} | | | |
| | | | |
| </lalLaTeX> */ | | | |
| | | | |
| typedef struct | | typedef struct | |
| tagLALTimeIntervalAndNSample | | tagLALTimeIntervalAndNSample | |
| { | | { | |
|
| LIGOTimeGPS epoch; | | SWIGLAL_STRUCT(LALTimeIntervalAndNSample); | |
| REAL8 deltaT; /* sampling interval */ | | LIGOTimeGPS epoch; /**< The start time \f$t_0\f$ of the time se | |
| UINT4 nSample; /* number of samples */ | | ries */ | |
| | | REAL8 deltaT; /**< The sampling interval \f$\Delta t\f$, i | |
| | | n seconds */ | |
| | | UINT4 nSample; /**< The total number of samples to be compu | |
| | | ted */ | |
| } | | } | |
| LALTimeIntervalAndNSample; | | LALTimeIntervalAndNSample; | |
| | | | |
| /* | | /* | |
|
| <lalLaTeX> | | | |
| \vfill{\footnotesize\input{DetResponseHV}} | | | |
| </lalLaTeX> | | | |
| */ | | | |
| | | | |
| /* | | | |
| * Function prototypes | | * Function prototypes | |
| */ | | */ | |
| | | | |
|
| /* | | | |
| <lalLaTeX> | | | |
| \newpage\input{DetResponseC} | | | |
| </lalLaTeX> | | | |
| */ | | | |
| | | | |
| void | | void | |
| LALComputeDetAMResponse( LALStatus *status, | | LALComputeDetAMResponse( LALStatus *status, | |
| LALDetAMResponse *pResponse, | | LALDetAMResponse *pResponse, | |
| const LALDetAndSource *pDetAndSrc, | | const LALDetAndSource *pDetAndSrc, | |
| const LIGOTimeGPS *gps); | | const LIGOTimeGPS *gps); | |
| | | | |
| void XLALComputeDetAMResponse( | | void XLALComputeDetAMResponse( | |
| double *fplus, | | double *fplus, | |
| double *fcross, | | double *fcross, | |
| REAL4 D[3][3], | | REAL4 D[3][3], | |
| | | | |
| skipping to change at line 306 | | skipping to change at line 222 | |
| REAL4TimeSeries **fcross, | | REAL4TimeSeries **fcross, | |
| REAL4 D[3][3], | | REAL4 D[3][3], | |
| const double ra, | | const double ra, | |
| const double dec, | | const double dec, | |
| const double psi, | | const double psi, | |
| const LIGOTimeGPS *start, | | const LIGOTimeGPS *start, | |
| const double deltaT, | | const double deltaT, | |
| const int n | | const int n | |
| ); | | ); | |
| | | | |
|
| | | /** @} */ | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| #endif /* !defined _DETRESPONSE_H */ | | #endif /* !defined _DETRESPONSE_H */ | |
| | | | |
End of changes. 27 change blocks. |
| 196 lines changed or deleted | | 133 lines changed or added | |
|
| FrequencySeries.h | | FrequencySeries.h | |
| | | | |
| skipping to change at line 26 | | skipping to change at line 26 | |
| * You should have received a copy of the GNU General Public License along | | * You should have received a copy of the GNU General Public License along | |
| * with this program; if not, write to the Free Software Foundation, Inc., | | * with this program; if not, write to the Free Software Foundation, Inc., | |
| * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |
| */ | | */ | |
| | | | |
| #ifndef _FREQUENCYSERIES_H | | #ifndef _FREQUENCYSERIES_H | |
| #define _FREQUENCYSERIES_H | | #define _FREQUENCYSERIES_H | |
| | | | |
| #include <stddef.h> | | #include <stddef.h> | |
| #include <lal/LALDatatypes.h> | | #include <lal/LALDatatypes.h> | |
|
| | | | |
| #include <lal/LALRCSID.h> | | #include <lal/LALRCSID.h> | |
|
| | | | |
| | | #if defined(__cplusplus) | |
| | | extern "C" { | |
| | | #elif 0 | |
| | | } /* so that editors will match preceding brace */ | |
| | | #endif | |
| | | | |
| NRCSID(FREQUENCYSERIESH, "$Id:"); | | NRCSID(FREQUENCYSERIESH, "$Id:"); | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesDestroyP"> | | /* COMPLEX8 prototypes */ | |
| \idx{XLALDestroyCOMPLEX8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesDestroyP"> */ | | | |
| void XLALDestroyCOMPLEX8FrequencySeries ( | | void XLALDestroyCOMPLEX8FrequencySeries ( | |
| COMPLEX8FrequencySeries *series | | COMPLEX8FrequencySeries *series | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesCreateP"> | | | |
| \idx{XLALCreateCOMPLEX8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesCreateP"> */ | | | |
| COMPLEX8FrequencySeries *XLALCreateCOMPLEX8FrequencySeries ( | | COMPLEX8FrequencySeries *XLALCreateCOMPLEX8FrequencySeries ( | |
| const CHAR *name, | | const CHAR *name, | |
| const LIGOTimeGPS *epoch, | | const LIGOTimeGPS *epoch, | |
| REAL8 f0, | | REAL8 f0, | |
| REAL8 deltaF, | | REAL8 deltaF, | |
| const LALUnit *sampleUnits, | | const LALUnit *sampleUnits, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesCutP"> | | | |
| \idx{XLALCutCOMPLEX8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesCutP"> */ | | | |
| COMPLEX8FrequencySeries *XLALCutCOMPLEX8FrequencySeries ( | | COMPLEX8FrequencySeries *XLALCutCOMPLEX8FrequencySeries ( | |
| const COMPLEX8FrequencySeries *series, | | const COMPLEX8FrequencySeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesShrinkP"> | | | |
| \idx{XLALResizeCOMPLEX8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesShrinkP"> */ | | | |
| COMPLEX8FrequencySeries *XLALResizeCOMPLEX8FrequencySeries ( | | COMPLEX8FrequencySeries *XLALResizeCOMPLEX8FrequencySeries ( | |
| COMPLEX8FrequencySeries *series, | | COMPLEX8FrequencySeries *series, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesShrinkP"> | | | |
| \idx{XLALShrinkCOMPLEX8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesShrinkP"> */ | | | |
| COMPLEX8FrequencySeries *XLALShrinkCOMPLEX8FrequencySeries ( | | COMPLEX8FrequencySeries *XLALShrinkCOMPLEX8FrequencySeries ( | |
| COMPLEX8FrequencySeries *series, | | COMPLEX8FrequencySeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesAddP"> | | | |
| \idx{XLALAddCOMPLEX8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesAddP"> */ | | | |
| COMPLEX8FrequencySeries *XLALAddCOMPLEX8FrequencySeries ( | | COMPLEX8FrequencySeries *XLALAddCOMPLEX8FrequencySeries ( | |
| COMPLEX8FrequencySeries *arg1, | | COMPLEX8FrequencySeries *arg1, | |
| const COMPLEX8FrequencySeries *arg2 | | const COMPLEX8FrequencySeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesConjugateP"> | | | |
| \idx{XLALConjugateCOMPLEX8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesConjugateP"> */ | | | |
| COMPLEX8FrequencySeries *XLALConjugateCOMPLEX8FrequencySeries ( | | COMPLEX8FrequencySeries *XLALConjugateCOMPLEX8FrequencySeries ( | |
| COMPLEX8FrequencySeries *series | | COMPLEX8FrequencySeries *series | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesMultiplyP"> | | | |
| \idx{XLALMultiplyCOMPLEX8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesMultiplyP"> */ | | | |
| COMPLEX8FrequencySeries *XLALMultiplyCOMPLEX8FrequencySeries ( | | COMPLEX8FrequencySeries *XLALMultiplyCOMPLEX8FrequencySeries ( | |
| COMPLEX8FrequencySeries *arg1, | | COMPLEX8FrequencySeries *arg1, | |
| const COMPLEX8FrequencySeries *arg2 | | const COMPLEX8FrequencySeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesDestroyP"> | | /* COMPLEX 16 prototypes */ | |
| \idx{XLALDestroyCOMPLEX16FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesDestroyP"> */ | | | |
| void XLALDestroyCOMPLEX16FrequencySeries ( | | void XLALDestroyCOMPLEX16FrequencySeries ( | |
| COMPLEX16FrequencySeries *series | | COMPLEX16FrequencySeries *series | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesCreateP"> | | | |
| \idx{XLALCreateCOMPLEX16FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesCreateP"> */ | | | |
| COMPLEX16FrequencySeries *XLALCreateCOMPLEX16FrequencySeries ( | | COMPLEX16FrequencySeries *XLALCreateCOMPLEX16FrequencySeries ( | |
| const CHAR *name, | | const CHAR *name, | |
| const LIGOTimeGPS *epoch, | | const LIGOTimeGPS *epoch, | |
| REAL8 f0, | | REAL8 f0, | |
| REAL8 deltaF, | | REAL8 deltaF, | |
| const LALUnit *sampleUnits, | | const LALUnit *sampleUnits, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesCutP"> | | | |
| \idx{XLALCutCOMPLEX16FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesCutP"> */ | | | |
| COMPLEX16FrequencySeries *XLALCutCOMPLEX16FrequencySeries ( | | COMPLEX16FrequencySeries *XLALCutCOMPLEX16FrequencySeries ( | |
| const COMPLEX16FrequencySeries *series, | | const COMPLEX16FrequencySeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesShrinkP"> | | | |
| \idx{XLALResizeCOMPLEX16FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesShrinkP"> */ | | | |
| COMPLEX16FrequencySeries *XLALResizeCOMPLEX16FrequencySeries ( | | COMPLEX16FrequencySeries *XLALResizeCOMPLEX16FrequencySeries ( | |
| COMPLEX16FrequencySeries *series, | | COMPLEX16FrequencySeries *series, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesShrinkP"> | | | |
| \idx{XLALShrinkCOMPLEX16FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesShrinkP"> */ | | | |
| COMPLEX16FrequencySeries *XLALShrinkCOMPLEX16FrequencySeries ( | | COMPLEX16FrequencySeries *XLALShrinkCOMPLEX16FrequencySeries ( | |
| COMPLEX16FrequencySeries *series, | | COMPLEX16FrequencySeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesAddP"> | | | |
| \idx{XLALAddCOMPLEX16FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesAddP"> */ | | | |
| COMPLEX16FrequencySeries *XLALAddCOMPLEX16FrequencySeries ( | | COMPLEX16FrequencySeries *XLALAddCOMPLEX16FrequencySeries ( | |
| COMPLEX16FrequencySeries *arg1, | | COMPLEX16FrequencySeries *arg1, | |
| const COMPLEX16FrequencySeries *arg2 | | const COMPLEX16FrequencySeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesConjugateP"> | | | |
| \idx{XLALConjugateCOMPLEX16FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesConjugateP"> */ | | | |
| COMPLEX16FrequencySeries *XLALConjugateCOMPLEX16FrequencySeries ( | | COMPLEX16FrequencySeries *XLALConjugateCOMPLEX16FrequencySeries ( | |
| COMPLEX16FrequencySeries *series | | COMPLEX16FrequencySeries *series | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesMultiplyP"> | | | |
| \idx{XLALMultiplyCOMPLEX16FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesMultiplyP"> */ | | | |
| COMPLEX16FrequencySeries *XLALMultiplyCOMPLEX16FrequencySeries ( | | COMPLEX16FrequencySeries *XLALMultiplyCOMPLEX16FrequencySeries ( | |
| COMPLEX16FrequencySeries *arg1, | | COMPLEX16FrequencySeries *arg1, | |
| const COMPLEX16FrequencySeries *arg2 | | const COMPLEX16FrequencySeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesDestroyP"> | | /* REAL4 prototypes */ | |
| \idx{XLALDestroyREAL4FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesDestroyP"> */ | | | |
| void XLALDestroyREAL4FrequencySeries ( | | void XLALDestroyREAL4FrequencySeries ( | |
| REAL4FrequencySeries *series | | REAL4FrequencySeries *series | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesCreateP"> | | | |
| \idx{XLALCreateREAL4FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesCreateP"> */ | | | |
| REAL4FrequencySeries *XLALCreateREAL4FrequencySeries ( | | REAL4FrequencySeries *XLALCreateREAL4FrequencySeries ( | |
| const CHAR *name, | | const CHAR *name, | |
| const LIGOTimeGPS *epoch, | | const LIGOTimeGPS *epoch, | |
| REAL8 f0, | | REAL8 f0, | |
| REAL8 deltaF, | | REAL8 deltaF, | |
| const LALUnit *sampleUnits, | | const LALUnit *sampleUnits, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesCutP"> | | | |
| \idx{XLALCutREAL4FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesCutP"> */ | | | |
| REAL4FrequencySeries *XLALCutREAL4FrequencySeries ( | | REAL4FrequencySeries *XLALCutREAL4FrequencySeries ( | |
| const REAL4FrequencySeries *series, | | const REAL4FrequencySeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesShrinkP"> | | | |
| \idx{XLALResizeREAL4FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesShrinkP"> */ | | | |
| REAL4FrequencySeries *XLALResizeREAL4FrequencySeries ( | | REAL4FrequencySeries *XLALResizeREAL4FrequencySeries ( | |
| REAL4FrequencySeries *series, | | REAL4FrequencySeries *series, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesShrinkP"> | | | |
| \idx{XLALShrinkREAL4FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesShrinkP"> */ | | | |
| REAL4FrequencySeries *XLALShrinkREAL4FrequencySeries ( | | REAL4FrequencySeries *XLALShrinkREAL4FrequencySeries ( | |
| REAL4FrequencySeries *series, | | REAL4FrequencySeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesAddP"> | | | |
| \idx{XLALAddREAL4FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesAddP"> */ | | | |
| REAL4FrequencySeries *XLALAddREAL4FrequencySeries ( | | REAL4FrequencySeries *XLALAddREAL4FrequencySeries ( | |
| REAL4FrequencySeries *arg1, | | REAL4FrequencySeries *arg1, | |
| const REAL4FrequencySeries *arg2 | | const REAL4FrequencySeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesMultiplyP"> | | | |
| \idx{XLALMultiplyREAL4FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesMultiplyP"> */ | | | |
| REAL4FrequencySeries *XLALMultiplyREAL4FrequencySeries ( | | REAL4FrequencySeries *XLALMultiplyREAL4FrequencySeries ( | |
| REAL4FrequencySeries *arg1, | | REAL4FrequencySeries *arg1, | |
| const REAL4FrequencySeries *arg2 | | const REAL4FrequencySeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesDestroyP"> | | /* REAL8 prototypes */ | |
| \idx{XLALDestroyREAL8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesDestroyP"> */ | | | |
| void XLALDestroyREAL8FrequencySeries ( | | void XLALDestroyREAL8FrequencySeries ( | |
| REAL8FrequencySeries *series | | REAL8FrequencySeries *series | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesCreateP"> | | | |
| \idx{XLALCreateREAL8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesCreateP"> */ | | | |
| REAL8FrequencySeries *XLALCreateREAL8FrequencySeries ( | | REAL8FrequencySeries *XLALCreateREAL8FrequencySeries ( | |
| const CHAR *name, | | const CHAR *name, | |
| const LIGOTimeGPS *epoch, | | const LIGOTimeGPS *epoch, | |
| REAL8 f0, | | REAL8 f0, | |
| REAL8 deltaF, | | REAL8 deltaF, | |
| const LALUnit *sampleUnits, | | const LALUnit *sampleUnits, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesCutP"> | | | |
| \idx{XLALCutREAL8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesCutP"> */ | | | |
| REAL8FrequencySeries *XLALCutREAL8FrequencySeries ( | | REAL8FrequencySeries *XLALCutREAL8FrequencySeries ( | |
| const REAL8FrequencySeries *series, | | const REAL8FrequencySeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesShrinkP"> | | | |
| \idx{XLALResizeREAL8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesShrinkP"> */ | | | |
| REAL8FrequencySeries *XLALResizeREAL8FrequencySeries ( | | REAL8FrequencySeries *XLALResizeREAL8FrequencySeries ( | |
| REAL8FrequencySeries *series, | | REAL8FrequencySeries *series, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesShrinkP"> | | | |
| \idx{XLALShrinkREAL8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesShrinkP"> */ | | | |
| REAL8FrequencySeries *XLALShrinkREAL8FrequencySeries ( | | REAL8FrequencySeries *XLALShrinkREAL8FrequencySeries ( | |
| REAL8FrequencySeries *series, | | REAL8FrequencySeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesAddP"> | | | |
| \idx{XLALAddREAL8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesAddP"> */ | | | |
| REAL8FrequencySeries *XLALAddREAL8FrequencySeries ( | | REAL8FrequencySeries *XLALAddREAL8FrequencySeries ( | |
| REAL8FrequencySeries *arg1, | | REAL8FrequencySeries *arg1, | |
| const REAL8FrequencySeries *arg2 | | const REAL8FrequencySeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesMultiplyP"> | | | |
| \idx{XLALMultiplyREAL8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesMultiplyP"> */ | | | |
| REAL8FrequencySeries *XLALMultiplyREAL8FrequencySeries ( | | REAL8FrequencySeries *XLALMultiplyREAL8FrequencySeries ( | |
| REAL8FrequencySeries *arg1, | | REAL8FrequencySeries *arg1, | |
| const REAL8FrequencySeries *arg2 | | const REAL8FrequencySeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesDestroyP"> | | /* INT2 prototypes */ | |
| \idx{XLALDestroyINT2FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesDestroyP"> */ | | | |
| void XLALDestroyINT2FrequencySeries ( | | void XLALDestroyINT2FrequencySeries ( | |
| INT2FrequencySeries *series | | INT2FrequencySeries *series | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesCreateP"> | | | |
| \idx{XLALCreateINT2FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesCreateP"> */ | | | |
| INT2FrequencySeries *XLALCreateINT2FrequencySeries ( | | INT2FrequencySeries *XLALCreateINT2FrequencySeries ( | |
| const CHAR *name, | | const CHAR *name, | |
| const LIGOTimeGPS *epoch, | | const LIGOTimeGPS *epoch, | |
| REAL8 f0, | | REAL8 f0, | |
| REAL8 deltaF, | | REAL8 deltaF, | |
| const LALUnit *sampleUnits, | | const LALUnit *sampleUnits, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesCutP"> | | | |
| \idx{XLALCutINT2FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesCutP"> */ | | | |
| INT2FrequencySeries *XLALCutINT2FrequencySeries ( | | INT2FrequencySeries *XLALCutINT2FrequencySeries ( | |
| const INT2FrequencySeries *series, | | const INT2FrequencySeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesShrinkP"> | | | |
| \idx{XLALResizeINT2FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesShrinkP"> */ | | | |
| INT2FrequencySeries *XLALResizeINT2FrequencySeries ( | | INT2FrequencySeries *XLALResizeINT2FrequencySeries ( | |
| INT2FrequencySeries *series, | | INT2FrequencySeries *series, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesShrinkP"> | | | |
| \idx{XLALShrinkINT2FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesShrinkP"> */ | | | |
| INT2FrequencySeries *XLALShrinkINT2FrequencySeries ( | | INT2FrequencySeries *XLALShrinkINT2FrequencySeries ( | |
| INT2FrequencySeries *series, | | INT2FrequencySeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesAddP"> | | | |
| \idx{XLALAddINT2FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesAddP"> */ | | | |
| INT2FrequencySeries *XLALAddINT2FrequencySeries ( | | INT2FrequencySeries *XLALAddINT2FrequencySeries ( | |
| INT2FrequencySeries *arg1, | | INT2FrequencySeries *arg1, | |
| const INT2FrequencySeries *arg2 | | const INT2FrequencySeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesMultiplyP"> | | | |
| \idx{XLALMultiplyINT2FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesMultiplyP"> */ | | | |
| INT2FrequencySeries *XLALMultiplyINT2FrequencySeries ( | | INT2FrequencySeries *XLALMultiplyINT2FrequencySeries ( | |
| INT2FrequencySeries *arg1, | | INT2FrequencySeries *arg1, | |
| const INT2FrequencySeries *arg2 | | const INT2FrequencySeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesDestroyP"> | | /* INT4 prototypes */ | |
| \idx{XLALDestroyINT4FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesDestroyP"> */ | | | |
| void XLALDestroyINT4FrequencySeries ( | | void XLALDestroyINT4FrequencySeries ( | |
| INT4FrequencySeries *series | | INT4FrequencySeries *series | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesCreateP"> | | | |
| \idx{XLALCreateINT4FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesCreateP"> */ | | | |
| INT4FrequencySeries *XLALCreateINT4FrequencySeries ( | | INT4FrequencySeries *XLALCreateINT4FrequencySeries ( | |
| const CHAR *name, | | const CHAR *name, | |
| const LIGOTimeGPS *epoch, | | const LIGOTimeGPS *epoch, | |
| REAL8 f0, | | REAL8 f0, | |
| REAL8 deltaF, | | REAL8 deltaF, | |
| const LALUnit *sampleUnits, | | const LALUnit *sampleUnits, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesCutP"> | | | |
| \idx{XLALCutINT4FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesCutP"> */ | | | |
| INT4FrequencySeries *XLALCutINT4FrequencySeries ( | | INT4FrequencySeries *XLALCutINT4FrequencySeries ( | |
| const INT4FrequencySeries *series, | | const INT4FrequencySeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesShrinkP"> | | | |
| \idx{XLALResizeINT4FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesShrinkP"> */ | | | |
| INT4FrequencySeries *XLALResizeINT4FrequencySeries ( | | INT4FrequencySeries *XLALResizeINT4FrequencySeries ( | |
| INT4FrequencySeries *series, | | INT4FrequencySeries *series, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesShrinkP"> | | | |
| \idx{XLALShrinkINT4FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesShrinkP"> */ | | | |
| INT4FrequencySeries *XLALShrinkINT4FrequencySeries ( | | INT4FrequencySeries *XLALShrinkINT4FrequencySeries ( | |
| INT4FrequencySeries *series, | | INT4FrequencySeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesAddP"> | | | |
| \idx{XLALAddINT4FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesAddP"> */ | | | |
| INT4FrequencySeries *XLALAddINT4FrequencySeries ( | | INT4FrequencySeries *XLALAddINT4FrequencySeries ( | |
| INT4FrequencySeries *arg1, | | INT4FrequencySeries *arg1, | |
| const INT4FrequencySeries *arg2 | | const INT4FrequencySeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesMultiplyP"> | | | |
| \idx{XLALMultiplyINT4FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesMultiplyP"> */ | | | |
| INT4FrequencySeries *XLALMultiplyINT4FrequencySeries ( | | INT4FrequencySeries *XLALMultiplyINT4FrequencySeries ( | |
| INT4FrequencySeries *arg1, | | INT4FrequencySeries *arg1, | |
| const INT4FrequencySeries *arg2 | | const INT4FrequencySeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesDestroyP"> | | /* INT8 prototypes */ | |
| \idx{XLALDestroyINT8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesDestroyP"> */ | | | |
| void XLALDestroyINT8FrequencySeries ( | | void XLALDestroyINT8FrequencySeries ( | |
| INT8FrequencySeries *series | | INT8FrequencySeries *series | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesCreateP"> | | | |
| \idx{XLALCreateINT8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesCreateP"> */ | | | |
| INT8FrequencySeries *XLALCreateINT8FrequencySeries ( | | INT8FrequencySeries *XLALCreateINT8FrequencySeries ( | |
| const CHAR *name, | | const CHAR *name, | |
| const LIGOTimeGPS *epoch, | | const LIGOTimeGPS *epoch, | |
| REAL8 f0, | | REAL8 f0, | |
| REAL8 deltaF, | | REAL8 deltaF, | |
| const LALUnit *sampleUnits, | | const LALUnit *sampleUnits, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesCutP"> | | | |
| \idx{XLALCutINT8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesCutP"> */ | | | |
| INT8FrequencySeries *XLALCutINT8FrequencySeries ( | | INT8FrequencySeries *XLALCutINT8FrequencySeries ( | |
| const INT8FrequencySeries *series, | | const INT8FrequencySeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesShrinkP"> | | | |
| \idx{XLALResizeINT8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesShrinkP"> */ | | | |
| INT8FrequencySeries *XLALResizeINT8FrequencySeries ( | | INT8FrequencySeries *XLALResizeINT8FrequencySeries ( | |
| INT8FrequencySeries *series, | | INT8FrequencySeries *series, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesShrinkP"> | | | |
| \idx{XLALShrinkINT8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesShrinkP"> */ | | | |
| INT8FrequencySeries *XLALShrinkINT8FrequencySeries ( | | INT8FrequencySeries *XLALShrinkINT8FrequencySeries ( | |
| INT8FrequencySeries *series, | | INT8FrequencySeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesAddP"> | | | |
| \idx{XLALAddINT8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesAddP"> */ | | | |
| INT8FrequencySeries *XLALAddINT8FrequencySeries ( | | INT8FrequencySeries *XLALAddINT8FrequencySeries ( | |
| INT8FrequencySeries *arg1, | | INT8FrequencySeries *arg1, | |
| const INT8FrequencySeries *arg2 | | const INT8FrequencySeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesMultiplyP"> | | | |
| \idx{XLALMultiplyINT8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesMultiplyP"> */ | | | |
| INT8FrequencySeries *XLALMultiplyINT8FrequencySeries ( | | INT8FrequencySeries *XLALMultiplyINT8FrequencySeries ( | |
| INT8FrequencySeries *arg1, | | INT8FrequencySeries *arg1, | |
| const INT8FrequencySeries *arg2 | | const INT8FrequencySeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesDestroyP"> | | /* UINT2 prototypes */ | |
| \idx{XLALDestroyUINT2FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesDestroyP"> */ | | | |
| void XLALDestroyUINT2FrequencySeries ( | | void XLALDestroyUINT2FrequencySeries ( | |
| UINT2FrequencySeries *series | | UINT2FrequencySeries *series | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesCreateP"> | | | |
| \idx{XLALCreateUINT2FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesCreateP"> */ | | | |
| UINT2FrequencySeries *XLALCreateUINT2FrequencySeries ( | | UINT2FrequencySeries *XLALCreateUINT2FrequencySeries ( | |
| const CHAR *name, | | const CHAR *name, | |
| const LIGOTimeGPS *epoch, | | const LIGOTimeGPS *epoch, | |
| REAL8 f0, | | REAL8 f0, | |
| REAL8 deltaF, | | REAL8 deltaF, | |
| const LALUnit *sampleUnits, | | const LALUnit *sampleUnits, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesCutP"> | | | |
| \idx{XLALCutUINT2FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesCutP"> */ | | | |
| UINT2FrequencySeries *XLALCutUINT2FrequencySeries ( | | UINT2FrequencySeries *XLALCutUINT2FrequencySeries ( | |
| const UINT2FrequencySeries *series, | | const UINT2FrequencySeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesShrinkP"> | | | |
| \idx{XLALResizeUINT2FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesShrinkP"> */ | | | |
| UINT2FrequencySeries *XLALResizeUINT2FrequencySeries ( | | UINT2FrequencySeries *XLALResizeUINT2FrequencySeries ( | |
| UINT2FrequencySeries *series, | | UINT2FrequencySeries *series, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesShrinkP"> | | | |
| \idx{XLALShrinkUINT2FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesShrinkP"> */ | | | |
| UINT2FrequencySeries *XLALShrinkUINT2FrequencySeries ( | | UINT2FrequencySeries *XLALShrinkUINT2FrequencySeries ( | |
| UINT2FrequencySeries *series, | | UINT2FrequencySeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesAddP"> | | | |
| \idx{XLALAddUINT2FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesAddP"> */ | | | |
| UINT2FrequencySeries *XLALAddUINT2FrequencySeries ( | | UINT2FrequencySeries *XLALAddUINT2FrequencySeries ( | |
| UINT2FrequencySeries *arg1, | | UINT2FrequencySeries *arg1, | |
| const UINT2FrequencySeries *arg2 | | const UINT2FrequencySeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesMultiplyP"> | | | |
| \idx{XLALMultiplyUINT2FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesMultiplyP"> */ | | | |
| UINT2FrequencySeries *XLALMultiplyUINT2FrequencySeries ( | | UINT2FrequencySeries *XLALMultiplyUINT2FrequencySeries ( | |
| UINT2FrequencySeries *arg1, | | UINT2FrequencySeries *arg1, | |
| const UINT2FrequencySeries *arg2 | | const UINT2FrequencySeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesDestroyP"> | | /* UINT4 prototypes */ | |
| \idx{XLALDestroyUINT4FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesDestroyP"> */ | | | |
| void XLALDestroyUINT4FrequencySeries ( | | void XLALDestroyUINT4FrequencySeries ( | |
| UINT4FrequencySeries *series | | UINT4FrequencySeries *series | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesCreateP"> | | | |
| \idx{XLALCreateUINT4FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesCreateP"> */ | | | |
| UINT4FrequencySeries *XLALCreateUINT4FrequencySeries ( | | UINT4FrequencySeries *XLALCreateUINT4FrequencySeries ( | |
| const CHAR *name, | | const CHAR *name, | |
| const LIGOTimeGPS *epoch, | | const LIGOTimeGPS *epoch, | |
| REAL8 f0, | | REAL8 f0, | |
| REAL8 deltaF, | | REAL8 deltaF, | |
| const LALUnit *sampleUnits, | | const LALUnit *sampleUnits, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesCutP"> | | | |
| \idx{XLALCutUINT4FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesCutP"> */ | | | |
| UINT4FrequencySeries *XLALCutUINT4FrequencySeries ( | | UINT4FrequencySeries *XLALCutUINT4FrequencySeries ( | |
| const UINT4FrequencySeries *series, | | const UINT4FrequencySeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesShrinkP"> | | | |
| \idx{XLALResizeUINT4FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesShrinkP"> */ | | | |
| UINT4FrequencySeries *XLALResizeUINT4FrequencySeries ( | | UINT4FrequencySeries *XLALResizeUINT4FrequencySeries ( | |
| UINT4FrequencySeries *series, | | UINT4FrequencySeries *series, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesShrinkP"> | | | |
| \idx{XLALShrinkUINT4FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesShrinkP"> */ | | | |
| UINT4FrequencySeries *XLALShrinkUINT4FrequencySeries ( | | UINT4FrequencySeries *XLALShrinkUINT4FrequencySeries ( | |
| UINT4FrequencySeries *series, | | UINT4FrequencySeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesAddP"> | | | |
| \idx{XLALAddUINT4FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesAddP"> */ | | | |
| UINT4FrequencySeries *XLALAddUINT4FrequencySeries ( | | UINT4FrequencySeries *XLALAddUINT4FrequencySeries ( | |
| UINT4FrequencySeries *arg1, | | UINT4FrequencySeries *arg1, | |
| const UINT4FrequencySeries *arg2 | | const UINT4FrequencySeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesMultiplyP"> | | | |
| \idx{XLALMultiplyUINT4FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesMultiplyP"> */ | | | |
| UINT4FrequencySeries *XLALMultiplyUINT4FrequencySeries ( | | UINT4FrequencySeries *XLALMultiplyUINT4FrequencySeries ( | |
| UINT4FrequencySeries *arg1, | | UINT4FrequencySeries *arg1, | |
| const UINT4FrequencySeries *arg2 | | const UINT4FrequencySeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesDestroyP"> | | /* UINT8 prototypes */ | |
| \idx{XLALDestroyUINT8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesDestroyP"> */ | | | |
| void XLALDestroyUINT8FrequencySeries ( | | void XLALDestroyUINT8FrequencySeries ( | |
| UINT8FrequencySeries *series | | UINT8FrequencySeries *series | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesCreateP"> | | | |
| \idx{XLALCreateUINT8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesCreateP"> */ | | | |
| UINT8FrequencySeries *XLALCreateUINT8FrequencySeries ( | | UINT8FrequencySeries *XLALCreateUINT8FrequencySeries ( | |
| const CHAR *name, | | const CHAR *name, | |
| const LIGOTimeGPS *epoch, | | const LIGOTimeGPS *epoch, | |
| REAL8 f0, | | REAL8 f0, | |
| REAL8 deltaF, | | REAL8 deltaF, | |
| const LALUnit *sampleUnits, | | const LALUnit *sampleUnits, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesCutP"> | | | |
| \idx{XLALCutUINT8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesCutP"> */ | | | |
| UINT8FrequencySeries *XLALCutUINT8FrequencySeries ( | | UINT8FrequencySeries *XLALCutUINT8FrequencySeries ( | |
| const UINT8FrequencySeries *series, | | const UINT8FrequencySeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesShrinkP"> | | | |
| \idx{XLALResizeUINT8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesShrinkP"> */ | | | |
| UINT8FrequencySeries *XLALResizeUINT8FrequencySeries ( | | UINT8FrequencySeries *XLALResizeUINT8FrequencySeries ( | |
| UINT8FrequencySeries *series, | | UINT8FrequencySeries *series, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesShrinkP"> | | | |
| \idx{XLALShrinkUINT8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesShrinkP"> */ | | | |
| UINT8FrequencySeries *XLALShrinkUINT8FrequencySeries ( | | UINT8FrequencySeries *XLALShrinkUINT8FrequencySeries ( | |
| UINT8FrequencySeries *series, | | UINT8FrequencySeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesAddP"> | | | |
| \idx{XLALAddUINT8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesAddP"> */ | | | |
| UINT8FrequencySeries *XLALAddUINT8FrequencySeries ( | | UINT8FrequencySeries *XLALAddUINT8FrequencySeries ( | |
| UINT8FrequencySeries *arg1, | | UINT8FrequencySeries *arg1, | |
| const UINT8FrequencySeries *arg2 | | const UINT8FrequencySeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="FrequencySeriesMultiplyP"> | | | |
| \idx{XLALMultiplyUINT8FrequencySeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="FrequencySeriesMultiplyP"> */ | | | |
| UINT8FrequencySeries *XLALMultiplyUINT8FrequencySeries ( | | UINT8FrequencySeries *XLALMultiplyUINT8FrequencySeries ( | |
| UINT8FrequencySeries *arg1, | | UINT8FrequencySeries *arg1, | |
| const UINT8FrequencySeries *arg2 | | const UINT8FrequencySeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | #if 0 | |
| | | { /* so that editors will match succeeding brace */ | |
| | | #elif defined(__cplusplus) | |
| | | } | |
| | | #endif | |
| | | | |
| #endif /* _FREQUENCYSERIES_H */ | | #endif /* _FREQUENCYSERIES_H */ | |
| | | | |
End of changes. 146 change blocks. |
| 289 lines changed or deleted | | 33 lines changed or added | |
|
| Grid.h | | Grid.h | |
| | | | |
| skipping to change at line 20 | | skipping to change at line 20 | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | | * GNU General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with with program; see the file COPYING. If not, write to the | | * along with with program; see the file COPYING. If not, write to the | |
| * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | | * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | |
| * MA 02111-1307 USA | | * MA 02111-1307 USA | |
| */ | | */ | |
| | | | |
|
| /***************************************** <lalVerbatim file="GridHV"> | | /** | |
| Author: Creighton, T. D. | | \author Creighton, T. D. | |
| $Id$ | | \file | |
| **************************************************** </lalVerbatim> */ | | | |
| | | | |
| /********************************************************** <lalLaTeX> | | | |
| | | | |
| \section{Header \texttt{Grid.h}} | | | |
| \label{s:Grid.h} | | | |
| | | | |
|
| Provides a structured datatype for a multidimensional rectilinear | | \brief Provides a structured datatype for a multidimensional rectilinear gr | |
| grid. | | id. | |
| | | | |
|
| \subsection*{Synopsis} | | \heading{Synopsis} | |
| \begin{verbatim} | | \code | |
| #include <lal/Grid.h> | | #include <lal/Grid.h> | |
|
| \end{verbatim} | | \endcode | |
| | | | |
|
| \noindent This header provides a new structured datatype storing data | | This header provides a new structured datatype storing data | |
| on a multidimensional rectilinear grid. It is in some sense a | | on a multidimensional rectilinear grid. It is in some sense a | |
| generalization of the series datatypes (frequency series, time series, | | generalization of the series datatypes (frequency series, time series, | |
| etc.), representing evenly-sampled data over some physical parameter | | etc.), representing evenly-sampled data over some physical parameter | |
| space. | | space. | |
| | | | |
|
| ******************************************************* </lalLaTeX> */ | | */ | |
| | | | |
| #ifndef _GRID_H | | #ifndef _GRID_H | |
| #define _GRID_H | | #define _GRID_H | |
| | | | |
|
| | | /* remove SWIG interface directives */ | |
| | | #if !defined(SWIG) && !defined(SWIGLAL_STRUCT) | |
| | | #define SWIGLAL_STRUCT(...) | |
| | | #endif | |
| | | | |
| #include <lal/LALStdlib.h> | | #include <lal/LALStdlib.h> | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| | | | |
| NRCSID( GRIDH, "$Id$" ); | | NRCSID( GRIDH, "$Id$" ); | |
| | | | |
|
| /********************************************************** <lalLaTeX> | | /** | |
| \subsection*{Error conditions} | | \heading{Error conditions} | |
| ****************************************** </lalLaTeX><lalErrTable> */ | | \name Error Codes */ /*@{*/ | |
| #define GRIDH_ENUL 1 | | #define GRIDH_ENUL 1 | |
| #define GRIDH_EOUT 2 | | #define GRIDH_EOUT 2 | |
| #define GRIDH_EMEM 3 | | #define GRIDH_EMEM 3 | |
| | | | |
| #define GRIDH_MSGENUL "Unexpected null pointer in arguments" | | #define GRIDH_MSGENUL "Unexpected null pointer in arguments" | |
| #define GRIDH_MSGEOUT "Output handle points to a non-null pointer" | | #define GRIDH_MSGEOUT "Output handle points to a non-null pointer" | |
| #define GRIDH_MSGEMEM "Memory allocation error" | | #define GRIDH_MSGEMEM "Memory allocation error" | |
|
| /******************************************** </lalErrTable><lalLaTeX> | | /*@}*//** | |
| | | | |
|
| \subsection*{Types} | | \heading{Types} | |
| | | | |
|
| \subsubsection*{Structure \texttt{<datatype>Grid}} | | \heading{Structure <tt>\<datatype\>Grid</tt>} | |
| \idx[Type]{INT2Grid} | | | |
| \idx[Type]{INT4Grid} | | | |
| \idx[Type]{INT8Grid} | | | |
| \idx[Type]{UINT2Grid} | | | |
| \idx[Type]{UINT4Grid} | | | |
| \idx[Type]{UINT8Grid} | | | |
| \idx[Type]{REAL4Grid} | | | |
| \idx[Type]{REAL8Grid} | | | |
| \idx[Type]{COMPLEX8Grid} | | | |
| \idx[Type]{COMPLEX16Grid} | | | |
| | | | |
|
| \noindent This structure is a generalization of the LAL series types, | | This structure is a generalization of the LAL series types, | |
| storing data on an $m$-dimensional rectangular grid on a physical | | storing data on an \f$m\f$-dimensional rectangular grid on a physical | |
| parameter space. The values on the grid are of type \verb@<datatype>@ | | parameter space. The values on the grid are of type <tt>\<datatype\></tt> | |
| which can be any LAL primitive \emph{numerical} datatype (\verb@INT2@, | | which can be any LAL primitive \e numerical datatype (\c INT2, | |
| \verb@INT4@, \verb@INT8@, \verb@UINT2@, \verb@UINT4@, \verb@UINT8@, | | \c INT4, \c INT8, \c UINT2, \c UINT4, \c UINT8, | |
| \verb@REAL4@, \verb@REAL8@, \verb@COMPLEX8@, \verb@COMPLEX16@). The | | \c REAL4, \c REAL8, \c COMPLEX8, \c COMPLEX16). The | |
| data are stored in an array of dimension $M\geq m$: if $M=m$, then the | | data are stored in an array of dimension \f$M\geq m\f$: if \f$M=m\f$, then | |
| structure stores a single value for each grid point; if $M>m$, then | | the | |
| | | structure stores a single value for each grid point; if \f$M>m\f$, then | |
| the structure stores a vector or array of values on the ``tangent | | the structure stores a vector or array of values on the ``tangent | |
|
| space'' of each grid point. We refer to $m$ as the \emph{grid} | | space'' of each grid point. We refer to \f$m\f$ as the \e grid | |
| dimension and $M$ as the \emph{data} dimension. The fields of the | | dimension and \f$M\f$ as the \e data dimension. The fields of the | |
| structure are: | | structure are: | |
| | | | |
|
| \begin{description} | | <dl> | |
| \item[\texttt{CHAR name[LALNameLength]}] A name identifying the grid | | <dt><tt>CHAR name[LALNameLength]</tt></dt><dd> A name identifying the grid | |
| and/or the data being sampled. | | and/or the data being sampled.</dd> | |
| | | | |
|
| \item[\texttt{LALUnit sampleUnits}] The physical units of the | | <dt><tt>LALUnit sampleUnits</tt></dt><dd> The physical units of the | |
| quantities on the grid. | | quantities on the grid.</dd> | |
| | | | |
|
| \item[\texttt{LALUnit *dimUnits}] The physical units of the grid axes. | | <dt><tt>LALUnit *dimUnits</tt></dt><dd> The physical units of the grid axes | |
| This must be allocated as an array of length $m$. | | . | |
| | | This must be allocated as an array of length \f$m\f$.</dd> | |
| | | | |
|
| \item[\texttt{REAL8Vector *offset}] A vector $\mathbf{p}_0$ | | <dt><tt>REAL8Vector *offset</tt></dt><dd> A vector \f$\mathbf{p}_0\f$ | |
| specifying the location of the grid point indexed by $(0,\ldots,0)$. | | specifying the location of the grid point indexed by \f$(0,\ldots,0)\f$. | |
| Must have dimensionality $m$. | | Must have dimensionality \f$m\f$.</dd> | |
| | | | |
|
| \item[\texttt{REAL8Vector *interval}] The vector $\Delta\mathbf{p}$ | | <dt><tt>REAL8Vector *interval</tt></dt><dd> The vector \f$\Delta\mathbf{p}\
f$ | |
| specifying the grid spacing in each dimension. Must have | | specifying the grid spacing in each dimension. Must have | |
|
| dimensionality $m$. | | dimensionality \f$m\f$.</dd> | |
| | | | |
|
| \item[\texttt{<datatype>Array *data}] Pointer to an array storing the | | <dt><tt>\<datatype\>Array *data</tt></dt><dd> Pointer to an array storing t
he | |
| data values at the corresponding grid points. The data dimension | | data values at the corresponding grid points. The data dimension | |
|
| $M=$\verb@data->dimLength->length@ must be greater than or equal to | | \f$M=\f$<tt>data->dimLength->length</tt> must be greater than or equal to | |
| the grid dimension $m=$\verb@offset->length@=\verb@interval->length@. | | the grid dimension \f$m=\f$<tt>offset->length</tt>=<tt>interval->length</tt | |
| An index $\mathbf{i}=(i_0,\ldots,i_{M-1})$, where $i_k$ are integers | | >. | |
| from 0 to \verb@data->dimLength->data@${}_k$, specifies a grid point | | An index \f$\mathbf{i}=(i_0,\ldots,i_{M-1})\f$, where \f$i_k\f$ are integer | |
| located at $\mathbf{p}=\mathbf{p}_0+\sum_{k=0}^{n-1}\hat{\mathbf{e}}_k | | s | |
| i_k \Delta p_k$ if $M=m$, or an array element $\mathsf{A}_{i_m\cdots | | from 0 to <tt>data->dimLength->data</tt>\f${}_k\f$, specifies a grid point | |
| i_{M-1}}$ at that grid point if $M>m$. The values in | | located at \f$\mathbf{p}=\mathbf{p}_0+\sum_{k=0}^{n-1}\hat{\mathbf{e}}_k | |
| \verb@data->data@ are the value stored at each grid point (or array | | i_k \Delta p_k\f$ if \f$M=m\f$, or an array element \f$\mathsf{A}_{i_m\cdot | |
| | | s | |
| | | i_{M-1}}\f$ at that grid point if \f$M>m\f$. The values in | |
| | | <tt>data->data</tt> are the value stored at each grid point (or array | |
| element at each grid point), arranged in the manner discussed in | | element at each grid point), arranged in the manner discussed in | |
|
| \verb@LALDatatypes.h@. | | \ref LALDatatypes.h.</dd> | |
| \end{description} | | </dl> | |
| ******************************************************* </lalLaTeX> */ | | */ | |
| | | | |
| typedef struct tagINT2Grid { | | typedef struct tagINT2Grid { | |
|
| | | SWIGLAL_STRUCT(INT2Grid); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| LALUnit *dimUnits; | | LALUnit *dimUnits; | |
| REAL8Vector *offset; | | REAL8Vector *offset; | |
| REAL8Vector *interval; | | REAL8Vector *interval; | |
| INT2Array *data; | | INT2Array *data; | |
| } INT2Grid; | | } INT2Grid; | |
| | | | |
| typedef struct tagINT4Grid { | | typedef struct tagINT4Grid { | |
|
| | | SWIGLAL_STRUCT(INT4Grid); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| LALUnit *dimUnits; | | LALUnit *dimUnits; | |
| REAL8Vector *offset; | | REAL8Vector *offset; | |
| REAL8Vector *interval; | | REAL8Vector *interval; | |
| INT4Array *data; | | INT4Array *data; | |
| } INT4Grid; | | } INT4Grid; | |
| | | | |
| typedef struct tagINT8Grid { | | typedef struct tagINT8Grid { | |
|
| | | SWIGLAL_STRUCT(INT8Grid); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| LALUnit *dimUnits; | | LALUnit *dimUnits; | |
| REAL8Vector *offset; | | REAL8Vector *offset; | |
| REAL8Vector *interval; | | REAL8Vector *interval; | |
| INT8Array *data; | | INT8Array *data; | |
| } INT8Grid; | | } INT8Grid; | |
| | | | |
| typedef struct tagUINT2Grid { | | typedef struct tagUINT2Grid { | |
|
| | | SWIGLAL_STRUCT(UINT2Grid); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| LALUnit *dimUnits; | | LALUnit *dimUnits; | |
| REAL8Vector *offset; | | REAL8Vector *offset; | |
| REAL8Vector *interval; | | REAL8Vector *interval; | |
| UINT2Array *data; | | UINT2Array *data; | |
| } UINT2Grid; | | } UINT2Grid; | |
| | | | |
| typedef struct tagUINT4Grid { | | typedef struct tagUINT4Grid { | |
|
| | | SWIGLAL_STRUCT(UINT4Grid); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| LALUnit *dimUnits; | | LALUnit *dimUnits; | |
| REAL8Vector *offset; | | REAL8Vector *offset; | |
| REAL8Vector *interval; | | REAL8Vector *interval; | |
| UINT4Array *data; | | UINT4Array *data; | |
| } UINT4Grid; | | } UINT4Grid; | |
| | | | |
| typedef struct tagUINT8Grid { | | typedef struct tagUINT8Grid { | |
|
| | | SWIGLAL_STRUCT(UINT8Grid); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| LALUnit *dimUnits; | | LALUnit *dimUnits; | |
| REAL8Vector *offset; | | REAL8Vector *offset; | |
| REAL8Vector *interval; | | REAL8Vector *interval; | |
| UINT8Array *data; | | UINT8Array *data; | |
| } UINT8Grid; | | } UINT8Grid; | |
| | | | |
| typedef struct tagREAL4Grid { | | typedef struct tagREAL4Grid { | |
|
| | | SWIGLAL_STRUCT(REAL4Grid); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| LALUnit *dimUnits; | | LALUnit *dimUnits; | |
| REAL8Vector *offset; | | REAL8Vector *offset; | |
| REAL8Vector *interval; | | REAL8Vector *interval; | |
| REAL4Array *data; | | REAL4Array *data; | |
| } REAL4Grid; | | } REAL4Grid; | |
| | | | |
| typedef struct tagREAL8Grid { | | typedef struct tagREAL8Grid { | |
|
| | | SWIGLAL_STRUCT(REAL8Grid); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| LALUnit *dimUnits; | | LALUnit *dimUnits; | |
| REAL8Vector *offset; | | REAL8Vector *offset; | |
| REAL8Vector *interval; | | REAL8Vector *interval; | |
| REAL8Array *data; | | REAL8Array *data; | |
| } REAL8Grid; | | } REAL8Grid; | |
| | | | |
| typedef struct tagCOMPLEX8Grid { | | typedef struct tagCOMPLEX8Grid { | |
|
| | | SWIGLAL_STRUCT(COMPLEX8Grid); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| LALUnit *dimUnits; | | LALUnit *dimUnits; | |
| REAL8Vector *offset; | | REAL8Vector *offset; | |
| REAL8Vector *interval; | | REAL8Vector *interval; | |
| COMPLEX8Array *data; | | COMPLEX8Array *data; | |
| } COMPLEX8Grid; | | } COMPLEX8Grid; | |
| | | | |
| typedef struct tagCOMPLEX16Grid { | | typedef struct tagCOMPLEX16Grid { | |
|
| | | SWIGLAL_STRUCT(COMPLEX16Grid); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| LALUnit *dimUnits; | | LALUnit *dimUnits; | |
| REAL8Vector *offset; | | REAL8Vector *offset; | |
| REAL8Vector *interval; | | REAL8Vector *interval; | |
| COMPLEX16Array *data; | | COMPLEX16Array *data; | |
| } COMPLEX16Grid; | | } COMPLEX16Grid; | |
| | | | |
|
| /* <lalLaTeX> | | | |
| \vfill{\footnotesize\input{GridHV}} | | | |
| </lalLaTeX> */ | | | |
| | | | |
| /* Function prototypes. */ | | /* Function prototypes. */ | |
| | | | |
|
| /* <lalLaTeX> | | | |
| \newpage\input{GridC} | | | |
| </lalLaTeX> */ | | | |
| void | | void | |
| LALI2CreateGrid( LALStatus *status, INT2Grid **grid, UINT4Vector *dimLength
, UINT4 dimension ); | | LALI2CreateGrid( LALStatus *status, INT2Grid **grid, UINT4Vector *dimLength
, UINT4 dimension ); | |
| | | | |
| void | | void | |
| LALI4CreateGrid( LALStatus *status, INT4Grid **grid, UINT4Vector *dimLength
, UINT4 dimension ); | | LALI4CreateGrid( LALStatus *status, INT4Grid **grid, UINT4Vector *dimLength
, UINT4 dimension ); | |
| | | | |
| void | | void | |
| LALI8CreateGrid( LALStatus *status, INT8Grid **grid, UINT4Vector *dimLength
, UINT4 dimension ); | | LALI8CreateGrid( LALStatus *status, INT8Grid **grid, UINT4Vector *dimLength
, UINT4 dimension ); | |
| | | | |
| void | | void | |
| | | | |
| skipping to change at line 288 | | skipping to change at line 279 | |
| | | | |
| void | | void | |
| LALDDestroyGrid( LALStatus *status, REAL8Grid **grid ); | | LALDDestroyGrid( LALStatus *status, REAL8Grid **grid ); | |
| | | | |
| void | | void | |
| LALCDestroyGrid( LALStatus *status, COMPLEX8Grid **grid ); | | LALCDestroyGrid( LALStatus *status, COMPLEX8Grid **grid ); | |
| | | | |
| void | | void | |
| LALZDestroyGrid( LALStatus *status, COMPLEX16Grid **grid ); | | LALZDestroyGrid( LALStatus *status, COMPLEX16Grid **grid ); | |
| | | | |
|
| /* <lalLaTeX> | | /** | |
| %\newpage\input{GridTestC} | | % | |
| </lalLaTeX> */ | | */ | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| #endif /* _GRID_H */ | | #endif /* _GRID_H */ | |
| | | | |
End of changes. 35 change blocks. |
| 76 lines changed or deleted | | 73 lines changed or added | |
|
| Inject.h | | Inject.h | |
| | | | |
| skipping to change at line 20 | | skipping to change at line 20 | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | | * GNU General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with with program; see the file COPYING. If not, write to the | | * along with with program; see the file COPYING. If not, write to the | |
| * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | | * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | |
| * MA 02111-1307 USA | | * MA 02111-1307 USA | |
| */ | | */ | |
| | | | |
|
| /*************************************** <lalVerbatim file="InjectHV"> | | #ifndef _INJECT_H | |
| Author: Creighton, T. D. | | #define _INJECT_H | |
| $Id$ | | | |
| **************************************************** </lalVerbatim> */ | | | |
| | | | |
|
| /********************************************************** <lalLaTeX> | | #include <lal/LALStdlib.h> | |
| | | #include <lal/Random.h> | |
| | | | |
|
| \section{Header \texttt{Inject.h}} | | #if defined(__cplusplus) | |
| \label{s:Inject.h} | | extern "C" { | |
| | | #elif 0 | |
| | | } /* so that editors will match preceding brace */ | |
| | | #endif | |
| | | | |
|
| Provides routines to inject a signal into detector output. | | NRCSID( INJECTH, "$Id$" ); | |
| | | | |
|
| \subsection*{Synopsis} | | /** | |
| \begin{verbatim} | | \author Creighton, T. D. | |
| | | \addtogroup Inject_h | |
| | | | |
| | | \brief Provides routines to inject a signal into detector output. | |
| | | | |
| | | \heading{Synopsis} | |
| | | \code | |
| #include <lal/Inject.h> | | #include <lal/Inject.h> | |
|
| \end{verbatim} | | \endcode | |
| | | | |
| This header provides simple routines to inject a signal, stored as a | | This header provides simple routines to inject a signal, stored as a | |
| floating-point time series, into an integer time series that | | floating-point time series, into an integer time series that | |
| represents the ADC output of a detector channel. | | represents the ADC output of a detector channel. | |
| | | | |
|
| The basic concept at work here is that of \emph{dithering}. That is, | | The basic concept at work here is that of \e dithering. That is, | |
| to add a real signal $x(t_k)$ to the integer output $n(t_k)$ of an | | to add a real signal \f$x(t_k)\f$ to the integer output \f$n(t_k)\f$ of an | |
| ADC, we cannot simply compute $x+n$ at each time $t_k$ and round to | | ADC, we cannot simply compute \f$x+n\f$ at each time \f$t_k\f$ and round to | |
| the nearest integer. To see this, consider injecting a sinusoid with | | the nearest integer. To see this, consider injecting a sinusoid with | |
|
| an amplitude less than half the ADC resolution, $|x|<0.5$. Then | | an amplitude less than half the ADC resolution, \f$|x|<0.5\f$. Then | |
| adding $x+n$ and rounding will always give back $n$, and the signal | | adding \f$x+n\f$ and rounding will always give back \f$n\f$, and the signal | |
| injection will have no effect on the output. | | injection will have no effect on the output. | |
| | | | |
|
| Instead, what we would like to do is to add $x$ to the ADC | | Instead, what we would like to do is to add \f$x\f$ to the ADC | |
| \emph{input} before rounding occurs, and then round to an integer. | | \e input before rounding occurs, and then round to an integer. | |
| That is, the ADC input was actually $n+d$, where $d\in[-0.5,0.5)$; we | | That is, the ADC input was actually \f$n+d\f$, where \f$d\in[-0.5,0.5)\f$; | |
| want to compute the rounded value of $n+d+x$, which may occasionally | | we | |
| be different from $n$. In principle, a Fourier transforms can detect | | want to compute the rounded value of \f$n+d+x\f$, which may occasionally | |
| | | be different from \f$n\f$. In principle, a Fourier transforms can detect | |
| a sinusoidal signal with an output much smaller than the ADC | | a sinusoidal signal with an output much smaller than the ADC | |
| resolution: by integrating enough data, one can eventually detect a | | resolution: by integrating enough data, one can eventually detect a | |
| statistically significant phase correlation between the occasional | | statistically significant phase correlation between the occasional | |
|
| increments and decrements in $n$. | | increments and decrements in \f$n\f$. | |
| | | | |
|
| Of course given the output time series $n(t_k)$ we can only guess at | | Of course given the output time series \f$n(t_k)\f$ we can only guess at | |
| the input series $n(t_k)+d(t_k)$ that produced it. The simplest guess | | the input series \f$n(t_k)+d(t_k)\f$ that produced it. The simplest guess | |
| is to assume that each $d(t_k)$ is an independent random variable with | | is to assume that each \f$d(t_k)\f$ is an independent random variable with | |
| a flat distribution over the range $[-0.5,0.5)$. This is a reasonable | | a flat distribution over the range \f$[-0.5,0.5)\f$. This is a reasonable | |
| guess to make if the root mean square variation between succesive | | guess to make if the root mean square variation between succesive | |
|
| output values $n$ is a few or more ADC counts; i.e. if the | | output values \f$n\f$ is a few or more ADC counts; i.e. if the | |
| dimensionless power spectral density $\sqrt{fS(f)}$ has a value of a | | dimensionless power spectral density \f$\sqrt{fS(f)}\f$ has a value of a | |
| few or more around the sampling freqeuncy $f$. This is almost always | | few or more around the sampling freqeuncy \f$f\f$. This is almost always | |
| true of any detector designed to work at or near its noise limit: the | | true of any detector designed to work at or near its noise limit: the | |
|
| input to the ADC will first be whitened so that $\sqrt{fS(f)}$ is | | input to the ADC will first be whitened so that \f$\sqrt{fS(f)}\f$ is | |
| nearly flat, and then amplified so that $\sqrt{fS(f)}$ is on the order | | nearly flat, and then amplified so that \f$\sqrt{fS(f)}\f$ is on the order | |
| of several (or more) ADC counts. | | of several (or more) ADC counts. | |
| | | | |
| In the routines covered by this header we will take it for granted | | In the routines covered by this header we will take it for granted | |
| that the above is a reasonable approximation, and will not check for | | that the above is a reasonable approximation, and will not check for | |
| it. We will further assume that the signal to be injected has already | | it. We will further assume that the signal to be injected has already | |
| been subjected to the same whitening and amplification, so that the | | been subjected to the same whitening and amplification, so that the | |
|
| units of $x(t_k)$ are normalized ADC counts (although it is still a | | units of \f$x(t_k)\f$ are normalized ADC counts (although it is still a | |
| real number, not an integer). | | real number, not an integer). | |
| | | | |
| The dithering routines should be used whenever one is injecting a | | The dithering routines should be used whenever one is injecting a | |
| signal into a time series representing raw digitized data. In some | | signal into a time series representing raw digitized data. In some | |
| data storage specifications, ADC output is not stored as an integer, | | data storage specifications, ADC output is not stored as an integer, | |
| but as a floating-point number representing an integer value. Such | | but as a floating-point number representing an integer value. Such | |
| data must be cast to integers before being passed to the digitizing | | data must be cast to integers before being passed to the digitizing | |
| routines. | | routines. | |
| | | | |
| This header also provides even simpler routines for injecting a signal | | This header also provides even simpler routines for injecting a signal | |
| into floating-point data, without dithering. These should only be | | into floating-point data, without dithering. These should only be | |
| used when the data is genuinely continuous in character. This can | | used when the data is genuinely continuous in character. This can | |
| include data derived by applying floating-point operations on ADC | | include data derived by applying floating-point operations on ADC | |
| channels (e.g.\ digital filters, linear combinations of channels, | | channels (e.g.\ digital filters, linear combinations of channels, | |
| etc.), but not data that simply represents ADC output in | | etc.), but not data that simply represents ADC output in | |
| floating-point format. The assumption here is that the numerical | | floating-point format. The assumption here is that the numerical | |
| post-processing of the ADC data completely masks any statistical | | post-processing of the ADC data completely masks any statistical | |
| signiatures of the digitization. | | signiatures of the digitization. | |
| | | | |
|
| ******************************************************* </lalLaTeX> */ | | @{ | |
| | | \defgroup InjectVector_c Module InjectVector.c | |
| #ifndef _INJECT_H | | \defgroup InjectTimeSeries_c Module InjectTimeSeries.c | |
| #define _INJECT_H | | */ | |
| | | /** \name Error Codes */ /**@{*/ | |
| #include <lal/LALStdlib.h> | | #define INJECTH_ENUL 1 /**< Unexpected null pointer in arguments. * | |
| #include <lal/Random.h> | | / | |
| | | #define INJECTH_EBAD 2 /**< A sampling interval is (effectively) zero */ | |
| #ifdef __cplusplus | | #define INJECTH_EUNIT 3 /**< Input or output is not in units of ADC | |
| extern "C" { | | counts */ | |
| #pragma } | | /** @}*/ | |
| #endif | | /** @}*/ | |
| | | | |
| NRCSID( INJECTH, "$Id$" ); | | | |
| | | | |
| /********************************************************** <lalLaTeX> | | | |
| \subsection*{Error conditions} | | | |
| ****************************************** </lalLaTeX><lalErrTable> */ | | | |
| #define INJECTH_ENUL 1 | | | |
| #define INJECTH_EBAD 2 | | | |
| #define INJECTH_EUNIT 3 | | | |
| | | | |
| #define INJECTH_MSGENUL "Unexpected null pointer in arguments" | | #define INJECTH_MSGENUL "Unexpected null pointer in arguments" | |
| #define INJECTH_MSGEBAD "A sampling interval is (effectively) zero" | | #define INJECTH_MSGEBAD "A sampling interval is (effectively) zero" | |
| #define INJECTH_MSGEUNIT "Input or output is not in units of ADC counts" | | #define INJECTH_MSGEUNIT "Input or output is not in units of ADC counts" | |
|
| /******************************************** </lalErrTable><lalLaTeX> | | | |
| | | | |
| \subsection*{Types} | | | |
| ******************************************************* </lalLaTeX> */ | | | |
| | | | |
| /* <lalLaTeX> | | | |
| \vfill{\footnotesize\input{InjectHV}} | | | |
| </lalLaTeX> */ | | | |
| | | | |
| /* Function prototypes. */ | | /* Function prototypes. */ | |
| | | | |
|
| /* <lalLaTeX> | | | |
| \newpage\input{InjectVectorC} | | | |
| </lalLaTeX> */ | | | |
| void | | void | |
| LALSI2InjectVector( LALStatus *, | | LALSI2InjectVector( LALStatus *, | |
| INT2Vector *output, | | INT2Vector *output, | |
| REAL4Vector *signalvec, | | REAL4Vector *signalvec, | |
| RandomParams *params ); | | RandomParams *params ); | |
| | | | |
| void | | void | |
| LALSSInjectVector( LALStatus *, | | LALSSInjectVector( LALStatus *, | |
| REAL4Vector *output, | | REAL4Vector *output, | |
| REAL4Vector *signalvec ); | | REAL4Vector *signalvec ); | |
| | | | |
|
| /* <lalLaTeX> | | | |
| \newpage\input{InjectTimeSeriesC} | | | |
| </lalLaTeX> */ | | | |
| void | | void | |
| LALSI2InjectTimeSeries( LALStatus *, | | LALSI2InjectTimeSeries( LALStatus *, | |
| INT2TimeSeries *output, | | INT2TimeSeries *output, | |
| REAL4TimeSeries *signalvec, | | REAL4TimeSeries *signalvec, | |
| RandomParams *params ); | | RandomParams *params ); | |
| | | | |
| void | | void | |
| LALSSInjectTimeSeries( LALStatus *, | | LALSSInjectTimeSeries( LALStatus *, | |
| REAL4TimeSeries *output, | | REAL4TimeSeries *output, | |
| REAL4TimeSeries *signalvec ); | | REAL4TimeSeries *signalvec ); | |
| | | | |
|
| #ifdef __cplusplus | | #if 0 | |
| #pragma { | | { /* so that editors will match succeeding brace */ | |
| | | #elif defined(__cplusplus) | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| #endif /* _INJECT_H */ | | #endif /* _INJECT_H */ | |
| | | | |
End of changes. 19 change blocks. |
| 69 lines changed or deleted | | 56 lines changed or added | |
|
| LALBarycenter.h | | LALBarycenter.h | |
| | | | |
| skipping to change at line 23 | | skipping to change at line 23 | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with with program; see the file COPYING. If not, write to the | | * along with with program; see the file COPYING. If not, write to the | |
| * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | | * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | |
| * MA 02111-1307 USA | | * MA 02111-1307 USA | |
| */ | | */ | |
| | | | |
| #ifndef _LALBARYCENTER_H /* Protect against double-inclusion */ | | #ifndef _LALBARYCENTER_H /* Protect against double-inclusion */ | |
| #define _LALBARYCENTER_H | | #define _LALBARYCENTER_H | |
| | | | |
|
| | | /* remove SWIG interface directives */ | |
| | | #if !defined(SWIG) && !defined(SWIGLAL_STRUCT) | |
| | | #define SWIGLAL_STRUCT(...) | |
| | | #endif | |
| | | | |
| #include <stdio.h> | | #include <stdio.h> | |
| #include <math.h> | | #include <math.h> | |
| #include <lal/LALStdio.h> | | #include <lal/LALStdio.h> | |
| #include <lal/LALStdlib.h> | | #include <lal/LALStdlib.h> | |
| #include <lal/LALConstants.h> | | #include <lal/LALConstants.h> | |
| #include <lal/DetectorSite.h> | | #include <lal/DetectorSite.h> | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| | | | |
| skipping to change at line 44 | | skipping to change at line 49 | |
| /** \cond DONT_DOXYGEN */ | | /** \cond DONT_DOXYGEN */ | |
| NRCSID (LALBARYCENTERH,"$Id$"); | | NRCSID (LALBARYCENTERH,"$Id$"); | |
| /** \endcond */ | | /** \endcond */ | |
| | | | |
| /** \name Error codes */ | | /** \name Error codes */ | |
| /*@{*/ /** \ingroup Barycenter_h */ | | /*@{*/ /** \ingroup Barycenter_h */ | |
| #define LALBARYCENTERH_ENULL 2 | | #define LALBARYCENTERH_ENULL 2 | |
| #define LALBARYCENTERH_EOUTOFRANGEE 4 | | #define LALBARYCENTERH_EOUTOFRANGEE 4 | |
| #define LALBARYCENTERH_EOUTOFRANGES 8 | | #define LALBARYCENTERH_EOUTOFRANGES 8 | |
| #define LALBARYCENTERH_EBADSOURCEPOS 16 | | #define LALBARYCENTERH_EBADSOURCEPOS 16 | |
|
| | | #define LALBARYCENTERH_EXLAL 32 | |
| | | | |
| #define LALBARYCENTERH_MSGENULL "Null input to Barycenter routine." | | #define LALBARYCENTERH_MSGENULL "Null input to Barycenter routine." | |
| #define LALBARYCENTERH_MSGEOUTOFRANGEE "tgps not in range of earth.dat fil
e" | | #define LALBARYCENTERH_MSGEOUTOFRANGEE "tgps not in range of earth.dat fil
e" | |
| #define LALBARYCENTERH_MSGEOUTOFRANGES "tgps not in range of sun.dat file" | | #define LALBARYCENTERH_MSGEOUTOFRANGES "tgps not in range of sun.dat file" | |
| #define LALBARYCENTERH_MSGEBADSOURCEPOS "source position not in standard ra
nge" | | #define LALBARYCENTERH_MSGEBADSOURCEPOS "source position not in standard ra
nge" | |
|
| | | #define LALBARYCENTERH_MSGEXLAL "XLAL function failed." | |
| /*@}*/ | | /*@}*/ | |
| | | | |
| /** | | /** | |
| * \defgroup LALBarycenter_h Barycentering | | * \defgroup LALBarycenter_h Barycentering | |
| * \author Curt Cutler | | * \author Curt Cutler | |
| * \date 2001 | | * \date 2001 | |
| * \ingroup pulsarCommon | | * \ingroup pulsarCommon | |
| * \brief Provides routines for transforming from arrival time at detector
(GPS) to pulse emission time (TDB); ie | | * \brief Provides routines for transforming from arrival time at detector
(GPS) to pulse emission time (TDB); ie | |
| * for ``barycentering'' the measured astronomical time series. | | * for ``barycentering'' the measured astronomical time series. | |
| * | | * | |
| | | | |
| skipping to change at line 85 | | skipping to change at line 92 | |
| * (actually, a little more than one year, to deal | | * (actually, a little more than one year, to deal | |
| * with overlaps). The first line of each table summarizes | | * with overlaps). The first line of each table summarizes | |
| * what is in it. Subsequent lines give the time (GPS) and the | | * what is in it. Subsequent lines give the time (GPS) and the | |
| * Earth's position \f$(x,y,z)\f$, | | * Earth's position \f$(x,y,z)\f$, | |
| * velocity \f$(v_x, v_y, v_z)\f$, and acceleration \f$(a_x, a_y, a_z)\f$ | | * velocity \f$(v_x, v_y, v_z)\f$, and acceleration \f$(a_x, a_y, a_z)\f$ | |
| * at that instant. All in units of seconds; e.g. positions have | | * at that instant. All in units of seconds; e.g. positions have | |
| * units of seconds, and accelerations have units 1/sec. | | * units of seconds, and accelerations have units 1/sec. | |
| * | | * | |
| * \deprecated Use XLALInitBarycenter() instead. | | * \deprecated Use XLALInitBarycenter() instead. | |
| */ | | */ | |
|
| typedef struct | | typedef struct tagEphemerisFilenames | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(EphemerisFilenames); | |
| CHAR *earthEphemeris; /**< File containing Earth's position. */ | | CHAR *earthEphemeris; /**< File containing Earth's position. */ | |
| CHAR *sunEphemeris; /**< File containing Sun's position. */ | | CHAR *sunEphemeris; /**< File containing Sun's position. */ | |
| } | | } | |
| EphemerisFilenames; | | EphemerisFilenames; | |
| | | | |
| /** Structure holding a REAL8 time, and a position, velocity and | | /** Structure holding a REAL8 time, and a position, velocity and | |
| * acceleration vector. */ | | * acceleration vector. */ | |
|
| typedef struct | | typedef struct tagPosVelAcc | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(PosVelAcc); | |
| REAL8 gps; /**< REAL8 timestamp */ | | REAL8 gps; /**< REAL8 timestamp */ | |
| REAL8 pos[3]; /**< position-vector */ | | REAL8 pos[3]; /**< position-vector */ | |
| REAL8 vel[3]; /**< velocity-vector */ | | REAL8 vel[3]; /**< velocity-vector */ | |
| REAL8 acc[3]; /**< acceleration-vector */ | | REAL8 acc[3]; /**< acceleration-vector */ | |
| } | | } | |
| PosVelAcc; | | PosVelAcc; | |
| | | | |
| /** This structure contains all information about the | | /** This structure contains all information about the | |
| * center-of-mass positions of the Earth and Sun, listed at regular | | * center-of-mass positions of the Earth and Sun, listed at regular | |
| * time intervals. | | * time intervals. | |
| */ | | */ | |
|
| typedef struct | | typedef struct tagEphemerisData | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(EphemerisData); | |
| EphemerisFilenames ephiles; /**< Names of the two files containing positi
ons of | | EphemerisFilenames ephiles; /**< Names of the two files containing positi
ons of | |
| * Earth and Sun, respectively at evenly spac
ed times. */ | | * Earth and Sun, respectively at evenly spac
ed times. */ | |
| INT4 nentriesE; /**< The number of entries in Earth ephemeris table
. */ | | INT4 nentriesE; /**< The number of entries in Earth ephemeris table
. */ | |
| INT4 nentriesS; /**< The number of entries in Sun ephemeris table.
*/ | | INT4 nentriesS; /**< The number of entries in Sun ephemeris table.
*/ | |
| REAL8 dtEtable; /**< The spacing in sec between consecutive intants
in Earth ephemeris table.*/ | | REAL8 dtEtable; /**< The spacing in sec between consecutive intants
in Earth ephemeris table.*/ | |
| REAL8 dtStable; /**< The spacing in sec between consecutive intants
in Sun ephemeris table.*/ | | REAL8 dtStable; /**< The spacing in sec between consecutive intants
in Sun ephemeris table.*/ | |
| PosVelAcc *ephemE; /**< Array containing pos,vel,acc of earth, as extr
acted from earth | | PosVelAcc *ephemE; /**< Array containing pos,vel,acc of earth, as extr
acted from earth | |
| * ephem file. Units are sec, 1, 1/sec respectively
*/ | | * ephem file. Units are sec, 1, 1/sec respectively
*/ | |
| PosVelAcc *ephemS; /**< Array with pos, vel and acc for the sun (see e
phemE) */ | | PosVelAcc *ephemS; /**< Array with pos, vel and acc for the sun (see e
phemE) */ | |
| } | | } | |
| EphemerisData; | | EphemerisData; | |
| | | | |
| /** Basic output structure of LALBarycenterEarth.c. | | /** Basic output structure of LALBarycenterEarth.c. | |
| */ | | */ | |
|
| typedef struct | | typedef struct tagEarthState | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(EarthState); | |
| REAL8 einstein; /**< the einstein delay equiv TDB - TDT */ | | REAL8 einstein; /**< the einstein delay equiv TDB - TDT */ | |
| REAL8 deinstein; /**< d(einstein)/d(tgps) */ | | REAL8 deinstein; /**< d(einstein)/d(tgps) */ | |
| | | | |
| REAL8 posNow[3]; /**< Cartesian coords of Earth's center at tgps, | | REAL8 posNow[3]; /**< Cartesian coords of Earth's center at tgps, | |
| * extrapolated from JPL DE405 ephemeris; units= se
c */ | | * extrapolated from JPL DE405 ephemeris; units= se
c */ | |
| REAL8 velNow[3]; /**< dimensionless velocity of Earth's center at tg
ps, | | REAL8 velNow[3]; /**< dimensionless velocity of Earth's center at tg
ps, | |
| * extrapolated from JPL DE405 ephemeris */ | | * extrapolated from JPL DE405 ephemeris */ | |
| | | | |
| REAL8 gmstRad; /**< Greenwich Mean Sidereal Time (GMST) in radians
, at tgps */ | | REAL8 gmstRad; /**< Greenwich Mean Sidereal Time (GMST) in radians
, at tgps */ | |
| REAL8 gastRad; /**< Greenwich Apparent Sidereal Time, in radians,
at tgps; | | REAL8 gastRad; /**< Greenwich Apparent Sidereal Time, in radians,
at tgps; | |
| | | | |
| skipping to change at line 155 | | skipping to change at line 166 | |
| REAL8 se[3]; /**< vector that points from Sun to Earth at instan
t tgps, | | REAL8 se[3]; /**< vector that points from Sun to Earth at instan
t tgps, | |
| * in DE405 coords; units = sec */ | | * in DE405 coords; units = sec */ | |
| REAL8 dse[3]; /**< d(se[3])/d(tgps); Dimensionless */ | | REAL8 dse[3]; /**< d(se[3])/d(tgps); Dimensionless */ | |
| REAL8 rse; /**< length of vector se[3]; units = sec */ | | REAL8 rse; /**< length of vector se[3]; units = sec */ | |
| REAL8 drse; /**< d(rse)/d(tgps); dimensionless */ | | REAL8 drse; /**< d(rse)/d(tgps); dimensionless */ | |
| } | | } | |
| EarthState; | | EarthState; | |
| | | | |
| /** Basic input structure to LALBarycenter.c. | | /** Basic input structure to LALBarycenter.c. | |
| */ | | */ | |
|
| typedef struct | | typedef struct tagBarycenterInput | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(BarycenterInput); | |
| LIGOTimeGPS tgps; /**< input GPS arrival time. I use tgps (lower case
) | | LIGOTimeGPS tgps; /**< input GPS arrival time. I use tgps (lower case
) | |
| * to remind that here the LAL structure is a | | * to remind that here the LAL structure is a | |
| * field in the larger structure BarycenterInput. | | * field in the larger structure BarycenterInput. | |
| * I use tGPS as an input structure (by itself) to | | * I use tGPS as an input structure (by itself) to | |
| * LALBarycenterEarth */ | | * LALBarycenterEarth */ | |
| | | | |
| LALDetector site; /**< detector site info. <b>NOTE:</b> | | LALDetector site; /**< detector site info. <b>NOTE:</b> | |
| * the <tt>site.location</tt> field must be modifie
d | | * the <tt>site.location</tt> field must be modifie
d | |
| * to give the detector location in units of | | * to give the detector location in units of | |
| * <em>seconds</em> (i.e. divide the values normall
y | | * <em>seconds</em> (i.e. divide the values normall
y | |
| | | | |
| skipping to change at line 180 | | skipping to change at line 192 | |
| REAL8 delta; /**< Source declination in ICRS J2000 coords (radia
ns) */ | | REAL8 delta; /**< Source declination in ICRS J2000 coords (radia
ns) */ | |
| REAL8 dInv; /**< 1/(distance to source), in 1/sec. | | REAL8 dInv; /**< 1/(distance to source), in 1/sec. | |
| * This is needed to correct Roemer delay for very | | * This is needed to correct Roemer delay for very | |
| * nearby sources; correction is about 10 microsec
for | | * nearby sources; correction is about 10 microsec
for | |
| * source at 100 pc */ | | * source at 100 pc */ | |
| } | | } | |
| BarycenterInput; | | BarycenterInput; | |
| | | | |
| /** Basic output structure produced by LALBarycenter.c. | | /** Basic output structure produced by LALBarycenter.c. | |
| */ | | */ | |
|
| typedef struct | | typedef struct tagEmissionTime | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(EmissionTime); | |
| REAL8 deltaT; /**< \f$t_e\f$(TDB) - \f$t_a\f$(GPS) | | REAL8 deltaT; /**< \f$t_e\f$(TDB) - \f$t_a\f$(GPS) | |
| * + (light-travel-time from source to SSB) */ | | * + (light-travel-time from source to SSB) */ | |
| | | | |
| LIGOTimeGPS te; /**< pulse emission time (TDB); also sometimes call
ed | | LIGOTimeGPS te; /**< pulse emission time (TDB); also sometimes call
ed | |
| * ``arrival time (TDB) of same wavefront at SSB''
*/ | | * ``arrival time (TDB) of same wavefront at SSB''
*/ | |
| REAL8 tDot; /**< d(emission time in TDB)/d(arrival time in GPS)
*/ | | REAL8 tDot; /**< d(emission time in TDB)/d(arrival time in GPS)
*/ | |
| | | | |
| REAL8 rDetector[3]; /**< Cartesian coords (0=x,1=y,2=z) of detector pos
ition | | REAL8 rDetector[3]; /**< Cartesian coords (0=x,1=y,2=z) of detector pos
ition | |
| * at $t_a$ (GPS), in ICRS J2000 coords. Units = se
c. */ | | * at $t_a$ (GPS), in ICRS J2000 coords. Units = se
c. */ | |
| | | | |
| | | | |
| skipping to change at line 209 | | skipping to change at line 222 | |
| /*Curt: probably best to take 1.0 OUT of tDot--ie., output tDot-1. | | /*Curt: probably best to take 1.0 OUT of tDot--ie., output tDot-1. | |
| But most users would immediately add back the one anyway. | | But most users would immediately add back the one anyway. | |
| */ | | */ | |
| | | | |
| /*Curt: rem te is ``time pulse would arrive at a GPS clock | | /*Curt: rem te is ``time pulse would arrive at a GPS clock | |
| way out in empty space, if you renormalized and zero-ed the latter | | way out in empty space, if you renormalized and zero-ed the latter | |
| to give, on average, the same arrival time as the GPS clock on Earth'' */ | | to give, on average, the same arrival time as the GPS clock on Earth'' */ | |
| | | | |
| /* Function prototypes. */ | | /* Function prototypes. */ | |
| | | | |
|
| void LALBarycenterEarth(LALStatus *, EarthState *, const LIGOTimeGPS *, con | | int XLALBarycenterEarth ( EarthState *earth, const LIGOTimeGPS *tGPS, const | |
| st EphemerisData *); | | EphemerisData *edat); | |
| | | int XLALBarycenter ( EmissionTime *emit, const BarycenterInput *baryinput, | |
| | | const EarthState *earth); | |
| | | | |
|
| void LALBarycenter(LALStatus *, EmissionTime *, const BarycenterInput *, co | | void LALBarycenterEarth ( LALStatus *status, EarthState *earth, const LIGOT | |
| nst EarthState *); | | imeGPS *tGPS, const EphemerisData *edat); | |
| | | void LALBarycenter ( LALStatus *status, EmissionTime *emit, const Barycente | |
| | | rInput *baryinput, const EarthState *earth); | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif /* Close C++ protection */ | | #endif /* Close C++ protection */ | |
| | | | |
| #endif /* Close double-include protection */ | | #endif /* Close double-include protection */ | |
| | | | |
End of changes. 17 change blocks. |
| 10 lines changed or deleted | | 27 lines changed or added | |
|
| LALDatatypes.h | | LALDatatypes.h | |
| | | | |
| skipping to change at line 72 | | skipping to change at line 72 | |
| This header file is automatically included by the header | | This header file is automatically included by the header | |
| \verb@LALStdlib.h@. In turn, this header file starts by including the | | \verb@LALStdlib.h@. In turn, this header file starts by including the | |
| header \verb@LALAtomicDatatypes.h@, which is discussed in the | | header \verb@LALAtomicDatatypes.h@, which is discussed in the | |
| following section. | | following section. | |
| | | | |
| </lalLaTeX> */ | | </lalLaTeX> */ | |
| | | | |
| #ifndef _LALDATATYPES_H | | #ifndef _LALDATATYPES_H | |
| #define _LALDATATYPES_H | | #define _LALDATATYPES_H | |
| | | | |
|
| | | /* remove SWIG interface directives */ | |
| | | #if !defined(SWIG) && !defined(SWIGLAL_STRUCT) | |
| | | #define SWIGLAL_STRUCT(...) | |
| | | #endif | |
| | | #if !defined(SWIG) && !defined(SWIGLAL_DYNAMIC_1DARRAY) | |
| | | #define SWIGLAL_DYNAMIC_1DARRAY(...) | |
| | | #endif | |
| | | #if !defined(SWIG) && !defined(SWIGLAL_DYNAMIC_2DARRAY) | |
| | | #define SWIGLAL_DYNAMIC_2DARRAY(...) | |
| | | #endif | |
| | | | |
| /* <lalLaTeX> | | /* <lalLaTeX> | |
| \newpage\input{LALAtomicDatatypesH} | | \newpage\input{LALAtomicDatatypesH} | |
| </lalLaTeX> */ | | </lalLaTeX> */ | |
| #include <lal/LALAtomicDatatypes.h> | | #include <lal/LALAtomicDatatypes.h> | |
| | | | |
| /**** <lalLaTeX> | | /**** <lalLaTeX> | |
| * \newpage | | * \newpage | |
| * \subsection{Atomic datatypes codes} | | * \subsection{Atomic datatypes codes} | |
| * \label{ss:atomic-datatype-codes} | | * \label{ss:atomic-datatype-codes} | |
| * \idx[Constant]{LAL\_1\_BYTE\_TYPE\_SIZE} | | * \idx[Constant]{LAL\_1\_BYTE\_TYPE\_SIZE} | |
| | | | |
| skipping to change at line 327 | | skipping to change at line 338 | |
| * n_{m-3}\times(\cdots(i_1 + n_0\times i_0)\cdots))\mathtt{]}\f$; that is, | | * n_{m-3}\times(\cdots(i_1 + n_0\times i_0)\cdots))\mathtt{]}\f$; that is, | |
| * the index of \c data[] runs over the internal indecies of each | | * the index of \c data[] runs over the internal indecies of each | |
| * array element before incrementing to the next array element. | | * array element before incrementing to the next array element. | |
| * | | * | |
| */ | | */ | |
| /*@{*/ | | /*@{*/ | |
| /** Vector of type CHAR. */ | | /** Vector of type CHAR. */ | |
| typedef struct | | typedef struct | |
| tagCHARVector | | tagCHARVector | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(CHARVector); | |
| | | SWIGLAL_DYNAMIC_1DARRAY(CHAR, data, UINT4, length); | |
| UINT4 length; /**< Number of elements in array. */ | | UINT4 length; /**< Number of elements in array. */ | |
| CHAR *data; /**< Pointer to the data array. */ | | CHAR *data; /**< Pointer to the data array. */ | |
| } | | } | |
| CHARVector; | | CHARVector; | |
| | | | |
| /** Vector of type CHAR*, ie 'strings' */ | | /** Vector of type CHAR*, ie 'strings' */ | |
|
| typedef struct { | | typedef struct tagLALStringVector { | |
| | | SWIGLAL_STRUCT(LALStringVector); | |
| | | SWIGLAL_DYNAMIC_1DARRAY(CHAR*, data, UINT4, length); | |
| UINT4 length; /**< Number of elements in array. */ | | UINT4 length; /**< Number of elements in array. */ | |
| CHAR **data; /**< Pointer to the data array. */ | | CHAR **data; /**< Pointer to the data array. */ | |
| } LALStringVector; | | } LALStringVector; | |
| | | | |
| /** Vector of type INT2. */ | | /** Vector of type INT2. */ | |
| typedef struct | | typedef struct | |
| tagINT2Vector | | tagINT2Vector | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(INT2Vector); | |
| | | SWIGLAL_DYNAMIC_1DARRAY(INT2, data, UINT4, length); | |
| UINT4 length; /**< Number of elements in array. */ | | UINT4 length; /**< Number of elements in array. */ | |
| INT2 *data; /**< Pointer to the data array. */ | | INT2 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| INT2Vector; | | INT2Vector; | |
| | | | |
| /** Vector of type UINT2. */ | | /** Vector of type UINT2. */ | |
| typedef struct | | typedef struct | |
| tagUINT2Vector | | tagUINT2Vector | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(UINT2Vector); | |
| | | SWIGLAL_DYNAMIC_1DARRAY(UINT2, data, UINT4, length); | |
| UINT4 length; /**< Number of elements in array. */ | | UINT4 length; /**< Number of elements in array. */ | |
| UINT2 *data; /**< Pointer to the data array. */ | | UINT2 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| UINT2Vector; | | UINT2Vector; | |
| | | | |
| /** Vector of type INT4. */ | | /** Vector of type INT4. */ | |
| typedef struct | | typedef struct | |
| tagINT4Vector | | tagINT4Vector | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(INT4Vector); | |
| | | SWIGLAL_DYNAMIC_1DARRAY(INT4, data, UINT4, length); | |
| UINT4 length; /**< Number of elements in array. */ | | UINT4 length; /**< Number of elements in array. */ | |
| INT4 *data; /**< Pointer to the data array. */ | | INT4 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| INT4Vector; | | INT4Vector; | |
| | | | |
| /** Vector of type UINT4. */ | | /** Vector of type UINT4. */ | |
| typedef struct | | typedef struct | |
| tagUINT4Vector | | tagUINT4Vector | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(UINT4Vector); | |
| | | SWIGLAL_DYNAMIC_1DARRAY(UINT4, data, UINT4, length); | |
| UINT4 length; /**< Number of elements in array. */ | | UINT4 length; /**< Number of elements in array. */ | |
| UINT4 *data; /**< Pointer to the data array. */ | | UINT4 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| UINT4Vector; | | UINT4Vector; | |
| | | | |
| /** Vector of type INT8. */ | | /** Vector of type INT8. */ | |
| typedef struct | | typedef struct | |
| tagINT8Vector | | tagINT8Vector | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(INT8Vector); | |
| | | SWIGLAL_DYNAMIC_1DARRAY(INT8, data, UINT4, length); | |
| UINT4 length; /**< Number of elements in array. */ | | UINT4 length; /**< Number of elements in array. */ | |
| INT8 *data; /**< Pointer to the data array. */ | | INT8 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| INT8Vector; | | INT8Vector; | |
| | | | |
| /** Vector of type UINT8. */ | | /** Vector of type UINT8. */ | |
| typedef struct | | typedef struct | |
| tagUINT8Vector | | tagUINT8Vector | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(UINT8Vector); | |
| | | SWIGLAL_DYNAMIC_1DARRAY(UINT8, data, UINT4, length); | |
| UINT4 length; /**< Number of elements in array. */ | | UINT4 length; /**< Number of elements in array. */ | |
| UINT8 *data; /**< Pointer to the data array. */ | | UINT8 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| UINT8Vector; | | UINT8Vector; | |
| | | | |
| /** Vector of type REAL4. */ | | /** Vector of type REAL4. */ | |
| typedef struct | | typedef struct | |
| tagREAL4Vector | | tagREAL4Vector | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(REAL4Vector); | |
| | | SWIGLAL_DYNAMIC_1DARRAY(REAL4, data, UINT4, length); | |
| UINT4 length; /**< Number of elements in array. */ | | UINT4 length; /**< Number of elements in array. */ | |
| REAL4 *data; /**< Pointer to the data array. */ | | REAL4 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| REAL4Vector; | | REAL4Vector; | |
| | | | |
| /** Vector of type REAL8. */ | | /** Vector of type REAL8. */ | |
| typedef struct tagREAL8Vector | | typedef struct tagREAL8Vector | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(REAL8Vector); | |
| | | SWIGLAL_DYNAMIC_1DARRAY(REAL8, data, UINT4, length); | |
| UINT4 length; /**< Number of elements in array. */ | | UINT4 length; /**< Number of elements in array. */ | |
| REAL8 *data; /**< Pointer to the data array. */ | | REAL8 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| REAL8Vector; | | REAL8Vector; | |
| | | | |
| /** Vector of type COMPLEX8. */ | | /** Vector of type COMPLEX8. */ | |
| typedef struct tagCOMPLEX8Vector | | typedef struct tagCOMPLEX8Vector | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(COMPLEX8Vector); | |
| | | SWIGLAL_DYNAMIC_1DARRAY(COMPLEX8, data, UINT4, length); | |
| UINT4 length; /**< Number of elements in array. */ | | UINT4 length; /**< Number of elements in array. */ | |
| COMPLEX8 *data; /**< Pointer to the data array. */ | | COMPLEX8 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| COMPLEX8Vector; | | COMPLEX8Vector; | |
| | | | |
| /** Vector of type COMPLEX16. */ | | /** Vector of type COMPLEX16. */ | |
| typedef struct tagCOMPLEX16Vector | | typedef struct tagCOMPLEX16Vector | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(COMPLEX16Vector); | |
| | | SWIGLAL_DYNAMIC_1DARRAY(COMPLEX16, data, UINT4, length); | |
| UINT4 length; /**< Number of elements in array. */ | | UINT4 length; /**< Number of elements in array. */ | |
| COMPLEX16 *data; /**< Pointer to the data array. */ | | COMPLEX16 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| COMPLEX16Vector; | | COMPLEX16Vector; | |
| | | | |
| /* <lalLaTeX> | | /* <lalLaTeX> | |
| | | | |
| \vspace{2ex} | | \vspace{2ex} | |
| \begin{verbatim} | | \begin{verbatim} | |
| <datatype>Array | | <datatype>Array | |
| | | | |
| skipping to change at line 456 | | skipping to change at line 491 | |
| the index of \verb@data[]@ runs over the entire range of an index | | the index of \verb@data[]@ runs over the entire range of an index | |
| $i_{k+1}$ before incrementing $i_k$. | | $i_{k+1}$ before incrementing $i_k$. | |
| \end{description} | | \end{description} | |
| | | | |
| </lalLaTeX> */ | | </lalLaTeX> */ | |
| | | | |
| /** Multidimentional array of INT2. */ | | /** Multidimentional array of INT2. */ | |
| typedef struct | | typedef struct | |
| tagINT2Array | | tagINT2Array | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(INT2Array); | |
| UINT4Vector *dimLength; /**< Vector of array dimensions. */ | | UINT4Vector *dimLength; /**< Vector of array dimensions. */ | |
| INT2 *data; /**< Pointer to the data array. */ | | INT2 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| INT2Array; | | INT2Array; | |
| | | | |
| /** Multidimentional array of UINT2. */ | | /** Multidimentional array of UINT2. */ | |
| typedef struct | | typedef struct | |
| tagUINT2Array | | tagUINT2Array | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(UINT2Array); | |
| UINT4Vector *dimLength; /**< Vector of array dimensions. */ | | UINT4Vector *dimLength; /**< Vector of array dimensions. */ | |
| UINT2 *data; /**< Pointer to the data array. */ | | UINT2 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| UINT2Array; | | UINT2Array; | |
| | | | |
| /** Multidimentional array of INT4. */ | | /** Multidimentional array of INT4. */ | |
| typedef struct | | typedef struct | |
| tagINT4Array | | tagINT4Array | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(INT4Array); | |
| UINT4Vector *dimLength; /**< Vector of array dimensions. */ | | UINT4Vector *dimLength; /**< Vector of array dimensions. */ | |
| INT4 *data; /**< Pointer to the data array. */ | | INT4 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| INT4Array; | | INT4Array; | |
| | | | |
| /** Multidimentional array of UINT4. */ | | /** Multidimentional array of UINT4. */ | |
| typedef struct | | typedef struct | |
| tagUINT4Array | | tagUINT4Array | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(UINT4Array); | |
| UINT4Vector *dimLength; /**< Vector of array dimensions. */ | | UINT4Vector *dimLength; /**< Vector of array dimensions. */ | |
| UINT4 *data; /**< Pointer to the data array. */ | | UINT4 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| UINT4Array; | | UINT4Array; | |
| | | | |
| /** Multidimentional array of INT8. */ | | /** Multidimentional array of INT8. */ | |
| typedef struct | | typedef struct | |
| tagINT8Array | | tagINT8Array | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(INT8Array); | |
| UINT4Vector *dimLength; /**< Vector of array dimensions. */ | | UINT4Vector *dimLength; /**< Vector of array dimensions. */ | |
| INT8 *data; /**< Pointer to the data array. */ | | INT8 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| INT8Array; | | INT8Array; | |
| | | | |
| /** Multidimentional array of UINT8. */ | | /** Multidimentional array of UINT8. */ | |
| typedef struct | | typedef struct | |
| tagUINT8Array | | tagUINT8Array | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(UINT8Array); | |
| UINT4Vector *dimLength; /**< Vector of array dimensions. */ | | UINT4Vector *dimLength; /**< Vector of array dimensions. */ | |
| UINT8 *data; /**< Pointer to the data array. */ | | UINT8 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| UINT8Array; | | UINT8Array; | |
| | | | |
| /** Multidimentional array of REAL4. */ | | /** Multidimentional array of REAL4. */ | |
| typedef struct | | typedef struct | |
| tagREAL4Array | | tagREAL4Array | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(REAL4Array); | |
| UINT4Vector *dimLength; /**< Vector of array dimensions. */ | | UINT4Vector *dimLength; /**< Vector of array dimensions. */ | |
| REAL4 *data; /**< Pointer to the data array. */ | | REAL4 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| REAL4Array; | | REAL4Array; | |
| | | | |
| /** Multidimentional array of REAL8. */ | | /** Multidimentional array of REAL8. */ | |
| typedef struct | | typedef struct | |
| tagREAL8Array | | tagREAL8Array | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(REAL8Array); | |
| UINT4Vector *dimLength; /**< Vector of array dimensions. */ | | UINT4Vector *dimLength; /**< Vector of array dimensions. */ | |
| REAL8 *data; /**< Pointer to the data array. */ | | REAL8 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| REAL8Array; | | REAL8Array; | |
| | | | |
| /** Multidimentional array of COMPLEX8. */ | | /** Multidimentional array of COMPLEX8. */ | |
| typedef struct | | typedef struct | |
| tagCOMPLEX8Array | | tagCOMPLEX8Array | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(COMPLEX8Array); | |
| UINT4Vector *dimLength; /**< Vector of array dimensions. */ | | UINT4Vector *dimLength; /**< Vector of array dimensions. */ | |
| COMPLEX8 *data; /**< Pointer to the data array. */ | | COMPLEX8 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| COMPLEX8Array; | | COMPLEX8Array; | |
| | | | |
| /** Multidimentional array of COMPLEX16. */ | | /** Multidimentional array of COMPLEX16. */ | |
| typedef struct | | typedef struct | |
| tagCOMPLEX16Array | | tagCOMPLEX16Array | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(COMPLEX16Array); | |
| UINT4Vector *dimLength; /**< Vector of array dimensions. */ | | UINT4Vector *dimLength; /**< Vector of array dimensions. */ | |
| COMPLEX16 *data; /**< Pointer to the data array. */ | | COMPLEX16 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| COMPLEX16Array; | | COMPLEX16Array; | |
| | | | |
| /* <lalLaTeX> | | /* <lalLaTeX> | |
| | | | |
| \vspace{2ex} | | \vspace{2ex} | |
| \begin{verbatim} | | \begin{verbatim} | |
| <datatype>Sequence | | <datatype>Sequence | |
| | | | |
| skipping to change at line 601 | | skipping to change at line 646 | |
| that is, the index of \verb@data[]@ runs over the internal index of | | that is, the index of \verb@data[]@ runs over the internal index of | |
| each vector element before incrementing to the next vector element. | | each vector element before incrementing to the next vector element. | |
| \end{description} | | \end{description} | |
| | | | |
| </lalLaTeX> */ | | </lalLaTeX> */ | |
| | | | |
| /** Sequence of CHAR Vectors. */ | | /** Sequence of CHAR Vectors. */ | |
| typedef struct | | typedef struct | |
| tagCHARVectorSequence | | tagCHARVectorSequence | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(CHARVectorSequence); | |
| | | SWIGLAL_DYNAMIC_2DARRAY(CHAR, data, UINT4, length, vectorLength); | |
| UINT4 length; /**< The number \a l of vectors. */ | | UINT4 length; /**< The number \a l of vectors. */ | |
| UINT4 vectorLength; /**< The length \a n of each vector. */ | | UINT4 vectorLength; /**< The length \a n of each vector. */ | |
| CHAR *data; /**< Pointer to the data array. Element \a i of vector \a j
is \c data[ \a jn + \a i \c ]. */ | | CHAR *data; /**< Pointer to the data array. Element \a i of vector \a j
is \c data[ \a jn + \a i \c ]. */ | |
| } | | } | |
| CHARVectorSequence; | | CHARVectorSequence; | |
| | | | |
| /** Sequence of INT2 Vectors. */ | | /** Sequence of INT2 Vectors. */ | |
| typedef struct | | typedef struct | |
| tagINT2VectorSequence | | tagINT2VectorSequence | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(INT2VectorSequence); | |
| | | SWIGLAL_DYNAMIC_2DARRAY(INT2, data, UINT4, length, vectorLength); | |
| UINT4 length; /**< The number \a l of vectors. */ | | UINT4 length; /**< The number \a l of vectors. */ | |
| UINT4 vectorLength; /**< The length \a n of each vector. */ | | UINT4 vectorLength; /**< The length \a n of each vector. */ | |
| INT2 *data; /**< Pointer to the data array. Element \a i of vector \a j
is \c data[ \a jn + \a i \c ]. */ | | INT2 *data; /**< Pointer to the data array. Element \a i of vector \a j
is \c data[ \a jn + \a i \c ]. */ | |
| } | | } | |
| INT2VectorSequence; | | INT2VectorSequence; | |
| | | | |
| /** Sequence of UINT2 Vectors. */ | | /** Sequence of UINT2 Vectors. */ | |
| typedef struct | | typedef struct | |
| tagUINT2VectorSequence | | tagUINT2VectorSequence | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(UINT2VectorSequence); | |
| | | SWIGLAL_DYNAMIC_2DARRAY(UINT2, data, UINT4, length, vectorLength); | |
| UINT4 length; /**< The number \a l of vectors. */ | | UINT4 length; /**< The number \a l of vectors. */ | |
| UINT4 vectorLength; /**< The length \a n of each vector. */ | | UINT4 vectorLength; /**< The length \a n of each vector. */ | |
| UINT2 *data; /**< Pointer to the data array. Element \a i of vector \a j
is \c data[ \a jn + \a i \c ]. */ | | UINT2 *data; /**< Pointer to the data array. Element \a i of vector \a j
is \c data[ \a jn + \a i \c ]. */ | |
| } | | } | |
| UINT2VectorSequence; | | UINT2VectorSequence; | |
| | | | |
| /** Sequence of INT4 Vectors. */ | | /** Sequence of INT4 Vectors. */ | |
| typedef struct | | typedef struct | |
| tagINT4VectorSequence | | tagINT4VectorSequence | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(INT4VectorSequence); | |
| | | SWIGLAL_DYNAMIC_2DARRAY(INT4, data, UINT4, length, vectorLength); | |
| UINT4 length; /**< The number \a l of vectors. */ | | UINT4 length; /**< The number \a l of vectors. */ | |
| UINT4 vectorLength; /**< The length \a n of each vector. */ | | UINT4 vectorLength; /**< The length \a n of each vector. */ | |
| INT4 *data; /**< Pointer to the data array. Element \a i of vector \a j
is \c data[ \a jn + \a i \c ]. */ | | INT4 *data; /**< Pointer to the data array. Element \a i of vector \a j
is \c data[ \a jn + \a i \c ]. */ | |
| } | | } | |
| INT4VectorSequence; | | INT4VectorSequence; | |
| | | | |
| /** Sequence of UINT4 Vectors. */ | | /** Sequence of UINT4 Vectors. */ | |
| typedef struct | | typedef struct | |
| tagUINT4VectorSequence | | tagUINT4VectorSequence | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(UINT4VectorSequence); | |
| | | SWIGLAL_DYNAMIC_2DARRAY(UINT4, data, UINT4, length, vectorLength); | |
| UINT4 length; /**< The number \a l of vectors. */ | | UINT4 length; /**< The number \a l of vectors. */ | |
| UINT4 vectorLength; /**< The length \a n of each vector. */ | | UINT4 vectorLength; /**< The length \a n of each vector. */ | |
| UINT4 *data; /**< Pointer to the data array. Element \a i of vector \a j
is \c data[ \a jn + \a i \c ]. */ | | UINT4 *data; /**< Pointer to the data array. Element \a i of vector \a j
is \c data[ \a jn + \a i \c ]. */ | |
| } | | } | |
| UINT4VectorSequence; | | UINT4VectorSequence; | |
| | | | |
| /** Sequence of INT8 Vectors. */ | | /** Sequence of INT8 Vectors. */ | |
| typedef struct | | typedef struct | |
| tagINT8VectorSequence | | tagINT8VectorSequence | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(INT8VectorSequence); | |
| | | SWIGLAL_DYNAMIC_2DARRAY(INT8, data, UINT4, length, vectorLength); | |
| UINT4 length; /**< The number \a l of vectors. */ | | UINT4 length; /**< The number \a l of vectors. */ | |
| UINT4 vectorLength; /**< The length \a n of each vector. */ | | UINT4 vectorLength; /**< The length \a n of each vector. */ | |
| INT8 *data; /**< Pointer to the data array. Element \a i of vector \a j
is \c data[ \a jn + \a i \c ]. */ | | INT8 *data; /**< Pointer to the data array. Element \a i of vector \a j
is \c data[ \a jn + \a i \c ]. */ | |
| } | | } | |
| INT8VectorSequence; | | INT8VectorSequence; | |
| | | | |
| /** Sequence of UINT8 Vectors. */ | | /** Sequence of UINT8 Vectors. */ | |
| typedef struct | | typedef struct | |
| tagUINT8VectorSequence | | tagUINT8VectorSequence | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(UINT8VectorSequence); | |
| | | SWIGLAL_DYNAMIC_2DARRAY(UINT8, data, UINT4, length, vectorLength); | |
| UINT4 length; /**< The number \a l of vectors. */ | | UINT4 length; /**< The number \a l of vectors. */ | |
| UINT4 vectorLength; /**< The length \a n of each vector. */ | | UINT4 vectorLength; /**< The length \a n of each vector. */ | |
| UINT8 *data; /**< Pointer to the data array. Element \a i of vector \a j
is \c data[ \a jn + \a i \c ]. */ | | UINT8 *data; /**< Pointer to the data array. Element \a i of vector \a j
is \c data[ \a jn + \a i \c ]. */ | |
| } | | } | |
| UINT8VectorSequence; | | UINT8VectorSequence; | |
| | | | |
| /** Sequence of REAL4 Vectors. */ | | /** Sequence of REAL4 Vectors. */ | |
| typedef struct | | typedef struct | |
| tagREAL4VectorSequence | | tagREAL4VectorSequence | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(REAL4VectorSequence); | |
| | | SWIGLAL_DYNAMIC_2DARRAY(REAL4, data, UINT4, length, vectorLength); | |
| UINT4 length; /**< The number \a l of vectors. */ | | UINT4 length; /**< The number \a l of vectors. */ | |
| UINT4 vectorLength; /**< The length \a n of each vector. */ | | UINT4 vectorLength; /**< The length \a n of each vector. */ | |
| REAL4 *data; /**< Pointer to the data array. Element \a i of vector \a j
is \c data[ \a jn + \a i \c ]. */ | | REAL4 *data; /**< Pointer to the data array. Element \a i of vector \a j
is \c data[ \a jn + \a i \c ]. */ | |
| } | | } | |
| REAL4VectorSequence; | | REAL4VectorSequence; | |
| | | | |
| /** Sequence of REAL8 Vectors. */ | | /** Sequence of REAL8 Vectors. */ | |
| typedef struct | | typedef struct | |
| tagREAL8VectorSequence | | tagREAL8VectorSequence | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(REAL8VectorSequence); | |
| | | SWIGLAL_DYNAMIC_2DARRAY(REAL8, data, UINT4, length, vectorLength); | |
| UINT4 length; /**< The number \a l of vectors. */ | | UINT4 length; /**< The number \a l of vectors. */ | |
| UINT4 vectorLength; /**< The length \a n of each vector. */ | | UINT4 vectorLength; /**< The length \a n of each vector. */ | |
| REAL8 *data; /**< Pointer to the data array. Element \a i of vector \a j
is \c data[ \a jn + \a i \c ]. */ | | REAL8 *data; /**< Pointer to the data array. Element \a i of vector \a j
is \c data[ \a jn + \a i \c ]. */ | |
| } | | } | |
| REAL8VectorSequence; | | REAL8VectorSequence; | |
| | | | |
| /** Sequence of COMPLEX8 Vectors. */ | | /** Sequence of COMPLEX8 Vectors. */ | |
| typedef struct | | typedef struct | |
| tagCOMPLEX8VectorSequence | | tagCOMPLEX8VectorSequence | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(COMPLEX8VectorSequence); | |
| | | SWIGLAL_DYNAMIC_2DARRAY(COMPLEX8, data, UINT4, length, vectorLength); | |
| UINT4 length; /**< The number \a l of vectors. */ | | UINT4 length; /**< The number \a l of vectors. */ | |
| UINT4 vectorLength; /**< The length \a n of each vector. */ | | UINT4 vectorLength; /**< The length \a n of each vector. */ | |
| COMPLEX8 *data; /**< Pointer to the data array. Element \a i of vector \
a j is \c data[ \a jn + \a i \c ]. */ | | COMPLEX8 *data; /**< Pointer to the data array. Element \a i of vector \
a j is \c data[ \a jn + \a i \c ]. */ | |
| } | | } | |
| COMPLEX8VectorSequence; | | COMPLEX8VectorSequence; | |
| | | | |
| /** Sequence of COMPLEX16 Vectors. */ | | /** Sequence of COMPLEX16 Vectors. */ | |
| typedef struct | | typedef struct | |
| tagCOMPLEX16VectorSequence | | tagCOMPLEX16VectorSequence | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(COMPLEX16VectorSequence); | |
| | | SWIGLAL_DYNAMIC_2DARRAY(COMPLEX16, data, UINT4, length, vectorLength); | |
| UINT4 length; /**< The number \a l of vectors. */ | | UINT4 length; /**< The number \a l of vectors. */ | |
| UINT4 vectorLength; /**< The length \a n of each vector. */ | | UINT4 vectorLength; /**< The length \a n of each vector. */ | |
| COMPLEX16 *data; /**< Pointer to the data array. Element \a i of vector
\a j is \c data[ \a jn + \a i \c ]. */ | | COMPLEX16 *data; /**< Pointer to the data array. Element \a i of vector
\a j is \c data[ \a jn + \a i \c ]. */ | |
| } | | } | |
| COMPLEX16VectorSequence; | | COMPLEX16VectorSequence; | |
| | | | |
| /* <lalLaTeX> | | /* <lalLaTeX> | |
| | | | |
| \vspace{2ex} | | \vspace{2ex} | |
| \begin{verbatim} | | \begin{verbatim} | |
| | | | |
| skipping to change at line 746 | | skipping to change at line 813 | |
| the index of \verb@data[]@ runs over the internal indecies of each | | the index of \verb@data[]@ runs over the internal indecies of each | |
| array element before incrementing to the next array element. | | array element before incrementing to the next array element. | |
| \end{description} | | \end{description} | |
| | | | |
| </lalLaTeX> */ | | </lalLaTeX> */ | |
| | | | |
| /** Sequency of INT2 multidimensional arrays. */ | | /** Sequency of INT2 multidimensional arrays. */ | |
| typedef struct | | typedef struct | |
| tagINT2ArraySequence | | tagINT2ArraySequence | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(INT2ArraySequence); | |
| UINT4 length; /**< The number \a l of vectors. */ | | UINT4 length; /**< The number \a l of vectors. */ | |
| UINT4 arrayDim; /**< The number of data \a N in each array element
(this is not the number \a m of indices). */ | | UINT4 arrayDim; /**< The number of data \a N in each array element
(this is not the number \a m of indices). */ | |
| UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t
he array dimensions */ | | UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t
he array dimensions */ | |
| INT2 *data; /**< Pointer to the data array. */ | | INT2 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| INT2ArraySequence; | | INT2ArraySequence; | |
| | | | |
| /** Sequency of UINT2 multidimensional arrays. */ | | /** Sequency of UINT2 multidimensional arrays. */ | |
| typedef struct | | typedef struct | |
| tagUINT2ArraySequence | | tagUINT2ArraySequence | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(UINT2ArraySequence); | |
| UINT4 length; /**< The number \a l of vectors. */ | | UINT4 length; /**< The number \a l of vectors. */ | |
| UINT4 arrayDim; /**< The number of data \a N in each array element
(this is not the number \a m of indices). */ | | UINT4 arrayDim; /**< The number of data \a N in each array element
(this is not the number \a m of indices). */ | |
| UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t
he array dimensions */ | | UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t
he array dimensions */ | |
| UINT2 *data; /**< Pointer to the data array. */ | | UINT2 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| UINT2ArraySequence; | | UINT2ArraySequence; | |
| | | | |
| /** Sequency of INT4 multidimensional arrays. */ | | /** Sequency of INT4 multidimensional arrays. */ | |
| typedef struct | | typedef struct | |
| tagINT4ArraySequence | | tagINT4ArraySequence | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(INT4ArraySequence); | |
| UINT4 length; /**< The number \a l of vectors. */ | | UINT4 length; /**< The number \a l of vectors. */ | |
| UINT4 arrayDim; /**< The number of data \a N in each array element
(this is not the number \a m of indices). */ | | UINT4 arrayDim; /**< The number of data \a N in each array element
(this is not the number \a m of indices). */ | |
| UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t
he array dimensions */ | | UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t
he array dimensions */ | |
| INT4 *data; /**< Pointer to the data array. */ | | INT4 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| INT4ArraySequence; | | INT4ArraySequence; | |
| | | | |
| /** Sequency of UINT4 multidimensional arrays. */ | | /** Sequency of UINT4 multidimensional arrays. */ | |
| typedef struct | | typedef struct | |
| tagUINT4ArraySequence | | tagUINT4ArraySequence | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(UINT4ArraySequence); | |
| UINT4 length; /**< The number \a l of vectors. */ | | UINT4 length; /**< The number \a l of vectors. */ | |
| UINT4 arrayDim; /**< The number of data \a N in each array element
(this is not the number \a m of indices). */ | | UINT4 arrayDim; /**< The number of data \a N in each array element
(this is not the number \a m of indices). */ | |
| UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t
he array dimensions */ | | UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t
he array dimensions */ | |
| UINT4 *data; /**< Pointer to the data array. */ | | UINT4 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| UINT4ArraySequence; | | UINT4ArraySequence; | |
| | | | |
| /** Sequency of INT8 multidimensional arrays. */ | | /** Sequency of INT8 multidimensional arrays. */ | |
| typedef struct | | typedef struct | |
| tagINT8ArraySequence | | tagINT8ArraySequence | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(INT8ArraySequence); | |
| UINT4 length; /**< The number \a l of vectors. */ | | UINT4 length; /**< The number \a l of vectors. */ | |
| UINT4 arrayDim; /**< The number of data \a N in each array element
(this is not the number \a m of indices). */ | | UINT4 arrayDim; /**< The number of data \a N in each array element
(this is not the number \a m of indices). */ | |
| UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t
he array dimensions */ | | UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t
he array dimensions */ | |
| INT8 *data; /**< Pointer to the data array. */ | | INT8 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| INT8ArraySequence; | | INT8ArraySequence; | |
| | | | |
| /** Sequency of UINT8 multidimensional arrays. */ | | /** Sequency of UINT8 multidimensional arrays. */ | |
| typedef struct | | typedef struct | |
| tagUINT8ArraySequence | | tagUINT8ArraySequence | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(UINT8ArraySequence); | |
| UINT4 length; /**< The number \a l of vectors. */ | | UINT4 length; /**< The number \a l of vectors. */ | |
| UINT4 arrayDim; /**< The number of data \a N in each array element
(this is not the number \a m of indices). */ | | UINT4 arrayDim; /**< The number of data \a N in each array element
(this is not the number \a m of indices). */ | |
| UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t
he array dimensions */ | | UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t
he array dimensions */ | |
| UINT8 *data; /**< Pointer to the data array. */ | | UINT8 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| UINT8ArraySequence; | | UINT8ArraySequence; | |
| | | | |
| /** Sequency of REAL4 multidimensional arrays. */ | | /** Sequency of REAL4 multidimensional arrays. */ | |
| typedef struct | | typedef struct | |
| tagREAL4ArraySequence | | tagREAL4ArraySequence | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(REAL4ArraySequence); | |
| UINT4 length; /**< The number \a l of vectors. */ | | UINT4 length; /**< The number \a l of vectors. */ | |
| UINT4 arrayDim; /**< The number of data \a N in each array element
(this is not the number \a m of indices). */ | | UINT4 arrayDim; /**< The number of data \a N in each array element
(this is not the number \a m of indices). */ | |
| UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t
he array dimensions */ | | UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t
he array dimensions */ | |
| REAL4 *data; /**< Pointer to the data array. */ | | REAL4 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| REAL4ArraySequence; | | REAL4ArraySequence; | |
| | | | |
| /** Sequency of REAL8 multidimensional arrays. */ | | /** Sequency of REAL8 multidimensional arrays. */ | |
| typedef struct | | typedef struct | |
| tagREAL8ArraySequence | | tagREAL8ArraySequence | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(REAL8ArraySequence); | |
| UINT4 length; /**< The number \a l of vectors. */ | | UINT4 length; /**< The number \a l of vectors. */ | |
| UINT4 arrayDim; /**< The number of data \a N in each array element
(this is not the number \a m of indices). */ | | UINT4 arrayDim; /**< The number of data \a N in each array element
(this is not the number \a m of indices). */ | |
| UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t
he array dimensions */ | | UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t
he array dimensions */ | |
| REAL8 *data; /**< Pointer to the data array. */ | | REAL8 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| REAL8ArraySequence; | | REAL8ArraySequence; | |
| | | | |
| /** Sequency of COMPLEX8 multidimensional arrays. */ | | /** Sequency of COMPLEX8 multidimensional arrays. */ | |
| typedef struct | | typedef struct | |
| tagCOMPLEX8ArraySequence | | tagCOMPLEX8ArraySequence | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(COMPLEX8ArraySequence); | |
| UINT4 length; /**< The number \a l of vectors. */ | | UINT4 length; /**< The number \a l of vectors. */ | |
| UINT4 arrayDim; /**< The number of data \a N in each array element
(this is not the number \a m of indices). */ | | UINT4 arrayDim; /**< The number of data \a N in each array element
(this is not the number \a m of indices). */ | |
| UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t
he array dimensions */ | | UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t
he array dimensions */ | |
| COMPLEX8 *data; /**< Pointer to the data array. */ | | COMPLEX8 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| COMPLEX8ArraySequence; | | COMPLEX8ArraySequence; | |
| | | | |
| /** Sequency of COMPLEX16 multidimensional arrays. */ | | /** Sequency of COMPLEX16 multidimensional arrays. */ | |
| typedef struct | | typedef struct | |
| tagCOMPLEX16ArraySequence | | tagCOMPLEX16ArraySequence | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(COMPLEX16ArraySequence); | |
| UINT4 length; /**< The number \a l of vectors. */ | | UINT4 length; /**< The number \a l of vectors. */ | |
| UINT4 arrayDim; /**< The number of data \a N in each array element
(this is not the number \a m of indices). */ | | UINT4 arrayDim; /**< The number of data \a N in each array element
(this is not the number \a m of indices). */ | |
| UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t
he array dimensions */ | | UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t
he array dimensions */ | |
| COMPLEX16 *data; /**< Pointer to the data array. */ | | COMPLEX16 *data; /**< Pointer to the data array. */ | |
| } | | } | |
| COMPLEX16ArraySequence; | | COMPLEX16ArraySequence; | |
| /*@}*/ | | /*@}*/ | |
| | | | |
| /* <lalLaTeX> | | /* <lalLaTeX> | |
| \newpage | | \newpage | |
| | | | |
| skipping to change at line 910 | | skipping to change at line 987 | |
| * specific physical information, such as the GPS time, or the factored | | * specific physical information, such as the GPS time, or the factored | |
| * response function of a filter. | | * response function of a filter. | |
| * | | * | |
| */ | | */ | |
| /*@{*/ | | /*@{*/ | |
| | | | |
| /** Epoch relative to GPS epoch */ | | /** Epoch relative to GPS epoch */ | |
| typedef struct | | typedef struct | |
| tagLIGOTimeGPS | | tagLIGOTimeGPS | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(LIGOTimeGPS); | |
| INT4 gpsSeconds; /**< Seconds since 0h UTC 6 Jan 1980. */ | | INT4 gpsSeconds; /**< Seconds since 0h UTC 6 Jan 1980. */ | |
| INT4 gpsNanoSeconds; /**< Residual nanoseconds. */ | | INT4 gpsNanoSeconds; /**< Residual nanoseconds. */ | |
| } | | } | |
| LIGOTimeGPS; | | LIGOTimeGPS; | |
| | | | |
| #define LIGOTIMEGPSZERO { 0, 0 } | | #define LIGOTIMEGPSZERO { 0, 0 } | |
| | | | |
| /* <lalLaTeX> | | /* <lalLaTeX> | |
| | | | |
| \vspace{2ex} | | \vspace{2ex} | |
| | | | |
| skipping to change at line 993 | | skipping to change at line 1071 | |
| * The indexes of the units can be specified using the constants | | * The indexes of the units can be specified using the constants | |
| * LALUnitIndexMeter, LALUnitIndexKiloGram, | | * LALUnitIndexMeter, LALUnitIndexKiloGram, | |
| * LALUnitIndexSecond, LALUnitIndexAmpere, | | * LALUnitIndexSecond, LALUnitIndexAmpere, | |
| * LALUnitIndexKelvin, LALUnitIndexStrain, | | * LALUnitIndexKelvin, LALUnitIndexStrain, | |
| * LALUnitIndexADCCount, while LALNumUnits is the total number of units. | | * LALUnitIndexADCCount, while LALNumUnits is the total number of units. | |
| * | | * | |
| */ | | */ | |
| typedef struct | | typedef struct | |
| tagLALUnit | | tagLALUnit | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(LALUnit); | |
| INT2 powerOfTen; /**< Overall power-of-ten scaling is 10^\c powerOfTen.
*/ | | INT2 powerOfTen; /**< Overall power-of-ten scaling is 10^\c powerOfTen.
*/ | |
| INT2 unitNumerator[LALNumUnits]; /**< Array of unit power numerators. */ | | INT2 unitNumerator[LALNumUnits]; /**< Array of unit power numerators. */ | |
| UINT2 unitDenominatorMinusOne[LALNumUnits]; /**< Array of unit power deno
minators-minus-one. */ | | UINT2 unitDenominatorMinusOne[LALNumUnits]; /**< Array of unit power deno
minators-minus-one. */ | |
| } | | } | |
| LALUnit; | | LALUnit; | |
| | | | |
| /* <lalLaTeX> | | /* <lalLaTeX> | |
| | | | |
| \vspace{2ex} | | \vspace{2ex} | |
| \begin{verbatim} | | \begin{verbatim} | |
| | | | |
| skipping to change at line 1030 | | skipping to change at line 1109 | |
| 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{LALUnit 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> */ | |
| | | | |
| /** Length of name fields of LAL structured data types. */ | | /** Length of name fields of LAL structured data types. */ | |
|
| enum { LALNameLength = 64 }; | | enum enumLALNameLength { LALNameLength = 64 }; | |
| | | | |
| /** Time series of INT2 data. */ | | /** Time series of INT2 data. */ | |
| typedef struct | | typedef struct | |
| tagINT2TimeSeries | | tagINT2TimeSeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(INT2TimeSeries); | |
| CHAR name[LALNameLength]; /**< The name of the time series. */ | | CHAR name[LALNameLength]; /**< The name of the time series. */ | |
| LIGOTimeGPS epoch; /**< The start time of the time series. */ | | LIGOTimeGPS epoch; /**< The start time of the time series. */ | |
| REAL8 deltaT; /**< The time step between samples of the time seri
es in seconds. */ | | REAL8 deltaT; /**< The time step between samples of the time seri
es in seconds. */ | |
| REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not
heterodyned). */ | | REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not
heterodyned). */ | |
| LALUnit sampleUnits; /**< The physical units of the quantity being
sampled. */ | | LALUnit sampleUnits; /**< The physical units of the quantity being
sampled. */ | |
| INT2Sequence *data; /**< The sequence of sampled data. */ | | INT2Sequence *data; /**< The sequence of sampled data. */ | |
| } | | } | |
| INT2TimeSeries; | | INT2TimeSeries; | |
| | | | |
| /** Time series of UINT2 data. */ | | /** Time series of UINT2 data. */ | |
| typedef struct | | typedef struct | |
| tagUINT2TimeSeries | | tagUINT2TimeSeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(UINT2TimeSeries); | |
| CHAR name[LALNameLength]; /**< The name of the time series. */ | | CHAR name[LALNameLength]; /**< The name of the time series. */ | |
| LIGOTimeGPS epoch; /**< The start time of the time series. */ | | LIGOTimeGPS epoch; /**< The start time of the time series. */ | |
| REAL8 deltaT; /**< The time step between samples of the time ser
ies in seconds. */ | | REAL8 deltaT; /**< The time step between samples of the time ser
ies in seconds. */ | |
| REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not
heterodyned). */ | | REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not
heterodyned). */ | |
| LALUnit sampleUnits; /**< The physical units of the quantity being
sampled. */ | | LALUnit sampleUnits; /**< The physical units of the quantity being
sampled. */ | |
| UINT2Sequence *data; /**< The sequence of sampled data. */ | | UINT2Sequence *data; /**< The sequence of sampled data. */ | |
| } | | } | |
| UINT2TimeSeries; | | UINT2TimeSeries; | |
| | | | |
| /** Time series of INT4 data. */ | | /** Time series of INT4 data. */ | |
| typedef struct | | typedef struct | |
| tagINT4TimeSeries | | tagINT4TimeSeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(INT4TimeSeries); | |
| CHAR name[LALNameLength]; /**< The name of the time series. */ | | CHAR name[LALNameLength]; /**< The name of the time series. */ | |
| LIGOTimeGPS epoch; /**< The start time of the time series. */ | | LIGOTimeGPS epoch; /**< The start time of the time series. */ | |
| REAL8 deltaT; /**< The time step between samples of the time seri
es in seconds. */ | | REAL8 deltaT; /**< The time step between samples of the time seri
es in seconds. */ | |
| REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not
heterodyned). */ | | REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not
heterodyned). */ | |
| LALUnit sampleUnits; /**< The physical units of the quantity being
sampled. */ | | LALUnit sampleUnits; /**< The physical units of the quantity being
sampled. */ | |
| INT4Sequence *data; /**< The sequence of sampled data. */ | | INT4Sequence *data; /**< The sequence of sampled data. */ | |
| } | | } | |
| INT4TimeSeries; | | INT4TimeSeries; | |
| | | | |
| /** Time series of UINT4 data. */ | | /** Time series of UINT4 data. */ | |
| typedef struct | | typedef struct | |
| tagUINT4TimeSeries | | tagUINT4TimeSeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(UINT4TimeSeries); | |
| CHAR name[LALNameLength]; /**< The name of the time series. */ | | CHAR name[LALNameLength]; /**< The name of the time series. */ | |
| LIGOTimeGPS epoch; /**< The start time of the time series. */ | | LIGOTimeGPS epoch; /**< The start time of the time series. */ | |
| REAL8 deltaT; /**< The time step between samples of the time ser
ies in seconds. */ | | REAL8 deltaT; /**< The time step between samples of the time ser
ies in seconds. */ | |
| REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not
heterodyned). */ | | REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not
heterodyned). */ | |
| LALUnit sampleUnits; /**< The physical units of the quantity being
sampled. */ | | LALUnit sampleUnits; /**< The physical units of the quantity being
sampled. */ | |
| UINT4Sequence *data; /**< The sequence of sampled data. */ | | UINT4Sequence *data; /**< The sequence of sampled data. */ | |
| } | | } | |
| UINT4TimeSeries; | | UINT4TimeSeries; | |
| | | | |
| /** Time series of INT8 data. */ | | /** Time series of INT8 data. */ | |
| typedef struct | | typedef struct | |
| tagINT8TimeSeries | | tagINT8TimeSeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(INT8TimeSeries); | |
| CHAR name[LALNameLength]; /**< The name of the time series. */ | | CHAR name[LALNameLength]; /**< The name of the time series. */ | |
| LIGOTimeGPS epoch; /**< The start time of the time series. */ | | LIGOTimeGPS epoch; /**< The start time of the time series. */ | |
| REAL8 deltaT; /**< The time step between samples of the time seri
es in seconds. */ | | REAL8 deltaT; /**< The time step between samples of the time seri
es in seconds. */ | |
| REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not
heterodyned). */ | | REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not
heterodyned). */ | |
| LALUnit sampleUnits; /**< The physical units of the quantity being
sampled. */ | | LALUnit sampleUnits; /**< The physical units of the quantity being
sampled. */ | |
| INT8Sequence *data; /**< The sequence of sampled data. */ | | INT8Sequence *data; /**< The sequence of sampled data. */ | |
| } | | } | |
| INT8TimeSeries; | | INT8TimeSeries; | |
| | | | |
| /** Time series of UINT8 data. */ | | /** Time series of UINT8 data. */ | |
| typedef struct | | typedef struct | |
| tagUINT8TimeSeries | | tagUINT8TimeSeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(UINT8TimeSeries); | |
| CHAR name[LALNameLength]; /**< The name of the time series. */ | | CHAR name[LALNameLength]; /**< The name of the time series. */ | |
| LIGOTimeGPS epoch; /**< The start time of the time series. */ | | LIGOTimeGPS epoch; /**< The start time of the time series. */ | |
| REAL8 deltaT; /**< The time step between samples of the time ser
ies in seconds. */ | | REAL8 deltaT; /**< The time step between samples of the time ser
ies in seconds. */ | |
| REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not
heterodyned). */ | | REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not
heterodyned). */ | |
| LALUnit sampleUnits; /**< The physical units of the quantity being
sampled. */ | | LALUnit sampleUnits; /**< The physical units of the quantity being
sampled. */ | |
| UINT8Sequence *data; /**< The sequence of sampled data. */ | | UINT8Sequence *data; /**< The sequence of sampled data. */ | |
| } | | } | |
| UINT8TimeSeries; | | UINT8TimeSeries; | |
| | | | |
| /** Time series of REAL4 data. */ | | /** Time series of REAL4 data. */ | |
| typedef struct | | typedef struct | |
| tagREAL4TimeSeries | | tagREAL4TimeSeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(REAL4TimeSeries); | |
| CHAR name[LALNameLength]; /**< The name of the time series. */ | | CHAR name[LALNameLength]; /**< The name of the time series. */ | |
| LIGOTimeGPS epoch; /**< The start time of the time series. */ | | LIGOTimeGPS epoch; /**< The start time of the time series. */ | |
| REAL8 deltaT; /**< The time step between samples of the time ser
ies in seconds. */ | | REAL8 deltaT; /**< The time step between samples of the time ser
ies in seconds. */ | |
| REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not
heterodyned). */ | | REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not
heterodyned). */ | |
| LALUnit sampleUnits; /**< The physical units of the quantity being
sampled. */ | | LALUnit sampleUnits; /**< The physical units of the quantity being
sampled. */ | |
| REAL4Sequence *data; /**< The sequence of sampled data. */ | | REAL4Sequence *data; /**< The sequence of sampled data. */ | |
| } | | } | |
| REAL4TimeSeries; | | REAL4TimeSeries; | |
| | | | |
| /** Time series of REAL8 data. */ | | /** Time series of REAL8 data. */ | |
| typedef struct | | typedef struct | |
| tagREAL8TimeSeries | | tagREAL8TimeSeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(REAL8TimeSeries); | |
| CHAR name[LALNameLength]; /**< The name of the time series. */ | | CHAR name[LALNameLength]; /**< The name of the time series. */ | |
| LIGOTimeGPS epoch; /**< The start time of the time series. */ | | LIGOTimeGPS epoch; /**< The start time of the time series. */ | |
| REAL8 deltaT; /**< The time step between samples of the time ser
ies in seconds. */ | | REAL8 deltaT; /**< The time step between samples of the time ser
ies in seconds. */ | |
| REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not
heterodyned). */ | | REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not
heterodyned). */ | |
| LALUnit sampleUnits; /**< The physical units of the quantity being
sampled. */ | | LALUnit sampleUnits; /**< The physical units of the quantity being
sampled. */ | |
| REAL8Sequence *data; /**< The sequence of sampled data. */ | | REAL8Sequence *data; /**< The sequence of sampled data. */ | |
| } | | } | |
| REAL8TimeSeries; | | REAL8TimeSeries; | |
| | | | |
| /** Time series of COMPLEX8 data. */ | | /** Time series of COMPLEX8 data. */ | |
| typedef struct | | typedef struct | |
| tagCOMPLEX8TimeSeries | | tagCOMPLEX8TimeSeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(COMPLEX8TimeSeries); | |
| CHAR name[LALNameLength]; /**< The name of the time series.
*/ | | CHAR name[LALNameLength]; /**< The name of the time series.
*/ | |
| LIGOTimeGPS epoch; /**< The start time of the time series. */ | | LIGOTimeGPS epoch; /**< The start time of the time series. */ | |
| REAL8 deltaT; /**< The time step between samples of the time
series in seconds. */ | | REAL8 deltaT; /**< The time step between samples of the time
series in seconds. */ | |
| REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if
not heterodyned). */ | | REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if
not heterodyned). */ | |
| LALUnit sampleUnits; /**< The physical units of the quantity be
ing sampled. */ | | LALUnit sampleUnits; /**< The physical units of the quantity be
ing sampled. */ | |
| COMPLEX8Sequence *data; /**< The sequence of sampled data. */ | | COMPLEX8Sequence *data; /**< The sequence of sampled data. */ | |
| } | | } | |
| COMPLEX8TimeSeries; | | COMPLEX8TimeSeries; | |
| | | | |
| /** Time series of COMPLEX16 data. */ | | /** Time series of COMPLEX16 data. */ | |
| typedef struct | | typedef struct | |
| tagCOMPLEX16TimeSeries | | tagCOMPLEX16TimeSeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(COMPLEX16TimeSeries); | |
| CHAR name[LALNameLength]; /**< The name of the time series.
*/ | | CHAR name[LALNameLength]; /**< The name of the time series.
*/ | |
| LIGOTimeGPS epoch; /**< The start time of the time series. */ | | LIGOTimeGPS epoch; /**< The start time of the time series. */ | |
| REAL8 deltaT; /**< The time step between samples of the time
series in seconds. */ | | REAL8 deltaT; /**< The time step between samples of the time
series in seconds. */ | |
| REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if
not heterodyned). */ | | REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if
not heterodyned). */ | |
| LALUnit sampleUnits; /**< The physical units of the quantity b
eing sampled. */ | | LALUnit sampleUnits; /**< The physical units of the quantity b
eing sampled. */ | |
| COMPLEX16Sequence *data; /**< The sequence of sampled data. */ | | COMPLEX16Sequence *data; /**< The sequence of sampled data. */ | |
| } | | } | |
| COMPLEX16TimeSeries; | | COMPLEX16TimeSeries; | |
| | | | |
| /* <lalLaTeX> | | /* <lalLaTeX> | |
| | | | |
| skipping to change at line 1189 | | skipping to change at line 1278 | |
| \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> */ | |
| | | | |
| /** Time series of INT2 vectors. */ | | /** Time series of INT2 vectors. */ | |
| typedef struct | | typedef struct | |
| tagINT2TimeVectorSeries | | tagINT2TimeVectorSeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(INT2TimeVectorSeries); | |
| CHAR name[LALNameLength]; /**< The name of the time serie
s of vectors. */ | | CHAR name[LALNameLength]; /**< The name of the time serie
s of vectors. */ | |
| LIGOTimeGPS epoch; /**< The start time of the time series of vec
tors. */ | | LIGOTimeGPS epoch; /**< The start time of the time series of vec
tors. */ | |
| REAL8 deltaT; /**< The time step between samples of the ti
me series of vectors in seconds. */ | | REAL8 deltaT; /**< The time step between samples of the ti
me series of vectors in seconds. */ | |
| REAL8 f0; /**< The heterodyning frequency, in Hertz (zero
if not heterodyned). */ | | REAL8 f0; /**< The heterodyning frequency, in Hertz (zero
if not heterodyned). */ | |
| LALUnit sampleUnits; /**< The physical units of the quantity
being sampled. */ | | LALUnit sampleUnits; /**< The physical units of the quantity
being sampled. */ | |
| INT2VectorSequence *data; /**< The sequence of sampled data vectors. */ | | INT2VectorSequence *data; /**< The sequence of sampled data vectors. */ | |
| } | | } | |
| INT2TimeVectorSeries; | | INT2TimeVectorSeries; | |
| | | | |
| /** Time series of UINT2 vectors. */ | | /** Time series of UINT2 vectors. */ | |
| typedef struct | | typedef struct | |
| tagUINT2TimeVectorSeries | | tagUINT2TimeVectorSeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(UINT2TimeVectorSeries); | |
| CHAR name[LALNameLength]; /**< The name of the time serie
s of vectors. */ | | CHAR name[LALNameLength]; /**< The name of the time serie
s of vectors. */ | |
| LIGOTimeGPS epoch; /**< The start time of the time series of vec
tors. */ | | LIGOTimeGPS epoch; /**< The start time of the time series of vec
tors. */ | |
| REAL8 deltaT; /**< The time step between samples of the ti
me series of vectors in seconds. */ | | REAL8 deltaT; /**< The time step between samples of the ti
me series of vectors in seconds. */ | |
| REAL8 f0; /**< The heterodyning frequency, in Hertz (zero
if not heterodyned). */ | | REAL8 f0; /**< The heterodyning frequency, in Hertz (zero
if not heterodyned). */ | |
| LALUnit sampleUnits; /**< The physical units of the quantity
being sampled. */ | | LALUnit sampleUnits; /**< The physical units of the quantity
being sampled. */ | |
| UINT2VectorSequence *data; /**< The sequence of sampled data vectors. */ | | UINT2VectorSequence *data; /**< The sequence of sampled data vectors. */ | |
| } | | } | |
| UINT2TimeVectorSeries; | | UINT2TimeVectorSeries; | |
| | | | |
| /** Time series of INT4 vectors. */ | | /** Time series of INT4 vectors. */ | |
| typedef struct | | typedef struct | |
| tagINT4TimeVectorSeries | | tagINT4TimeVectorSeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(INT4TimeVectorSeries); | |
| CHAR name[LALNameLength]; /**< The name of the time serie
s of vectors. */ | | CHAR name[LALNameLength]; /**< The name of the time serie
s of vectors. */ | |
| LIGOTimeGPS epoch; /**< The start time of the time series of vec
tors. */ | | LIGOTimeGPS epoch; /**< The start time of the time series of vec
tors. */ | |
| REAL8 deltaT; /**< The time step between samples of the ti
me series of vectors in seconds. */ | | REAL8 deltaT; /**< The time step between samples of the ti
me series of vectors in seconds. */ | |
| REAL8 f0; /**< The heterodyning frequency, in Hertz (zero
if not heterodyned). */ | | REAL8 f0; /**< The heterodyning frequency, in Hertz (zero
if not heterodyned). */ | |
| LALUnit sampleUnits; /**< The physical units of the quantity
being sampled. */ | | LALUnit sampleUnits; /**< The physical units of the quantity
being sampled. */ | |
| INT4VectorSequence *data; /**< The sequence of sampled data vectors. */ | | INT4VectorSequence *data; /**< The sequence of sampled data vectors. */ | |
| } | | } | |
| INT4TimeVectorSeries; | | INT4TimeVectorSeries; | |
| | | | |
| /** Time series of UINT4 vectors. */ | | /** Time series of UINT4 vectors. */ | |
| typedef struct | | typedef struct | |
| tagUINT4TimeVectorSeries | | tagUINT4TimeVectorSeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(UINT4TimeVectorSeries); | |
| CHAR name[LALNameLength]; /**< The name of the time serie
s of vectors. */ | | CHAR name[LALNameLength]; /**< The name of the time serie
s of vectors. */ | |
| LIGOTimeGPS epoch; /**< The start time of the time series of vec
tors. */ | | LIGOTimeGPS epoch; /**< The start time of the time series of vec
tors. */ | |
| REAL8 deltaT; /**< The time step between samples of the ti
me series of vectors in seconds. */ | | REAL8 deltaT; /**< The time step between samples of the ti
me series of vectors in seconds. */ | |
| REAL8 f0; /**< The heterodyning frequency, in Hertz (zero
if not heterodyned). */ | | REAL8 f0; /**< The heterodyning frequency, in Hertz (zero
if not heterodyned). */ | |
| LALUnit sampleUnits; /**< The physical units of the quantity
being sampled. */ | | LALUnit sampleUnits; /**< The physical units of the quantity
being sampled. */ | |
| UINT4VectorSequence *data; /**< The sequence of sampled data vectors. */ | | UINT4VectorSequence *data; /**< The sequence of sampled data vectors. */ | |
| } | | } | |
| UINT4TimeVectorSeries; | | UINT4TimeVectorSeries; | |
| | | | |
| /** Time series of INT8 vectors. */ | | /** Time series of INT8 vectors. */ | |
| typedef struct | | typedef struct | |
| tagINT8TimeVectorSeries | | tagINT8TimeVectorSeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(INT8TimeVectorSeries); | |
| CHAR name[LALNameLength]; /**< The name of the time serie
s of vectors. */ | | CHAR name[LALNameLength]; /**< The name of the time serie
s of vectors. */ | |
| LIGOTimeGPS epoch; /**< The start time of the time series of vec
tors. */ | | LIGOTimeGPS epoch; /**< The start time of the time series of vec
tors. */ | |
| REAL8 deltaT; /**< The time step between samples of the ti
me series of vectors in seconds. */ | | REAL8 deltaT; /**< The time step between samples of the ti
me series of vectors in seconds. */ | |
| REAL8 f0; /**< The heterodyning frequency, in Hertz (zero
if not heterodyned). */ | | REAL8 f0; /**< The heterodyning frequency, in Hertz (zero
if not heterodyned). */ | |
| LALUnit sampleUnits; /**< The physical units of the quantity
being sampled. */ | | LALUnit sampleUnits; /**< The physical units of the quantity
being sampled. */ | |
| INT8VectorSequence *data; /**< The sequence of sampled data vectors. */ | | INT8VectorSequence *data; /**< The sequence of sampled data vectors. */ | |
| } | | } | |
| INT8TimeVectorSeries; | | INT8TimeVectorSeries; | |
| | | | |
| /** Time series of UINT8 vectors. */ | | /** Time series of UINT8 vectors. */ | |
| typedef struct | | typedef struct | |
| tagUINT8TimeVectorSeries | | tagUINT8TimeVectorSeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(UINT8TimeVectorSeries); | |
| CHAR name[LALNameLength]; /**< The name of the time serie
s of vectors. */ | | CHAR name[LALNameLength]; /**< The name of the time serie
s of vectors. */ | |
| LIGOTimeGPS epoch; /**< The start time of the time series of vec
tors. */ | | LIGOTimeGPS epoch; /**< The start time of the time series of vec
tors. */ | |
| REAL8 deltaT; /**< The time step between samples of the ti
me series of vectors in seconds. */ | | REAL8 deltaT; /**< The time step between samples of the ti
me series of vectors in seconds. */ | |
| REAL8 f0; /**< The heterodyning frequency, in Hertz (zero
if not heterodyned). */ | | REAL8 f0; /**< The heterodyning frequency, in Hertz (zero
if not heterodyned). */ | |
| LALUnit sampleUnits; /**< The physical units of the quantity
being sampled. */ | | LALUnit sampleUnits; /**< The physical units of the quantity
being sampled. */ | |
| UINT8VectorSequence *data; /**< The sequence of sampled data vectors. */ | | UINT8VectorSequence *data; /**< The sequence of sampled data vectors. */ | |
| } | | } | |
| UINT8TimeVectorSeries; | | UINT8TimeVectorSeries; | |
| | | | |
| /** Time series of REAL4 vectors. */ | | /** Time series of REAL4 vectors. */ | |
| typedef struct | | typedef struct | |
| tagREAL4TimeVectorSeries | | tagREAL4TimeVectorSeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(REAL4TimeVectorSeries); | |
| CHAR name[LALNameLength]; /**< The name of the time serie
s of vectors. */ | | CHAR name[LALNameLength]; /**< The name of the time serie
s of vectors. */ | |
| LIGOTimeGPS epoch; /**< The start time of the time series of vec
tors. */ | | LIGOTimeGPS epoch; /**< The start time of the time series of vec
tors. */ | |
| REAL8 deltaT; /**< The time step between samples of the ti
me series of vectors in seconds. */ | | REAL8 deltaT; /**< The time step between samples of the ti
me series of vectors in seconds. */ | |
| REAL8 f0; /**< The heterodyning frequency, in Hertz (zero
if not heterodyned). */ | | REAL8 f0; /**< The heterodyning frequency, in Hertz (zero
if not heterodyned). */ | |
| LALUnit sampleUnits; /**< The physical units of the quantity
being sampled. */ | | LALUnit sampleUnits; /**< The physical units of the quantity
being sampled. */ | |
| REAL4VectorSequence *data; /**< The sequence of sampled data vectors. */ | | REAL4VectorSequence *data; /**< The sequence of sampled data vectors. */ | |
| } | | } | |
| REAL4TimeVectorSeries; | | REAL4TimeVectorSeries; | |
| | | | |
| /** Time series of REAL8 vectors. */ | | /** Time series of REAL8 vectors. */ | |
| typedef struct | | typedef struct | |
| tagREAL8TimeVectorSeries | | tagREAL8TimeVectorSeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(REAL8TimeVectorSeries); | |
| CHAR name[LALNameLength]; /**< The name of the time serie
s of vectors. */ | | CHAR name[LALNameLength]; /**< The name of the time serie
s of vectors. */ | |
| LIGOTimeGPS epoch; /**< The start time of the time series of vec
tors. */ | | LIGOTimeGPS epoch; /**< The start time of the time series of vec
tors. */ | |
| REAL8 deltaT; /**< The time step between samples of the ti
me series of vectors in seconds. */ | | REAL8 deltaT; /**< The time step between samples of the ti
me series of vectors in seconds. */ | |
| REAL8 f0; /**< The heterodyning frequency, in Hertz (zero
if not heterodyned). */ | | REAL8 f0; /**< The heterodyning frequency, in Hertz (zero
if not heterodyned). */ | |
| LALUnit sampleUnits; /**< The physical units of the quantity
being sampled. */ | | LALUnit sampleUnits; /**< The physical units of the quantity
being sampled. */ | |
| REAL8VectorSequence *data; /**< The sequence of sampled data vectors. */ | | REAL8VectorSequence *data; /**< The sequence of sampled data vectors. */ | |
| } | | } | |
| REAL8TimeVectorSeries; | | REAL8TimeVectorSeries; | |
| | | | |
| /** Time series of COMPLEX8 vectors. */ | | /** Time series of COMPLEX8 vectors. */ | |
| typedef struct | | typedef struct | |
| tagCOMPLEX8TimeVectorSeries | | tagCOMPLEX8TimeVectorSeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(COMPLEX8TimeVectorSeries); | |
| CHAR name[LALNameLength]; /**< The name of the time s
eries of vectors. */ | | CHAR name[LALNameLength]; /**< The name of the time s
eries of vectors. */ | |
| LIGOTimeGPS epoch; /**< The start time of the time series of
vectors. */ | | LIGOTimeGPS epoch; /**< The start time of the time series of
vectors. */ | |
| REAL8 deltaT; /**< The time step between samples of th
e time series of vectors in seconds. */ | | REAL8 deltaT; /**< The time step between samples of th
e time series of vectors in seconds. */ | |
| REAL8 f0; /**< The heterodyning frequency, in Hertz (z
ero if not heterodyned). */ | | REAL8 f0; /**< The heterodyning frequency, in Hertz (z
ero if not heterodyned). */ | |
| LALUnit sampleUnits; /**< The physical units of the quan
tity being sampled. */ | | LALUnit sampleUnits; /**< The physical units of the quan
tity being sampled. */ | |
| COMPLEX8VectorSequence *data; /**< The sequence of sampled data vectors.
*/ | | COMPLEX8VectorSequence *data; /**< The sequence of sampled data vectors.
*/ | |
| } | | } | |
| COMPLEX8TimeVectorSeries; | | COMPLEX8TimeVectorSeries; | |
| | | | |
| /** Time series of COMPLEX16 vectors. */ | | /** Time series of COMPLEX16 vectors. */ | |
| typedef struct | | typedef struct | |
| tagCOMPLEX16TimeVectorSeries | | tagCOMPLEX16TimeVectorSeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(COMPLEX16TimeVectorSeries); | |
| CHAR name[LALNameLength]; /**< The name of the time
series of vectors. */ | | CHAR name[LALNameLength]; /**< The name of the time
series of vectors. */ | |
| LIGOTimeGPS epoch; /**< The start time of the time series o
f vectors. */ | | LIGOTimeGPS epoch; /**< The start time of the time series o
f vectors. */ | |
| REAL8 deltaT; /**< The time step between samples of t
he time series of vectors in seconds. */ | | REAL8 deltaT; /**< The time step between samples of t
he time series of vectors in seconds. */ | |
| REAL8 f0; /**< The heterodyning frequency, in Hertz (
zero if not heterodyned). */ | | REAL8 f0; /**< The heterodyning frequency, in Hertz (
zero if not heterodyned). */ | |
| LALUnit sampleUnits; /**< The physical units of the qua
ntity being sampled. */ | | LALUnit sampleUnits; /**< The physical units of the qua
ntity being sampled. */ | |
| COMPLEX16VectorSequence *data; /**< The sequence of sampled data vectors
. */ | | COMPLEX16VectorSequence *data; /**< The sequence of sampled data vectors
. */ | |
| } | | } | |
| COMPLEX16TimeVectorSeries; | | COMPLEX16TimeVectorSeries; | |
| | | | |
| /* <lalLaTeX> | | /* <lalLaTeX> | |
| | | | |
| skipping to change at line 1341 | | skipping to change at line 1440 | |
| 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 | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(INT2TimeArraySeries); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LIGOTimeGPS epoch; | | LIGOTimeGPS epoch; | |
| REAL8 deltaT; | | REAL8 deltaT; | |
| REAL8 f0; | | REAL8 f0; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| INT2ArraySequence *data; | | INT2ArraySequence *data; | |
| } | | } | |
| INT2TimeArraySeries; | | INT2TimeArraySeries; | |
| | | | |
| typedef struct | | typedef struct | |
| tagUINT2TimeArraySeries | | tagUINT2TimeArraySeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(UINT2TimeArraySeries); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LIGOTimeGPS epoch; | | LIGOTimeGPS epoch; | |
| REAL8 deltaT; | | REAL8 deltaT; | |
| REAL8 f0; | | REAL8 f0; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| UINT2ArraySequence *data; | | UINT2ArraySequence *data; | |
| } | | } | |
| UINT2TimeArraySeries; | | UINT2TimeArraySeries; | |
| | | | |
| typedef struct | | typedef struct | |
| tagINT4TimeArraySeries | | tagINT4TimeArraySeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(INT4TimeArraySeries); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LIGOTimeGPS epoch; | | LIGOTimeGPS epoch; | |
| REAL8 deltaT; | | REAL8 deltaT; | |
| REAL8 f0; | | REAL8 f0; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| INT4ArraySequence *data; | | INT4ArraySequence *data; | |
| } | | } | |
| INT4TimeArraySeries; | | INT4TimeArraySeries; | |
| | | | |
| typedef struct | | typedef struct | |
| tagUINT4TimeArraySeries | | tagUINT4TimeArraySeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(UINT4TimeArraySeries); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LIGOTimeGPS epoch; | | LIGOTimeGPS epoch; | |
| REAL8 deltaT; | | REAL8 deltaT; | |
| REAL8 f0; | | REAL8 f0; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| UINT4ArraySequence *data; | | UINT4ArraySequence *data; | |
| } | | } | |
| UINT4TimeArraySeries; | | UINT4TimeArraySeries; | |
| | | | |
| typedef struct | | typedef struct | |
| tagINT8TimeArraySeries | | tagINT8TimeArraySeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(INT8TimeArraySeries); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LIGOTimeGPS epoch; | | LIGOTimeGPS epoch; | |
| REAL8 deltaT; | | REAL8 deltaT; | |
| REAL8 f0; | | REAL8 f0; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| INT8ArraySequence *data; | | INT8ArraySequence *data; | |
| } | | } | |
| INT8TimeArraySeries; | | INT8TimeArraySeries; | |
| | | | |
| typedef struct | | typedef struct | |
| tagUINT8TimeArraySeries | | tagUINT8TimeArraySeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(UINT8TimeArraySeries); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LIGOTimeGPS epoch; | | LIGOTimeGPS epoch; | |
| REAL8 deltaT; | | REAL8 deltaT; | |
| REAL8 f0; | | REAL8 f0; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| UINT8ArraySequence *data; | | UINT8ArraySequence *data; | |
| } | | } | |
| UINT8TimeArraySeries; | | UINT8TimeArraySeries; | |
| | | | |
| typedef struct | | typedef struct | |
| tagREAL4TimeArraySeries | | tagREAL4TimeArraySeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(REAL4TimeArraySeries); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LIGOTimeGPS epoch; | | LIGOTimeGPS epoch; | |
| REAL8 deltaT; | | REAL8 deltaT; | |
| REAL8 f0; | | REAL8 f0; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| REAL4ArraySequence *data; | | REAL4ArraySequence *data; | |
| } | | } | |
| REAL4TimeArraySeries; | | REAL4TimeArraySeries; | |
| | | | |
| typedef struct | | typedef struct | |
| tagREAL8TimeArraySeries | | tagREAL8TimeArraySeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(REAL8TimeArraySeries); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LIGOTimeGPS epoch; | | LIGOTimeGPS epoch; | |
| REAL8 deltaT; | | REAL8 deltaT; | |
| REAL8 f0; | | REAL8 f0; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| REAL8ArraySequence *data; | | REAL8ArraySequence *data; | |
| } | | } | |
| REAL8TimeArraySeries; | | REAL8TimeArraySeries; | |
| | | | |
| typedef struct | | typedef struct | |
| tagCOMPLEX8TimeArraySeries | | tagCOMPLEX8TimeArraySeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(COMPLEX8TimeArraySeries); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LIGOTimeGPS epoch; | | LIGOTimeGPS epoch; | |
| REAL8 deltaT; | | REAL8 deltaT; | |
| REAL8 f0; | | REAL8 f0; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| COMPLEX8ArraySequence *data; | | COMPLEX8ArraySequence *data; | |
| } | | } | |
| COMPLEX8TimeArraySeries; | | COMPLEX8TimeArraySeries; | |
| | | | |
| typedef struct | | typedef struct | |
| tagCOMPLEX16TimeArraySeries | | tagCOMPLEX16TimeArraySeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(COMPLEX16TimeArraySeries); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LIGOTimeGPS epoch; | | LIGOTimeGPS epoch; | |
| REAL8 deltaT; | | REAL8 deltaT; | |
| REAL8 f0; | | REAL8 f0; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| COMPLEX16ArraySequence *data; | | COMPLEX16ArraySequence *data; | |
| } | | } | |
| COMPLEX16TimeArraySeries; | | COMPLEX16TimeArraySeries; | |
| | | | |
| /* <lalLaTeX> | | /* <lalLaTeX> | |
| | | | |
| skipping to change at line 1490 | | skipping to change at line 1599 | |
| \item[\texttt{LALUnit 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 | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(INT2FrequencySeries); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LIGOTimeGPS epoch; | | LIGOTimeGPS epoch; | |
| REAL8 f0; | | REAL8 f0; | |
| REAL8 deltaF; | | REAL8 deltaF; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| INT2Sequence *data; | | INT2Sequence *data; | |
| } | | } | |
| INT2FrequencySeries; | | INT2FrequencySeries; | |
| | | | |
| typedef struct | | typedef struct | |
| tagUINT2FrequencySeries | | tagUINT2FrequencySeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(UINT2FrequencySeries); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LIGOTimeGPS epoch; | | LIGOTimeGPS epoch; | |
| REAL8 f0; | | REAL8 f0; | |
| REAL8 deltaF; | | REAL8 deltaF; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| UINT2Sequence *data; | | UINT2Sequence *data; | |
| } | | } | |
| UINT2FrequencySeries; | | UINT2FrequencySeries; | |
| | | | |
| typedef struct | | typedef struct | |
| tagINT4FrequencySeries | | tagINT4FrequencySeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(INT4FrequencySeries); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LIGOTimeGPS epoch; | | LIGOTimeGPS epoch; | |
| REAL8 f0; | | REAL8 f0; | |
| REAL8 deltaF; | | REAL8 deltaF; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| INT4Sequence *data; | | INT4Sequence *data; | |
| } | | } | |
| INT4FrequencySeries; | | INT4FrequencySeries; | |
| | | | |
| typedef struct | | typedef struct | |
| tagUINT4FrequencySeries | | tagUINT4FrequencySeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(UINT4FrequencySeries); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LIGOTimeGPS epoch; | | LIGOTimeGPS epoch; | |
| REAL8 f0; | | REAL8 f0; | |
| REAL8 deltaF; | | REAL8 deltaF; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| UINT4Sequence *data; | | UINT4Sequence *data; | |
| } | | } | |
| UINT4FrequencySeries; | | UINT4FrequencySeries; | |
| | | | |
| typedef struct | | typedef struct | |
| tagINT8FrequencySeries | | tagINT8FrequencySeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(INT8FrequencySeries); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LIGOTimeGPS epoch; | | LIGOTimeGPS epoch; | |
| REAL8 f0; | | REAL8 f0; | |
| REAL8 deltaF; | | REAL8 deltaF; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| INT8Sequence *data; | | INT8Sequence *data; | |
| } | | } | |
| INT8FrequencySeries; | | INT8FrequencySeries; | |
| | | | |
| typedef struct | | typedef struct | |
| tagUINT8FrequencySeries | | tagUINT8FrequencySeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(UINT8FrequencySeries); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LIGOTimeGPS epoch; | | LIGOTimeGPS epoch; | |
| REAL8 f0; | | REAL8 f0; | |
| REAL8 deltaF; | | REAL8 deltaF; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| UINT8Sequence *data; | | UINT8Sequence *data; | |
| } | | } | |
| UINT8FrequencySeries; | | UINT8FrequencySeries; | |
| | | | |
| typedef struct | | typedef struct | |
| tagREAL4FrequencySeries | | tagREAL4FrequencySeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(REAL4FrequencySeries); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LIGOTimeGPS epoch; | | LIGOTimeGPS epoch; | |
| REAL8 f0; | | REAL8 f0; | |
| REAL8 deltaF; | | REAL8 deltaF; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| REAL4Sequence *data; | | REAL4Sequence *data; | |
| } | | } | |
| REAL4FrequencySeries; | | REAL4FrequencySeries; | |
| | | | |
| typedef struct | | typedef struct | |
| tagREAL8FrequencySeries | | tagREAL8FrequencySeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(REAL8FrequencySeries); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LIGOTimeGPS epoch; | | LIGOTimeGPS epoch; | |
| REAL8 f0; | | REAL8 f0; | |
| REAL8 deltaF; | | REAL8 deltaF; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| REAL8Sequence *data; | | REAL8Sequence *data; | |
| } | | } | |
| REAL8FrequencySeries; | | REAL8FrequencySeries; | |
| | | | |
| typedef struct | | typedef struct | |
| tagCOMPLEX8FrequencySeries | | tagCOMPLEX8FrequencySeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(COMPLEX8FrequencySeries); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LIGOTimeGPS epoch; | | LIGOTimeGPS epoch; | |
| REAL8 f0; | | REAL8 f0; | |
| REAL8 deltaF; | | REAL8 deltaF; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| COMPLEX8Sequence *data; | | COMPLEX8Sequence *data; | |
| } | | } | |
| COMPLEX8FrequencySeries; | | COMPLEX8FrequencySeries; | |
| | | | |
| typedef struct | | typedef struct | |
| tagCOMPLEX16FrequencySeries | | tagCOMPLEX16FrequencySeries | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(COMPLEX16FrequencySeries); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| LIGOTimeGPS epoch; | | LIGOTimeGPS epoch; | |
| REAL8 f0; | | REAL8 f0; | |
| REAL8 deltaF; | | REAL8 deltaF; | |
| LALUnit sampleUnits; | | LALUnit sampleUnits; | |
| COMPLEX16Sequence *data; | | COMPLEX16Sequence *data; | |
| } | | } | |
| COMPLEX16FrequencySeries; | | COMPLEX16FrequencySeries; | |
| | | | |
| /* <lalLaTeX> | | /* <lalLaTeX> | |
| | | | |
| skipping to change at line 1649 | | skipping to change at line 1768 | |
| \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 | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(COMPLEX8ZPGFilter); | |
| CHAR name[LALNameLength]; | | 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 | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(COMPLEX16ZPGFilter); | |
| CHAR name[LALNameLength]; | | CHAR name[LALNameLength]; | |
| REAL8 deltaT; | | REAL8 deltaT; | |
| COMPLEX16Vector *zeros; | | COMPLEX16Vector *zeros; | |
| COMPLEX16Vector *poles; | | COMPLEX16Vector *poles; | |
| COMPLEX16 gain; | | COMPLEX16 gain; | |
| } | | } | |
| COMPLEX16ZPGFilter; | | COMPLEX16ZPGFilter; | |
| /*@}*/ | | /*@}*/ | |
| | | | |
| /* <lalLaTeX> | | /* <lalLaTeX> | |
| | | | |
| skipping to change at line 1710 | | skipping to change at line 1831 | |
| current \verb@statusCode@ was set. | | current \verb@statusCode@ was set. | |
| \item[\texttt{LALStatus *statusPtr}] Pointer to the next node in the | | \item[\texttt{LALStatus *statusPtr}] Pointer to the next node in the | |
| list; \verb@NULL@ if this function is not reporting a subroutine | | list; \verb@NULL@ if this function is not reporting a subroutine | |
| error. | | error. | |
| \item[\texttt{INT4 level}] The current level in the nested calling | | \item[\texttt{INT4 level}] The current level in the nested calling | |
| sequence. | | sequence. | |
| \end{description} | | \end{description} | |
| | | | |
| </lalLaTeX> */ | | </lalLaTeX> */ | |
| | | | |
|
| | | #ifndef SWIG /* exclude from SWIG interface */ | |
| typedef struct | | typedef struct | |
| tagLALStatus | | tagLALStatus | |
| { | | { | |
| INT4 statusCode; | | INT4 statusCode; | |
| const CHAR *statusDescription; | | const CHAR *statusDescription; | |
| volatile const CHAR *Id; | | volatile const CHAR *Id; | |
| const CHAR *function; | | const CHAR *function; | |
| const CHAR *file; | | const CHAR *file; | |
| INT4 line; | | INT4 line; | |
| struct tagLALStatus *statusPtr; | | struct tagLALStatus *statusPtr; | |
| INT4 level; | | INT4 level; | |
| } | | } | |
| LALStatus; | | LALStatus; | |
|
| | | #endif /* SWIG */ | |
| | | | |
| /* <lalLaTeX> | | /* <lalLaTeX> | |
| \vfill{\footnotesize\input{LALDatatypesHV}} | | \vfill{\footnotesize\input{LALDatatypesHV}} | |
| </lalLaTeX> */ | | </lalLaTeX> */ | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| #endif /* _LALDATATYPES_H */ | | #endif /* _LALDATATYPES_H */ | |
| | | | |
End of changes. 91 change blocks. |
| 2 lines changed or deleted | | 125 lines changed or added | |
|
| LALDetectors.h | | LALDetectors.h | |
| | | | |
| skipping to change at line 20 | | skipping to change at line 20 | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | | * GNU General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with with program; see the file COPYING. If not, write to the | | * along with with program; see the file COPYING. If not, write to the | |
| * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | | * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | |
| * MA 02111-1307 USA | | * MA 02111-1307 USA | |
| */ | | */ | |
| | | | |
|
| /********************************* <lalVerbatim file="LALDetectorsHV"> | | #ifndef _LALDETECTORS_H | |
| Author: J. T. Whelan <john.whelan@ligo.org> | | #define _LALDETECTORS_H | |
| $Id$ | | | |
| ********************************** </lalVerbatim> */ | | | |
| | | | |
|
| /********************************* <lalLaTeX> | | /* remove SWIG interface directives */ | |
| | | #if !defined(SWIG) && !defined(SWIGLAL_STRUCT) | |
| | | #define SWIGLAL_STRUCT(...) | |
| | | #endif | |
| | | | |
|
| \section{Header \texttt{LALDetectors.h}} | | #include <lal/LALDatatypes.h> | |
| \label{tools:s:LALDetectors.h} | | | |
| | | | |
|
| This header defines structures to hold the basic data describing | | #ifdef __cplusplus | |
| a gravitational wave detector. | | extern "C" { | |
| | | #endif | |
| | | | |
|
| \subsection*{Synopsis} | | NRCSID( LALDETECTORSH, "$Id$" ); | |
| \begin{verbatim} | | | |
| | | /** | |
| | | \author J. T. Whelan and J. D. E. Creighton | |
| | | \addtogroup LALDetectors_h | |
| | | | |
| | | \brief This header defines structures to hold the basic data describing | |
| | | a gravitational wave detector. | |
| | | | |
| | | \heading{Synopsis} | |
| | | \code | |
| #include <lal/LALDetectors.h> | | #include <lal/LALDetectors.h> | |
|
| \end{verbatim} | | \endcode | |
| | | | |
| According to the common frame format specification | | According to the common frame format specification | |
|
| \cite{tools:LIGOVIRGO:2000} the geometry of an interferometric | | [\ref LIGOVIRGO_2000] the geometry of an interferometric | |
| detector will be stored in a \texttt{FrDetector} structure, specifying | | detector will be stored in a \c ::FrDetector structure, specifying | |
| the location of the detector vertex and the orientation of its arms in | | the location of the detector vertex and the orientation of its arms in | |
|
| geodetic co\"{o}rdinates suited to geographical surveying. Resonant | | geodetic coördinates suited to geographical surveying. Resonant | |
| bars and other sorts of detectors, if they write their data to frames, | | bars and other sorts of detectors, if they write their data to frames, | |
| are expected to fill this structure with their location and | | are expected to fill this structure with their location and | |
| orientation in some way suited to the detector type. | | orientation in some way suited to the detector type. | |
| | | | |
| For most data analysis tasks, however, any gravitational wave detector | | For most data analysis tasks, however, any gravitational wave detector | |
| can be described by its location in an Earth-fixed rotating reference | | can be described by its location in an Earth-fixed rotating reference | |
|
| frame, as well as a \textit{response tensor} $d^{ab}$, constant in the | | frame, as well as a <em>response tensor</em> \f$d^{ab}\f$, constant in the | |
| same frame, which defines the ``strain'' $h$ measured by the detector in | | same frame, which defines the "strain" \f$h\f$ measured by the detector in | |
| terms of the metric perturbation $h_{ab}$ as | | terms of the metric perturbation \f$h_{ab}\f$ as | |
| \begin{equation} | | \f{equation}{ | |
| h = h_{ab} \, d^{ab} | | h = h_{ab} \, d^{ab} | |
| \ . | | \ . | |
|
| \end{equation} | | \f} | |
| | | | |
|
| This header defines a \texttt{LALFrDetector} structure which contains | | This header defines a \c ::LALFrDetector structure which contains | |
| essentially the same information as the \texttt{FrDetector} structure, | | essentially the same information as the \c ::FrDetector structure, | |
| as well as a \texttt{LALDetector} structure which contains the | | as well as a \c LALDetector structure which contains the | |
| Cartesian co\"{o}rdinates of the detector along with the components of | | Cartesian coördinates of the detector along with the components of | |
| the response tensor $d^{ab}$ in the same co\"{o}rdinate system. | | the response tensor \f$d^{ab}\f$ in the same coördinate system. | |
| | | | |
|
| \subsubsection*{The Geodetic Co\"{o}rdinate System} | | \heading{The Geodetic Coördinate System} | |
| | | | |
|
| Geodetic co\"{o}rdinates are spheroidal co\"{o}rdinates | | Geodetic coördinates are spheroidal coördinates | |
| based on the WGS-84 Earth Model, which is an | | based on the WGS-84 Earth Model, which is an | |
|
| oblate spheroid with equatorial radius $a=6.378137\times | | oblate spheroid with equatorial radius \f$a=6.378137\times | |
| 10^6\,\textrm{m}$ and polar radius $b=6.356752314\times | | 10^6\,\textrm{m}\f$ and polar radius \f$b=6.356752314\times | |
| 10^6\,\textrm{m}$. Any point in space can be located according to its | | 10^6\,\textrm{m}\f$. Any point in space can be located according to its | |
| longitude, latitude, and elevation. The \textit{longitude} $\lambda$ | | longitude, latitude, and elevation. The \e longitude \f$\lambda\f$ | |
| is the angle between the half-plane bounded by the symmetry axis of | | is the angle between the half-plane bounded by the symmetry axis of | |
| the reference ellipsoid containing the point in question and the | | the reference ellipsoid containing the point in question and the | |
| half-plane plane containing the Prime Meridian; it is measured in | | half-plane plane containing the Prime Meridian; it is measured in | |
| radians, increases to the East, and ranges from | | radians, increases to the East, and ranges from | |
|
| $-\pi$ to $\pi$. The \textit{latitude} $\beta$ is the | | \f$-\pi\f$ to \f$\pi\f$. The \e latitude \f$\beta\f$ is the | |
| angle between the ray which is normal to the ellipsoid and passes | | angle between the ray which is normal to the ellipsoid and passes | |
| through the point in question and the equatorial plane; it is measured | | through the point in question and the equatorial plane; it is measured | |
| in radians, increases to the North, and ranges | | in radians, increases to the North, and ranges | |
|
| from $-\pi/2$ to $\pi/2$. The \textit{elevation} $h$ is the | | from \f$-\pi/2\f$ to \f$\pi/2\f$. The \e elevation \f$h\f$ is the | |
| signed distance along this ray from the reference ellipsoid to the | | signed distance along this ray from the reference ellipsoid to the | |
|
| point in question. This co\"{o}rdinate system is described in more | | point in question. This coördinate system is described in more | |
| detail in \cite{tools:Althouse:1999}. | | detail in [\ref Althouse_1999]. | |
| | | | |
|
| \subsubsection*{Altitude and Azimuth Angles} | | \heading{Altitude and Azimuth Angles} | |
| | | | |
|
| The \texttt{LALFrDetector} structure stores the directions along the | | The \c LALFrDetector structure stores the directions along the | |
| two arms of an interferometer in an altitude/azimuth representation | | two arms of an interferometer in an altitude/azimuth representation | |
| with respect to the local tangent plane to the reference ellipsoid, | | with respect to the local tangent plane to the reference ellipsoid, | |
|
| known as the local horizontal. The altitude ${\mathcal{A}}$ is the angle t | | known as the local horizontal. The altitude \f${\mathcal{A}}\f$ is the ang | |
| he | | le the | |
| direction vector makes with the horizontal, ${\mathcal{A}} > 0$ meaning abo | | direction vector makes with the horizontal, \f${\mathcal{A}} > 0\f$ meaning | |
| ve | | above | |
| horizontal, ${\mathcal{A}} < 0$ below. The azimuth angle $\zeta$ is found | | horizontal, \f${\mathcal{A}} < 0\f$ below. The azimuth angle \f$\zeta\f$ i | |
| by | | s found by | |
| projecting the direction onto the local horizontal plane, then | | projecting the direction onto the local horizontal plane, then | |
| measuring the angle clockwise from North to this projected direction. | | measuring the angle clockwise from North to this projected direction. | |
| | | | |
|
| \subsubsection*{The Cartesian Co\"{o}rdinate System} | | \heading{The Cartesian Coördinate System} | |
| | | | |
| The position vector and response tensor contained in the | | The position vector and response tensor contained in the | |
|
| \texttt{LALDetector} structure are defined in | | \c LALDetector structure are defined in | |
| a simple orthonormal co\"{o}rdinate system with its origin at | | a simple orthonormal coördinate system with its origin at | |
| the center of the earth, an $x^1$ axis which pierces the Earth's | | the center of the earth, an \f$x^1\f$ axis which pierces the Earth's | |
| surface at the intersection of the equator and the prime meridian, an | | surface at the intersection of the equator and the prime meridian, an | |
|
| $x^2$ axis which pierces the earth's surface at $\pi/2$ radians East | | \f$x^2\f$ axis which pierces the earth's surface at \f$\pi/2\f$ radians Eas | |
| longitude on the equator, and an $x^3$ axis which pierces the Earth's | | t | |
| surface at the North Pole. The co\"{o}rdinates $x^1$, $x^2$, $x^3$ | | longitude on the equator, and an \f$x^3\f$ axis which pierces the Earth's | |
| correspond to the Earth-fixed co\"{o}rdinates $X_E$, $Y_E$, $Z_E$ | | surface at the North Pole. The coördinates \f$x^1\f$, \f$x^2\f$, \f$x^3\f$ | |
| defined in \cite{tools:Althouse:1999}, respectively. | | correspond to the Earth-fixed coördinates \f$X_E\f$, \f$Y_E\f$, \f$Z_E\f$ | |
| | | defined in [\ref Althouse_1999], respectively. | |
| | | | |
|
| The relationship between geodetic and Cartesian co\"{o}rdinates is | | The relationship between geodetic and Cartesian coördinates is | |
| given by | | given by | |
|
| \begin{eqnarray} | | \anchor tools_e_cart1 | |
| \label{tools:e:cart1} | | \anchor tools_e_cart2 | |
| x^1&=&\left( | | \anchor tools_e_cart3 | |
| | | \f{align}{ | |
| | | x^1 &=\left( | |
| \frac{a^2}{\sqrt{a^2\cos^2\beta+b^2\sin^2\beta}} | | \frac{a^2}{\sqrt{a^2\cos^2\beta+b^2\sin^2\beta}} | |
| + h | | + h | |
|
| \right) \cos\beta\cos\lambda \\ | | \right) \cos\beta\cos\lambda \label{tools_e_cart1}\\ | |
| \label{tools:e:cart2} | | x^2 &=\left( | |
| x^2&=&\left( | | | |
| \frac{a^2}{\sqrt{a^2\cos^2\beta+b^2\sin^2\beta}} | | \frac{a^2}{\sqrt{a^2\cos^2\beta+b^2\sin^2\beta}} | |
| + h | | + h | |
|
| \right) \cos\beta\sin\lambda \\ | | \right) \cos\beta\sin\lambda \label{tools_e_cart2}\\ | |
| \label{tools:e:cart3} | | x^3 &=\left( | |
| x^3&=&\left( | | | |
| \frac{b^2}{\sqrt{a^2\cos^2\beta+b^2\sin^2\beta}} | | \frac{b^2}{\sqrt{a^2\cos^2\beta+b^2\sin^2\beta}} | |
| + h | | + h | |
|
| \right) \sin\beta | | \right) \sin\beta \label{tools_e_cart3} \\ | |
| \end{eqnarray} | | \f} | |
| | | | |
| \subsection*{Error conditions} | | | |
| \input{LALDetectorsHE} | | | |
| | | | |
| ********************************** </lalLaTeX> */ | | | |
| | | | |
| /**************************************** <lalLaTeX file="LALDetectorsHB"> | | | |
| | | | |
| \bibitem{tools:LIGOVIRGO:2000} | | | |
| LIGO Data Group and VIRGO Data Acquisition Group, ``Specification of a | | | |
| Common Data Frame Format for Interferometric Gravitational Wave | | | |
| Detectors (IGWD)'', LIGO Technical Note | | | |
| \href{http://www.ligo.caltech.edu/docs/T/T970130-D.pdf}{LIGO-T970130} | | | |
| | | | |
| \bibitem{tools:Althouse:1999} | | | |
| William Althouse, Larry Jones, and Albert Lazzarini, ``Determination | | | |
| of Global and Local Coordinate Axes for the LIGO Sites'', LIGO | | | |
| Technical Note | | | |
| \href{http://www.ligo.caltech.edu/docs/T/T980044-10.pdf}{LIGO-T980044} | | | |
| | | | |
| % \bibitem{tools:Lazzarini:1995} | | | |
| % Albert Lazzarini, ``Derivation | | | |
| % of Global and Local Coordinate Axes for the LIGO Sites'', LIGO | | | |
| % Technical Note LIGO-T950004 | | | |
| | | | |
| ******************************************************* </lalLaTeX> */ | | | |
| | | | |
| #ifndef _LALDETECTORS_H | | | |
| #define _LALDETECTORS_H | | | |
| | | | |
| #include <lal/LALDatatypes.h> | | | |
| | | | |
| #ifdef __cplusplus | | | |
| extern "C" { | | | |
| #endif | | | |
| | | | |
| NRCSID( LALDETECTORSH, "$Id$" ); | | | |
| | | | |
|
| /** \file | | * \heading{Cached Detectors} | |
| * \ingroup tools | | | |
| * \author J. T. Whelan and J. D. E. Creighton | | | |
| * \date $Id$ | | | |
| * \brief Provides constants describing various gravitational wave detector | | | |
| s | | | |
| * | | | |
| * This header defines numerical constants that describe the location and | | | |
| * geometry of several operating gravitational wave detectors. | | | |
| * These detectors are both resonant mass (bar) detectors and interferometr | | | |
| ic | | | |
| * detectors. Data for the resonant mass detectors is taken from: | | | |
| * | | | |
| * http://igec.lnl.infn.it/cgi-bin/browser.pl?Level=0,3,1 | | | |
| * | | | |
| * and | | | |
| * | | | |
| * L. S. Finn and A. Lazzarini, Phys. Rev. D 64, 082002 (2001) | | | |
| * | | | |
| * Data for LIGO detectors is taken from: | | | |
| * | | | |
| * William Althouse, Larry Jones, Albert Lazzarini (1999) | | | |
| * "Determination of Global and Local Coordinate Axes for the LIGO Sit | | | |
| es" | | | |
| * LIGO-T980044-08-E | | | |
| * | | | |
| * Data for the VIRGO detector is provided by Benoit Mours. | | | |
| * | | | |
| * Data for the GEO detector is taken from: | | | |
| * | | | |
| * http://www.geo600.uni-hannover.de/geo600/project/location.html | | | |
| * | | | |
| * Data for the TAMA detector is provided by Masa-Katsu Fujimoto | | | |
| * | | | |
| * Data for the Caltech detector is taken from: | | | |
| * | | | |
| * B. Allen, "Gravitational Wave Detector Sites," gr-qc/9607075 (1996) | | | |
| . | | | |
| * | | | |
| * See the technical document | | | |
| * | | * | |
|
| * Warren Anderson, Patrick Brady, David Chin, Jolien Creighton, | | * In practice, we will often be | |
| * Keith Riles, and John Whelan | | * working with fixed unchanging site geometry, e.g., for the LIGO | |
| * "Beam Pattern Response Functions and Times of Arrival | | * interferometers; to avoid constantly reconstructing the corresponding | |
| * for Earthbound Interferometer" | | * \c LALDetectors, we should define some constant | |
| * LIGO-T010110-00-Z | | * \c LALDetectors describing them. Those are stored in a constant | |
| * http://www.lsc-group.phys.uwm.edu/daswg/docs/technical/T010110.pdf | | * array of \c LALDetector structures known as | |
| | | * \c lalCachedDetectors, which is declared \c extern in this | |
| | | * header and defined in \ref CreateDetector_c. | |
| * | | * | |
|
| * for details. | | * The <tt>LALCreateDetector()</tt> routine will first look through the | |
| | | * \c lalCachedDetectors array for a \c LALDetector structure | |
| | | * with matching \c type and <tt>frDetector.name</tt> fields; if it | |
| | | * finds one, it returns a copy of that; if not, it creates one. | |
| * | | * | |
|
| * Data in this file (e.g., angle conventions etc.) is intended | | * For example, the \c LALDetector representing LIGO Hanford 4km (H1) in | |
| * to conform to the conventions of the Frame format specification: | | * differential mode is <tt>lalCachedDetectors[LAL_LHO_4K_DETECTOR]</tt>. | |
| * | | * | |
|
| * LIGO Data and Computing Group and Virgo Data Acquisition Group | | | |
| * Specification of a Common Data Frame Format for | | | |
| * Interferometric Gravitational Wave Detectors | | | |
| * (IGWD) | | | |
| * LIGO-T970130-F-E and VIRGO-SPE-LAP-5400-102 (Version 6) | | | |
| * http://www.ligo.caltech.edu/docs/T/T970130-F.pdf | | | |
| * | | * | |
| */ | | */ | |
|
| | | /** @{ */ | |
| | | | |
|
| /******************************** <lalErrTable file="LALDetectorsHE"> */ | | /** \name Error Codes */ /*@{*/ | |
| | | #define LALDETECTORSH_ENULLP 1 /**< Null pointer */ | |
| #define LALDETECTORSH_ENULLP 1 | | #define LALDETECTORSH_ETYPE 2 /**< Unsupported detector type */ | |
| #define LALDETECTORSH_ETYPE 2 | | /*@}*/ | |
| | | | |
|
| | | /** \cond DONT_DOXYGEN */ | |
| #define LALDETECTORSH_MSGENULLP "Null pointer" | | #define LALDETECTORSH_MSGENULLP "Null pointer" | |
| #define LALDETECTORSH_MSGETYPE "Unsupported detector type" | | #define LALDETECTORSH_MSGETYPE "Unsupported detector type" | |
| | | | |
|
| /************************************ </lalErrTable> */ | | | |
| | | | |
| #define LALDETECTORSH_PRINTF 0 | | #define LALDETECTORSH_PRINTF 0 | |
|
| | | /** \endcond */ | |
| /********************************* <lalLaTeX> | | | |
| | | | |
| \subsubsection*{The \texttt{LALDetectorType} enumeration} | | | |
| \idx[Type]{LALDetectorType} | | | |
| \idx[Constant]{LALDETECTORTYPE\_ABSENT} | | | |
| \idx[Constant]{LALDETECTORTYPE\_IFODIFF} | | | |
| \idx[Constant]{LALDETECTORTYPE\_IFOXARM} | | | |
| \idx[Constant]{LALDETECTORTYPE\_IFOYARM} | | | |
| \idx[Constant]{LALDETECTORTYPE\_IFOCOMM} | | | |
| \idx[Constant]{LALDETECTORTYPE\_CYLBAR} | | | |
| | | | |
| Since data from bars as well as interferometers can be written to | | | |
| frames, we need an additional piece of information to interpret the | | | |
| site geometry data specified in the \texttt{LALFrDetector} | | | |
| structure; for instance, is the x arm really the x arm or is it the | | | |
| long axis of a bar? The \texttt{LALDetectorType} enumeration | | | |
| provides a way to keep track of that. | | | |
| | | | |
| The possible values are (each value is prefaced by | | | |
| \texttt{LALDETECTORTYPE\_}): | | | |
| \begin{description} | | | |
| \item[\texttt{LALDETECTORTYPE\_ABSENT}] No \texttt{FrDetector} | | | |
| associated with the structure | | | |
| \item[\texttt{LALDETECTORTYPE\_IFODIFF}] Interferometer | | | |
| in differential mode | | | |
| \item[\texttt{LALDETECTORTYPE\_IFOXARM}] Interferometer | | | |
| in one-armed mode (X arm) | | | |
| \item[\texttt{LALDETECTORTYPE\_IFOYARM}] Interferometer | | | |
| in one-armed mode (Y arm) | | | |
| \item[\texttt{LALDETECTORTYPE\_IFOCOMM}] Interferometer in common mode | | | |
| \item[\texttt{LALDETECTORTYPE\_CYLBAR}] Cylindrical bar | | | |
| \end{description} | | | |
| | | | |
| \subsubsection*{Cached Detectors} | | | |
| | | | |
| \idx[Variable]{lalCachedDetectors[]} In practice, we will often be | | | |
| working with fixed unchanging site geometry, e.g., for the LIGO | | | |
| interferometers; to avoid constantly reconstructing the corresponding | | | |
| \texttt{LALDetector}s, we should define some constant | | | |
| \texttt{LALDetector}s describing them. Those are stored in a constant | | | |
| array of \texttt{LALDetector} structures known as | | | |
| \texttt{lalCachedDetectors}, which is declared \texttt{extern} in this | | | |
| header and defined in \texttt{CreateDetector.c} (see | | | |
| Sec.~\ref{tools:ss:CreateDetector.c}). | | | |
| | | | |
| The \texttt{LALCreateDetector()} routine will first look through the | | | |
| \texttt{lalCachedDetectors} array for a \texttt{LALDetector} structure | | | |
| with matching \texttt{type} and \texttt{frDetector.name} fields; if it | | | |
| finds one, it returns a copy of that; if not, it creates one. | | | |
| | | | |
| The header \texttt{LALDetectors.h} also defines an enumeration of the | | | |
| indices of the known detectors: | | | |
| \idx[Constant]{LAL\_TAMA\_300\_DETECTOR} | | | |
| \idx[Constant]{LAL\_VIRGO\_DETECTOR} | | | |
| \idx[Constant]{LAL\_GEO\_600\_DETECTOR} | | | |
| \idx[Constant]{LAL\_LHO\_2K\_DETECTOR} | | | |
| \idx[Constant]{LAL\_LHO\_4K\_DETECTOR} | | | |
| \idx[Constant]{LAL\_LLO\_4K\_DETECTOR} | | | |
| \idx[Constant]{LAL\_CIT\_40\_DETECTOR} | | | |
| \idx[Constant]{LAL\_ALLEGRO\_DETECTOR} | | | |
| \idx[Constant]{LAL\_AURIGA\_DETECTOR} | | | |
| \idx[Constant]{LAL\_EXPLORER\_DETECTOR} | | | |
| \idx[Constant]{LAL\_NIOBE\_DETECTOR} | | | |
| \idx[Constant]{LAL\_NAUTILUS\_DETECTOR} | | | |
| \idx[Constant]{LAL\_NUM\_DETECTORS} | | | |
| ********************************** </lalLaTeX> */ | | | |
| | | | |
| /********************************* <lalLaTeX> | | | |
| For example, the \texttt{LALDetector} representing LIGO Hanford 4km (H1) in | | | |
| differential mode is | | | |
| \texttt{lalCachedDetectors[LAL\_LHO\_4K\_DETECTOR]}. | | | |
| | | | |
| \subsection*{Structures} | | | |
| | | | |
| ********************************** </lalLaTeX> */ | | | |
| | | | |
| /********************************* <lalLaTeX> | | | |
| | | | |
| \subsubsection*{Structure \texttt{LALFrDetector}} | | | |
| \idx[Type]{LALFrDetector} | | | |
| | | | |
| The \texttt{LALFrDetector} structure holds site geometry information | | | |
| in the same format as the \texttt{FrDetector} structure defined in the | | | |
| frames spec. \cite{tools:LIGOVIRGO:2000} The fields are: | | | |
| \begin{description} | | | |
| \item[\texttt{CHAR name[LALNameLength]}] A unique identifying string. | | | |
| \item[\texttt{CHAR prefix[3]}] Two-letter prefix for detector names. | | | |
| \item[\texttt{REAL8 vertexLongitudeRadians}] The geodetic longitude | | | |
| $\lambda$ of the vertex, in radians. | | | |
| \item[\texttt{REAL8 vertexLatitudeRadians}] The geodetic latitude | | | |
| $\beta$ of the vertex, in radians. | | | |
| \item[\texttt{REAL4 vertexElevation}] The height of the vertex above | | | |
| the reference ellipsoid, in meters. | | | |
| \item[\texttt{REAL4 xArmAltitudeRadians}] The angle ${\mathcal{A}}_X$ up | | | |
| from the | | | |
| local tangent plane of the reference ellipsoid to the X arm, in radians. | | | |
| \item[\texttt{REAL4 xArmAzimuthRadians}] The angle $\zeta_X$ clockwise | | | |
| from North to the projection of the X arm into the local tangent plane of | | | |
| the reference ellipsoid, in radians. | | | |
| \item[\texttt{REAL4 yArmAltitudeRadians}] The angle ${\mathcal{A}}_Y$ up | | | |
| from the | | | |
| local tangent plane of the reference ellipsoid to the Y arm, in radians. | | | |
| \item[\texttt{REAL4 yArmAzimuthRadians}] The angle $\zeta_Y$ clockwise | | | |
| from North to the projection of the Y arm into the local tangent plane of | | | |
| the reference ellipsoid, in radians. | | | |
| \item[\texttt{REAL4 xArmMidpoint}] The distance to the midpoint of the X | | | |
| arm in meters (unused for bars: set it to zero). | | | |
| \item[\texttt{REAL4 yArmMidpoint}] The distance to the midpoint of the Y | | | |
| arm in meters (unused for bars: set it to zero). | | | |
| \end{description} | | | |
| | | | |
| \subsubsection*{Structure \texttt{LALDetector}} | | | |
| \idx[Type]{LALDetector} | | | |
| | | | |
| The \texttt{LALDetector} structure is intended to be the way that detector | | | |
| geometry information is passed to LAL routines. | | | |
| This structure describes a detector geometry in a way independent of | | | |
| the type of detector. The fields are: | | | |
| \begin{description} | | | |
| \item[\texttt{REAL8 location[3]}] The three components, in an | | | |
| Earth-fixed Cartesian co\"{o}rdinate system, of the | | | |
| position vector from the center of the Earth to the detector, | | | |
| in meters. | | | |
| \item[\texttt{REAL4 response[3][3]}] The Earth-fixed Cartesian components | | | |
| of the detector's response tensor $d^{ab}$. | | | |
| \item[\texttt{LALDetectorType type}] The type of detector (e.g., IFO in | | | |
| differential mode, cylindrical bar, etc.) | | | |
| \item[\texttt{LALFrDetector frDetector}] The original | | | |
| \texttt{LALFrDetector} structure from which this was created. | | | |
| \end{description} | | | |
| | | | |
| \vfill{\footnotesize\input{LALDetectorsHV}} | | | |
| \newpage\input{CreateDetectorC} | | | |
| \newpage\input{DetectorSiteTestC} | | | |
| | | | |
| ********************************** </lalLaTeX> */ | | | |
| | | | |
| /** Enumeration of Detectors: follows order of DQ bit assignments */ | | /** Enumeration of Detectors: follows order of DQ bit assignments */ | |
| enum { | | enum { | |
| LAL_TAMA_300_DETECTOR = 0, | | LAL_TAMA_300_DETECTOR = 0, | |
| LAL_VIRGO_DETECTOR = 1, | | LAL_VIRGO_DETECTOR = 1, | |
| LAL_GEO_600_DETECTOR = 2, | | LAL_GEO_600_DETECTOR = 2, | |
| LAL_LHO_2K_DETECTOR = 3, | | LAL_LHO_2K_DETECTOR = 3, | |
| LAL_LHO_4K_DETECTOR = 4, | | LAL_LHO_4K_DETECTOR = 4, | |
| LAL_LLO_4K_DETECTOR = 5, | | LAL_LLO_4K_DETECTOR = 5, | |
| LAL_CIT_40_DETECTOR = 6, | | LAL_CIT_40_DETECTOR = 6, | |
| | | | |
| skipping to change at line 400 | | skipping to change at line 205 | |
| LAL_LHO_2K_DETECTOR_BIT = 1 << 2 * LAL_LHO_2K_DETECTOR
, | | LAL_LHO_2K_DETECTOR_BIT = 1 << 2 * LAL_LHO_2K_DETECTOR
, | |
| LAL_LHO_4K_DETECTOR_BIT = 1 << 2 * LAL_LHO_4K_DETECTOR
, | | LAL_LHO_4K_DETECTOR_BIT = 1 << 2 * LAL_LHO_4K_DETECTOR
, | |
| LAL_LLO_4K_DETECTOR_BIT = 1 << 2 * LAL_LLO_4K_DETECTOR
, | | LAL_LLO_4K_DETECTOR_BIT = 1 << 2 * LAL_LLO_4K_DETECTOR
, | |
| LAL_CIT_40_DETECTOR_BIT = 1 << 2 * LAL_CIT_40_DETECTOR
, | | LAL_CIT_40_DETECTOR_BIT = 1 << 2 * LAL_CIT_40_DETECTOR
, | |
| LAL_ALLEGRO_DETECTOR_BIT = 1 << 2 * LAL_ALLEGRO_DETECTO
R, | | LAL_ALLEGRO_DETECTOR_BIT = 1 << 2 * LAL_ALLEGRO_DETECTO
R, | |
| LAL_AURIGA_DETECTOR_BIT = 1 << 2 * LAL_AURIGA_DETECTOR
, | | LAL_AURIGA_DETECTOR_BIT = 1 << 2 * LAL_AURIGA_DETECTOR
, | |
| LAL_NIOBE_DETECTOR_BIT = 1 << 2 * LAL_NIOBE_DETECTOR, | | LAL_NIOBE_DETECTOR_BIT = 1 << 2 * LAL_NIOBE_DETECTOR, | |
| LAL_NAUTILUS_DETECTOR_BIT = 1 << 2 * LAL_NAUTILUS_DETECT
OR | | LAL_NAUTILUS_DETECTOR_BIT = 1 << 2 * LAL_NAUTILUS_DETECT
OR | |
| }; | | }; | |
| | | | |
|
| /** Detector type | | /** Detector type, which determines how the detector response is determined | |
| | | . | |
| | | * | |
| | | * Since data from bars as well as interferometers can be written to | |
| | | * frames, we need an additional piece of information to interpret the | |
| | | * site geometry data specified in the \c LALFrDetector | |
| | | * structure; for instance, is the x arm really the x arm or is it the | |
| | | * long axis of a bar? The \c LALDetectorType enumeration | |
| | | * provides a way to keep track of that. | |
| * | | * | |
|
| * The type of detector. This determines how the detector response | | | |
| * is determined. | | | |
| */ | | */ | |
| typedef enum { | | typedef enum { | |
|
| LALDETECTORTYPE_ABSENT, /**< No FrDetector associated with this dete
ctor */ | | LALDETECTORTYPE_ABSENT, /**< No FrDetector associated with t
his detector */ | |
| LALDETECTORTYPE_IFODIFF, /**< IFO in differential mode */ | | LALDETECTORTYPE_IFODIFF, /**< IFO in differential mode */ | |
| LALDETECTORTYPE_IFOXARM, /**< IFO in one-armed mode (X arm) *
/ | | LALDETECTORTYPE_IFOXARM, /**< IFO in one-armed mode (X arm) *
/ | |
| LALDETECTORTYPE_IFOYARM, /**< IFO in one-armed mode (Y arm) *
/ | | LALDETECTORTYPE_IFOYARM, /**< IFO in one-armed mode (Y arm) *
/ | |
| LALDETECTORTYPE_IFOCOMM, /**< IFO in common mode */ | | LALDETECTORTYPE_IFOCOMM, /**< IFO in common mode */ | |
|
| LALDETECTORTYPE_CYLBAR /**< Cylindrical bar */ | | LALDETECTORTYPE_CYLBAR /**< Cylindrical bar */ | |
| } | | } | |
| LALDetectorType; | | LALDetectorType; | |
| | | | |
| /** Detector frame data structure | | /** Detector frame data structure | |
| * | | * | |
| * Structure to contain the data that appears in a FrDetector structure | | * Structure to contain the data that appears in a FrDetector structure | |
| * in frame data. | | * in frame data. | |
| */ | | */ | |
| typedef struct tagLALFrDetector | | typedef struct tagLALFrDetector | |
| { | | { | |
|
| CHAR name[LALNameLength]; /**< A unique identifying string. */ | | SWIGLAL_STRUCT(LALFrDetector); | |
| CHAR prefix[3]; /**< Two-letter prefix for detector' | | CHAR name[LALNameLength]; /**< A unique identifying string */ | |
| s channel names. */ | | CHAR prefix[3]; /**< Two-letter prefix for detector' | |
| REAL8 vertexLongitudeRadians; /**< The geodetic longitude \f$\lamb | | s channel names */ | |
| da\f$ of the vertex in radians. */ | | REAL8 vertexLongitudeRadians; /**< The geodetic longitude \f$\lamb | |
| REAL8 vertexLatitudeRadians; /**< The geodetic latitude \f$\beta\ | | da\f$ of the vertex in radians */ | |
| f$ of the vertex in radians. */ | | REAL8 vertexLatitudeRadians; /**< The geodetic latitude \f$\beta\ | |
| REAL4 vertexElevation; /**< The height of the vertex above | | f$ of the vertex in radians */ | |
| the reference ellipsoid in meters. */ | | REAL4 vertexElevation; /**< The height of the vertex above | |
| REAL4 xArmAltitudeRadians; /**< The angle \f${\mathcal{A}}_X\f$ | | the reference ellipsoid in meters */ | |
| up from the local tangent plane of the reference ellipsoid to the X arm (o | | REAL4 xArmAltitudeRadians; /**< The angle \f${\mathcal{A}}_X\f$ | |
| r bar's cylidrical axis) in radians. */ | | up from the local tangent plane of the reference ellipsoid to the X arm (o | |
| REAL4 xArmAzimuthRadians; /**< The angle \f$\zeta_X\f$ clockwi | | r bar's cylidrical axis) in radians */ | |
| se from North to the projection of the X arm (or bar's cylidrical axis) int | | REAL4 xArmAzimuthRadians; /**< The angle \f$\zeta_X\f$ clockwi | |
| o the local tangent plane of the reference ellipsoid in radians. */ | | se from North to the projection of the X arm (or bar's cylidrical axis) int | |
| REAL4 yArmAltitudeRadians; /**< The angle \f${\mathcal{A}}_Y\f$ | | o the local tangent plane of the reference ellipsoid in radians */ | |
| up from the local tangent plane of the reference ellipsoid to the Y arm in | | REAL4 yArmAltitudeRadians; /**< The angle \f${\mathcal{A}}_Y\f$ | |
| radians (unused for bars: set it to zero). */ | | up from the local tangent plane of the reference ellipsoid to the Y arm in | |
| REAL4 yArmAzimuthRadians; /**< The angle \f$\zeta_Y\f$ clockwi | | radians (unused for bars: set it to zero) */ | |
| se from North to the projection of the Y arm into the local tangent plane o | | REAL4 yArmAzimuthRadians; /**< The angle \f$\zeta_Y\f$ clockwi | |
| f the reference ellipsoid in radians (unused for bars: set it to zero). */ | | se from North to the projection of the Y arm into the local tangent plane o | |
| REAL4 xArmMidpoint; /**< The distance to the midpoint of the X a | | f the reference ellipsoid in radians (unused for bars: set it to zero) */ | |
| rm in meters (unused for bars: set it to zero). */ | | REAL4 xArmMidpoint; /**< The distance to the midpoint of | |
| REAL4 yArmMidpoint; /**< The distance to the midpoint of the Y a | | the X arm in meters (unused for bars: set it to zero) */ | |
| rm in meters (unused for bars: set it to zero). */ | | REAL4 yArmMidpoint; /**< The distance to the midpoint of | |
| | | the Y arm in meters (unused for bars: set it to zero) */ | |
| } | | } | |
| LALFrDetector; | | LALFrDetector; | |
| | | | |
| /** Detector structure | | /** Detector structure | |
| * | | * | |
| * Structure to contain detector data in the format most easily used | | * Structure to contain detector data in the format most easily used | |
| * by the LAL routines. | | * by the LAL routines. | |
| */ | | */ | |
| typedef struct tagLALDetector | | typedef struct tagLALDetector | |
| { | | { | |
|
| REAL8 location[3]; /**< The three components, in an Ear | | SWIGLAL_STRUCT(LALDetector); | |
| th-fixed Cartesian coordinate system, of the position vector from the cente | | REAL8 location[3]; /**< The three components, in an Ear | |
| r of the Earth to the detector in meters. */ | | th-fixed Cartesian coordinate system, of the position vector from the cente | |
| REAL4 response[3][3]; /**< The Earth-fixed Cartesian compo | | r of the Earth to the detector in meters */ | |
| nents of the detector's response tensor \f$d^{ab}\f$. */ | | REAL4 response[3][3]; /**< The Earth-fixed Cartesian compo | |
| LALDetectorType type; /**< The type of the detector (e.g., | | nents of the detector's response tensor \f$d^{ab}\f$ */ | |
| IFO in differential mode, cylindrical bar, etc.). */ | | LALDetectorType type; /**< The type of the detector (e.g., | |
| LALFrDetector frDetector; /**< The original LALFrDetector stru | | IFO in differential mode, cylindrical bar, etc.) */ | |
| cture from which this was created. */ | | LALFrDetector frDetector; /**< The original LALFrDetector stru | |
| | | cture from which this was created */ | |
| } | | } | |
| LALDetector; | | LALDetector; | |
| | | | |
| /** Pre-existing detectors. */ | | /** Pre-existing detectors. */ | |
| extern const LALDetector lalCachedDetectors[LAL_NUM_DETECTORS]; | | extern const LALDetector lalCachedDetectors[LAL_NUM_DETECTORS]; | |
|
| | | #ifdef SWIG /* SWIG interface directives */ | |
| | | SWIGLAL_GLOBAL_CONST_FIXED_1DARRAY_ELEM(LALDetector, lalCachedDetectors); | |
| | | #endif | |
| | | | |
|
| /** Routine to create a LALDetector. */ | | /* Routine to create a LALDetector. */ | |
| LALDetector * XLALCreateDetector( LALDetector *detector, const LALFrDetecto
r *frDetector, LALDetectorType type ); | | LALDetector * XLALCreateDetector( LALDetector *detector, const LALFrDetecto
r *frDetector, LALDetectorType type ); | |
| void LALCreateDetector( LALStatus *status, LALDetector *output, const LALFr
Detector *input, const LALDetectorType type ); | | void LALCreateDetector( LALStatus *status, LALDetector *output, const LALFr
Detector *input, const LALDetectorType type ); | |
| | | | |
|
| | | /** @} */ | |
| | | | |
| /* Interferometric Detectors */ | | /* Interferometric Detectors */ | |
| | | | |
|
| | | /** | |
| | | * \defgroup DetectorConstants Detector Constants | |
| | | * \ingroup LALDetectors_h | |
| | | * \brief Constants describing various gravitational wave detectors | |
| | | * | |
| | | * The \ref LALDetectors_h also defines numerical constants that describe t | |
| | | he location and | |
| | | * geometry of several operating gravitational wave detectors. | |
| | | * These detectors are both resonant mass (bar) detectors and interferometr | |
| | | ic | |
| | | * detectors. | |
| | | * <ul> | |
| | | * <li> Data for the resonant mass detectors is taken from: | |
| | | * http://igec.lnl.infn.it/cgi-bin/browser.pl?Level=0,3,1 | |
| | | * and [\ref FinnLazzarini_2001] | |
| | | * | |
| | | * <li> Data for LIGO detectors is taken from [\ref Althouse_1999] | |
| | | * | |
| | | * <li> Data for the VIRGO detector is provided by Benoit Mours. | |
| | | * | |
| | | * <li> Data for the GEO detector is taken from: | |
| | | * | |
| | | * http://www.geo600.uni-hannover.de/geo600/project/location.html | |
| | | * | |
| | | * <li> Data for the TAMA detector is provided by Masa-Katsu Fujimoto | |
| | | * | |
| | | * <li> Data for the Caltech detector is taken from [\ref Allen_1996] | |
| | | * </ul> | |
| | | * | |
| | | * See the technical document [\ref ABCCRW_2001] for details. | |
| | | * | |
| | | * Data in this file (e.g., angle conventions etc.) is intended | |
| | | * to conform to the conventions of the Frame format specification [\ref LI | |
| | | GOVIRGO_2000] | |
| | | * | |
| | | * @{ | |
| | | */ | |
| | | | |
| /** \name TAMA 300m Interferometric Detector constants | | /** \name TAMA 300m Interferometric Detector constants | |
| * The following constants describe the location and geometry of the | | * The following constants describe the location and geometry of the | |
| * TAMA 300m Interferometric Detector. */ | | * TAMA 300m Interferometric Detector. */ | |
| /*@{*/ | | /*@{*/ | |
| #define LAL_TAMA_300_DETECTOR_NAME "TAMA_300" /**<
TAMA_300 detector name string */ | | #define LAL_TAMA_300_DETECTOR_NAME "TAMA_300" /**<
TAMA_300 detector name string */ | |
| #define LAL_TAMA_300_DETECTOR_PREFIX "T1" /**< TAMA_30
0 detector prefix string */ | | #define LAL_TAMA_300_DETECTOR_PREFIX "T1" /**< TAMA_30
0 detector prefix string */ | |
| #define LAL_TAMA_300_DETECTOR_LONGITUDE_RAD 2.43536359469 /**<
TAMA_300 vertex longitude (rad) */ | | #define LAL_TAMA_300_DETECTOR_LONGITUDE_RAD 2.43536359469 /**<
TAMA_300 vertex longitude (rad) */ | |
| #define LAL_TAMA_300_DETECTOR_LATITUDE_RAD 0.62267336022 /**<
TAMA_300 vertex latitude (rad) */ | | #define LAL_TAMA_300_DETECTOR_LATITUDE_RAD 0.62267336022 /**<
TAMA_300 vertex latitude (rad) */ | |
| #define LAL_TAMA_300_DETECTOR_ELEVATION_SI 90 /**< TAMA_30
0 vertex elevation (m) */ | | #define LAL_TAMA_300_DETECTOR_ELEVATION_SI 90 /**< TAMA_30
0 vertex elevation (m) */ | |
| #define LAL_TAMA_300_DETECTOR_ARM_X_AZIMUTH_RAD 4.71238898038 /**<
TAMA_300 x arm azimuth (rad) */ | | #define LAL_TAMA_300_DETECTOR_ARM_X_AZIMUTH_RAD 4.71238898038 /**<
TAMA_300 x arm azimuth (rad) */ | |
| | | | |
| skipping to change at line 752 | | skipping to change at line 604 | |
| #define LAL_NIOBE_DETECTOR_ARM_X_ALTITUDE_RAD 0.00000000000 /**< NIOBE x
arm altitude (rad) */ | | #define LAL_NIOBE_DETECTOR_ARM_X_ALTITUDE_RAD 0.00000000000 /**< NIOBE x
arm altitude (rad) */ | |
| #define LAL_NIOBE_DETECTOR_ARM_Y_ALTITUDE_RAD 0.00000000000 /**< NIOBE y
arm altitude (rad) UNUSED FOR BARS */ | | #define LAL_NIOBE_DETECTOR_ARM_Y_ALTITUDE_RAD 0.00000000000 /**< NIOBE y
arm altitude (rad) UNUSED FOR BARS */ | |
| #define LAL_NIOBE_DETECTOR_ARM_X_MIDPOINT_SI 0.00000000000 /**< NIOBE x
arm midpoint (m) UNUSED FOR BARS */ | | #define LAL_NIOBE_DETECTOR_ARM_X_MIDPOINT_SI 0.00000000000 /**< NIOBE x
arm midpoint (m) UNUSED FOR BARS */ | |
| #define LAL_NIOBE_DETECTOR_ARM_Y_MIDPOINT_SI 0.00000000000 /**< NIOBE y
arm midpoint (m) UNUSED FOR BARS */ | | #define LAL_NIOBE_DETECTOR_ARM_Y_MIDPOINT_SI 0.00000000000 /**< NIOBE y
arm midpoint (m) UNUSED FOR BARS */ | |
| #define LAL_NIOBE_VERTEX_LOCATION_X_SI -2.35948871453e+06 /**<
NIOBE x-component of vertex location in Earth-centered frame (m) */ | | #define LAL_NIOBE_VERTEX_LOCATION_X_SI -2.35948871453e+06 /**<
NIOBE x-component of vertex location in Earth-centered frame (m) */ | |
| #define LAL_NIOBE_VERTEX_LOCATION_Y_SI 4.87721571259e+06 /**<
NIOBE y-component of vertex location in Earth-centered frame (m) */ | | #define LAL_NIOBE_VERTEX_LOCATION_Y_SI 4.87721571259e+06 /**<
NIOBE y-component of vertex location in Earth-centered frame (m) */ | |
| #define LAL_NIOBE_VERTEX_LOCATION_Z_SI -3.35416003274e+06 /**<
NIOBE z-component of vertex location in Earth-centered frame (m) */ | | #define LAL_NIOBE_VERTEX_LOCATION_Z_SI -3.35416003274e+06 /**<
NIOBE z-component of vertex location in Earth-centered frame (m) */ | |
| #define LAL_NIOBE_AXIS_DIRECTION_X -0.23034623759 /**< NIOBE x
-component of unit vector pointing along axis in Earth-centered frame */ | | #define LAL_NIOBE_AXIS_DIRECTION_X -0.23034623759 /**< NIOBE x
-component of unit vector pointing along axis in Earth-centered frame */ | |
| #define LAL_NIOBE_AXIS_DIRECTION_Y 0.47614056486 /**< NIOBE y
-component of unit vector pointing along axis in Earth-centered frame */ | | #define LAL_NIOBE_AXIS_DIRECTION_Y 0.47614056486 /**< NIOBE y
-component of unit vector pointing along axis in Earth-centered frame */ | |
| #define LAL_NIOBE_AXIS_DIRECTION_Z 0.84866411101 /**< NIOBE z
-component of unit vector pointing along axis in Earth-centered frame */ | | #define LAL_NIOBE_AXIS_DIRECTION_Z 0.84866411101 /**< NIOBE z
-component of unit vector pointing along axis in Earth-centered frame */ | |
|
| | | /** @} */ | |
| | | | |
| | | /** @} */ | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| #endif /* _LALDETECTORS_H */ | | #endif /* _LALDETECTORS_H */ | |
| | | | |
End of changes. 49 change blocks. |
| 339 lines changed or deleted | | 191 lines changed or added | |
|
| MatrixUtils.h | | MatrixUtils.h | |
| | | | |
| skipping to change at line 20 | | skipping to change at line 20 | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | | * GNU General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with with program; see the file COPYING. If not, write to the | | * along with with program; see the file COPYING. If not, write to the | |
| * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | | * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | |
| * MA 02111-1307 USA | | * MA 02111-1307 USA | |
| */ | | */ | |
| | | | |
|
| /********************************** <lalVerbatim file="MatrixUtilsHV"> | | /** | |
| Author: Creighton, T. D. | | \author Creighton, T. D. | |
| $Id$ | | \file | |
| **************************************************** </lalVerbatim> */ | | | |
| | | | |
| /********************************************************** <lalLaTeX> | | | |
| | | | |
| \providecommand{\bd}{\mbox{\boldmath$\delta$\unboldmath}} | | | |
| | | | |
| \section{Header \texttt{MatrixUtils.h}} | | | |
| \label{s:MatrixUtils.h} | | | |
| | | | |
|
| Provides routines to solve linear systems. | | \brief Provides routines to solve linear systems. | |
| | | | |
|
| \subsection*{Synopsis} | | \heading{Synopsis} | |
| \begin{verbatim} | | \code | |
| #include <lal/MatrixUtils.h> | | #include <lal/MatrixUtils.h> | |
|
| \end{verbatim} | | \endcode | |
| | | | |
| This header covers routines to solve linear systems of equations and | | This header covers routines to solve linear systems of equations and | |
| eigensystems, using algorithms adapted from Chapters~2 and~11 of | | eigensystems, using algorithms adapted from Chapters~2 and~11 of | |
|
| Numerical Recipes~\cite{ptvf:1992}. The only routines at present are | | Numerical Recipes~[\ref ptvf1992]. The only routines at present are | |
| for computing eigenvalues and eigenvectors of real symmetric matrices. | | for computing eigenvalues and eigenvectors of real symmetric matrices. | |
| Routines for inverting or computing the determinant of arbitrary | | Routines for inverting or computing the determinant of arbitrary | |
| square matrices will likely follow. | | square matrices will likely follow. | |
| | | | |
|
| \subsubsection*{Notation} | | \section TODOref Notation | |
| | | | |
|
| A \emph{matrix} is represented in LAL by a \verb@<datatype>Array@ | | A \e matrix is represented in LAL by a <tt>\<datatype\>Array</tt> | |
| structure with a \verb@dimLength->length@ field of 2; the | | structure with a <tt>dimLength->length</tt> field of 2; the | |
| \verb@dimLength->data@ field gives the dimensions $[M,N]$ of the | | <tt>dimLength->data</tt> field gives the dimensions \f$[M,N]\f$ of the | |
| matrix. Using the place-index notation common in tensor calculus, a | | matrix. Using the place-index notation common in tensor calculus, a | |
| matrix is a two-index tensor: | | matrix is a two-index tensor: | |
|
| \begin{equation} | | \f{equation}{ | |
| \mathsf{A}^a{}_b = \left[\begin{array}{cccc} | | \mathsf{A}^a{}_b = \left[\begin{array}{cccc} | |
| A^1{}_1 & A^1{}_2 & \cdots & A^1{}_N \\ | | A^1{}_1 & A^1{}_2 & \cdots & A^1{}_N \\ | |
| A^2{}_1 & A^2{}_2 & \cdots & A^2{}_N \\ | | A^2{}_1 & A^2{}_2 & \cdots & A^2{}_N \\ | |
| \vdots & \vdots & \ddots & \vdots \\ | | \vdots & \vdots & \ddots & \vdots \\ | |
| A^M{}_1 & A^M{}_2 & \cdots & A^M{}_N | | A^M{}_1 & A^M{}_2 & \cdots & A^M{}_N | |
| \end{array}\right] \;, | | \end{array}\right] \;, | |
|
| \end{equation} | | \f} | |
| that is, the first (raised) index represents the row number and the | | that is, the first (raised) index represents the row number and the | |
| second (lowered) index the column number. The standard C array | | second (lowered) index the column number. The standard C array | |
|
| structure declares this object as, say, \verb@float a[M][N]@, where | | structure declares this object as, say, <tt>float a[M][N]</tt>, where | |
| the element $A^i{}_j$ is stored in \verb@a[i][j]@. The LAL array | | the element \f$A^i{}_j\f$ is stored in <tt>a[i][j]</tt>. The LAL array | |
| structure \verb@REAL4Array a@ stores data in a flattened block of | | structure <tt>REAL4Array a</tt> stores data in a flattened block of | |
| memory, where the element $A^i{}_j$ is stored in \verb@a.data[i*M+j]@. | | memory, where the element \f$A^i{}_j\f$ is stored in <tt>a.data[i*M+j]</tt> | |
| | | . | |
| | | | |
|
| A \emph{row vector} is a matrix with only one row ($M=1$). In the | | A <em>row vector</em> is a matrix with only one row (\f$M=1\f$). In the | |
| above place-index notation, it is represented with a single lowered | | above place-index notation, it is represented with a single lowered | |
| index: | | index: | |
|
| \begin{equation} | | \f{equation}{ | |
| \mathsf{r}_a = \left[\begin{array}{cccc} r_1 & r_2 & \cdots & r_N | | \mathsf{r}_a = \left[\begin{array}{cccc} r_1 & r_2 & \cdots & r_N | |
| \end{array}\right] \;. | | \end{array}\right] \;. | |
|
| \end{equation} | | \f} | |
| A \emph{column vector} is a matrix with only one column ($N=1$). In | | A <em>column vector</em> is a matrix with only one column (\f$N=1\f$). In | |
| the above place-index notation, it is represented with a single raised | | the above place-index notation, it is represented with a single raised | |
| index: | | index: | |
|
| \begin{equation} | | \f{equation}{ | |
| \mathsf{c}^a = \left[\begin{array}{c} c^1 \\ c^2 \\ \vdots \\ c^M | | \mathsf{c}^a = \left[\begin{array}{c} c^1 \\ c^2 \\ \vdots \\ c^M | |
| \end{array}\right] \;. | | \end{array}\right] \;. | |
|
| \end{equation} | | \f} | |
| In LAL, both of these objects are conventionally represented as a LAL | | In LAL, both of these objects are conventionally represented as a LAL | |
| vector structure. Whether the object is to be used as a row or column | | vector structure. Whether the object is to be used as a row or column | |
| vector must be determined from context; it is not specified by the | | vector must be determined from context; it is not specified by the | |
| datatype. | | datatype. | |
| | | | |
|
| \subsubsection*{Properties} | | \section TODOref Properties | |
| | | | |
| The basic matrix operations are addition, scalar multiplication, and | | The basic matrix operations are addition, scalar multiplication, and | |
| vector multiplication. We assume the reader is familiar with these. | | vector multiplication. We assume the reader is familiar with these. | |
| In addition, we will refer to the following unary operations on | | In addition, we will refer to the following unary operations on | |
|
| \emph{square} matrices: | | \e square matrices: | |
| | | | |
|
| \textit{Inversion:} The inverse $(\mathsf{A}^{-1}){}^a{}_b$ of a | | \e Inversion: The inverse \f$(\mathsf{A}^{-1}){}^a{}_b\f$ of a | |
| matrix $\mathsf{A}^a{}_b$ is one such that their matrix product is the | | matrix \f$\mathsf{A}^a{}_b\f$ is one such that their matrix product is the | |
| identity matrix $\bd^a{}_b$ (whose elements $\delta^i{}_j$ are just | | identity matrix \f$\bd^a{}_b\f$ (whose elements \f$\delta^i{}_j\f$ are just | |
| the Kr\"onecker delta function). | | the Kr\"onecker delta function). | |
| | | | |
|
| \textit{Transposition:} The transpose $(\mathsf{A}^T){}^a{}_b$ of a | | \e Transposition: The transpose \f$(\mathsf{A}^T){}^a{}_b\f$ of a | |
| matrix $\mathsf{A}^a{}_b$ is given by interchanging the indecies on | | matrix \f$\mathsf{A}^a{}_b\f$ is given by interchanging the indecies on | |
| each component: $(A^T){}^i{}_j=A^j{}_i$. | | each component: \f$(A^T){}^i{}_j=A^j{}_i\f$. | |
| | | | |
|
| \textit{Conjugation:} The Hermitian conjugate (adjoint) | | \e Conjugation: The Hermitian conjugate (adjoint) | |
| $(\mathsf{A}^\dag){}^a{}_b$ of a matrix $\mathsf{A}^a{}_b$ is given by | | \f$(\mathsf{A}^\dag){}^a{}_b\f$ of a matrix \f$\mathsf{A}^a{}_b\f$ is given | |
| | | by | |
| interchanging the indecies and taking the complex conjugate of each | | interchanging the indecies and taking the complex conjugate of each | |
|
| component: $(A^\dag){}^i{}_j={A^j{}_i}^*$. | | component: \f$(A^\dag){}^i{}_j={A^j{}_i}^*\f$. | |
| | | | |
| A matrix that is identical to its own transpose is called | | A matrix that is identical to its own transpose is called | |
|
| \emph{symmetric}. A matrix whose transpose is identical to the | | \e symmetric. A matrix whose transpose is identical to the | |
| original matrix's inverse is called \emph{orthogonal}. A matrix that | | original matrix's inverse is called \e orthogonal. A matrix that | |
| is identical to its own Hermitian conjugate is called \emph{Hermitian} | | is identical to its own Hermitian conjugate is called \e Hermitian | |
| (or \emph{self-adjoint}. A matrix whose Hermitian conjugate is | | (or <em>self-adjoint</em>. A matrix whose Hermitian conjugate is | |
| identical to the original matrix's inverse is called \emph{unitary}. | | identical to the original matrix's inverse is called \e unitary. | |
| | | | |
|
| At present, the routines under this header only deal with \emph{real} | | At present, the routines under this header only deal with \e real | |
| matrices (i.e.\ matrices, vectors, and scalars whose components are | | matrices (i.e.\ matrices, vectors, and scalars whose components are | |
| all real). In this case, symmetric is equivalent to Hermitian, and | | all real). In this case, symmetric is equivalent to Hermitian, and | |
| orthogonal is equivalent to unitary. | | orthogonal is equivalent to unitary. | |
| | | | |
| %" | | %" | |
| | | | |
|
| ******************************************************* </lalLaTeX> */ | | */ | |
| | | | |
| #ifndef _MATRIXUTILS_H | | #ifndef _MATRIXUTILS_H | |
| #define _MATRIXUTILS_H | | #define _MATRIXUTILS_H | |
| | | | |
| #include <lal/LALStdlib.h> | | #include <lal/LALStdlib.h> | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| | | | |
| NRCSID( MATRIXUTILSH, "$Id$" ); | | NRCSID( MATRIXUTILSH, "$Id$" ); | |
| | | | |
|
| /********************************************************** <lalLaTeX> | | /** \name Error Codes */ /*@{*/ | |
| \subsection*{Error conditions} | | | |
| ****************************************** </lalLaTeX><lalErrTable> */ | | | |
| #define MATRIXUTILSH_ENUL 1 | | #define MATRIXUTILSH_ENUL 1 | |
| #define MATRIXUTILSH_EDIM 2 | | #define MATRIXUTILSH_EDIM 2 | |
| #define MATRIXUTILSH_EITER 3 | | #define MATRIXUTILSH_EITER 3 | |
| #define MATRIXUTILSH_ESING 4 | | #define MATRIXUTILSH_ESING 4 | |
| #define MATRIXUTILSH_EMEM 5 | | #define MATRIXUTILSH_EMEM 5 | |
| | | | |
| #define MATRIXUTILSH_MSGENUL "Unexpected null pointer in arguments" | | #define MATRIXUTILSH_MSGENUL "Unexpected null pointer in arguments" | |
| #define MATRIXUTILSH_MSGEDIM "Bad matrix dimensions" | | #define MATRIXUTILSH_MSGEDIM "Bad matrix dimensions" | |
| #define MATRIXUTILSH_MSGEITER "Did not converge after maximum iterations" | | #define MATRIXUTILSH_MSGEITER "Did not converge after maximum iterations" | |
| #define MATRIXUTILSH_MSGESING "Singular matrix" | | #define MATRIXUTILSH_MSGESING "Singular matrix" | |
| #define MATRIXUTILSH_MSGEMEM "Memory allocation error" | | #define MATRIXUTILSH_MSGEMEM "Memory allocation error" | |
|
| /*************************************************** </lalErrTable> */ | | /*@}*/ | |
| | | | |
| /* <lalLaTeX> | | | |
| \vfill{\footnotesize\input{MatrixUtilsHV}} | | | |
| </lalLaTeX> */ | | | |
| | | | |
| /* Function prototypes. */ | | /* Function prototypes. */ | |
| | | | |
|
| /* <lalLaTeX> | | | |
| \newpage\input{MatrixOpsC} | | | |
| </lalLaTeX> */ | | | |
| | | | |
| void | | void | |
| LALI2MatrixAdd( LALStatus *, INT2Array *out, INT2Array *in1, INT2Array *in2
); | | LALI2MatrixAdd( LALStatus *, INT2Array *out, INT2Array *in1, INT2Array *in2
); | |
| void | | void | |
| LALI4MatrixAdd( LALStatus *, INT4Array *out, INT4Array *in1, INT4Array *in2
); | | LALI4MatrixAdd( LALStatus *, INT4Array *out, INT4Array *in1, INT4Array *in2
); | |
| void | | void | |
| LALI8MatrixAdd( LALStatus *, INT8Array *out, INT8Array *in1, INT8Array *in2
); | | LALI8MatrixAdd( LALStatus *, INT8Array *out, INT8Array *in1, INT8Array *in2
); | |
| void | | void | |
| LALU2MatrixAdd( LALStatus *, UINT2Array *out, UINT2Array *in1, UINT2Array *
in2 ); | | LALU2MatrixAdd( LALStatus *, UINT2Array *out, UINT2Array *in1, UINT2Array *
in2 ); | |
| void | | void | |
| LALU4MatrixAdd( LALStatus *, UINT4Array *out, UINT4Array *in1, UINT4Array *
in2 ); | | LALU4MatrixAdd( LALStatus *, UINT4Array *out, UINT4Array *in1, UINT4Array *
in2 ); | |
| | | | |
| skipping to change at line 229 | | skipping to change at line 211 | |
| void | | void | |
| LALCMatrixTranspose( LALStatus *, COMPLEX8Array *out, COMPLEX8Array *in1 ); | | LALCMatrixTranspose( LALStatus *, COMPLEX8Array *out, COMPLEX8Array *in1 ); | |
| void | | void | |
| LALZMatrixTranspose( LALStatus *, COMPLEX16Array *out, COMPLEX16Array *in1
); | | LALZMatrixTranspose( LALStatus *, COMPLEX16Array *out, COMPLEX16Array *in1
); | |
| | | | |
| void | | void | |
| LALCMatrixAdjoint( LALStatus *, COMPLEX8Array *out, COMPLEX8Array *in1 ); | | LALCMatrixAdjoint( LALStatus *, COMPLEX8Array *out, COMPLEX8Array *in1 ); | |
| void | | void | |
| LALZMatrixAdjoint( LALStatus *, COMPLEX16Array *out, COMPLEX16Array *in1 ); | | LALZMatrixAdjoint( LALStatus *, COMPLEX16Array *out, COMPLEX16Array *in1 ); | |
| | | | |
|
| /* <lalLaTeX> | | | |
| \newpage\input{DetInverseC} | | | |
| </lalLaTeX> */ | | | |
| void | | void | |
| LALSMatrixDeterminant( LALStatus *, REAL4 *det, REAL4Array *matrix ); | | LALSMatrixDeterminant( LALStatus *, REAL4 *det, REAL4Array *matrix ); | |
| | | | |
| void | | void | |
| LALSMatrixInverse( LALStatus *, REAL4 *det, REAL4Array *matrix, REAL4Array
*inverse ); | | LALSMatrixInverse( LALStatus *, REAL4 *det, REAL4Array *matrix, REAL4Array
*inverse ); | |
| | | | |
| void | | void | |
| LALSMatrixDeterminantErr( LALStatus *, REAL4 det[2], REAL4Array *matrix, RE
AL4Array *matrixErr ); | | LALSMatrixDeterminantErr( LALStatus *, REAL4 det[2], REAL4Array *matrix, RE
AL4Array *matrixErr ); | |
| | | | |
| void | | void | |
| LALDMatrixDeterminant( LALStatus *, REAL8 *det, REAL8Array *matrix ); | | LALDMatrixDeterminant( LALStatus *, REAL8 *det, REAL8Array *matrix ); | |
| | | | |
| void | | void | |
| LALDMatrixInverse( LALStatus *, REAL8 *det, REAL8Array *matrix, REAL8Array
*inverse ); | | LALDMatrixInverse( LALStatus *, REAL8 *det, REAL8Array *matrix, REAL8Array
*inverse ); | |
| | | | |
| void | | void | |
| LALDMatrixDeterminantErr( LALStatus *, REAL8 det[2], REAL8Array *matrix, RE
AL8Array *matrixErr ); | | LALDMatrixDeterminantErr( LALStatus *, REAL8 det[2], REAL8Array *matrix, RE
AL8Array *matrixErr ); | |
| | | | |
|
| /* <lalLaTeX> | | | |
| \newpage\input{DetInverseInternalC} | | | |
| </lalLaTeX> */ | | | |
| void | | void | |
| LALSLUDecomp( LALStatus *, | | LALSLUDecomp( LALStatus *, | |
| INT2 *sgn, | | INT2 *sgn, | |
| REAL4Array *matrix, | | REAL4Array *matrix, | |
| UINT4Vector *indx ); | | UINT4Vector *indx ); | |
| | | | |
| void | | void | |
| LALSLUBackSub( LALStatus *, | | LALSLUBackSub( LALStatus *, | |
| REAL4Vector *vector, | | REAL4Vector *vector, | |
| REAL4Array *matrix, | | REAL4Array *matrix, | |
| | | | |
| skipping to change at line 277 | | skipping to change at line 253 | |
| INT2 *sgn, | | INT2 *sgn, | |
| REAL8Array *matrix, | | REAL8Array *matrix, | |
| UINT4Vector *indx ); | | UINT4Vector *indx ); | |
| | | | |
| void | | void | |
| LALDLUBackSub( LALStatus *, | | LALDLUBackSub( LALStatus *, | |
| REAL8Vector *vector, | | REAL8Vector *vector, | |
| REAL8Array *matrix, | | REAL8Array *matrix, | |
| UINT4Vector *indx ); | | UINT4Vector *indx ); | |
| | | | |
|
| /* <lalLaTeX> | | | |
| \newpage\input{DetInverseTestC} | | | |
| </lalLaTeX> */ | | | |
| | | | |
| /* <lalLaTeX> | | | |
| \newpage\input{EigenC} | | | |
| </lalLaTeX> */ | | | |
| void | | void | |
| LALSSymmetricEigenVectors( LALStatus *, REAL4Vector *values, REAL4Array *ma
trix ); | | LALSSymmetricEigenVectors( LALStatus *, REAL4Vector *values, REAL4Array *ma
trix ); | |
| | | | |
| void | | void | |
| LALSSymmetricEigenValues( LALStatus *, REAL4Vector *values, REAL4Array *mat
rix ); | | LALSSymmetricEigenValues( LALStatus *, REAL4Vector *values, REAL4Array *mat
rix ); | |
| | | | |
| void | | void | |
| LALDSymmetricEigenVectors( LALStatus *, REAL8Vector *values, REAL8Array *ma
trix ); | | LALDSymmetricEigenVectors( LALStatus *, REAL8Vector *values, REAL8Array *ma
trix ); | |
| | | | |
| void | | void | |
| LALDSymmetricEigenValues( LALStatus *, REAL8Vector *values, REAL8Array *mat
rix ); | | LALDSymmetricEigenValues( LALStatus *, REAL8Vector *values, REAL8Array *mat
rix ); | |
| | | | |
|
| /* <lalLaTeX> | | | |
| \newpage\input{EigenInternalC} | | | |
| </lalLaTeX> */ | | | |
| void | | void | |
| LALSSymmetricToTriDiagonal( LALStatus *, | | LALSSymmetricToTriDiagonal( LALStatus *, | |
| REAL4Vector *diag, | | REAL4Vector *diag, | |
| REAL4Array *matrix, | | REAL4Array *matrix, | |
| REAL4Vector *offDiag ); | | REAL4Vector *offDiag ); | |
| | | | |
| void | | void | |
| LALSSymmetricToTriDiagonal2( LALStatus *, | | LALSSymmetricToTriDiagonal2( LALStatus *, | |
| REAL4Vector *diag, | | REAL4Vector *diag, | |
| REAL4Array *matrix, | | REAL4Array *matrix, | |
| | | | |
| skipping to change at line 347 | | skipping to change at line 313 | |
| REAL8Vector *diag, | | REAL8Vector *diag, | |
| REAL8Array *matrix, | | REAL8Array *matrix, | |
| REAL8Vector *offDiag ); | | REAL8Vector *offDiag ); | |
| | | | |
| void | | void | |
| LALDTriDiagonalToDiagonal2( LALStatus *, | | LALDTriDiagonalToDiagonal2( LALStatus *, | |
| REAL8Vector *diag, | | REAL8Vector *diag, | |
| REAL8Array *matrix, | | REAL8Array *matrix, | |
| REAL8Vector *offDiag ); | | REAL8Vector *offDiag ); | |
| | | | |
|
| /* <lalLaTeX> | | | |
| \newpage\input{EigenTestC} | | | |
| </lalLaTeX> */ | | | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| #endif /* _MATRIXUTILS_H */ | | #endif /* _MATRIXUTILS_H */ | |
| | | | |
End of changes. 32 change blocks. |
| 82 lines changed or deleted | | 46 lines changed or added | |
|
| RealFFT.h | | RealFFT.h | |
| | | | |
| skipping to change at line 20 | | skipping to change at line 20 | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | | * GNU General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with with program; see the file COPYING. If not, write to the | | * along with with program; see the file COPYING. If not, write to the | |
| * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | | * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | |
| * MA 02111-1307 USA | | * MA 02111-1307 USA | |
| */ | | */ | |
| | | | |
|
| /**** <lalVerbatim file="RealFFTHV"> | | | |
| * $Id$ | | | |
| **** </lalVerbatim> */ | | | |
| | | | |
| /**** <lalLaTeX> | | | |
| * | | | |
| * \section{Header \texttt{RealFFT.h}} | | | |
| * \label{s:RealFFT.h} | | | |
| * | | | |
| * Performs real-to-complex and complex-to-real FFTs. | | | |
| * | | | |
| * \subsection*{Synopsis} | | | |
| * \begin{verbatim} | | | |
| * #include <lal/RealFFT.h> | | | |
| * \end{verbatim} | | | |
| * | | | |
| * \noindent Perform real-to-complex and complex-to-real fast Fourier | | | |
| * transforms of vectors, and sequences of vectors using the package | | | |
| * FFTW~\cite{fj:1998}. | | | |
| * | | | |
| **** </lalLaTeX> */ | | | |
| | | | |
| #ifndef _REALFFT_H | | #ifndef _REALFFT_H | |
| #define _REALFFT_H | | #define _REALFFT_H | |
| | | | |
| #include <lal/LALDatatypes.h> | | #include <lal/LALDatatypes.h> | |
| | | | |
|
| #ifdef __cplusplus | | #if defined(__cplusplus) | |
| extern "C" { | | extern "C" { | |
|
| #pragma } | | #elif 0 | |
| | | } /* so that editors will match preceding brace */ | |
| #endif | | #endif | |
| | | | |
|
| NRCSID( REALFFTH, "$Id$" ); | | #ifdef __cplusplus | |
| | | #ifdef __GNUC__ | |
| /**** <lalLaTeX> | | #define RESTRICT __restrict__ | |
| * \subsection*{Error conditions} | | #else | |
| **** </lalLaTeX> */ | | #define RESTRICT | |
| /**** <lalErrTable> */ | | #endif | |
| | | #else | |
| #define REALFFTH_ENULL 1 | | #define RESTRICT restrict | |
| #define REALFFTH_ENNUL 2 | | #endif | |
| #define REALFFTH_ESIZE 4 | | | |
| #define REALFFTH_ESZMM 8 | | | |
| #define REALFFTH_ESLEN 16 | | | |
| #define REALFFTH_ESAME 32 | | | |
| #define REALFFTH_ESIGN 64 | | | |
| #define REALFFTH_EDATA 128 | | | |
| #define REALFFTH_EALOC 256 | | | |
| #define REALFFTH_EFFTW 512 | | | |
| #define REALFFTH_ESNGL 1024 | | | |
| #define REALFFTH_EINTL 2048 | | | |
| | | | |
|
| #define REALFFTH_MSGENULL "Null pointer" | | NRCSID( REALFFTH, "$Id$" ); | |
| #define REALFFTH_MSGENNUL "Non-null pointer" | | | |
| #define REALFFTH_MSGESIZE "Invalid input size" | | | |
| #define REALFFTH_MSGESZMM "Size mismatch" | | | |
| #define REALFFTH_MSGESLEN "Invalid/mismatched sequence lengths" | | | |
| #define REALFFTH_MSGESAME "Input/Output data vectors are the same" | | | |
| #define REALFFTH_MSGESIGN "Incorrect plan sign" | | | |
| #define REALFFTH_MSGEDATA "Bad input data: DC/Nyquist should be real" | | | |
| #define REALFFTH_MSGEALOC "Memory allocation failed" | | | |
| #define REALFFTH_MSGEFFTW "Error in FFTW" | | | |
| #define REALFFTH_MSGESNGL "FFTW library is not single-precision" | | | |
| #define REALFFTH_MSGEINTL "Error in Intel FFT library" | | | |
| | | | |
|
| /**** </lalErrTable> */ | | | |
| /**** <lalLaTeX> | | | |
| * | | | |
| * \subsection*{Structures} | | | |
| * | | | |
| **** </lalLaTeX> */ | | | |
| /**** <lalVerbatim> */ | | | |
| /** Plan to perform FFT of REAL4 data */ | | /** Plan to perform FFT of REAL4 data */ | |
| typedef struct tagREAL4FFTPlan REAL4FFTPlan; | | typedef struct tagREAL4FFTPlan REAL4FFTPlan; | |
| /** Plan to perform FFT of REAL8 data */ | | /** Plan to perform FFT of REAL8 data */ | |
| typedef struct tagREAL8FFTPlan REAL8FFTPlan; | | typedef struct tagREAL8FFTPlan REAL8FFTPlan; | |
| #define tagRealFFTPlan tagREAL4FFTPlan | | #define tagRealFFTPlan tagREAL4FFTPlan | |
| #define RealFFTPlan REAL4FFTPlan | | #define RealFFTPlan REAL4FFTPlan | |
|
| /**** </lalVerbatim> */ | | | |
| /**** <lalLaTeX> | | /** | |
| * | | * | |
|
| * This structure contains the parameters necessary for performing an FFT o | | * \addtogroup RealFFT_h | |
| f a | | * \brief Performs real-to-complex and complex-to-real FFTs. | |
| * given size and direction. The contents should not be manually adjusted. | | | |
| * | | * | |
|
| * \newpage\input{RealFFTC} | | * \heading{Synopsis} | |
| | | * \code | |
| | | * #include <lal/RealFFT.h> | |
| | | * \endcode | |
| * | | * | |
|
| * \newpage\subsection{XLAL Functions} | | * Perform real-to-complex and complex-to-real fast Fourier | |
| | | * transforms of vectors, and sequences of vectors using the package | |
| | | * FFTW [\ref fj_1998]. | |
| * | | * | |
|
| * \subsubsection*{Synopsis} | | * | |
| * \begin{verbatim} | | * \section sec_RealFFT_XLAL XLAL Functions | |
| | | * | |
| | | * \heading{Synopsis} | |
| | | * \code | |
| * #include <lal/RealFFT.h> | | * #include <lal/RealFFT.h> | |
| * | | * | |
| * REAL4FFTPlan * XLALCreateREAL4FFTPlan( UINT4 size, int fwdflg, int measu
relvl ); | | * REAL4FFTPlan * XLALCreateREAL4FFTPlan( UINT4 size, int fwdflg, int measu
relvl ); | |
| * REAL4FFTPlan * XLALCreateForwardREAL4FFTPlan( UINT4 size, int measurelvl
); | | * REAL4FFTPlan * XLALCreateForwardREAL4FFTPlan( UINT4 size, int measurelvl
); | |
| * REAL4FFTPlan * XLALCreateReverseREAL4FFTPlan( UINT4 size, int measurelvl
); | | * REAL4FFTPlan * XLALCreateReverseREAL4FFTPlan( UINT4 size, int measurelvl
); | |
| * void XLALDestroyREAL4FFTPlan( REAL4FFTPlan *plan ); | | * void XLALDestroyREAL4FFTPlan( REAL4FFTPlan *plan ); | |
| * | | * | |
|
| * int XLALREAL4ForwardFFT( COMPLEX8Vector *output, REAL4Vector *input, | | * int XLALREAL4ForwardFFT( COMPLEX8Vector *output, REAL4Vector *input, REA | |
| * REAL4FFTPlan *plan ); | | L4FFTPlan *plan ); | |
| * int XLALREAL4ReverseFFT( REAL4Vector *output, COMPLEX8Vector *input, | | * int XLALREAL4ReverseFFT( REAL4Vector *output, COMPLEX8Vector *input, REA | |
| * REAL4FFTPlan *plan ); | | L4FFTPlan *plan ); | |
| * int XLALREAL4VectorFFT( REAL4Vector *output, REAL4Vector *input, | | * int XLALREAL4VectorFFT( REAL4Vector *output, REAL4Vector *input, REAL4FF | |
| * REAL4FFTPlan *plan ); | | TPlan *plan ); | |
| * int XLALREAL4PowerSpectrum( REAL4Vector *spec, REAL4Vector *data, | | * int XLALREAL4PowerSpectrum( REAL4Vector *spec, REAL4Vector *data, REAL4F | |
| * REAL4FFTPlan *plan ); | | FTPlan *plan ); | |
| * | | * | |
| * REAL8FFTPlan * XLALCreateREAL8FFTPlan( UINT4 size, int fwdflg, int measu
relvl ); | | * REAL8FFTPlan * XLALCreateREAL8FFTPlan( UINT4 size, int fwdflg, int measu
relvl ); | |
| * REAL8FFTPlan * XLALCreateForwardREAL8FFTPlan( UINT4 size, int measurelvl
); | | * REAL8FFTPlan * XLALCreateForwardREAL8FFTPlan( UINT4 size, int measurelvl
); | |
| * REAL8FFTPlan * XLALCreateReverseREAL8FFTPlan( UINT4 size, int measurelvl
); | | * REAL8FFTPlan * XLALCreateReverseREAL8FFTPlan( UINT4 size, int measurelvl
); | |
| * void XLALDestroyREAL8FFTPlan( REAL8FFTPlan *plan ); | | * void XLALDestroyREAL8FFTPlan( REAL8FFTPlan *plan ); | |
| * | | * | |
|
| * int XLALREAL8ForwardFFT( COMPLEX16Vector *output, REAL8Vector *input, | | * int XLALREAL8ForwardFFT( COMPLEX16Vector *output, REAL8Vector *input, RE | |
| * REAL8FFTPlan *plan ); | | AL8FFTPlan *plan ); | |
| * int XLALREAL8ReverseFFT( REAL8Vector *output, COMPLEX16Vector *input, | | * int XLALREAL8ReverseFFT( REAL8Vector *output, COMPLEX16Vector *input, RE | |
| * REAL8FFTPlan *plan ); | | AL8FFTPlan *plan ); | |
| * int XLALREAL8VectorFFT( REAL8Vector *output, REAL8Vector *input, | | * int XLALREAL8VectorFFT( REAL8Vector *output, REAL8Vector *input, REAL8FF | |
| * REAL8FFTPlan *plan ); | | TPlan *plan ); | |
| * int XLALREAL8PowerSpectrum( REAL8Vector *spec, REAL8Vector *data, | | * int XLALREAL8PowerSpectrum( REAL8Vector *spec, REAL8Vector *data, REAL8F | |
| * REAL8FFTPlan *plan ); | | FTPlan *plan ); | |
| * \end{verbatim} | | * \endcode | |
| * \idx{XLALCreateREAL4FFTPlan} | | | |
| * \idx{XLALCreateForwardREAL4FFTPlan} | | | |
| * \idx{XLALCreateReverseREAL4FFTPlan} | | | |
| * \idx{XLALDestroyREAL4FFTPlan} | | | |
| * \idx{XLALREAL4ForwardFFT} | | | |
| * \idx{XLALREAL4ReverseFFT} | | | |
| * \idx{XLALREAL4VectorFFT} | | | |
| * \idx{XLALREAL4PowerSpectrum} | | | |
| * \idx{XLALCreateREAL8FFTPlan} | | | |
| * \idx{XLALCreateForwardREAL8FFTPlan} | | | |
| * \idx{XLALCreateReverseREAL8FFTPlan} | | | |
| * \idx{XLALDestroyREAL8FFTPlan} | | | |
| * \idx{XLALREAL8ForwardFFT} | | | |
| * \idx{XLALREAL8ReverseFFT} | | | |
| * \idx{XLALREAL8VectorFFT} | | | |
| * \idx{XLALREAL8PowerSpectrum} | | | |
| * | | * | |
|
| * \subsubsection*{Description} | | * \heading{Description} | |
| * | | * | |
|
| * The \verb+REAL4+ routines are described below. These use single-precisi | | * The \c REAL4 routines are described below. These use single-precision | |
| on | | * FFTs, i.e., they convert \c REAL4Vectors into \c COMPLEX8Vectors | |
| * FFTs, i.e., they convert \verb+REAL4Vector+s into \verb+COMPLEX8Vector+s | | * and vice-versa. The \c REAL8 versions of the routines are the same | |
| * and vice-versa. The \verb+REAL8+ versions of the routines are the same | | | |
| * but they are double-precision versions, i.e., they convert | | * but they are double-precision versions, i.e., they convert | |
|
| * \verb+REAL8Vector+s into \verb+COMPLEX16Vector+s. | | * \c REAL8Vectors into \c COMPLEX16Vectors. | |
| * | | * | |
|
| * The routine \verb+XLALCreateREAL4FFTPlan+ creates a \verb+REAL4FFTPlan+ | | * The routine XLALCreateREAL4FFTPlan() creates a ::REAL4FFTPlan | |
| * structure to perform FFTs of vectors of length \verb+size+. If | | * structure to perform FFTs of vectors of length \c size. If | |
| * \verb+fwdflg+ is non-zero then the plan is created to perform forward | | * \c fwdflg is non-zero then the plan is created to perform forward | |
| * (real-to-complex) FFTs with a negative exponential sign. Otherwise | | * (real-to-complex) FFTs with a negative exponential sign. Otherwise | |
| * the plan is created to perform reverse (complex-to-real) FFTs with a | | * the plan is created to perform reverse (complex-to-real) FFTs with a | |
|
| * positive exponential sign. The value of \verb+measurelvl+ determines | | * positive exponential sign. The value of \c measurelvl determines | |
| * how much optimization of the plan FFTW will do with the most optimizatio
n | | * how much optimization of the plan FFTW will do with the most optimizatio
n | |
|
| * taking the most amount of time. Reasonable values for \verb+measurelvl+ | | * taking the most amount of time. Reasonable values for \c measurelvl | |
| * would be 0 for the fasted plan creation (FFTW does not measure the speed | | * would be 0 for the fasted plan creation (FFTW does not measure the speed | |
| * of any transform with this level but rather estimates which plan will | | * of any transform with this level but rather estimates which plan will | |
| * be the fastet) or 1 to measure a few likely plans to determine the faste
st. | | * be the fastet) or 1 to measure a few likely plans to determine the faste
st. | |
| * | | * | |
|
| * \verb+XLALCreateForwardREAL4FFTPlan+ is equivalent to | | * XLALCreateForwardREAL4FFTPlan() is equivalent to | |
| * \verb+XLALCreateREAL4FFTPlan+ with \verb+fwdflg+ set to 1. | | * XLALCreateREAL4FFTPlan() with \c fwdflg set to 1. | |
| * \verb+XLALCreateReverseREAL4FFTPlan+ is equivalent to | | * XLALCreateReverseREAL4FFTPlan() is equivalent to | |
| * \verb+XLALCreateREAL4FFTPlan+ with \verb+fwdflg+ set to 0. | | * XLALCreateREAL4FFTPlan() with \c fwdflg set to 0. | |
| * | | * | |
|
| * \verb+XLALDestroyREAL4FFTPlan+ is used to destroy the plan, freeing all | | * XLALDestroyREAL4FFTPlan() is used to destroy the plan, freeing all | |
| * memory that was allocated in the structure as well as the structure | | * memory that was allocated in the structure as well as the structure | |
| * itself. It can be used on either forward or reverse plans. | | * itself. It can be used on either forward or reverse plans. | |
| * | | * | |
|
| * \verb+XLALREAL4ForwardFFT+ and | | * XLALREAL4ForwardFFT() and | |
| * \verb+XLALREAL4ReverseFFT+ perform forward (real to complex) and | | * XLALREAL4ReverseFFT() perform forward (real to complex) and | |
| * reverse (complex to real) transforms respectively. The plan supplied | | * reverse (complex to real) transforms respectively. The plan supplied | |
| * to these routines must be correctly generated for the direction of the | | * to these routines must be correctly generated for the direction of the | |
|
| * transform. I.e., \verb+XLALREAL4ForwardFFT+ cannot be supplied with | | * transform. I.e., XLALREAL4ForwardFFT() cannot be supplied with | |
| * a plan generated by \verb+XLALCreateReverseREAL4FFTPlan+. | | * a plan generated by XLALCreateReverseREAL4FFTPlan(). | |
| * | | * | |
|
| * \verb+XLALREAL4VectorFFT+ is a low-level routine that transforms | | * XLALREAL4VectorFFT() is a low-level routine that transforms | |
| * a real vector to a half-complex real vector (with a forward plan) or | | * a real vector to a half-complex real vector (with a forward plan) or | |
| * a half-complex real vector to a real vector (with a reverse plan). | | * a half-complex real vector to a real vector (with a reverse plan). | |
| * If you're not sure what this means, don't use this routine. | | * If you're not sure what this means, don't use this routine. | |
| * The input and output vectors (and their data) must be distinct pointers. | | * The input and output vectors (and their data) must be distinct pointers. | |
| * | | * | |
|
| * \verb+XLALREAL4PowerSpectrum+ computes a real power spectrum of the | | * XLALREAL4PowerSpectrum() computes a real power spectrum of the | |
| * input real vector and a forward FFT plan. | | * input real vector and a forward FFT plan. | |
| * | | * | |
|
| * \subsubsection*{Return Values} | | * \heading{Return Values} | |
| * | | * | |
| * Upon success, | | * Upon success, | |
|
| * \verb+XLALCreateREAL4FFTPlan+, | | * XLALCreateREAL4FFTPlan(), | |
| * \verb+XLALCreateForwardREAL4FFTPlan+, and | | * XLALCreateForwardREAL4FFTPlan(), and | |
| * \verb+XLALCreateReverseREAL4FFTPlan+ return a pointer to a newly-allocat | | * XLALCreateReverseREAL4FFTPlan() return a pointer to a newly-allocated | |
| ed | | * FFT plan. Upon failure, they return a \c NULL pointer and set | |
| * FFT plan. Upon failure, they return a \verb+NULL+ pointer and set | | * \c xlalErrno to one of the following values: | |
| * \verb+xlalErrno+ to one of the following values: | | * #XLAL_EBADLEN if \c size is not greater than zero, | |
| * \verb+XLAL_EBADLEN+ if \verb+size+ is not greater than zero, | | * #XLAL_ENOMEM if a memory allocation failed, or | |
| * \verb+XLAL_ENOMEM+ if a memory allocation failed, or | | * #XLAL_EFAILED if the FFTW plan creation routine failed. | |
| * \verb+XLAL_EFAILED+ if the FFTW plan creation routine failed. | | | |
| * | | * | |
|
| * \verb+XLALDestroyREAL4FFTPlan+ does not return any value but, upon | | * XLALDestroyREAL4FFTPlan() does not return any value but, upon | |
| * failure, it will set \verb+xlalErrno+ to one of the following values: | | * failure, it will set \c xlalErrno to one of the following values: | |
| * \verb+XLAL_EFAULT+ if the routine is provided a \verb+NULL+ pointer, or | | * #XLAL_EFAULT if the routine is provided a \c NULL pointer, or | |
| * \verb+XLAL_EINVAL+ if the contents of the plan are invalid (e.g., if the | | * #XLAL_EINVAL if the contents of the plan are invalid (e.g., if the | |
| * routine is provided a plan that had been previously destroyed). | | * routine is provided a plan that had been previously destroyed). | |
| * | | * | |
|
| * \verb+XLALREAL4ForwardFFT+, | | * XLALREAL4ForwardFFT(), | |
| * \verb+XLALREAL4ReverseFFT+, | | * XLALREAL4ReverseFFT(), | |
| * \verb+XLALREAL4VectorFFT+, and | | * XLALREAL4VectorFFT(), and | |
| * \verb+XLALREAL4PowerSpectrum+ return the value 0 upon succes; upon | | * XLALREAL4PowerSpectrum() return the value 0 upon succes; upon | |
| * failure they return \verb+XLAL_FAILURE+ and set \verb+xlalErrno+ to | | * failure they return #XLAL_FAILURE and set xlalErrno to | |
| * one of the following values: | | * one of the following values: | |
|
| * \verb+XLAL_EFAULT+ if one of the input pointers is \verb+NULL+, | | * #XLAL_EFAULT if one of the input pointers is \c NULL, | |
| * \verb+XLAL_EINVAL+ if the input, output, or plan structures appears | | * #XLAL_EINVAL if the input, output, or plan structures appears | |
| * invalid or if the routine is passed a plan for the wrong transform | | * invalid or if the routine is passed a plan for the wrong transform | |
| * directions or if the input and output data pointers are not distinct | | * directions or if the input and output data pointers are not distinct | |
|
| * for \verb+XLALREAL4VectorFFT+, | | * for XLALREAL4VectorFFT(), | |
| * \verb+XLAL_EBADLEN+ if the input and output vectors and the plan have | | * #XLAL_EBADLEN if the input and output vectors and the plan have | |
| * incompatible lengths, | | * incompatible lengths, | |
|
| * \verb+XLAL_ENOMEM+ if a memory allocation of temporary internal memory | | * #XLAL_ENOMEM if a memory allocation of temporary internal memory | |
| * fails. | | * fails. | |
| * | | * | |
|
| * As before, the \verb+REAL8+ versions of these routines behave the | | * As before, the \c REAL8 versions of these routines behave the | |
| * same way but for double-precision transforms. | | * same way but for double-precision transforms. | |
| * | | * | |
|
| * \newpage\input{RealFFTTestC} | | */ | |
| **** </lalLaTeX> */ | | /*@{ */ | |
| | | /** \name Error Codes */ /*@{*/ | |
| | | #define REALFFTH_ENULL 1 /**< Null pointer */ | |
| | | #define REALFFTH_ENNUL 2 /**< Non-null pointer */ | |
| | | #define REALFFTH_ESIZE 4 /**< Invalid input size */ | |
| | | #define REALFFTH_ESZMM 8 /**< Size mismatch */ | |
| | | #define REALFFTH_ESLEN 16 /**< Invalid/mismatched sequence lengths */ | |
| | | #define REALFFTH_ESAME 32 /**< Input/Output data vectors are the same | |
| | | */ | |
| | | #define REALFFTH_ESIGN 64 /**< Incorrect plan sign */ | |
| | | #define REALFFTH_EDATA 128 /**< Bad input data: DC/Nyquist should be re | |
| | | al */ | |
| | | #define REALFFTH_EALOC 256 /**< Memory allocation failed */ | |
| | | #define REALFFTH_EFFTW 512 /**< Error in FFTW */ | |
| | | #define REALFFTH_ESNGL 1024 /**< FFTW library is not single-precision */ | |
| | | #define REALFFTH_EINTL 2048 /**< Error in Intel FFT library */ | |
| | | /*@}*/ | |
| | | /*@}*/ | |
| | | | |
| | | #define REALFFTH_MSGENULL "Null pointer" | |
| | | #define REALFFTH_MSGENNUL "Non-null pointer" | |
| | | #define REALFFTH_MSGESIZE "Invalid input size" | |
| | | #define REALFFTH_MSGESZMM "Size mismatch" | |
| | | #define REALFFTH_MSGESLEN "Invalid/mismatched sequence lengths" | |
| | | #define REALFFTH_MSGESAME "Input/Output data vectors are the same" | |
| | | #define REALFFTH_MSGESIGN "Incorrect plan sign" | |
| | | #define REALFFTH_MSGEDATA "Bad input data: DC/Nyquist should be real" | |
| | | #define REALFFTH_MSGEALOC "Memory allocation failed" | |
| | | #define REALFFTH_MSGEFFTW "Error in FFTW" | |
| | | #define REALFFTH_MSGESNGL "FFTW library is not single-precision" | |
| | | #define REALFFTH_MSGEINTL "Error in Intel FFT library" | |
| | | | |
| | | /** \addtogroup RealFFT_h */ | |
| | | /*@{ */ | |
| | | | |
| /* | | /* | |
| * | | * | |
| * XLAL REAL4 functions | | * XLAL REAL4 functions | |
| * | | * | |
| */ | | */ | |
| | | | |
| /** Returns a new REAL4FFTPlan | | /** Returns a new REAL4FFTPlan | |
| * | | * | |
| * A REAL4FFTPlan is required to perform a FFT that involves real data. | | * A REAL4FFTPlan is required to perform a FFT that involves real data. | |
| | | | |
| skipping to change at line 439 | | skipping to change at line 405 | |
| * @par Errors: | | * @par Errors: | |
| * The \c XLALREAL4VectorFFT() function shall fail if: | | * The \c XLALREAL4VectorFFT() function shall fail if: | |
| * - [\c XLAL_EFAULT] A \c NULL pointer is provided as one of the argument
s. | | * - [\c XLAL_EFAULT] A \c NULL pointer is provided as one of the argument
s. | |
| * - [\c XLAL_EINVAL] A argument is invalid or the plan is for a | | * - [\c XLAL_EINVAL] A argument is invalid or the plan is for a | |
| * reverse transform. | | * reverse transform. | |
| * - [\c XLAL_EBADLEN] The input vector, output vector, and plan size are | | * - [\c XLAL_EBADLEN] The input vector, output vector, and plan size are | |
| * incompatible. | | * incompatible. | |
| * - [\c XLAL_ENOMEM] Insufficient storage space is available. | | * - [\c XLAL_ENOMEM] Insufficient storage space is available. | |
| * . | | * . | |
| */ | | */ | |
|
| int XLALREAL4VectorFFT( REAL4Vector * restrict output, const REAL4Vector *
restrict input, | | int XLALREAL4VectorFFT( REAL4Vector * RESTRICT output, const REAL4Vector *
RESTRICT input, | |
| const REAL4FFTPlan *plan ); | | const REAL4FFTPlan *plan ); | |
| | | | |
| /** Computes the power spectrum of REAL4 data | | /** Computes the power spectrum of REAL4 data | |
| * | | * | |
| * This routine computes | | * This routine computes | |
| * \f[P[k]=\left\{\begin{array}{ll}|z[0]|^2&k=0\\2|z[k]|^2&1\leq \lfloor (N
+1)/2\rfloor\\|z[N/2]|^2&k=N/2,\;\mbox{$N$ even}\end{array}\right.\f] | | * \f[P[k]=\left\{\begin{array}{ll}|z[0]|^2&k=0\\2|z[k]|^2&1\leq \lfloor (N
+1)/2\rfloor\\|z[N/2]|^2&k=N/2,\;\mbox{$N$ even}\end{array}\right.\f] | |
| * where \f[z[k] = \sum_{j=0}^{N-1} e^{-2\pi ijk/N}\,x[j],\f] | | * where \f[z[k] = \sum_{j=0}^{N-1} e^{-2\pi ijk/N}\,x[j],\f] | |
| * and N is the length of the input vector x. | | * and N is the length of the input vector x. | |
| * | | * | |
| * @param[out] spec The real power spectrum P of length [N/2] + 1 of the da
ta x | | * @param[out] spec The real power spectrum P of length [N/2] + 1 of the da
ta x | |
| | | | |
| skipping to change at line 697 | | skipping to change at line 663 | |
| int XLALREAL8PowerSpectrum( REAL8Vector *spec, REAL8Vector *data, | | int XLALREAL8PowerSpectrum( REAL8Vector *spec, REAL8Vector *data, | |
| const REAL8FFTPlan *plan ); | | const REAL8FFTPlan *plan ); | |
| | | | |
| /* | | /* | |
| * | | * | |
| * LAL REAL4 functions | | * LAL REAL4 functions | |
| * | | * | |
| */ | | */ | |
| | | | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALCreateForwardREAL4FFTPlan instead. | | * @deprecated Use XLALCreateForwardREAL4FFTPlan() instead. | |
| * @see XLALCreateForwardREAL4FFTPlan | | | |
| */ | | */ | |
| void | | void | |
| LALCreateForwardREAL4FFTPlan( | | LALCreateForwardREAL4FFTPlan( | |
| LALStatus *status, | | LALStatus *status, | |
| REAL4FFTPlan **plan, | | REAL4FFTPlan **plan, | |
| UINT4 size, | | UINT4 size, | |
| INT4 measure | | INT4 measure | |
| ); | | ); | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALCreateForwardREAL4FFTPlan instead. | | * @deprecated Use XLALCreateForwardREAL4FFTPlan() instead. | |
| * @see XLALCreateForwardREAL4FFTPlan | | | |
| */ | | */ | |
| #define LALCreateForwardRealFFTPlan LALCreateForwardREAL4FFTPlan | | #define LALCreateForwardRealFFTPlan LALCreateForwardREAL4FFTPlan | |
| | | | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALCreateReverseREAL4FFTPlan instead. | | * @deprecated Use XLALCreateReverseREAL4FFTPlan() instead. | |
| * @see XLALCreateReverseREAL4FFTPlan | | | |
| */ | | */ | |
| void | | void | |
| LALCreateReverseREAL4FFTPlan( | | LALCreateReverseREAL4FFTPlan( | |
| LALStatus *status, | | LALStatus *status, | |
| REAL4FFTPlan **plan, | | REAL4FFTPlan **plan, | |
| UINT4 size, | | UINT4 size, | |
| INT4 measure | | INT4 measure | |
| ); | | ); | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALCreateReverseREAL4FFTPlan instead. | | * @deprecated Use XLALCreateReverseREAL4FFTPlan() instead. | |
| * @see XLALCreateReverseREAL4FFTPlan | | | |
| */ | | */ | |
| #define LALCreateReverseRealFFTPlan LALCreateReverseREAL4FFTPlan | | #define LALCreateReverseRealFFTPlan LALCreateReverseREAL4FFTPlan | |
| | | | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALDestroyREAL4FFTPlan instead. | | * @deprecated Use XLALDestroyREAL4FFTPlan() instead. | |
| * @see XLALDestroyREAL4FFTPlan | | | |
| */ | | */ | |
| void | | void | |
| LALDestroyREAL4FFTPlan( | | LALDestroyREAL4FFTPlan( | |
| LALStatus *status, | | LALStatus *status, | |
| REAL4FFTPlan **plan | | REAL4FFTPlan **plan | |
| ); | | ); | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALDestroyREAL4FFTPlan instead. | | * @deprecated Use XLALDestroyREAL4FFTPlan() instead. | |
| * @see XLALDestroyREAL4FFTPlan | | | |
| */ | | */ | |
| #define LALDestroyRealFFTPlan LALDestroyREAL4FFTPlan | | #define LALDestroyRealFFTPlan LALDestroyREAL4FFTPlan | |
| | | | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALREAL4ForwardFFT instead. | | * @deprecated Use XLALREAL4ForwardFFT() instead. | |
| * @see XLALREAL4ForwardFFT | | | |
| */ | | */ | |
| void | | void | |
| LALForwardREAL4FFT( | | LALForwardREAL4FFT( | |
| LALStatus *status, | | LALStatus *status, | |
| COMPLEX8Vector *output, | | COMPLEX8Vector *output, | |
| REAL4Vector *input, | | REAL4Vector *input, | |
| REAL4FFTPlan *plan | | REAL4FFTPlan *plan | |
| ); | | ); | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALREAL4ForwardFFT instead. | | * @deprecated Use XLALREAL4ForwardFFT() instead. | |
| * @see XLALREAL4ForwardFFT | | | |
| */ | | */ | |
| #define LALForwardRealFFT LALForwardREAL4FFT | | #define LALForwardRealFFT LALForwardREAL4FFT | |
| | | | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALREAL4ReverseFFT instead. | | * @deprecated Use XLALREAL4ReverseFFT() instead. | |
| * @see XLALREAL4ReverseFFT | | | |
| */ | | */ | |
| void | | void | |
| LALReverseREAL4FFT( | | LALReverseREAL4FFT( | |
| LALStatus *status, | | LALStatus *status, | |
| REAL4Vector *output, | | REAL4Vector *output, | |
| COMPLEX8Vector *input, | | COMPLEX8Vector *input, | |
| REAL4FFTPlan *plan | | REAL4FFTPlan *plan | |
| ); | | ); | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALREAL4ReverseFFT instead. | | * @deprecated Use XLALREAL4ReverseFFT() instead. | |
| * @see XLALREAL4ReverseFFT | | | |
| */ | | */ | |
| #define LALReverseRealFFT LALReverseREAL4FFT | | #define LALReverseRealFFT LALReverseREAL4FFT | |
| | | | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALREAL4PowerSpectrum instead. | | * @deprecated Use XLALREAL4PowerSpectrum() instead. | |
| * @see XLALREAL4PowerSpectrum | | | |
| */ | | */ | |
| void | | void | |
| LALREAL4PowerSpectrum ( | | LALREAL4PowerSpectrum ( | |
| LALStatus *status, | | LALStatus *status, | |
| REAL4Vector *spec, | | REAL4Vector *spec, | |
| REAL4Vector *data, | | REAL4Vector *data, | |
| REAL4FFTPlan *plan | | REAL4FFTPlan *plan | |
| ); | | ); | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALREAL4PowerSpectrum instead. | | * @deprecated Use XLALREAL4PowerSpectrum() instead. | |
| * @see XLALREAL4PowerSpectrum | | | |
| */ | | */ | |
| #define LALRealPowerSpectrum LALREAL4PowerSpectrum | | #define LALRealPowerSpectrum LALREAL4PowerSpectrum | |
| | | | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALREAL4VectorFFT instead. | | * @deprecated Use XLALREAL4VectorFFT() instead. | |
| * @see XLALREAL4VectorFFT | | | |
| */ | | */ | |
| void | | void | |
| LALREAL4VectorFFT( | | LALREAL4VectorFFT( | |
| LALStatus *status, | | LALStatus *status, | |
| REAL4Vector *output, | | REAL4Vector *output, | |
| REAL4Vector *input, | | REAL4Vector *input, | |
| REAL4FFTPlan *plan | | REAL4FFTPlan *plan | |
| ); | | ); | |
| | | | |
| /* | | /* | |
| * | | * | |
| * LAL REAL8 functions | | * LAL REAL8 functions | |
| * | | * | |
| */ | | */ | |
| | | | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALCreateForwardREAL8FFTPlan instead. | | * @deprecated Use XLALCreateForwardREAL8FFTPlan() instead. | |
| * @see XLALCreateForwardREAL8FFTPlan | | | |
| */ | | */ | |
| void | | void | |
| LALCreateForwardREAL8FFTPlan( | | LALCreateForwardREAL8FFTPlan( | |
| LALStatus *status, | | LALStatus *status, | |
| REAL8FFTPlan **plan, | | REAL8FFTPlan **plan, | |
| UINT4 size, | | UINT4 size, | |
| INT4 measure | | INT4 measure | |
| ); | | ); | |
| | | | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALCreateReverseREAL8FFTPlan instead. | | * @deprecated Use XLALCreateReverseREAL8FFTPlan() instead. | |
| * @see XLALCreateReverseREAL8FFTPlan | | | |
| */ | | */ | |
| void | | void | |
| LALCreateReverseREAL8FFTPlan( | | LALCreateReverseREAL8FFTPlan( | |
| LALStatus *status, | | LALStatus *status, | |
| REAL8FFTPlan **plan, | | REAL8FFTPlan **plan, | |
| UINT4 size, | | UINT4 size, | |
| INT4 measure | | INT4 measure | |
| ); | | ); | |
| | | | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALDestroyREAL8FFTPlan instead. | | * @deprecated Use XLALDestroyREAL8FFTPlan() instead. | |
| * @see XLALDestroyREAL8FFTPlan | | | |
| */ | | */ | |
| void | | void | |
| LALDestroyREAL8FFTPlan( | | LALDestroyREAL8FFTPlan( | |
| LALStatus *status, | | LALStatus *status, | |
| REAL8FFTPlan **plan | | REAL8FFTPlan **plan | |
| ); | | ); | |
| | | | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALREAL8ForwardFFT instead. | | * @deprecated Use XLALREAL8ForwardFFT() instead. | |
| * @see XLALREAL8ForwardFFT | | | |
| */ | | */ | |
| void | | void | |
| LALForwardREAL8FFT( | | LALForwardREAL8FFT( | |
| LALStatus *status, | | LALStatus *status, | |
| COMPLEX16Vector *output, | | COMPLEX16Vector *output, | |
| REAL8Vector *input, | | REAL8Vector *input, | |
| REAL8FFTPlan *plan | | REAL8FFTPlan *plan | |
| ); | | ); | |
| | | | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALREAL8ReverseFFT instead. | | * @deprecated Use XLALREAL8ReverseFFT() instead. | |
| * @see XLALREAL8ReverseFFT | | | |
| */ | | */ | |
| void | | void | |
| LALReverseREAL8FFT( | | LALReverseREAL8FFT( | |
| LALStatus *status, | | LALStatus *status, | |
| REAL8Vector *output, | | REAL8Vector *output, | |
| COMPLEX16Vector *input, | | COMPLEX16Vector *input, | |
| REAL8FFTPlan *plan | | REAL8FFTPlan *plan | |
| ); | | ); | |
| | | | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALREAL8PowerSpectrum instead. | | * @deprecated Use XLALREAL8PowerSpectrum() instead. | |
| * @see XLALREAL8PowerSpectrum | | | |
| */ | | */ | |
| void | | void | |
| LALREAL8PowerSpectrum ( | | LALREAL8PowerSpectrum ( | |
| LALStatus *status, | | LALStatus *status, | |
| REAL8Vector *spec, | | REAL8Vector *spec, | |
| REAL8Vector *data, | | REAL8Vector *data, | |
| REAL8FFTPlan *plan | | REAL8FFTPlan *plan | |
| ); | | ); | |
| | | | |
| /** \b DEPRECATED | | /** \b DEPRECATED | |
|
| * @deprecated Use XLALREAL8VectorFFT instead. | | * @deprecated Use XLALREAL8VectorFFT() instead. | |
| * @see XLALREAL8VectorFFT | | | |
| */ | | */ | |
| void | | void | |
| LALREAL8VectorFFT( | | LALREAL8VectorFFT( | |
| LALStatus *status, | | LALStatus *status, | |
| REAL8Vector *output, | | REAL8Vector *output, | |
| REAL8Vector *input, | | REAL8Vector *input, | |
| REAL8FFTPlan *plan | | REAL8FFTPlan *plan | |
| ); | | ); | |
| | | | |
|
| #ifdef __cplusplus | | /*@}*/ | |
| #pragma { | | | |
| | | #undef RESTRICT | |
| | | | |
| | | #if 0 | |
| | | { /* so that editors will match succeeding brace */ | |
| | | #elif defined(__cplusplus) | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| #endif /* _REALFFT_H */ | | #endif /* _REALFFT_H */ | |
| | | | |
End of changes. 56 change blocks. |
| 196 lines changed or deleted | | 154 lines changed or added | |
|
| Segments.h | | Segments.h | |
| | | | |
| skipping to change at line 20 | | skipping to change at line 20 | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | | * GNU General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with with program; see the file COPYING. If not, write to the | | * along with with program; see the file COPYING. If not, write to the | |
| * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | | * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | |
| * MA 02111-1307 USA | | * MA 02111-1307 USA | |
| */ | | */ | |
| | | | |
|
| /*----------------------------------- <lalVerbatim file="SegmentsHV"> | | /** | |
| * Author: Peter Shawhan | | \author Peter Shawhan | |
| * Revision: $Id$ | | \defgroup Segments_h Segments | |
| *----------------------------------- </lalVerbatim> */ | | \ingroup tools | |
| | | \brief Provides data types and functions for manipulating lists of ``segmen | |
| #if 0 | | ts'' (GPS time intervals). | |
| \section{Header \texttt{Segments.h}} | | | |
| \label{s:Segments.h} | | | |
| | | | |
| Provides data types and functions for manipulating lists of ``segments'' | | | |
| (GPS time intervals). | | | |
| | | | |
|
| \subsection*{Synopsis} | | \heading{Synopsis} | |
| \begin{verbatim} | | \code | |
| #include <lal/Segments.h> | | #include <lal/Segments.h> | |
|
| \end{verbatim} | | \endcode | |
| | | | |
|
| \noindent This header defines data structures for segments and lists of | | This header defines data structures for segments and lists of | |
| segments, as well as prototypes for functions that manipulate them. | | segments, as well as prototypes for functions that manipulate them. | |
| | | | |
| A segment is a time interval with a start time and an end time. The end ti
me | | A segment is a time interval with a start time and an end time. The end ti
me | |
| must be equal to or later than the start time. If the end time is equal to | | must be equal to or later than the start time. If the end time is equal to | |
| the start time, then the segment represents a point in time. If the end ti
me | | the start time, then the segment represents a point in time. If the end ti
me | |
| is later than the start time, then the segment represents a half-open time | | is later than the start time, then the segment represents a half-open time | |
| interval, inclusive of its starting point and exclusive of its ending point
. | | interval, inclusive of its starting point and exclusive of its ending point
. | |
| | | | |
| All of the segment list manipulation functions are XLAL functions. | | All of the segment list manipulation functions are XLAL functions. | |
| They handle error conditions by invoking the current XLAL error handler | | They handle error conditions by invoking the current XLAL error handler | |
|
| and setting \texttt{xlalErrno} to a nonzero value. | | and setting \c xlalErrno to a nonzero value. | |
| | | | |
| \subsection*{Error conditions} | | | |
| | | | |
|
| \begin{center} | | \heading{Error conditions} | |
| \begin{tabular}{|cp{5.0in}|} \hline | | | |
| \texttt{xlalErrno} & description \\ \hline | | | |
| \tt XLAL\_EFAULT & Null pointer passed for some argument \\ | | | |
| \tt XLAL\_EINVAL & Attempted to use an uninitialized segment list structu | | | |
| re \\ | | | |
| \tt XLAL\_EDOM & Pair of GPS times does not represent a valid segment \ | | | |
| \ | | | |
| \hline | | | |
| \end{tabular} | | | |
| \end{center} | | | |
| | | | |
|
| \subsection*{Structures} | | <table><tr><th>xlalErrno</th><th>description</th></tr> | |
| \idx[Type]{LALSeg} | | <tr><td> XLAL_EFAULT</td><td>Null pointer passed for some argument</td></ | |
| \idx[Type]{LALSegList} | | tr> | |
| \input{SegmentsHS} | | <tr><td> XLAL_EINVAL</td><td>Attempted to use an uninitialized segment li | |
| | | st structure</td></tr> | |
| | | <tr><td> XLAL_EDOM</td><td>Pair of GPS times does not represent a valid s | |
| | | egment</td></tr> | |
| | | </table> | |
| | | | |
|
| \subsection*{Notes} | | \heading{Notes} | |
| | | | |
|
| A \texttt{LALSegList} must be initialized before it is used. Initializatio | | A \c LALSegList must be initialized before it is used. Initialization | |
| n | | leaves it in an ``empty'' state, containing no segments. They also must be | |
| leaves it in an ``empty'' state, containing no segments. They also must be | | ''cleared'' | |
| ''cleared'' after using \texttt{XLALSegListClear}, and freed with \texttt{L | | after using \c XLALSegListClear(), and freed with \c LALFree() if it was dy | |
| ALFree} if it was dynamically allocated. Segments can then | | namically allocated. | |
| be added to the list through an ``append'' operation. The information abou | | Segments can then be added to the list through an ``append'' operation. Th | |
| t | | e information about | |
| each segment appended is copied to a memory location managed by the | | each segment appended is copied to a memory location managed by the | |
|
| \texttt{LALSegList} object. In fact, the segments are stored in the form o | | \c LALSegList object. In fact, the segments are stored in the form of | |
| f | | an array of \c LALSeg structures, with the \c segs field of | |
| an array of \texttt{LALSeg} structures, with the \texttt{segs} field of | | | |
| the segment list structure being the base address of the array. | | the segment list structure being the base address of the array. | |
| This allows the segments to be accessed directly using a pointer as an | | This allows the segments to be accessed directly using a pointer as an | |
| iterator, as in the following example code: | | iterator, as in the following example code: | |
|
| % | | | |
| \begin{verbatim} | | \code | |
| LALSegList mylist; | | LALSegList mylist; | |
| LALSeg *segp; | | LALSeg *segp; | |
| ... | | ... | |
|
| /* (Append segments to the segment list 'mylist' here) */ | | /\* (Append segments to the segment list 'mylist' here) *\/ | |
| ... | | ... | |
| for ( segp=mylist.segs; segp<mylist.segs+mylist.length; segp++ ) { | | for ( segp=mylist.segs; segp<mylist.segs+mylist.length; segp++ ) { | |
| | | | |
|
| printf( "The end time of the segment is GPS %d.%09d\n", | | printf( "The end time of the segment is GPS %d.%09d\n", segp->end.gpsSe | |
| segp->end.gpsSeconds, segp->end.gpsNanoSeconds ); | | conds, segp->end.gpsNanoSeconds ); | |
| | | | |
| } | | } | |
|
| \end{verbatim} | | \endcode | |
| % | | | |
| \ldots or by using an integer array index, as in the following example code | | ... or by using an integer array index, as in the following example code: | |
| : | | | |
| % | | \code | |
| \begin{verbatim} | | | |
| LALSegList mylist; | | LALSegList mylist; | |
| LALSeg *segp; | | LALSeg *segp; | |
| INT4 iseg; | | INT4 iseg; | |
| LIGOTimeGPS startgps; | | LIGOTimeGPS startgps; | |
| ... | | ... | |
|
| /* (Append segments to the segment list 'mylist' here) */ | | /\* (Append segments to the segment list 'mylist' here) *\/ | |
| ... | | ... | |
| for ( iseg=0; iseg<mylist.length; iseg++ ) { | | for ( iseg=0; iseg<mylist.length; iseg++ ) { | |
| | | | |
|
| /* One way to access the segment... */ | | /\* One way to access the segment... *\/ | |
| startgps = mylist.segs[iseg].start; | | startgps = mylist.segs[iseg].start; | |
|
| printf( "The start time of the segment is GPS %d.%09d\n", | | printf( "The start time of the segment is GPS %d.%09d\n", startgps.gpsS | |
| startgps.gpsSeconds, startgps.gpsNanoSeconds ); | | econds, startgps.gpsNanoSeconds ); | |
| | | | |
|
| /* Another way to access the segment... */ | | /\* Another way to access the segment... *\/ | |
| segp = mylist.segs + iseg; | | segp = mylist.segs + iseg; | |
|
| printf( "The end time of the segment is GPS %d.%09d\n", | | printf( "The end time of the segment is GPS %d.%09d\n", segp->end.gpsSe | |
| segp->end.gpsSeconds, segp->end.gpsNanoSeconds ); | | conds, segp->end.gpsNanoSeconds ); | |
| | | | |
| } | | } | |
|
| \end{verbatim} | | \endcode | |
| | | | |
|
| Note that if the segment list is empty, then the \texttt{segs} field will | | Note that if the segment list is empty, then the \c segs field will | |
| be NULL and the \texttt{length} field will be $0$. So be careful not to | | be NULL and the \c length field will be \f$0\f$. So be careful not to | |
| dereference the \texttt{segs} pointer unless you know that the length is | | dereference the \c segs pointer unless you know that the length is | |
| nonzero. | | nonzero. | |
| | | | |
| A segment list is considered ``sorted'' if the segments are in ascending | | A segment list is considered ``sorted'' if the segments are in ascending | |
| (or at least non-descending) order according to the comparison done by | | (or at least non-descending) order according to the comparison done by | |
|
| the \texttt{XLALSegCmp} function. A segment list is considered ``disjoint'
' | | the \c XLALSegCmp() function. A segment list is considered ``disjoint'' | |
| if no two segments in the list overlap, although they | | if no two segments in the list overlap, although they | |
| may touch at an endpoint due to the half-open nature of the time intervals | | may touch at an endpoint due to the half-open nature of the time intervals | |
|
| represented by segments. The \texttt{LALSegList} structure includes fields | | represented by segments. The \c LALSegList structure includes fields | |
| which record whether the segment list is sorted and/or disjoint, and these | | which record whether the segment list is sorted and/or disjoint, and these | |
| are used to search the segment list more efficiently when possible. Note | | are used to search the segment list more efficiently when possible. Note | |
| that a segment list could in principle be disjoint but not sorted, but that | | that a segment list could in principle be disjoint but not sorted, but that | |
|
| case is not of interest for the code; the \texttt{disjoint} field in the | | case is not of interest for the code; the \c disjoint field in the | |
| structure specifically means that the list is sorted \emph{and} disjoint. | | structure specifically means that the list is sorted \e and disjoint. | |
| | | | |
|
| Also all segments in a segment list can be time-shifted using \texttt{XLALS
egListShift}. | | Also all segments in a segment list can be time-shifted using \c XLALSegLis
tShift(). | |
| | | | |
|
| \vfill{\footnotesize\input{SegmentsHV}} | | */ | |
| \newpage\input{SegmentsC} | | | |
| #endif | | | |
| | | | |
| #ifndef _SEGMENTS_H | | #ifndef _SEGMENTS_H | |
| #define _SEGMENTS_H | | #define _SEGMENTS_H | |
| | | | |
|
| | | /* remove SWIG interface directives */ | |
| | | #if !defined(SWIG) && !defined(SWIGLAL_STRUCT) | |
| | | #define SWIGLAL_STRUCT(...) | |
| | | #endif | |
| | | | |
| #include <lal/LALDatatypes.h> | | #include <lal/LALDatatypes.h> | |
| #include <lal/XLALError.h> | | #include <lal/XLALError.h> | |
| | | | |
|
| #ifdef __cplusplus | | #if defined(__cplusplus) | |
| extern "C" { | | extern "C" { | |
|
| #pragma } | | #elif 0 | |
| | | } /* so that editors will match preceding brace */ | |
| #endif | | #endif | |
| | | | |
|
| | | /** \cond DONT_DOXYGEN */ | |
| NRCSID( SEGMENTSH, "$Id$" ); | | NRCSID( SEGMENTSH, "$Id$" ); | |
|
| | | /** \endcond */ | |
| | | | |
| /*------------------- Compile-time parameters -------------------*/ | | /*------------------- Compile-time parameters -------------------*/ | |
|
| | | /** \ingroup Segments_h */ /*@{*/ | |
| #define SEGMENTSH_ALLOCBLOCK 64 /**< Initial number of LALSeg spaces to | | #define SEGMENTSH_ALLOCBLOCK 64 /**< Initial number of LALSeg spaces to | |
| * allocate in memory at one time; this is | | * allocate in memory at one time; this is | |
| * intended to reduce the number of memory | | * intended to reduce the number of memory | |
| * reallocation calls needing to be made to | | * reallocation calls needing to be made to | |
| * build up a segment list. For a large | | * build up a segment list. For a large | |
| * segment list, the reallocation size | | * segment list, the reallocation size | |
| * switches over to a multiplicative factor
. | | * switches over to a multiplicative factor
. | |
| */ | | */ | |
| | | | |
| #define SEGMENTSH_INITMAGICVAL 729415386 /**< Distinctive value set in the | | #define SEGMENTSH_INITMAGICVAL 729415386 /**< Distinctive value set in the | |
| * 'initMagic' field to provide a | | * 'initMagic' field to provide a | |
| * check that the structure was | | * check that the structure was | |
| * properly initialized. */ | | * properly initialized. */ | |
| | | | |
| /*------------------- Data structure definitions -------------------*/ | | /*------------------- Data structure definitions -------------------*/ | |
| | | | |
|
| /* <lalVerbatim file="SegmentsHS"> */ | | /** Struct holding a single segment */ | |
| typedef struct | | typedef struct | |
| tagLALSeg | | tagLALSeg | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(LALSeg); | |
| LIGOTimeGPS start; /**< Beginning time of the segment */ | | LIGOTimeGPS start; /**< Beginning time of the segment */ | |
| LIGOTimeGPS end; /**< Ending time of the segment */ | | LIGOTimeGPS end; /**< Ending time of the segment */ | |
| INT4 id; /**< Identifier (segment ID, array index, etc.) for us
er */ | | INT4 id; /**< Identifier (segment ID, array index, etc.) for us
er */ | |
| } | | } | |
| LALSeg; | | LALSeg; | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalVerbatim file="SegmentsHS"> */ | | /** Struct holding a segment list */ | |
| typedef struct | | typedef struct | |
| tagLALSegList | | tagLALSegList | |
| { | | { | |
|
| | | SWIGLAL_STRUCT(LALSegList); | |
| LALSeg *segs; /**< Pointer to array of segments (LALSeg structures)
*/ | | LALSeg *segs; /**< Pointer to array of segments (LALSeg structures)
*/ | |
| size_t arraySize; /**< Size of array for which memory is allocated */ | | size_t arraySize; /**< Size of array for which memory is allocated */ | |
| UINT4 length; /**< Number of segments in this segment list */ | | UINT4 length; /**< Number of segments in this segment list */ | |
| UINT4 dplaces; /**< Decimal places (0,3,6,9) to format GPS times */ | | UINT4 dplaces; /**< Decimal places (0,3,6,9) to format GPS times */ | |
| UINT4 sorted; /**< Flag to indicate whether segment list is sorted *
/ | | UINT4 sorted; /**< Flag to indicate whether segment list is sorted *
/ | |
| UINT4 disjoint; /**< Flag to indicate whether segment list is disjoint
*/ | | UINT4 disjoint; /**< Flag to indicate whether segment list is disjoint
*/ | |
| UINT4 initMagic; /**< Internal value to help ensure list was initialize
d */ | | UINT4 initMagic; /**< Internal value to help ensure list was initialize
d */ | |
| LALSeg *lastFound; /**< Internal record of last segment found by a search
*/ | | LALSeg *lastFound; /**< Internal record of last segment found by a search
*/ | |
| } | | } | |
| LALSegList; | | LALSegList; | |
|
| /* </lalVerbatim> */ | | | |
| | | /*@}*/ | |
| | | | |
| /*----------------------- Function prototypes ----------------------*/ | | /*----------------------- Function prototypes ----------------------*/ | |
|
| | | /** \cond DONT_DOXYGEN */ | |
| | | | |
| INT4 | | INT4 | |
| XLALSegSet( LALSeg *seg, const LIGOTimeGPS *start, const LIGOTimeGPS *end, | | XLALSegSet( LALSeg *seg, const LIGOTimeGPS *start, const LIGOTimeGPS *end, | |
| const INT4 id ); | | const INT4 id ); | |
| | | | |
| LALSeg * | | LALSeg * | |
| XLALSegCreate( const LIGOTimeGPS *start, const LIGOTimeGPS *end, | | XLALSegCreate( const LIGOTimeGPS *start, const LIGOTimeGPS *end, | |
| const INT4 id ); | | const INT4 id ); | |
| | | | |
| int | | int | |
| | | | |
| skipping to change at line 241 | | skipping to change at line 231 | |
| | | | |
| LALSeg * | | LALSeg * | |
| XLALSegListSearch( LALSegList *seglist, const LIGOTimeGPS *gps ); | | XLALSegListSearch( LALSegList *seglist, const LIGOTimeGPS *gps ); | |
| | | | |
| INT4 | | INT4 | |
| XLALSegListShift( LALSegList *seglist, const LIGOTimeGPS *shift ); | | XLALSegListShift( LALSegList *seglist, const LIGOTimeGPS *shift ); | |
| | | | |
| INT4 | | INT4 | |
| XLALSegListKeep( LALSegList *seglist, const LIGOTimeGPS *start, const LIGO
TimeGPS *end ); | | XLALSegListKeep( LALSegList *seglist, const LIGOTimeGPS *start, const LIGO
TimeGPS *end ); | |
| | | | |
|
| | | /** \endcond */ | |
| /*----------------------- Trailer stuff ----------------------------*/ | | /*----------------------- Trailer stuff ----------------------------*/ | |
| | | | |
|
| #ifdef __cplusplus | | #if 0 | |
| #pragma { | | { /* so that editors will match succeeding brace */ | |
| | | #elif defined(__cplusplus) | |
| } | | } | |
| #endif /* C++ protection. */ | | #endif /* C++ protection. */ | |
| #endif /* Double-include protection. */ | | #endif /* Double-include protection. */ | |
| | | | |
End of changes. 41 change blocks. |
| 83 lines changed or deleted | | 79 lines changed or added | |
|
| SeqFactories.h | | SeqFactories.h | |
|
| /*----------------------------------------------------------------------- | | /** | |
| | | \defgroup SeqFactories_h SeqFactories_h | |
| | | \ingroup factories | |
| | | | |
|
| File Name: SeqFactories.h | | \brief Provides prototype and status code information for use of CreateVect | |
| | | orSequence | |
| | | and DestroyVectorSequence. | |
| | | | |
|
| <lalVerbatim file="SeqFactoriesHV"> | | \heading{Synopsis} | |
| Revision: $Id$ | | \code | |
| </lalVerbatim> | | #include <lal/SeqFactories.h> | |
| | | \endcode | |
| | | | |
|
| | | \section sec_SF_XLALfcts XLAL Functions | |
| | | | |
|
| /* <lalLaTeX> | | \code | |
| | | REAL4VectorSequence * XLALCreateVectorSequence(UINT4 length, UINT4 veclen); | |
| | | void XLALCreateVectorSequence(REAL4VectorSequence *vecseq); | |
| | | | |
|
| \section{Header \texttt{SeqFactories.h}} | | <vecseqtype> * XLALCreate<vecseqtype>(UINT4 length, UINT4 veclen); | |
| \label{s:SeqFactories.h} | | void XLALCreate<vecseqtype>(<vecseqtype> *vecseq); | |
| | | \endcode | |
| | | | |
|
| Provides prototype and status code information for use of CreateVectorSeque | | Here <tt>\<vecseqtype\></tt> is one of | |
| nce | | \c COMPLEX16VectorSequence, | |
| and DestroyVectorSequence. | | \c COMPLEX8VectorSequence, | |
| | | \c REAL8VectorSequence, | |
| | | \c REAL4VectorSequence, | |
| | | \c INT8VectorSequence, | |
| | | \c INT4VectorSequence, | |
| | | \c INT2VectorSequence, | |
| | | \c UINT8VectorSequence, | |
| | | \c UINT4VectorSequence, | |
| | | \c UINT2VectorSequence, or | |
| | | \c CHARVectorSequence. | |
| | | | |
|
| \subsection*{Synopsis} | | \subsection ss_SF_desc Description | |
| \begin{verbatim} | | | |
| #include <lal/SeqFactories.h> | | | |
| \end{verbatim} | | | |
| | | | |
|
| </lalLaTeX> */ | | The <tt>XLALCreate\<type\>VectorSequence</tt> functions create vector seque | |
| | | nces | |
| | | of type <tt>\<type\></tt>, length and vector length \c veclen. | |
| | | The function \c XLALCreateVectorSequence is the same as | |
| | | \c XLALCreateREAL4VectorSequence. | |
| | | | |
| | | The <tt>XLALDestroy\<type\>VectorSequence</tt> functions deallocate the mem | |
| | | ory | |
| | | allocation pointed to by \c vecseq including its contents. The function | |
| | | \c XLALDestroyVectorSequence is the same as | |
| | | \c XLALDestroyREAL4VectorSequence. | |
| | | | |
| | | \subsection ss_SF_ret Return Values | |
| | | | |
| | | The create functions return a pointer to the created vector sequence if | |
| | | successful; upon failure they will return \c NULL and set \c xlalErrno | |
| | | to one of the following values: \c #XLAL_ENOMEM if memory allocation | |
| | | failed, or \c #XLAL_EBADLEN if the requested \c length or \c veclen | |
| | | is zero. | |
| | | | |
| | | The destroy functions do not have a return value. They can fail if they ar | |
| | | e | |
| | | passed a \c NULL pointer, in which case \c xlalErrno is set to | |
| | | \c #XLAL_EFAULT, or if the vector sequency passed to the destroy routine | |
| | | has zero length, vector length, or \c NULL data pointer then | |
| | | \c xlalErrno is set to \c #XLAL_EINVAL. | |
| | | | |
| | | */ | |
| | | | |
| #ifndef _SEQFACTORIES_H | | #ifndef _SEQFACTORIES_H | |
| #define _SEQFACTORIES_H | | #define _SEQFACTORIES_H | |
| | | | |
|
| | | /* remove SWIG interface directives */ | |
| | | #if !defined(SWIG) && !defined(SWIGLAL_STRUCT) | |
| | | #define SWIGLAL_STRUCT(...) | |
| | | #endif | |
| | | | |
| #include <lal/LALDatatypes.h> | | #include <lal/LALDatatypes.h> | |
| #include <lal/AVFactories.h> | | #include <lal/AVFactories.h> | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| | | | |
| NRCSID (SEQFACTORIESH, "$Id$"); | | NRCSID (SEQFACTORIESH, "$Id$"); | |
| | | | |
|
| /* <lalLaTeX> | | /**\name Error Codes *//*@{*/ | |
| | | /** \ingroup SeqFactories_h */ | |
| \subsection*{Error conditions} | | | |
| \input{SeqFactoriesHErrTab} | | | |
| | | | |
| </lalLaTeX> */ | | | |
| | | | |
| /* | | | |
| <lalErrTable file="SeqFactoriesHErrTab"> | | | |
| */ | | | |
| | | | |
| #define SEQFACTORIESH_ESLENGTH 1 | | #define SEQFACTORIESH_ESLENGTH 1 | |
| #define SEQFACTORIESH_EVLENGTH 2 | | #define SEQFACTORIESH_EVLENGTH 2 | |
| #define SEQFACTORIESH_EALENGTH 4 | | #define SEQFACTORIESH_EALENGTH 4 | |
| #define SEQFACTORIESH_EVPTR 8 | | #define SEQFACTORIESH_EVPTR 8 | |
| #define SEQFACTORIESH_EUPTR 16 | | #define SEQFACTORIESH_EUPTR 16 | |
| #define SEQFACTORIESH_EDPTR 32 | | #define SEQFACTORIESH_EDPTR 32 | |
| #define SEQFACTORIESH_EINPTR 64 | | #define SEQFACTORIESH_EINPTR 64 | |
| #define SEQFACTORIESH_EMALLOC 128 | | #define SEQFACTORIESH_EMALLOC 128 | |
| | | | |
| #define SEQFACTORIESH_MSGESLENGTH "Illegal sequence length." | | #define SEQFACTORIESH_MSGESLENGTH "Illegal sequence length." | |
| #define SEQFACTORIESH_MSGEVLENGTH "Illegal vector length." | | #define SEQFACTORIESH_MSGEVLENGTH "Illegal vector length." | |
| #define SEQFACTORIESH_MSGEALENGTH "Illegal array dimension." | | #define SEQFACTORIESH_MSGEALENGTH "Illegal array dimension." | |
| #define SEQFACTORIESH_MSGEVPTR "Null sequence handle." | | #define SEQFACTORIESH_MSGEVPTR "Null sequence handle." | |
| #define SEQFACTORIESH_MSGEUPTR "Non-null sequence pointer." | | #define SEQFACTORIESH_MSGEUPTR "Non-null sequence pointer." | |
| #define SEQFACTORIESH_MSGEDPTR "Null sequence data." | | #define SEQFACTORIESH_MSGEDPTR "Null sequence data." | |
| #define SEQFACTORIESH_MSGEINPTR "Null input pointer." | | #define SEQFACTORIESH_MSGEINPTR "Null input pointer." | |
| #define SEQFACTORIESH_MSGEMALLOC "Malloc failure." | | #define SEQFACTORIESH_MSGEMALLOC "Malloc failure." | |
|
| | | /*@}*/ | |
| | | | |
|
| /* | | /** \ingroup SeqFactories_h | |
| </lalErrTable> | | * \brief This structure stores the input required for creating a vector | |
| */ | | * sequence. This input includes the length of the sequence (i.e., the num | |
| | | ber of | |
| /* Structures. */ | | * vectors) and the length of each vector. | |
| /* <lalLaTeX> | | */ | |
| | | | |
| \subsection*{Structures} | | | |
| \begin{verbatim} | | | |
| CreateVectorSequenceIn | | | |
| \end{verbatim} | | | |
| \idx[Type]{CreateVectorSequenceIn} | | | |
| | | | |
| \noindent This structure stores the input required for creating a vector | | | |
| sequence. This input includes the length of the sequence (i.e., the number | | | |
| of | | | |
| vectors) and the length of each vector. The fields are: | | | |
| | | | |
| \begin{description} | | | |
| \item[\texttt{UINT4 length}] The sequence length. | | | |
| \item[\texttt{UINT4 vectorLength}] The length of each vector in the sequenc | | | |
| e. | | | |
| \end{description} | | | |
| | | | |
| </lalLaTeX> */ | | | |
| | | | |
| typedef struct tagCreateVectorSequenceIn { | | typedef struct tagCreateVectorSequenceIn { | |
|
| UINT4 length; | | SWIGLAL_STRUCT(CreateVectorSequenceIn); | |
| UINT4 vectorLength; | | UINT4 length; /**< The sequence length */ | |
| | | UINT4 vectorLength; /**< The length of each vector in the sequence */ | |
| } CreateVectorSequenceIn; | | } CreateVectorSequenceIn; | |
| | | | |
|
| /* <lalLaTeX> | | /** \ingroup SeqFactories_h | |
| | | * \brief This structure stores the input required for creating an array | |
| \begin{verbatim} | | * sequence. This input includes the length of the sequence (i.e., the num | |
| CreateArraySequenceIn | | ber of | |
| \end{verbatim} | | * array) and the dimensions of each array index. | |
| \idx[Type]{CreateArraySequenceIn} | | */ | |
| | | | |
| \noindent This structure stores the input required for creating an array | | | |
| sequence. This input includes the length of the sequence (i.e., the number | | | |
| of | | | |
| array) and the dimensions of each array index. The fields are: | | | |
| | | | |
| \begin{description} | | | |
| \item[\texttt{UINT4 length}] The sequence length. | | | |
| \item[\texttt{UINT4Vector *dimLength}] The dimensions of each array | | | |
| index (the same for every array in the sequence). | | | |
| \end{description} | | | |
| | | | |
| </lalLaTeX> */ | | | |
| | | | |
| typedef struct tagCreateArraySequenceIn { | | typedef struct tagCreateArraySequenceIn { | |
|
| UINT4 length; | | SWIGLAL_STRUCT(CreateArraySequenceIn); | |
| UINT4Vector *dimLength; | | UINT4 length; /**< The sequence length */ | |
| | | UINT4Vector *dimLength; /**< The dimensions of each array index (the | |
| | | same for every array in the sequence) */ | |
| } CreateArraySequenceIn; | | } CreateArraySequenceIn; | |
| | | | |
|
| /* Function prototypes. */ | | | |
| /* <lalLaTeX> | | | |
| \newpage\input{VectorSequenceFactoriesC} | | | |
| | | | |
| \newpage | | | |
| \subsection{XLAL Functions} | | | |
| | | | |
| \subsubsection*{Synopsis} | | | |
| \begin{verbatim} | | | |
| REAL4VectorSequence * XLALCreateVectorSequence(UINT4 length, UINT4 veclen); | | | |
| void XLALCreateVectorSequence(REAL4VectorSequence *vecseq); | | | |
| | | | |
| <vecseqtype> * XLALCreate<vecseqtype>(UINT4 length, UINT4 veclen); | | | |
| void XLALCreate<vecseqtype>(<vecseqtype> *vecseq); | | | |
| \end{verbatim} | | | |
| \idx{XLALCreateREAL4VectorSequence} | | | |
| \idx{XLALDestroyREAL4VectorSequence} | | | |
| \idx{XLALCreate<type>VectorSequence} | | | |
| \idx{XLALDestroy<type>VectorSequence} | | | |
| | | | |
| Here \verb+<vecseqtype>+ is one of | | | |
| \verb+COMPLEX16VectorSequence+, | | | |
| \verb+COMPLEX8VectorSequence+, | | | |
| \verb+REAL8VectorSequence+, | | | |
| \verb+REAL4VectorSequence+, | | | |
| \verb+INT8VectorSequence+, | | | |
| \verb+INT4VectorSequence+, | | | |
| \verb+INT2VectorSequence+, | | | |
| \verb+UINT8VectorSequence+, | | | |
| \verb+UINT4VectorSequence+, | | | |
| \verb+UINT2VectorSequence+, or | | | |
| \verb+CHARVectorSequence+. | | | |
| | | | |
| \subsubsection*{Description} | | | |
| | | | |
| The \verb+XLALCreate<type>VectorSequence+ functions create vector sequences | | | |
| of type \verb+<type>, length \verb+length+, and vector length \verb+veclen+ | | | |
| . | | | |
| The function \verb+XLALCreateVectorSequence+ is the same as | | | |
| \verb+XLALCreateREAL4VectorSequence+. | | | |
| | | | |
| The \verb+XLALDestroy<type>VectorSequence+ functions deallocate the memory | | | |
| allocation pointed to by \verb+vecseq+ including its contents. The functio | | | |
| n | | | |
| \verb+XLALDestroyVectorSequence+ is the same as | | | |
| \verb+XLALDestroyREAL4VectorSequence+. | | | |
| | | | |
| \subsubsection*{Return Values} | | | |
| | | | |
| The create functions return a pointer to the created vector sequence if | | | |
| successful; upon failure they will return \verb+NULL+ and set \verb+xlalErr | | | |
| no+ | | | |
| to one of the following values: \verb+XLAL_ENOMEM+ if memory allocation | | | |
| failed, or \verb+XLAL_EBADLEN+ if the requested \verb+length+ or \verb+vecl | | | |
| en+ | | | |
| is zero. | | | |
| | | | |
| The destroy functions do not have a return value. They can fail if they ar | | | |
| e | | | |
| passed a \verb+NULL+ pointer, in which case \verb+xlalErrno+ is set to | | | |
| \verb+XLAL_EFAULT+, or if the vector sequency passed to the destroy routine | | | |
| has zero length, vector length, or \verb+NULL+ data pointer then | | | |
| \verb+xlalErrno+ is set to \verb+XLAL_EINVAL+. | | | |
| | | | |
| </lalLaTeX> */ | | | |
| | | | |
| REAL4VectorSequence * XLALCreateVectorSequence ( UINT4 length, UINT4 veclen
); | | REAL4VectorSequence * XLALCreateVectorSequence ( UINT4 length, UINT4 veclen
); | |
| void XLALDestroyVectorSequence ( REAL4VectorSequence * vecseq ); | | void XLALDestroyVectorSequence ( REAL4VectorSequence * vecseq ); | |
| | | | |
|
| void LALCreateSequence(LALStatus *, REAL4Sequence **, UINT4); | | | |
| void LALDestroySequence(LALStatus *, REAL4Sequence **); | | | |
| | | | |
| void LALCreateVectorSequence(LALStatus *, REAL4VectorSequence **, | | void LALCreateVectorSequence(LALStatus *, REAL4VectorSequence **, | |
| CreateVectorSequenceIn *); | | CreateVectorSequenceIn *); | |
| void LALDestroyVectorSequence(LALStatus *, REAL4VectorSequence**); | | void LALDestroyVectorSequence(LALStatus *, REAL4VectorSequence**); | |
| | | | |
| void LALCreateArraySequence(LALStatus *, REAL4ArraySequence **, | | void LALCreateArraySequence(LALStatus *, REAL4ArraySequence **, | |
| CreateArraySequenceIn *); | | CreateArraySequenceIn *); | |
| void LALDestroyArraySequence(LALStatus *, REAL4ArraySequence **); | | void LALDestroyArraySequence(LALStatus *, REAL4ArraySequence **); | |
| | | | |
|
| /* | | /* CHAR prototypes */ | |
| | | | |
| */ | | | |
| | | | |
| CHARVectorSequence * XLALCreateCHARVectorSequence ( UINT4 length, UINT4 vec
len ); | | CHARVectorSequence * XLALCreateCHARVectorSequence ( UINT4 length, UINT4 vec
len ); | |
| void XLALDestroyCHARVectorSequence ( CHARVectorSequence * vecseq ); | | void XLALDestroyCHARVectorSequence ( CHARVectorSequence * vecseq ); | |
| | | | |
|
| void LALCHARCreateSequence ( LALStatus *status, | | | |
| CHARSequence **sequence, | | | |
| UINT4); | | | |
| | | | |
| void LALCHARDestroySequence ( LALStatus *status, | | | |
| CHARSequence **sequence); | | | |
| | | | |
| void LALCHARCreateVectorSequence ( LALStatus *status, | | void LALCHARCreateVectorSequence ( LALStatus *status, | |
| CHARVectorSequence **vectorSequence, | | CHARVectorSequence **vectorSequence, | |
| CreateVectorSequenceIn *vSeqParams); | | CreateVectorSequenceIn *vSeqParams); | |
| | | | |
| void LALCHARDestroyVectorSequence ( LALStatus *status, | | void LALCHARDestroyVectorSequence ( LALStatus *status, | |
| CHARVectorSequence **vectorSequence); | | CHARVectorSequence **vectorSequence); | |
| | | | |
|
| /* | | /* INT2 prototypes */ | |
| | | | |
| */ | | | |
| | | | |
| INT2VectorSequence * XLALCreateINT2VectorSequence ( UINT4 length, UINT4 vec
len ); | | INT2VectorSequence * XLALCreateINT2VectorSequence ( UINT4 length, UINT4 vec
len ); | |
| void XLALDestroyINT2VectorSequence ( INT2VectorSequence * vecseq ); | | void XLALDestroyINT2VectorSequence ( INT2VectorSequence * vecseq ); | |
| | | | |
|
| void LALI2CreateSequence ( LALStatus *status, | | | |
| INT2Sequence **sequence, | | | |
| UINT4); | | | |
| | | | |
| void LALI2DestroySequence ( LALStatus *status, | | | |
| INT2Sequence **sequence); | | | |
| | | | |
| void LALI2CreateVectorSequence ( LALStatus *status, | | void LALI2CreateVectorSequence ( LALStatus *status, | |
| INT2VectorSequence **vectorSequence, | | INT2VectorSequence **vectorSequence, | |
| CreateVectorSequenceIn *vSeqParams); | | CreateVectorSequenceIn *vSeqParams); | |
| | | | |
| void LALI2DestroyVectorSequence ( LALStatus *status, | | void LALI2DestroyVectorSequence ( LALStatus *status, | |
| INT2VectorSequence **vectorSequence); | | INT2VectorSequence **vectorSequence); | |
| | | | |
|
| /* | | | |
| | | | |
| */ | | | |
| | | | |
| void LALI2CreateArraySequence ( LALStatus *status, | | void LALI2CreateArraySequence ( LALStatus *status, | |
| INT2ArraySequence **arraySequence, | | INT2ArraySequence **arraySequence, | |
| CreateArraySequenceIn *aSeqParams); | | CreateArraySequenceIn *aSeqParams); | |
| | | | |
| void LALI2DestroyArraySequence ( LALStatus *status, | | void LALI2DestroyArraySequence ( LALStatus *status, | |
| INT2ArraySequence **arraySeqence); | | INT2ArraySequence **arraySeqence); | |
| | | | |
|
| /* | | /* INT4 prototypes */ | |
| | | | |
| */ | | | |
| | | | |
| INT4VectorSequence * XLALCreateINT4VectorSequence ( UINT4 length, UINT4 vec
len ); | | INT4VectorSequence * XLALCreateINT4VectorSequence ( UINT4 length, UINT4 vec
len ); | |
| void XLALDestroyINT4VectorSequence ( INT4VectorSequence * vecseq ); | | void XLALDestroyINT4VectorSequence ( INT4VectorSequence * vecseq ); | |
| | | | |
|
| void LALI4CreateSequence ( LALStatus *status, | | | |
| INT4Sequence **sequence, | | | |
| UINT4); | | | |
| | | | |
| void LALI4DestroySequence ( LALStatus *status, | | | |
| INT4Sequence **sequence); | | | |
| | | | |
| void LALI4CreateVectorSequence ( LALStatus *status, | | void LALI4CreateVectorSequence ( LALStatus *status, | |
| INT4VectorSequence **vectorSequence, | | INT4VectorSequence **vectorSequence, | |
| CreateVectorSequenceIn *vSeqParams); | | CreateVectorSequenceIn *vSeqParams); | |
| | | | |
| void LALI4DestroyVectorSequence ( LALStatus *status, | | void LALI4DestroyVectorSequence ( LALStatus *status, | |
| INT4VectorSequence **vectorSequence); | | INT4VectorSequence **vectorSequence); | |
| | | | |
|
| /* | | | |
| | | | |
| */ | | | |
| | | | |
| void LALI4CreateArraySequence ( LALStatus *status, | | void LALI4CreateArraySequence ( LALStatus *status, | |
| INT4ArraySequence **arraySequence, | | INT4ArraySequence **arraySequence, | |
| CreateArraySequenceIn *aSeqParams); | | CreateArraySequenceIn *aSeqParams); | |
| | | | |
| void LALI4DestroyArraySequence ( LALStatus *status, | | void LALI4DestroyArraySequence ( LALStatus *status, | |
| INT4ArraySequence **arraySeqence); | | INT4ArraySequence **arraySeqence); | |
| | | | |
|
| /* | | /* INT8 prototypes */ | |
| | | | |
| */ | | | |
| | | | |
| INT8VectorSequence * XLALCreateINT8VectorSequence ( UINT4 length, UINT4 vec
len ); | | INT8VectorSequence * XLALCreateINT8VectorSequence ( UINT4 length, UINT4 vec
len ); | |
| void XLALDestroyINT8VectorSequence ( INT8VectorSequence * vecseq ); | | void XLALDestroyINT8VectorSequence ( INT8VectorSequence * vecseq ); | |
| | | | |
|
| void LALI8CreateSequence ( LALStatus *status, | | | |
| INT8Sequence **sequence, | | | |
| UINT4); | | | |
| | | | |
| void LALI8DestroySequence ( LALStatus *status, | | | |
| INT8Sequence **sequence); | | | |
| | | | |
| void LALI8CreateVectorSequence ( LALStatus *status, | | void LALI8CreateVectorSequence ( LALStatus *status, | |
| INT8VectorSequence **vectorSequence, | | INT8VectorSequence **vectorSequence, | |
| CreateVectorSequenceIn *vSeqParams); | | CreateVectorSequenceIn *vSeqParams); | |
| | | | |
| void LALI8DestroyVectorSequence ( LALStatus *status, | | void LALI8DestroyVectorSequence ( LALStatus *status, | |
| INT8VectorSequence **vectorSequence); | | INT8VectorSequence **vectorSequence); | |
| | | | |
|
| /* | | | |
| | | | |
| */ | | | |
| | | | |
| void LALI8CreateArraySequence ( LALStatus *status, | | void LALI8CreateArraySequence ( LALStatus *status, | |
| INT8ArraySequence **arraySequence, | | INT8ArraySequence **arraySequence, | |
| CreateArraySequenceIn *aSeqParams); | | CreateArraySequenceIn *aSeqParams); | |
| | | | |
| void LALI8DestroyArraySequence ( LALStatus *status, | | void LALI8DestroyArraySequence ( LALStatus *status, | |
| INT8ArraySequence **arraySeqence); | | INT8ArraySequence **arraySeqence); | |
| | | | |
|
| /* | | /* UINT2 prototypes */ | |
| | | | |
| */ | | | |
| | | | |
| UINT2VectorSequence * XLALCreateUINT2VectorSequence ( UINT4 length, UINT4 v
eclen ); | | UINT2VectorSequence * XLALCreateUINT2VectorSequence ( UINT4 length, UINT4 v
eclen ); | |
| void XLALDestroyUINT2VectorSequence ( UINT2VectorSequence * vecseq ); | | void XLALDestroyUINT2VectorSequence ( UINT2VectorSequence * vecseq ); | |
| | | | |
|
| void LALU2CreateSequence ( LALStatus *status, | | | |
| UINT2Sequence **sequence, | | | |
| UINT4); | | | |
| | | | |
| void LALU2DestroySequence ( LALStatus *status, | | | |
| UINT2Sequence **sequence); | | | |
| | | | |
| void LALU2CreateVectorSequence ( LALStatus *status, | | void LALU2CreateVectorSequence ( LALStatus *status, | |
| UINT2VectorSequence **vectorSequence, | | UINT2VectorSequence **vectorSequence, | |
| CreateVectorSequenceIn *vSeqParams); | | CreateVectorSequenceIn *vSeqParams); | |
| | | | |
| void LALU2DestroyVectorSequence ( LALStatus *status, | | void LALU2DestroyVectorSequence ( LALStatus *status, | |
| UINT2VectorSequence **vectorSequence); | | UINT2VectorSequence **vectorSequence); | |
| | | | |
|
| /* | | | |
| | | | |
| */ | | | |
| | | | |
| void LALU2CreateArraySequence ( LALStatus *status, | | void LALU2CreateArraySequence ( LALStatus *status, | |
| UINT2ArraySequence **arraySequence, | | UINT2ArraySequence **arraySequence, | |
| CreateArraySequenceIn *aSeqParams); | | CreateArraySequenceIn *aSeqParams); | |
| | | | |
| void LALU2DestroyArraySequence ( LALStatus *status, | | void LALU2DestroyArraySequence ( LALStatus *status, | |
| UINT2ArraySequence **arraySeqence); | | UINT2ArraySequence **arraySeqence); | |
| | | | |
|
| /* | | /* UINT4 prototypes */ | |
| | | | |
| */ | | | |
| | | | |
| UINT4VectorSequence * XLALCreateUINT4VectorSequence ( UINT4 length, UINT4 v
eclen ); | | UINT4VectorSequence * XLALCreateUINT4VectorSequence ( UINT4 length, UINT4 v
eclen ); | |
| void XLALDestroyUINT4VectorSequence ( UINT4VectorSequence * vecseq ); | | void XLALDestroyUINT4VectorSequence ( UINT4VectorSequence * vecseq ); | |
| | | | |
|
| void LALU4CreateSequence ( LALStatus *status, | | | |
| UINT4Sequence **sequence, | | | |
| UINT4); | | | |
| | | | |
| void LALU4DestroySequence ( LALStatus *status, | | | |
| UINT4Sequence **sequence); | | | |
| | | | |
| void LALU4CreateVectorSequence ( LALStatus *status, | | void LALU4CreateVectorSequence ( LALStatus *status, | |
| UINT4VectorSequence **vectorSequence, | | UINT4VectorSequence **vectorSequence, | |
| CreateVectorSequenceIn *vSeqParams); | | CreateVectorSequenceIn *vSeqParams); | |
| | | | |
| void LALU4DestroyVectorSequence ( LALStatus *status, | | void LALU4DestroyVectorSequence ( LALStatus *status, | |
| UINT4VectorSequence **vectorSequence); | | UINT4VectorSequence **vectorSequence); | |
| | | | |
|
| /* | | | |
| | | | |
| */ | | | |
| | | | |
| void LALU4CreateArraySequence ( LALStatus *status, | | void LALU4CreateArraySequence ( LALStatus *status, | |
| UINT4ArraySequence **arraySequence, | | UINT4ArraySequence **arraySequence, | |
| CreateArraySequenceIn *aSeqParams); | | CreateArraySequenceIn *aSeqParams); | |
| | | | |
| void LALU4DestroyArraySequence ( LALStatus *status, | | void LALU4DestroyArraySequence ( LALStatus *status, | |
| UINT4ArraySequence **arraySeqence); | | UINT4ArraySequence **arraySeqence); | |
| | | | |
|
| /* | | /* UINT8 prototypes */ | |
| | | | |
| */ | | | |
| | | | |
| UINT8VectorSequence * XLALCreateUINT8VectorSequence ( UINT4 length, UINT4 v
eclen ); | | UINT8VectorSequence * XLALCreateUINT8VectorSequence ( UINT4 length, UINT4 v
eclen ); | |
| void XLALDestroyUINT8VectorSequence ( UINT8VectorSequence * vecseq ); | | void XLALDestroyUINT8VectorSequence ( UINT8VectorSequence * vecseq ); | |
| | | | |
|
| void LALU8CreateSequence ( LALStatus *status, | | | |
| UINT8Sequence **sequence, | | | |
| UINT4); | | | |
| | | | |
| void LALU8DestroySequence ( LALStatus *status, | | | |
| UINT8Sequence **sequence); | | | |
| | | | |
| void LALU8CreateVectorSequence ( LALStatus *status, | | void LALU8CreateVectorSequence ( LALStatus *status, | |
| UINT8VectorSequence **vectorSequence, | | UINT8VectorSequence **vectorSequence, | |
| CreateVectorSequenceIn *vSeqParams); | | CreateVectorSequenceIn *vSeqParams); | |
| | | | |
| void LALU8DestroyVectorSequence ( LALStatus *status, | | void LALU8DestroyVectorSequence ( LALStatus *status, | |
| UINT8VectorSequence **vectorSequence); | | UINT8VectorSequence **vectorSequence); | |
| | | | |
|
| /* | | | |
| | | | |
| */ | | | |
| | | | |
| void LALU8CreateArraySequence ( LALStatus *status, | | void LALU8CreateArraySequence ( LALStatus *status, | |
| UINT8ArraySequence **arraySequence, | | UINT8ArraySequence **arraySequence, | |
| CreateArraySequenceIn *aSeqParams); | | CreateArraySequenceIn *aSeqParams); | |
| | | | |
| void LALU8DestroyArraySequence ( LALStatus *status, | | void LALU8DestroyArraySequence ( LALStatus *status, | |
| UINT8ArraySequence **arraySeqence); | | UINT8ArraySequence **arraySeqence); | |
| | | | |
|
| /* | | /* REAL4 prototypes */ | |
| | | | |
| */ | | | |
| | | | |
| REAL4VectorSequence * XLALCreateREAL4VectorSequence ( UINT4 length, UINT4 v
eclen ); | | REAL4VectorSequence * XLALCreateREAL4VectorSequence ( UINT4 length, UINT4 v
eclen ); | |
| void XLALDestroyREAL4VectorSequence ( REAL4VectorSequence * vecseq ); | | void XLALDestroyREAL4VectorSequence ( REAL4VectorSequence * vecseq ); | |
| | | | |
|
| void LALSCreateSequence ( LALStatus *status, | | | |
| REAL4Sequence **sequence, | | | |
| UINT4); | | | |
| | | | |
| void LALSDestroySequence ( LALStatus *status, | | | |
| REAL4Sequence **sequence); | | | |
| | | | |
| void LALSCreateVectorSequence ( LALStatus *status, | | void LALSCreateVectorSequence ( LALStatus *status, | |
| REAL4VectorSequence **vectorSequence, | | REAL4VectorSequence **vectorSequence, | |
| CreateVectorSequenceIn *vSeqParams); | | CreateVectorSequenceIn *vSeqParams); | |
| | | | |
| void LALSDestroyVectorSequence ( LALStatus *status, | | void LALSDestroyVectorSequence ( LALStatus *status, | |
| REAL4VectorSequence **vectorSequence); | | REAL4VectorSequence **vectorSequence); | |
| | | | |
|
| /* | | | |
| | | | |
| */ | | | |
| | | | |
| void LALSCreateArraySequence ( LALStatus *status, | | void LALSCreateArraySequence ( LALStatus *status, | |
| REAL4ArraySequence **arraySequence, | | REAL4ArraySequence **arraySequence, | |
| CreateArraySequenceIn *aSeqParams); | | CreateArraySequenceIn *aSeqParams); | |
| | | | |
| void LALSDestroyArraySequence ( LALStatus *status, | | void LALSDestroyArraySequence ( LALStatus *status, | |
| REAL4ArraySequence **arraySeqence); | | REAL4ArraySequence **arraySeqence); | |
| | | | |
|
| /* | | /* REAL8 prototypes */ | |
| | | | |
| */ | | | |
| | | | |
| REAL8VectorSequence * XLALCreateREAL8VectorSequence ( UINT4 length, UINT4 v
eclen ); | | REAL8VectorSequence * XLALCreateREAL8VectorSequence ( UINT4 length, UINT4 v
eclen ); | |
| void XLALDestroyREAL8VectorSequence ( REAL8VectorSequence * vecseq ); | | void XLALDestroyREAL8VectorSequence ( REAL8VectorSequence * vecseq ); | |
| | | | |
|
| void LALDCreateSequence ( LALStatus *status, | | | |
| REAL8Sequence **sequence, | | | |
| UINT4); | | | |
| | | | |
| void LALDDestroySequence ( LALStatus *status, | | | |
| REAL8Sequence **sequence); | | | |
| | | | |
| void LALDCreateVectorSequence ( LALStatus *status, | | void LALDCreateVectorSequence ( LALStatus *status, | |
| REAL8VectorSequence **vectorSequence, | | REAL8VectorSequence **vectorSequence, | |
| CreateVectorSequenceIn *vSeqParams); | | CreateVectorSequenceIn *vSeqParams); | |
| | | | |
| void LALDDestroyVectorSequence ( LALStatus *status, | | void LALDDestroyVectorSequence ( LALStatus *status, | |
| REAL8VectorSequence **vectorSequence); | | REAL8VectorSequence **vectorSequence); | |
| | | | |
|
| /* | | | |
| | | | |
| */ | | | |
| | | | |
| void LALDCreateArraySequence ( LALStatus *status, | | void LALDCreateArraySequence ( LALStatus *status, | |
| REAL8ArraySequence **arraySequence, | | REAL8ArraySequence **arraySequence, | |
| CreateArraySequenceIn *aSeqParams); | | CreateArraySequenceIn *aSeqParams); | |
| | | | |
| void LALDDestroyArraySequence ( LALStatus *status, | | void LALDDestroyArraySequence ( LALStatus *status, | |
| REAL8ArraySequence **arraySeqence); | | REAL8ArraySequence **arraySeqence); | |
| | | | |
|
| /* | | /* COMPLEX8 prototypes */ | |
| | | | |
| */ | | | |
| | | | |
| COMPLEX8VectorSequence * XLALCreateCOMPLEX8VectorSequence ( UINT4 length, U
INT4 veclen ); | | COMPLEX8VectorSequence * XLALCreateCOMPLEX8VectorSequence ( UINT4 length, U
INT4 veclen ); | |
| void XLALDestroyCOMPLEX8VectorSequence ( COMPLEX8VectorSequence * vecseq ); | | void XLALDestroyCOMPLEX8VectorSequence ( COMPLEX8VectorSequence * vecseq ); | |
| | | | |
|
| void LALCCreateSequence ( LALStatus *status, | | | |
| COMPLEX8Sequence **sequence, | | | |
| UINT4); | | | |
| | | | |
| void LALCDestroySequence ( LALStatus *status, | | | |
| COMPLEX8Sequence **sequence); | | | |
| | | | |
| void LALCCreateVectorSequence ( LALStatus *status, | | void LALCCreateVectorSequence ( LALStatus *status, | |
| COMPLEX8VectorSequence **vectorSequence, | | COMPLEX8VectorSequence **vectorSequence, | |
| CreateVectorSequenceIn *vSeqParams); | | CreateVectorSequenceIn *vSeqParams); | |
| | | | |
| void LALCDestroyVectorSequence ( LALStatus *status, | | void LALCDestroyVectorSequence ( LALStatus *status, | |
| COMPLEX8VectorSequence **vectorSequence); | | COMPLEX8VectorSequence **vectorSequence); | |
| | | | |
|
| /* | | | |
| | | | |
| */ | | | |
| | | | |
| void LALCCreateArraySequence ( LALStatus *status, | | void LALCCreateArraySequence ( LALStatus *status, | |
| COMPLEX8ArraySequence **arraySequence, | | COMPLEX8ArraySequence **arraySequence, | |
| CreateArraySequenceIn *aSeqParams); | | CreateArraySequenceIn *aSeqParams); | |
| | | | |
| void LALCDestroyArraySequence ( LALStatus *status, | | void LALCDestroyArraySequence ( LALStatus *status, | |
| COMPLEX8ArraySequence **arraySeqence); | | COMPLEX8ArraySequence **arraySeqence); | |
| | | | |
|
| /* | | /* COMPLEX16 prototypes */ | |
| | | | |
| */ | | | |
| | | | |
| COMPLEX16VectorSequence * XLALCreateCOMPLEX16VectorSequence ( UINT4 length,
UINT4 veclen ); | | COMPLEX16VectorSequence * XLALCreateCOMPLEX16VectorSequence ( UINT4 length,
UINT4 veclen ); | |
| void XLALDestroyCOMPLEX16VectorSequence ( COMPLEX16VectorSequence * vecseq
); | | void XLALDestroyCOMPLEX16VectorSequence ( COMPLEX16VectorSequence * vecseq
); | |
| | | | |
|
| void LALZCreateSequence ( LALStatus *status, | | | |
| COMPLEX16Sequence **sequence, | | | |
| UINT4); | | | |
| | | | |
| void LALZDestroySequence ( LALStatus *status, | | | |
| COMPLEX16Sequence **sequence); | | | |
| | | | |
| void LALZCreateVectorSequence ( LALStatus *status, | | void LALZCreateVectorSequence ( LALStatus *status, | |
| COMPLEX16VectorSequence **vectorSequence, | | COMPLEX16VectorSequence **vectorSequence, | |
| CreateVectorSequenceIn *vSeqParams); | | CreateVectorSequenceIn *vSeqParams); | |
| | | | |
| void LALZDestroyVectorSequence ( LALStatus *status, | | void LALZDestroyVectorSequence ( LALStatus *status, | |
| COMPLEX16VectorSequence **vectorSequence); | | COMPLEX16VectorSequence **vectorSequence); | |
| | | | |
|
| /* | | | |
| | | | |
| */ | | | |
| | | | |
| void LALZCreateArraySequence ( LALStatus *status, | | void LALZCreateArraySequence ( LALStatus *status, | |
| COMPLEX16ArraySequence **arraySequence, | | COMPLEX16ArraySequence **arraySequence, | |
| CreateArraySequenceIn *aSeqParams); | | CreateArraySequenceIn *aSeqParams); | |
| | | | |
| void LALZDestroyArraySequence ( LALStatus *status, | | void LALZDestroyArraySequence ( LALStatus *status, | |
| COMPLEX16ArraySequence **arraySeqence); | | COMPLEX16ArraySequence **arraySeqence); | |
| | | | |
|
| /* <lalLaTeX> | | | |
| \newpage\input{VectorSequenceFactoriesTestC} | | | |
| </lalLaTeX> */ | | | |
| | | | |
| /* <lalLaTeX> | | | |
| \newpage\input{ArraySequenceFactoriesTestC} | | | |
| </lalLaTeX> */ | | | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| #endif /* _SEQFACTORIES_H */ | | #endif /* _SEQFACTORIES_H */ | |
| | | | |
End of changes. 51 change blocks. |
| 304 lines changed or deleted | | 96 lines changed or added | |
|
| Sequence.h | | Sequence.h | |
| /* | | /* | |
|
| * $Id$ | | | |
| * | | * | |
| * Copyright (C) 2007 Kipp Cannon | | * Copyright (C) 2007 Kipp Cannon | |
| * | | * | |
| * This program is free software; you can redistribute it and/or modify it | | * This program is free software; you can redistribute it and/or modify it | |
| * under the terms of the GNU General Public License as published by the | | * under the terms of the GNU General Public License as published by the | |
| * Free Software Foundation; either version 2 of the License, or (at your | | * Free Software Foundation; either version 2 of the License, or (at your | |
| * option) any later version. | | * option) any later version. | |
| * | | * | |
| * This program is distributed in the hope that it will be useful, but | | * This program is distributed in the hope that it will be useful, but | |
| * WITHOUT ANY WARRANTY; without even the implied warranty of | | * WITHOUT ANY WARRANTY; without even the implied warranty of | |
| | | | |
| skipping to change at line 26 | | skipping to change at line 25 | |
| * You should have received a copy of the GNU General Public License along | | * You should have received a copy of the GNU General Public License along | |
| * with this program; if not, write to the Free Software Foundation, Inc., | | * with this program; if not, write to the Free Software Foundation, Inc., | |
| * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |
| */ | | */ | |
| | | | |
| #ifndef _SEQUENCE_H | | #ifndef _SEQUENCE_H | |
| #define _SEQUENCE_H | | #define _SEQUENCE_H | |
| | | | |
| #include <stddef.h> | | #include <stddef.h> | |
| #include <lal/LALDatatypes.h> | | #include <lal/LALDatatypes.h> | |
|
| | | | |
| #include <lal/LALRCSID.h> | | #include <lal/LALRCSID.h> | |
|
| | | | |
| | | #if defined(__cplusplus) | |
| | | extern "C" { | |
| | | #elif 0 | |
| | | } /* so that editors will match preceding brace */ | |
| | | #endif | |
| | | | |
| NRCSID(SEQUENCEH, "$Id:"); | | NRCSID(SEQUENCEH, "$Id:"); | |
| | | | |
|
| /* <lalLaTeX file="SequenceDestroyP"> | | /* COMPLEX8 prototypes */ | |
| \idx{XLALDestroyCOMPLEX8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceDestroyP"> */ | | | |
| void XLALDestroyCOMPLEX8Sequence ( | | void XLALDestroyCOMPLEX8Sequence ( | |
| COMPLEX8Sequence *sequence | | COMPLEX8Sequence *sequence | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCreateP"> | | | |
| \idx{XLALCreateCOMPLEX8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCreateP"> */ | | | |
| COMPLEX8Sequence *XLALCreateCOMPLEX8Sequence ( | | COMPLEX8Sequence *XLALCreateCOMPLEX8Sequence ( | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCutP"> | | | |
| \idx{XLALCutCOMPLEX8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCutP"> */ | | | |
| COMPLEX8Sequence *XLALCutCOMPLEX8Sequence ( | | COMPLEX8Sequence *XLALCutCOMPLEX8Sequence ( | |
| COMPLEX8Sequence *sequence, | | COMPLEX8Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCutP"> | | | |
| \idx{XLALCopyCOMPLEX8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCutP"> */ | | | |
| COMPLEX8Sequence *XLALCopyCOMPLEX8Sequence ( | | COMPLEX8Sequence *XLALCopyCOMPLEX8Sequence ( | |
| COMPLEX8Sequence *sequence | | COMPLEX8Sequence *sequence | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceShiftP"> | | | |
| \idx{XLALShiftCOMPLEX8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceShiftP"> */ | | | |
| void XLALShiftCOMPLEX8Sequence ( | | void XLALShiftCOMPLEX8Sequence ( | |
| COMPLEX8Sequence *sequence, | | COMPLEX8Sequence *sequence, | |
| int count | | int count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceResizeP"> | | | |
| \idx{XLALResizeCOMPLEX8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceResizeP"> */ | | | |
| COMPLEX8Sequence *XLALResizeCOMPLEX8Sequence ( | | COMPLEX8Sequence *XLALResizeCOMPLEX8Sequence ( | |
| COMPLEX8Sequence *sequence, | | COMPLEX8Sequence *sequence, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceResizeP"> | | | |
| \idx{XLALShrinkCOMPLEX8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceResizeP"> */ | | | |
| COMPLEX8Sequence *XLALShrinkCOMPLEX8Sequence ( | | COMPLEX8Sequence *XLALShrinkCOMPLEX8Sequence ( | |
| COMPLEX8Sequence *sequence, | | COMPLEX8Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALCOMPLEX8Sum ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| COMPLEX8 XLALCOMPLEX8Sum ( | | COMPLEX8 XLALCOMPLEX8Sum ( | |
| const COMPLEX8 *data, | | const COMPLEX8 *data, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALCOMPLEX8SumSquares ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| REAL4 XLALCOMPLEX8SumSquares ( | | REAL4 XLALCOMPLEX8SumSquares ( | |
| const COMPLEX8 *data, | | const COMPLEX8 *data, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALCOMPLEX8SequenceSum ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| COMPLEX8 XLALCOMPLEX8SequenceSum ( | | COMPLEX8 XLALCOMPLEX8SequenceSum ( | |
| const COMPLEX8Sequence *sequence, | | const COMPLEX8Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALCOMPLEX8SequenceSumSquares ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| REAL4 XLALCOMPLEX8SequenceSumSquares ( | | REAL4 XLALCOMPLEX8SequenceSumSquares ( | |
| const COMPLEX8Sequence *sequence, | | const COMPLEX8Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceConjugateP"> | | | |
| \idx{XLALConjugateCOMPLEX8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceConjugateP"> */ | | | |
| COMPLEX8Sequence *XLALConjugateCOMPLEX8Sequence ( | | COMPLEX8Sequence *XLALConjugateCOMPLEX8Sequence ( | |
| COMPLEX8Sequence *series | | COMPLEX8Sequence *series | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceDestroyP"> | | /* COMPLEX16 prototypes */ | |
| \idx{XLALDestroyCOMPLEX16Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceDestroyP"> */ | | | |
| void XLALDestroyCOMPLEX16Sequence ( | | void XLALDestroyCOMPLEX16Sequence ( | |
| COMPLEX16Sequence *sequence | | COMPLEX16Sequence *sequence | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCreateP"> | | | |
| \idx{XLALCreateCOMPLEX16Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCreateP"> */ | | | |
| COMPLEX16Sequence *XLALCreateCOMPLEX16Sequence ( | | COMPLEX16Sequence *XLALCreateCOMPLEX16Sequence ( | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCutP"> | | | |
| \idx{XLALCutCOMPLEX16Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCutP"> */ | | | |
| COMPLEX16Sequence *XLALCutCOMPLEX16Sequence ( | | COMPLEX16Sequence *XLALCutCOMPLEX16Sequence ( | |
| COMPLEX16Sequence *sequence, | | COMPLEX16Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCutP"> | | | |
| \idx{XLALCopyCOMPLEX16Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCutP"> */ | | | |
| COMPLEX16Sequence *XLALCopyCOMPLEX16Sequence ( | | COMPLEX16Sequence *XLALCopyCOMPLEX16Sequence ( | |
| COMPLEX16Sequence *sequence | | COMPLEX16Sequence *sequence | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceShiftP"> | | | |
| \idx{XLALShiftCOMPLEX16Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceShiftP"> */ | | | |
| void XLALShiftCOMPLEX16Sequence ( | | void XLALShiftCOMPLEX16Sequence ( | |
| COMPLEX16Sequence *sequence, | | COMPLEX16Sequence *sequence, | |
| int count | | int count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceResizeP"> | | | |
| \idx{XLALResizeCOMPLEX16Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceResizeP"> */ | | | |
| COMPLEX16Sequence *XLALResizeCOMPLEX16Sequence ( | | COMPLEX16Sequence *XLALResizeCOMPLEX16Sequence ( | |
| COMPLEX16Sequence *sequence, | | COMPLEX16Sequence *sequence, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceResizeP"> | | | |
| \idx{XLALShrinkCOMPLEX16Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceResizeP"> */ | | | |
| COMPLEX16Sequence *XLALShrinkCOMPLEX16Sequence ( | | COMPLEX16Sequence *XLALShrinkCOMPLEX16Sequence ( | |
| COMPLEX16Sequence *sequence, | | COMPLEX16Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALCOMPLEX16Sum ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| COMPLEX16 XLALCOMPLEX16Sum ( | | COMPLEX16 XLALCOMPLEX16Sum ( | |
| const COMPLEX16 *data, | | const COMPLEX16 *data, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALCOMPLEX16SumSquares ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| REAL8 XLALCOMPLEX16SumSquares ( | | REAL8 XLALCOMPLEX16SumSquares ( | |
| const COMPLEX16 *data, | | const COMPLEX16 *data, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALCOMPLEX16SequenceSum ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| COMPLEX16 XLALCOMPLEX16SequenceSum ( | | COMPLEX16 XLALCOMPLEX16SequenceSum ( | |
| const COMPLEX16Sequence *sequence, | | const COMPLEX16Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALCOMPLEX16SequenceSumSquares ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| REAL8 XLALCOMPLEX16SequenceSumSquares ( | | REAL8 XLALCOMPLEX16SequenceSumSquares ( | |
| const COMPLEX16Sequence *sequence, | | const COMPLEX16Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceConjugateP"> | | | |
| \idx{XLALConjugateCOMPLEX16Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceConjugateP"> */ | | | |
| COMPLEX16Sequence *XLALConjugateCOMPLEX16Sequence ( | | COMPLEX16Sequence *XLALConjugateCOMPLEX16Sequence ( | |
| COMPLEX16Sequence *series | | COMPLEX16Sequence *series | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceDestroyP"> | | /* REAL4 prototypes */ | |
| \idx{XLALDestroyREAL4Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceDestroyP"> */ | | | |
| void XLALDestroyREAL4Sequence ( | | void XLALDestroyREAL4Sequence ( | |
| REAL4Sequence *sequence | | REAL4Sequence *sequence | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCreateP"> | | | |
| \idx{XLALCreateREAL4Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCreateP"> */ | | | |
| REAL4Sequence *XLALCreateREAL4Sequence ( | | REAL4Sequence *XLALCreateREAL4Sequence ( | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCutP"> | | | |
| \idx{XLALCutREAL4Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCutP"> */ | | | |
| REAL4Sequence *XLALCutREAL4Sequence ( | | REAL4Sequence *XLALCutREAL4Sequence ( | |
| REAL4Sequence *sequence, | | REAL4Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCutP"> | | | |
| \idx{XLALCopyREAL4Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCutP"> */ | | | |
| REAL4Sequence *XLALCopyREAL4Sequence ( | | REAL4Sequence *XLALCopyREAL4Sequence ( | |
| REAL4Sequence *sequence | | REAL4Sequence *sequence | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceShiftP"> | | | |
| \idx{XLALShiftREAL4Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceShiftP"> */ | | | |
| void XLALShiftREAL4Sequence ( | | void XLALShiftREAL4Sequence ( | |
| REAL4Sequence *sequence, | | REAL4Sequence *sequence, | |
| int count | | int count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceResizeP"> | | | |
| \idx{XLALResizeREAL4Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceResizeP"> */ | | | |
| REAL4Sequence *XLALResizeREAL4Sequence ( | | REAL4Sequence *XLALResizeREAL4Sequence ( | |
| REAL4Sequence *sequence, | | REAL4Sequence *sequence, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceResizeP"> | | | |
| \idx{XLALShrinkREAL4Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceResizeP"> */ | | | |
| REAL4Sequence *XLALShrinkREAL4Sequence ( | | REAL4Sequence *XLALShrinkREAL4Sequence ( | |
| REAL4Sequence *sequence, | | REAL4Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALREAL4Sum ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| REAL4 XLALREAL4Sum ( | | REAL4 XLALREAL4Sum ( | |
| const REAL4 *data, | | const REAL4 *data, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALREAL4SumSquares ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| REAL4 XLALREAL4SumSquares ( | | REAL4 XLALREAL4SumSquares ( | |
| const REAL4 *data, | | const REAL4 *data, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALREAL4SequenceSum ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| REAL4 XLALREAL4SequenceSum ( | | REAL4 XLALREAL4SequenceSum ( | |
| const REAL4Sequence *sequence, | | const REAL4Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALREAL4SequenceSumSquares ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| REAL4 XLALREAL4SequenceSumSquares ( | | REAL4 XLALREAL4SequenceSumSquares ( | |
| const REAL4Sequence *sequence, | | const REAL4Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceDestroyP"> | | /* REAL8 prototypes */ | |
| \idx{XLALDestroyREAL8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceDestroyP"> */ | | | |
| void XLALDestroyREAL8Sequence ( | | void XLALDestroyREAL8Sequence ( | |
| REAL8Sequence *sequence | | REAL8Sequence *sequence | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCreateP"> | | | |
| \idx{XLALCreateREAL8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCreateP"> */ | | | |
| REAL8Sequence *XLALCreateREAL8Sequence ( | | REAL8Sequence *XLALCreateREAL8Sequence ( | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCutP"> | | | |
| \idx{XLALCutREAL8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCutP"> */ | | | |
| REAL8Sequence *XLALCutREAL8Sequence ( | | REAL8Sequence *XLALCutREAL8Sequence ( | |
| REAL8Sequence *sequence, | | REAL8Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCutP"> | | | |
| \idx{XLALCopyREAL8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCutP"> */ | | | |
| REAL8Sequence *XLALCopyREAL8Sequence ( | | REAL8Sequence *XLALCopyREAL8Sequence ( | |
| REAL8Sequence *sequence | | REAL8Sequence *sequence | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceShiftP"> | | | |
| \idx{XLALShiftREAL8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceShiftP"> */ | | | |
| void XLALShiftREAL8Sequence ( | | void XLALShiftREAL8Sequence ( | |
| REAL8Sequence *sequence, | | REAL8Sequence *sequence, | |
| int count | | int count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceResizeP"> | | | |
| \idx{XLALResizeREAL8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceResizeP"> */ | | | |
| REAL8Sequence *XLALResizeREAL8Sequence ( | | REAL8Sequence *XLALResizeREAL8Sequence ( | |
| REAL8Sequence *sequence, | | REAL8Sequence *sequence, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceResizeP"> | | | |
| \idx{XLALShrinkREAL8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceResizeP"> */ | | | |
| REAL8Sequence *XLALShrinkREAL8Sequence ( | | REAL8Sequence *XLALShrinkREAL8Sequence ( | |
| REAL8Sequence *sequence, | | REAL8Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALREAL8Sum ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| REAL8 XLALREAL8Sum ( | | REAL8 XLALREAL8Sum ( | |
| const REAL8 *data, | | const REAL8 *data, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALREAL8SumSquares ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| REAL8 XLALREAL8SumSquares ( | | REAL8 XLALREAL8SumSquares ( | |
| const REAL8 *data, | | const REAL8 *data, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALREAL8SequenceSum ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| REAL8 XLALREAL8SequenceSum ( | | REAL8 XLALREAL8SequenceSum ( | |
| const REAL8Sequence *sequence, | | const REAL8Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALREAL8SequenceSumSquares ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| REAL8 XLALREAL8SequenceSumSquares ( | | REAL8 XLALREAL8SequenceSumSquares ( | |
| const REAL8Sequence *sequence, | | const REAL8Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceDestroyP"> | | /* INT2 prototypes */ | |
| \idx{XLALDestroyINT2Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceDestroyP"> */ | | | |
| void XLALDestroyINT2Sequence ( | | void XLALDestroyINT2Sequence ( | |
| INT2Sequence *sequence | | INT2Sequence *sequence | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCreateP"> | | | |
| \idx{XLALCreateINT2Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCreateP"> */ | | | |
| INT2Sequence *XLALCreateINT2Sequence ( | | INT2Sequence *XLALCreateINT2Sequence ( | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCutP"> | | | |
| \idx{XLALCutINT2Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCutP"> */ | | | |
| INT2Sequence *XLALCutINT2Sequence ( | | INT2Sequence *XLALCutINT2Sequence ( | |
| INT2Sequence *sequence, | | INT2Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCutP"> | | | |
| \idx{XLALCopyINT2Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCutP"> */ | | | |
| INT2Sequence *XLALCopyINT2Sequence ( | | INT2Sequence *XLALCopyINT2Sequence ( | |
| INT2Sequence *sequence | | INT2Sequence *sequence | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceShiftP"> | | | |
| \idx{XLALShiftINT2Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceShiftP"> */ | | | |
| void XLALShiftINT2Sequence ( | | void XLALShiftINT2Sequence ( | |
| INT2Sequence *sequence, | | INT2Sequence *sequence, | |
| int count | | int count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceResizeP"> | | | |
| \idx{XLALResizeINT2Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceResizeP"> */ | | | |
| INT2Sequence *XLALResizeINT2Sequence ( | | INT2Sequence *XLALResizeINT2Sequence ( | |
| INT2Sequence *sequence, | | INT2Sequence *sequence, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceResizeP"> | | | |
| \idx{XLALShrinkINT2Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceResizeP"> */ | | | |
| INT2Sequence *XLALShrinkINT2Sequence ( | | INT2Sequence *XLALShrinkINT2Sequence ( | |
| INT2Sequence *sequence, | | INT2Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALINT2Sum ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| INT2 XLALINT2Sum ( | | INT2 XLALINT2Sum ( | |
| const INT2 *data, | | const INT2 *data, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALINT2SumSquares ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| UINT2 XLALINT2SumSquares ( | | UINT2 XLALINT2SumSquares ( | |
| const INT2 *data, | | const INT2 *data, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALINT2SequenceSum ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| INT2 XLALINT2SequenceSum ( | | INT2 XLALINT2SequenceSum ( | |
| const INT2Sequence *sequence, | | const INT2Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALINT2SequenceSumSquares ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| UINT2 XLALINT2SequenceSumSquares ( | | UINT2 XLALINT2SequenceSumSquares ( | |
| const INT2Sequence *sequence, | | const INT2Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceDestroyP"> | | /* INT4 prototypes */ | |
| \idx{XLALDestroyINT4Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceDestroyP"> */ | | | |
| void XLALDestroyINT4Sequence ( | | void XLALDestroyINT4Sequence ( | |
| INT4Sequence *sequence | | INT4Sequence *sequence | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCreateP"> | | | |
| \idx{XLALCreateINT4Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCreateP"> */ | | | |
| INT4Sequence *XLALCreateINT4Sequence ( | | INT4Sequence *XLALCreateINT4Sequence ( | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCutP"> | | | |
| \idx{XLALCutINT4Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCutP"> */ | | | |
| INT4Sequence *XLALCutINT4Sequence ( | | INT4Sequence *XLALCutINT4Sequence ( | |
| INT4Sequence *sequence, | | INT4Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCutP"> | | | |
| \idx{XLALCopyINT4Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCutP"> */ | | | |
| INT4Sequence *XLALCopyINT4Sequence ( | | INT4Sequence *XLALCopyINT4Sequence ( | |
| INT4Sequence *sequence | | INT4Sequence *sequence | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceShiftP"> | | | |
| \idx{XLALShiftINT4Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceShiftP"> */ | | | |
| void XLALShiftINT4Sequence ( | | void XLALShiftINT4Sequence ( | |
| INT4Sequence *sequence, | | INT4Sequence *sequence, | |
| int count | | int count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceResizeP"> | | | |
| \idx{XLALResizeINT4Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceResizeP"> */ | | | |
| INT4Sequence *XLALResizeINT4Sequence ( | | INT4Sequence *XLALResizeINT4Sequence ( | |
| INT4Sequence *sequence, | | INT4Sequence *sequence, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceResizeP"> | | | |
| \idx{XLALShrinkINT4Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceResizeP"> */ | | | |
| INT4Sequence *XLALShrinkINT4Sequence ( | | INT4Sequence *XLALShrinkINT4Sequence ( | |
| INT4Sequence *sequence, | | INT4Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALINT4Sum ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| INT4 XLALINT4Sum ( | | INT4 XLALINT4Sum ( | |
| const INT4 *data, | | const INT4 *data, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALINT4SumSquares ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| UINT4 XLALINT4SumSquares ( | | UINT4 XLALINT4SumSquares ( | |
| const INT4 *data, | | const INT4 *data, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALINT4SequenceSum ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| INT4 XLALINT4SequenceSum ( | | INT4 XLALINT4SequenceSum ( | |
| const INT4Sequence *sequence, | | const INT4Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALINT4SequenceSumSquares ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| UINT4 XLALINT4SequenceSumSquares ( | | UINT4 XLALINT4SequenceSumSquares ( | |
| const INT4Sequence *sequence, | | const INT4Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceDestroyP"> | | /* INT8 prototypes */ | |
| \idx{XLALDestroyINT8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceDestroyP"> */ | | | |
| void XLALDestroyINT8Sequence ( | | void XLALDestroyINT8Sequence ( | |
| INT8Sequence *sequence | | INT8Sequence *sequence | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCreateP"> | | | |
| \idx{XLALCreateINT8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCreateP"> */ | | | |
| INT8Sequence *XLALCreateINT8Sequence ( | | INT8Sequence *XLALCreateINT8Sequence ( | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCutP"> | | | |
| \idx{XLALCutINT8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCutP"> */ | | | |
| INT8Sequence *XLALCutINT8Sequence ( | | INT8Sequence *XLALCutINT8Sequence ( | |
| INT8Sequence *sequence, | | INT8Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCutP"> | | | |
| \idx{XLALCopyINT8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCutP"> */ | | | |
| INT8Sequence *XLALCopyINT8Sequence ( | | INT8Sequence *XLALCopyINT8Sequence ( | |
| INT8Sequence *sequence | | INT8Sequence *sequence | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceShiftP"> | | | |
| \idx{XLALShiftINT8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceShiftP"> */ | | | |
| void XLALShiftINT8Sequence ( | | void XLALShiftINT8Sequence ( | |
| INT8Sequence *sequence, | | INT8Sequence *sequence, | |
| int count | | int count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceResizeP"> | | | |
| \idx{XLALResizeINT8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceResizeP"> */ | | | |
| INT8Sequence *XLALResizeINT8Sequence ( | | INT8Sequence *XLALResizeINT8Sequence ( | |
| INT8Sequence *sequence, | | INT8Sequence *sequence, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceResizeP"> | | | |
| \idx{XLALShrinkINT8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceResizeP"> */ | | | |
| INT8Sequence *XLALShrinkINT8Sequence ( | | INT8Sequence *XLALShrinkINT8Sequence ( | |
| INT8Sequence *sequence, | | INT8Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALINT8Sum ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| INT8 XLALINT8Sum ( | | INT8 XLALINT8Sum ( | |
| const INT8 *data, | | const INT8 *data, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALINT8SumSquares ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| UINT8 XLALINT8SumSquares ( | | UINT8 XLALINT8SumSquares ( | |
| const INT8 *data, | | const INT8 *data, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALINT8SequenceSum ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| INT8 XLALINT8SequenceSum ( | | INT8 XLALINT8SequenceSum ( | |
| const INT8Sequence *sequence, | | const INT8Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALINT8SequenceSumSquares ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| UINT8 XLALINT8SequenceSumSquares ( | | UINT8 XLALINT8SequenceSumSquares ( | |
| const INT8Sequence *sequence, | | const INT8Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceDestroyP"> | | /* UINT2 prototypes */ | |
| \idx{XLALDestroyUINT2Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceDestroyP"> */ | | | |
| void XLALDestroyUINT2Sequence ( | | void XLALDestroyUINT2Sequence ( | |
| UINT2Sequence *sequence | | UINT2Sequence *sequence | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCreateP"> | | | |
| \idx{XLALCreateUINT2Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCreateP"> */ | | | |
| UINT2Sequence *XLALCreateUINT2Sequence ( | | UINT2Sequence *XLALCreateUINT2Sequence ( | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCutP"> | | | |
| \idx{XLALCutUINT2Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCutP"> */ | | | |
| UINT2Sequence *XLALCutUINT2Sequence ( | | UINT2Sequence *XLALCutUINT2Sequence ( | |
| UINT2Sequence *sequence, | | UINT2Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCutP"> | | | |
| \idx{XLALCopyUINT2Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCutP"> */ | | | |
| UINT2Sequence *XLALCopyUINT2Sequence ( | | UINT2Sequence *XLALCopyUINT2Sequence ( | |
| UINT2Sequence *sequence | | UINT2Sequence *sequence | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceShiftP"> | | | |
| \idx{XLALShiftUINT2Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceShiftP"> */ | | | |
| void XLALShiftUINT2Sequence ( | | void XLALShiftUINT2Sequence ( | |
| UINT2Sequence *sequence, | | UINT2Sequence *sequence, | |
| int count | | int count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceResizeP"> | | | |
| \idx{XLALResizeUINT2Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceResizeP"> */ | | | |
| UINT2Sequence *XLALResizeUINT2Sequence ( | | UINT2Sequence *XLALResizeUINT2Sequence ( | |
| UINT2Sequence *sequence, | | UINT2Sequence *sequence, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceResizeP"> | | | |
| \idx{XLALShrinkUINT2Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceResizeP"> */ | | | |
| UINT2Sequence *XLALShrinkUINT2Sequence ( | | UINT2Sequence *XLALShrinkUINT2Sequence ( | |
| UINT2Sequence *sequence, | | UINT2Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALUINT2Sum ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| UINT2 XLALUINT2Sum ( | | UINT2 XLALUINT2Sum ( | |
| const UINT2 *data, | | const UINT2 *data, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALUINT2SumSquares ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| UINT2 XLALUINT2SumSquares ( | | UINT2 XLALUINT2SumSquares ( | |
| const UINT2 *data, | | const UINT2 *data, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALUINT2SequenceSum ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| UINT2 XLALUINT2SequenceSum ( | | UINT2 XLALUINT2SequenceSum ( | |
| const UINT2Sequence *sequence, | | const UINT2Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALUINT2SequenceSumSquares ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| UINT2 XLALUINT2SequenceSumSquares ( | | UINT2 XLALUINT2SequenceSumSquares ( | |
| const UINT2Sequence *sequence, | | const UINT2Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceDestroyP"> | | /* UINT4 prototypes */ | |
| \idx{XLALDestroyUINT4Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceDestroyP"> */ | | | |
| void XLALDestroyUINT4Sequence ( | | void XLALDestroyUINT4Sequence ( | |
| UINT4Sequence *sequence | | UINT4Sequence *sequence | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCreateP"> | | | |
| \idx{XLALCreateUINT4Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCreateP"> */ | | | |
| UINT4Sequence *XLALCreateUINT4Sequence ( | | UINT4Sequence *XLALCreateUINT4Sequence ( | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCutP"> | | | |
| \idx{XLALCutUINT4Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCutP"> */ | | | |
| UINT4Sequence *XLALCutUINT4Sequence ( | | UINT4Sequence *XLALCutUINT4Sequence ( | |
| UINT4Sequence *sequence, | | UINT4Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCutP"> | | | |
| \idx{XLALCopyUINT4Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCutP"> */ | | | |
| UINT4Sequence *XLALCopyUINT4Sequence ( | | UINT4Sequence *XLALCopyUINT4Sequence ( | |
| UINT4Sequence *sequence | | UINT4Sequence *sequence | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceShiftP"> | | | |
| \idx{XLALShiftUINT4Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceShiftP"> */ | | | |
| void XLALShiftUINT4Sequence ( | | void XLALShiftUINT4Sequence ( | |
| UINT4Sequence *sequence, | | UINT4Sequence *sequence, | |
| int count | | int count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceResizeP"> | | | |
| \idx{XLALResizeUINT4Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceResizeP"> */ | | | |
| UINT4Sequence *XLALResizeUINT4Sequence ( | | UINT4Sequence *XLALResizeUINT4Sequence ( | |
| UINT4Sequence *sequence, | | UINT4Sequence *sequence, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceResizeP"> | | | |
| \idx{XLALShrinkUINT4Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceResizeP"> */ | | | |
| UINT4Sequence *XLALShrinkUINT4Sequence ( | | UINT4Sequence *XLALShrinkUINT4Sequence ( | |
| UINT4Sequence *sequence, | | UINT4Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALUINT4Sum ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| UINT4 XLALUINT4Sum ( | | UINT4 XLALUINT4Sum ( | |
| const UINT4 *data, | | const UINT4 *data, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALUINT4SumSquares ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| UINT4 XLALUINT4SumSquares ( | | UINT4 XLALUINT4SumSquares ( | |
| const UINT4 *data, | | const UINT4 *data, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALUINT4SequenceSum ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| UINT4 XLALUINT4SequenceSum ( | | UINT4 XLALUINT4SequenceSum ( | |
| const UINT4Sequence *sequence, | | const UINT4Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALUINT4SequenceSumSquares ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| UINT4 XLALUINT4SequenceSumSquares ( | | UINT4 XLALUINT4SequenceSumSquares ( | |
| const UINT4Sequence *sequence, | | const UINT4Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceDestroyP"> | | /* UINT8 prototypes */ | |
| \idx{XLALDestroyUINT8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceDestroyP"> */ | | | |
| void XLALDestroyUINT8Sequence ( | | void XLALDestroyUINT8Sequence ( | |
| UINT8Sequence *sequence | | UINT8Sequence *sequence | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCreateP"> | | | |
| \idx{XLALCreateUINT8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCreateP"> */ | | | |
| UINT8Sequence *XLALCreateUINT8Sequence ( | | UINT8Sequence *XLALCreateUINT8Sequence ( | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCutP"> | | | |
| \idx{XLALCutUINT8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCutP"> */ | | | |
| UINT8Sequence *XLALCutUINT8Sequence ( | | UINT8Sequence *XLALCutUINT8Sequence ( | |
| UINT8Sequence *sequence, | | UINT8Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceCutP"> | | | |
| \idx{XLALCopyUINT8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceCutP"> */ | | | |
| UINT8Sequence *XLALCopyUINT8Sequence ( | | UINT8Sequence *XLALCopyUINT8Sequence ( | |
| UINT8Sequence *sequence | | UINT8Sequence *sequence | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceShiftP"> | | | |
| \idx{XLALShiftUINT8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceShiftP"> */ | | | |
| void XLALShiftUINT8Sequence ( | | void XLALShiftUINT8Sequence ( | |
| UINT8Sequence *sequence, | | UINT8Sequence *sequence, | |
| int count | | int count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceResizeP"> | | | |
| \idx{XLALResizeUINT8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceResizeP"> */ | | | |
| UINT8Sequence *XLALResizeUINT8Sequence ( | | UINT8Sequence *XLALResizeUINT8Sequence ( | |
| UINT8Sequence *sequence, | | UINT8Sequence *sequence, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceResizeP"> | | | |
| \idx{XLALShrinkUINT8Sequence ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceResizeP"> */ | | | |
| UINT8Sequence *XLALShrinkUINT8Sequence ( | | UINT8Sequence *XLALShrinkUINT8Sequence ( | |
| UINT8Sequence *sequence, | | UINT8Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALUINT8Sum ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| UINT8 XLALUINT8Sum ( | | UINT8 XLALUINT8Sum ( | |
| const UINT8 *data, | | const UINT8 *data, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALUINT8SumSquares ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| UINT8 XLALUINT8SumSquares ( | | UINT8 XLALUINT8SumSquares ( | |
| const UINT8 *data, | | const UINT8 *data, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALUINT8SequenceSum ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| UINT8 XLALUINT8SequenceSum ( | | UINT8 XLALUINT8SequenceSum ( | |
| const UINT8Sequence *sequence, | | const UINT8Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="SequenceSumP"> | | | |
| \idx{XLALUINT8SequenceSumSquares ()} | | | |
| </lalLaTeX> <lalVerbatim file="SequenceSumP"> */ | | | |
| UINT8 XLALUINT8SequenceSumSquares ( | | UINT8 XLALUINT8SequenceSumSquares ( | |
| const UINT8Sequence *sequence, | | const UINT8Sequence *sequence, | |
| size_t first, | | size_t first, | |
| size_t count | | size_t count | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | #if 0 | |
| | | { /* so that editors will match succeeding brace */ | |
| | | #elif defined(__cplusplus) | |
| | | } | |
| | | #endif | |
| | | | |
| #endif /* _SEQUENCE_H */ | | #endif /* _SEQUENCE_H */ | |
| | | | |
End of changes. 227 change blocks. |
| 450 lines changed or deleted | | 33 lines changed or added | |
|
| SimulateCoherentGW.h | | SimulateCoherentGW.h | |
| | | | |
| skipping to change at line 20 | | skipping to change at line 20 | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | | * GNU General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with with program; see the file COPYING. If not, write to the | | * along with with program; see the file COPYING. If not, write to the | |
| * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | | * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | |
| * MA 02111-1307 USA | | * MA 02111-1307 USA | |
| */ | | */ | |
| | | | |
|
| /*************************** <lalVerbatim file="SimulateCoherentGWHV"> | | #ifndef _SIMULATECOHERENTGW_H | |
| Author: Creighton, T. D. | | #define _SIMULATECOHERENTGW_H | |
| $Id$ | | | |
| **************************************************** </lalVerbatim> */ | | | |
| | | | |
|
| /********************************************************** <lalLaTeX> | | /* remove SWIG interface directives */ | |
| | | #if !defined(SWIG) && !defined(SWIGLAL_STRUCT) | |
| | | #define SWIGLAL_STRUCT(...) | |
| | | #endif | |
| | | | |
|
| \providecommand{\bm}[1]{\mbox{\boldmath$#1$\unboldmath}} | | #include <lal/LALStdlib.h> | |
| \providecommand{\lessim}{\stackrel{<}{\scriptstyle\sim}} | | #include <lal/DetectorSite.h> | |
| | | #include <lal/SkyCoordinates.h> | |
| | | #include <lal/LALBarycenter.h> | |
| | | | |
|
| \section{Header \texttt{SimulateCoherentGW.h}} | | #if defined(__cplusplus) | |
| \label{s:SimulateCoherentGW.h} | | extern "C" { | |
| | | #elif 0 | |
| | | } /* so that editors will match preceding brace */ | |
| | | #endif | |
| | | | |
|
| Provides routines to simulate generic gravitational waveforms | | NRCSID( SIMULATECOHERENTGWH, "$Id$" ); | |
| | | | |
| | | /** | |
| | | \author Creighton, T. D. | |
| | | \addtogroup SimulateCoherentGW_h | |
| | | | |
| | | \brief Provides routines to simulate generic gravitational waveforms | |
| originating from a particular source. | | originating from a particular source. | |
| | | | |
|
| \subsection*{Synopsis} | | \heading{Synopsis} | |
| \begin{verbatim} | | \code | |
| #include <lal/SimulateCoherentGW.h> | | #include <lal/SimulateCoherentGW.h> | |
|
| \end{verbatim} | | \endcode | |
| | | | |
| This header covers generic routines and structures to represent and | | This header covers generic routines and structures to represent and | |
| simulate the effects of a plane gravitational wave propagating from a | | simulate the effects of a plane gravitational wave propagating from a | |
| distinct point on the sky. | | distinct point on the sky. | |
| | | | |
| Any plane gravitational wave is specified by a direction | | Any plane gravitational wave is specified by a direction | |
|
| $\bm{\hat{n}}$ to its apparent source (i.e.\ opposite to its direction | | \f$\mathbf{\hat{n}}\f$ to its apparent source (i.e.\ opposite to its direct | |
| of propagation), and by the inistantaneous values $h_+(t)$, | | ion | |
| $h_\times(t)$ of its plus and cross polarizations as functions of | | of propagation), and by the inistantaneous values \f$h_+(t)\f$, | |
| (retarded) time $t=t_0+\bm{\hat{n}}\cdot(\bm{x}-\bm{x}_0)$, where | | \f$h_\times(t)\f$ of its plus and cross polarizations as functions of | |
| $t_0$ is the time measured at some local reference point $\bm{x}_0$, | | (retarded) time \f$t=t_0+\mathbf{\hat{n}}\cdot(\mathbf{x}-\mathbf{x}_0)\f$, | |
| and $t$ is the time measured by a synchronized clock at $\bm{x}$. We | | where | |
| | | \f$t_0\f$ is the time measured at some local reference point \f$\mathbf{x}_ | |
| | | 0\f$, | |
| | | and \f$t\f$ is the time measured by a synchronized clock at \f$\mathbf{x}\f | |
| | | $. We | |
| adopt the standard meaning of the instantaneous strain amplitudes | | adopt the standard meaning of the instantaneous strain amplitudes | |
|
| $h_{+,\times}$: in some reference transverse $x$-$y$ coordinate system | | \f$h_{+,\times}\f$: in some reference transverse \f$x\f$-\f$y\f$ coordinate | |
| oriented such that $\bm{\hat{x}}\times\bm{\hat{y}}=-\bm{\hat{n}}$ | | system | |
| | | oriented such that \f$\mathbf{\hat{x}}\times\mathbf{\hat{y}}=-\mathbf{\hat{ | |
| | | n}}\f$ | |
| points in the direction of propagation, two free observers originally | | points in the direction of propagation, two free observers originally | |
|
| separated by a displacement $(x,y)$ will experience an additional | | separated by a displacement \f$(x,y)\f$ will experience an additional | |
| tidal displacement $\delta x=(xh_+ + yh_\times)/2$, $\delta | | tidal displacement \f$\delta x=(xh_+ + yh_\times)/2\f$, \f$\delta | |
| y=(xh_\times - yh_+)/2$. | | y=(xh_\times - yh_+)/2\f$. | |
| | | | |
|
| \paragraph{Quasiperiodic waves:} Most astrophysical sources of | | \heading{Quasiperiodic waves:} Most astrophysical sources of | |
| gravitational radiation are described as \emph{quasiperiodic} (or, | | gravitational radiation are described as \e quasiperiodic (or, | |
| less accurately, as ``adiabatic''), in that they can be said to have | | less accurately, as "adiabatic"), in that they can be said to have | |
| an instantaneous frequency, amplitude, and polarization, all of which | | an instantaneous frequency, amplitude, and polarization, all of which | |
| vary on timescales much longer than a wave period. Mathematically we | | vary on timescales much longer than a wave period. Mathematically we | |
| write this as: | | write this as: | |
|
| $$ | | \f[ | |
| h_{+,\times}(t) = A_{+,\times}(t)\cos\phi(t) | | h_{+,\times}(t) = A_{+,\times}(t)\cos\phi(t) | |
| + B_{+,\times}(t)\sin\phi(t) \; , | | + B_{+,\times}(t)\sin\phi(t) \; , | |
|
| $$ | | \f] | |
| \begin{wrapfigure}{r}{0.47\textwidth} | | | |
| \vspace{-4ex} | | \wrapfig{r,0.47\textwidth,fig_phase_diagram} | |
| \begin{center} | | \image html inject_phase_diagram.png "Fig. [fig_phase_diagram]: Polarizatio | |
| \resizebox{0.42\textwidth}{!}{\includegraphics{inject_phase_diagram}} \\ | | n phase diagram for a quasiperiodic gravitational wave. The phase point p(t | |
| \parbox{0.42\textwidth}{\caption{\label{fig:phase-diagram} | | ) traces out the indicated ellipse in the h_+,h_x plane; the parameters A1, | |
| Polarization phase diagram for a quasiperiodic gravitational wave. | | A2 and Phi remain roughly constant over many cycles in phi." | |
| The phase point $p(t)$ traces out the indicated ellipse in the | | \image latex inject_phase_diagram.eps "Polarization phase diagram for a qua | |
| $h_+,h_\times$ plane; the parameters $A_1$, $A_2$, and $\Phi$ | | siperiodic gravitational wave. The phase point p(t) traces out the indicate | |
| remain roughly constant over many cycles in $\phi$.}} | | d ellipse in the h_+,h_x plane; the parameters A1, A2 and Phi remain roughl | |
| \end{center} | | y constant over many cycles in phi." width=0.42\textwidth | |
| \vspace{-2ex} | | | |
| \end{wrapfigure} | | where \f$\phi(t)=2\pi\int f(t)\,dt\f$, and the <em>evolution timescale</em> | |
| where $\phi(t)=2\pi\int f(t)\,dt$, and the \emph{evolution timescale} | | \f$\tau=\min\{A/\dot{A},B/\dot{B},f/\dot{f}\}\f$ is much greater than | |
| $\tau=\min\{A/\dot{A},B/\dot{B},f/\dot{f}\}$ is much greater than | | \f$h/\dot{h}\sim1/f\f$. Obviously it is mathematically impossible for the | |
| $h/\dot{h}\sim1/f$. Obviously it is mathematically impossible for the | | physical functions \f$h_{+,\times}(t)\f$ to specify uniquely more than two | |
| physical functions $h_{+,\times}(t)$ to specify uniquely more than two | | | |
| other functions of time; we rely on the notion of quasiperiodicity to | | other functions of time; we rely on the notion of quasiperiodicity to | |
|
| define ``natural'' choices of instantaneous frequency and amplitude. | | define "natural" choices of instantaneous frequency and amplitude. | |
| The ambiguity in this choice is on the order of the amount that these | | The ambiguity in this choice is on the order of the amount that these | |
| quantities change over a cycle. | | quantities change over a cycle. | |
| | | | |
| While the above formula appears to have five degrees of freedom (two | | While the above formula appears to have five degrees of freedom (two | |
|
| quadrature amplitudes $A$ and $B$ for each polarization, plus a common | | quadrature amplitudes \f$A\f$ and \f$B\f$ for each polarization, plus a com | |
| phase function $\phi$), there is a degeneracy between the two | | mon | |
| | | phase function \f$\phi\f$), there is a degeneracy between the two | |
| quadrature amplitudes and a shift in phase. One could simply treat | | quadrature amplitudes and a shift in phase. One could simply treat | |
| each polarization independently and represent the system with two | | each polarization independently and represent the system with two | |
|
| amplitude functions $A_{+,\times}$ and two phase functions | | amplitude functions \f$A_{+,\times}\f$ and two phase functions | |
| $\phi_{+,\times}$, but we would like to preserve the notion that the | | \f$\phi_{+,\times}\f$, but we would like to preserve the notion that the | |
| phases of the two waveforms derive from a single underlying | | phases of the two waveforms derive from a single underlying | |
| instantaneous frequency. We therefore write the waveforms in terms of | | instantaneous frequency. We therefore write the waveforms in terms of | |
|
| two polarization amplitudes $A_1(t)$ and $A_2(t)$, a single phase | | two polarization amplitudes \f$A_1(t)\f$ and \f$A_2(t)\f$, a single phase | |
| function $\phi(t)$, and a polarization shift $\Phi(t)$: | | function \f$\phi(t)\f$, and a polarization shift \f$\Phi(t)\f$: | |
| \begin{eqnarray} | | \anchor eq_quasiperiodic_hplus \anchor eq_quasiperiodic_hcross \f{eqnarray} | |
| \label{eq:quasiperiodic-hplus} | | { | |
| | | \label{eq_quasiperiodic_hplus} | |
| h_+(t) & = & A_1(t)\cos\Phi(t)\cos\phi(t) | | h_+(t) & = & A_1(t)\cos\Phi(t)\cos\phi(t) | |
| - A_2(t)\sin\Phi(t)\sin\phi(t) \; , \\ | | - A_2(t)\sin\Phi(t)\sin\phi(t) \; , \\ | |
|
| \label{eq:quasiperiodic-hcross} | | \label{eq_quasiperiodic_hcross} | |
| h_\times(t) & = & A_1(t)\sin\Phi(t)\cos\phi(t) | | h_\times(t) & = & A_1(t)\sin\Phi(t)\cos\phi(t) | |
| + A_2(t)\cos\Phi(t)\sin\phi(t) \; . | | + A_2(t)\cos\Phi(t)\sin\phi(t) \; . | |
|
| \end{eqnarray} | | \f} | |
| The physical meaning of these functions is shown in | | The physical meaning of these functions is shown in Fig.\figref{fig_phase_d | |
| Fig.~\ref{fig:phase-diagram}. | | iagram}. | |
| | | | |
|
| There is a close relationship between the polarization shift $\Phi$ | | There is a close relationship between the polarization shift \f$\Phi\f$ | |
| and the orientation of the $x$-$y$ coordinates used to define our | | and the orientation of the \f$x\f$-\f$y\f$ coordinates used to define our | |
| polarization basis: if we rotate the $x$ and $y$ axes by an angle | | polarization basis: if we rotate the \f$x\f$ and \f$y\f$ axes by an angle | |
| $\Delta\psi$, we change $\Phi$ by an amount $-2\Delta\psi$. (The | | \f$\Delta\psi\f$, we change \f$\Phi\f$ by an amount \f$-2\Delta\psi\f$. (T | |
| factor of 2 comes from the fact that the + and $\times$ modes are | | he | |
| quadrupolar: a + mode rotated $45^\circ$ is a $\times$ mode, and a | | factor of 2 comes from the fact that the + and \f$\times\f$ modes are | |
| mode rotated $90^\circ$ is the opposite of itself.) We use the | | quadrupolar: a + mode rotated \f$45^\circ\f$ is a \f$\times\f$ mode, and a | |
| \emph{polarization angle} $\psi$ to define the orientation of the | | mode rotated \f$90^\circ\f$ is the opposite of itself.) We use the | |
| $x$-axis of the polarization basis relative to an Earth-fixed | | <em>polarization angle</em> \f$\psi\f$ to define the orientation of the | |
| reference frame (see the coordinate conventions below). If $\Phi$ is | | \f$x\f$-axis of the polarization basis relative to an Earth-fixed | |
| constant, one can redefine $\psi$ such that $\Phi=0$; however, when | | reference frame (see the coordinate conventions below). If \f$\Phi\f$ is | |
| $\Phi$ changes with time, we would nonetheless like our polarization | | constant, one can redefine \f$\psi\f$ such that \f$\Phi=0\f$; however, when | |
| basis to remain fixed. We therefore retain the constant $\psi$ and | | \f$\Phi\f$ changes with time, we would nonetheless like our polarization | |
| the function $\Phi(t)$ as distinct quantities. | | basis to remain fixed. We therefore retain the constant \f$\psi\f$ and | |
| | | the function \f$\Phi(t)\f$ as distinct quantities. | |
| | | | |
| The advantage of this quasiperiodic representation of a gravitational | | The advantage of this quasiperiodic representation of a gravitational | |
|
| wave is that a physical sampling of the parameters $A_1$, $A_2$, | | wave is that a physical sampling of the parameters \f$A_1\f$, \f$A_2\f$, | |
| $\phi$, and $\Phi$ need only be done on timescales $\Delta | | \f$\phi\f$, and \f$\Phi\f$ need only be done on timescales \f$\Delta | |
| t\lessim\tau$, whereas the actual wave functions $h_{+,\times}$ need | | t\lessim\tau\f$, whereas the actual wave functions \f$h_{+,\times}\f$ need | |
| to be sampled on timescales $\Delta t\lessim1/f$. | | to be sampled on timescales \f$\Delta t\lessim1/f\f$. | |
| | | | |
| The following coordinate conventions are assumed: | | The following coordinate conventions are assumed: | |
|
| \begin{enumerate} | | <ol> | |
| \item Fig.~7 of~\cite{Will_C:1996} defines standard coordinate | | <li> Fig. 7 of [\ref Will_C_1996] defines standard coordinate | |
| conventions for nonprecessing binaries, and by extension, for any | | conventions for nonprecessing binaries, and by extension, for any | |
|
| fixed-axis rotating source: If $\bm{\hat{z}}$ points in the direction | | fixed-axis rotating source: If \f$\mathbf{\hat{z}}\f$ points in the directi | |
| of wave propagation (away from the source), and $\bm{\hat{l}}$ points | | on | |
| | | of wave propagation (away from the source), and \f$\mathbf{\hat{l}}\f$ poin | |
| | | ts | |
| in the (constant) direction of the source's angular momentum vector, | | in the (constant) direction of the source's angular momentum vector, | |
|
| then the $x$-$y$ coordinates used to define the + and $\times$ | | then the \f$x\f$-\f$y\f$ coordinates used to define the + and \f$\times\f$ | |
| polarizations are given by $\bm{\hat{x}}=|\csc | | polarizations are given by \f$\mathbf{\hat{x}}=|\csc | |
| i|\bm{\hat{z}}\times\bm{\hat{l}}$ and | | i|\mathbf{\hat{z}}\times\mathbf{\hat{l}}\f$ and | |
| $\bm{\hat{y}}=\bm{\hat{z}}\times\bm{\hat{x}}$, where | | \f$\mathbf{\hat{y}}=\mathbf{\hat{z}}\times\mathbf{\hat{x}}\f$, where | |
| $i=\arccos(\bm{\hat{z}}\cdot\bm{\hat{l}})$ is the inclination angle | | \f$i=\arccos(\mathbf{\hat{z}}\cdot\mathbf{\hat{l}})\f$ is the inclination a | |
| between $\bm{\hat{l}}$ and $\bm{\hat{z}}$. Such a system will | | ngle | |
| generically have $A_1(t)=A(t)(1+\cos^2i)$, $A_2(t)=2A(t)\cos i$, | | between \f$\mathbf{\hat{l}}\f$ and \f$\mathbf{\hat{z}}\f$. Such a system w | |
| $\Phi(t)=0$, and $f(t)>0$ (i.e.\ $\phi(t)$ increasing with time). For | | ill | |
| precessing systems, prescriptions for $\bm{\hat{x}}$ and | | generically have \f$A_1(t)=A(t)(1+\cos^2i)\f$, \f$A_2(t)=2A(t)\cos i\f$, | |
| $\bm{\hat{y}}$ become ambiguous, but they \emph{must} be fixed; the | | \f$\Phi(t)=0\f$, and \f$f(t)>0\f$ (i.e.\ \f$\phi(t)\f$ increasing with time | |
| relations for $A_1$, $A_2$, and $\Phi$ will no longer be maintained. | | ). For | |
| | | precessing systems, prescriptions for \f$\mathbf{\hat{x}}\f$ and | |
| | | \f$\mathbf{\hat{y}}\f$ become ambiguous, but they \e must be fixed; the | |
| | | relations for \f$A_1\f$, \f$A_2\f$, and \f$\Phi\f$ will no longer be mainta | |
| | | ined.</li> | |
| | | | |
|
| \item Appendix~B of~\cite{Anderson_W:2000} defines a convention for | | <li> Appendix B of [\ref Anderson_W2000] defines a convention for | |
| the overal polarization angle $\psi$: Let $\bm{\hat{N}}$ be the | | the overal polarization angle \f$\psi\f$: Let \f$\mathbf{\hat{N}}\f$ be the | |
| direction of the Earth's north celestial pole, and define the | | direction of the Earth's north celestial pole, and define the | |
|
| direction of the \emph{ascending node} | | direction of the <em>ascending node</em> | |
| $\bm{\hat{\Omega}}=|\csc\alpha|\bm{\hat{N}}\times\bm{\hat{z}}$, where | | \f$\mathbf{\hat{\Omega}}=|\csc\alpha|\mathbf{\hat{N}}\times\mathbf{\hat{z}} | |
| $\alpha$ is the right ascension of the source. Then $\psi$ is the | | \f$, where | |
| angle, right-handed about $\bm{\hat{z}}$, from $\bm{\hat{\Omega}}$ to | | \f$\alpha\f$ is the right ascension of the source. Then \f$\psi\f$ is the | |
| $\bm{\hat{x}}$. | | angle, right-handed about \f$\mathbf{\hat{z}}\f$, from \f$\mathbf{\hat{\Ome | |
| | | ga}}\f$ to | |
| | | \f$\mathbf{\hat{x}}\f$.</li> | |
| | | | |
|
| \item The direction of propagation of the wave is defined by the right | | <li> The direction of propagation of the wave is defined by the right | |
| ascension $\alpha$ and declination $\delta$ of the \emph{source}, as | | ascension \f$\alpha\f$ and declination \f$\delta\f$ of the \e source, as | |
| seen from the point of measurement. See \verb@SkyCoordinates.h@ for a | | seen from the point of measurement. See \ref SkyCoordinates_h for a | |
| definition of these quantities. We expect that these will be | | definition of these quantities. We expect that these will be | |
| effectively constant for almost any gravitational wave source of | | effectively constant for almost any gravitational wave source of | |
|
| interest. | | interest.</li> | |
| \end{enumerate} | | </ol> | |
| | | | |
|
| \paragraph{The polarization response:} The relative strain induced in | | \heading{The polarization response:} The relative strain induced in | |
| the test masses of a detector by a passing gravitational wave depends | | the test masses of a detector by a passing gravitational wave depends | |
|
| not only on the amplitudes $h_{+,\times}$ of the gravitational wave, | | not only on the amplitudes \f$h_{+,\times}\f$ of the gravitational wave, | |
| but also on the design of the detector and its orientation with | | but also on the design of the detector and its orientation with | |
|
| relative to the $x$-$y$ coordinate system used to define the + and | | relative to the \f$x\f$-\f$y\f$ coordinate system used to define the + and | |
| $\times$ polarizations. For a given detector, the response to each | | \f$\times\f$ polarizations. For a given detector, the response to each | |
| polarization thus depends on the right ascension $\alpha$, declination | | polarization thus depends on the right ascension \f$\alpha\f$, declination | |
| $\delta$, and polarization angle $\psi$ of the source (which define | | \f$\delta\f$, and polarization angle \f$\psi\f$ of the source (which define | |
| the orientation of the + and $\times$ polarization axes relative to | | the orientation of the + and \f$\times\f$ polarization axes relative to | |
| the Earth), and on the time $t$ (which determines the orientation of | | the Earth), and on the time \f$t\f$ (which determines the orientation of | |
| the detector as the Earth rotates). The strain $h(t)$ induced in the | | the detector as the Earth rotates). The strain \f$h(t)\f$ induced in the | |
| detector is thus given by two polarization response functions | | detector is thus given by two polarization response functions | |
|
| $F_{+,\times}(\alpha,\delta,\psi;t)$ by: | | \f$F_{+,\times}(\alpha,\delta,\psi;t)\f$ by: | |
| $$ | | \f[ | |
| h(t) = h_+(t)F_+(\alpha,\delta,\psi;t) + | | h(t) = h_+(t)F_+(\alpha,\delta,\psi;t) + | |
| h_\times(t)F_\times(\alpha,\delta,\psi;t) \; . | | h_\times(t)F_\times(\alpha,\delta,\psi;t) \; . | |
|
| $$ | | \f] | |
| We will not discuss the computation of these functions $F_{+,\times}$, | | We will not discuss the computation of these functions \f$F_{+,\times}\f$, | |
| as these are covered under the header \verb@DetResponse.h@. | | as these are covered under the header \ref DetResponse_h. | |
| | | | |
|
| \paragraph{The transfer function:} All gravitational wave detectors | | \heading{The transfer function:} All gravitational wave detectors | |
| incorporate a set of analog and digital filters that convert a | | incorporate a set of analog and digital filters that convert a | |
| gravitational excitation on the test masses into a measurable output | | gravitational excitation on the test masses into a measurable output | |
| time series. The effects of these functions are aggregated into a | | time series. The effects of these functions are aggregated into a | |
|
| complex-valued \emph{transfer function} ${\cal T}(f)$, which gives the | | complex-valued <em>transfer function</em> \f${\cal T}(f)\f$, which gives th | |
| instrumental response (in units of ``counts'' from an | | e | |
| analog$\rightarrow$digital converter) to gravitational waves of unit | | instrumental response (in units of "counts" from an | |
| amplitued at the frequency $f$. Specifically, if the strain exerted | | analog\f$\rightarrow\f$digital converter) to gravitational waves of unit | |
| on the antenna is given by $h(t)=\mathrm{Re}[{\cal H}e^{2\pi ift}]$ | | amplitued at the frequency \f$f\f$. Specifically, if the strain exerted | |
| (where the complex amplitude $\cal H$ includes the phase of the wave), | | on the antenna is given by \f$h(t)=\mathrm{Re}[{\cal H}e^{2\pi ift}]\f$ | |
| | | (where the complex amplitude \f$\cal H\f$ includes the phase of the wave), | |
| then the ADC output of the instrument is given by: | | then the ADC output of the instrument is given by: | |
|
| $$ | | \f[ | |
| o(t) = \mathrm{Re}\left[ {\cal T}(f) {\cal H}e^{2\pi ift} \right] \; . | | o(t) = \mathrm{Re}\left[ {\cal T}(f) {\cal H}e^{2\pi ift} \right] \; . | |
|
| $$ | | \f] | |
| The transfer function has a strong frequency dependence in order to | | The transfer function has a strong frequency dependence in order to | |
|
| ``whiten'' the highly-coloured instrumental noise, and thus preserve | | "whiten" the highly-coloured instrumental noise, and thus preserve | |
| instrumental sensitivity across a broad band of frequencies. | | instrumental sensitivity across a broad band of frequencies. | |
| | | | |
| We note that although the transfer function measures the response of | | We note that although the transfer function measures the response of | |
|
| the instrument to a gravitational wave, the term \emph{response | | the instrument to a gravitational wave, the term <em>response | |
| function} refers to inverse transformation of taking an instrumental | | function</em> refers to inverse transformation of taking an instrumental | |
| response and computing a gravitational waveform; that is, ${\cal | | response and computing a gravitational waveform; that is, \f${\cal | |
| R}(f)=1/{\cal T}(f)$. This confusing bit of nomenclature arises from | | R}(f)=1/{\cal T}(f)\f$. This confusing bit of nomenclature arises from | |
| the fact that most data analysis deals with extracting gravitational | | the fact that most data analysis deals with extracting gravitational | |
| waveforms from the instrumental output, rather than injecting | | waveforms from the instrumental output, rather than injecting | |
| waveforms into the output. | | waveforms into the output. | |
| | | | |
| For quasiperiodic waveforms with a well-defined instantaneous | | For quasiperiodic waveforms with a well-defined instantaneous | |
|
| frequency $f(t)$ and phase $\phi(t)$, we can compute the response of | | frequency \f$f(t)\f$ and phase \f$\phi(t)\f$, we can compute the response o
f | |
| the instrument entirely in the time domain in the adiabatic limit: if | | the instrument entirely in the time domain in the adiabatic limit: if | |
| our instrumental excitation is a linear superposition of waveforms | | our instrumental excitation is a linear superposition of waveforms | |
|
| $h(t)=\mathrm{Re}[{\cal H}(t)e^{i\phi(t)}]$, then the output is a | | \f$h(t)=\mathrm{Re}[{\cal H}(t)e^{i\phi(t)}]\f$, then the output is a | |
| superposition of waves of the form | | superposition of waves of the form | |
|
| $$ | | \f[ | |
| o(t) \approx \mathrm{Re}\left[ {\cal T}\{f(t)\} | | o(t) \approx \mathrm{Re}\left[ {\cal T}\{f(t)\} | |
| {\cal H}(t)e^{i\phi(t)} \right] \; . | | {\cal H}(t)e^{i\phi(t)} \right] \; . | |
|
| $$ | | \f] | |
| This expression is approximate to the extent that ${\cal T}(f)$ varies | | This expression is approximate to the extent that \f${\cal T}(f)\f$ varies | |
| over the range $f\pm1/\tau$, where $\tau$ is the evolution timescale | | over the range \f$f\pm1/\tau\f$, where \f$\tau\f$ is the evolution timescal | |
| of ${\cal H}(t)$ and $f(t)$. Since the transfer function and | | e | |
| | | of \f${\cal H}(t)\f$ and \f$f(t)\f$. Since the transfer function and | |
| polarization response (above) are linear operators, we can apply them | | polarization response (above) are linear operators, we can apply them | |
| in either order. | | in either order. | |
| | | | |
|
| \paragraph{A note on terminology:} We use the word ``coherent'' in the | | \heading{A note on terminology:} We use the word "coherent" in the | |
| name of this header in the loosest possible sense, refering to any | | name of this header in the loosest possible sense, refering to any | |
| wave with a well-defined direction of propagation, whose wave | | wave with a well-defined direction of propagation, whose wave | |
|
| amplitudes $h_{+,\times}$ are deterministic functions of retarded | | amplitudes \f$h_{+,\times}\f$ are deterministic functions of retarded | |
| time. Given a knowledge of these parameters, such a waveform is | | time. Given a knowledge of these parameters, such a waveform is | |
|
| amenable to ``coherent'' detection in a network of detectors, through | | amenable to "coherent" detection in a network of detectors, through | |
| time-shifted matched filtering. | | time-shifted matched filtering. | |
| | | | |
| However, coherence is often used to refer to a more restricted class | | However, coherence is often used to refer to a more restricted class | |
|
| of waveforms that are ``effectively monochromatic'' over some | | of waveforms that are "effectively monochromatic" over some | |
| coherence timescale $t_\mathrm{coh}$; i.e.\ in any timespan | | coherence timescale \f$t_\mathrm{coh}\f$; i.e.\ in any timespan | |
| $t_\mathrm{coh}$ there is a fixed-frequency sinusoid that is never | | \f$t_\mathrm{coh}\f$ there is a fixed-frequency sinusoid that is never | |
| more than $90^\circ$ out of phase with the waveform. This is more | | more than \f$90^\circ\f$ out of phase with the waveform. This is more | |
| retrictive even than our concept of quasiperiodic waves; for | | retrictive even than our concept of quasiperiodic waves; for | |
|
| smoothly-varying waveforms one has $t_\mathrm{coh}\sim\dot{f}^{-1/2}$, | | smoothly-varying waveforms one has \f$t_\mathrm{coh}\sim\dot{f}^{-1/2}\f$, | |
| which is much shorter than the evolution timescale $\tau\sim | | which is much shorter than the evolution timescale \f$\tau\sim | |
| f/\dot{f}$ (provided $\tau\gg1/f$, as we have assumed). | | f/\dot{f}\f$ (provided \f$\tau\gg1/f\f$, as we have assumed). | |
| | | | |
| ******************************************************* </lalLaTeX> */ | | | |
| | | | |
| #ifndef _SIMULATECOHERENTGW_H | | | |
| #define _SIMULATECOHERENTGW_H | | | |
| | | | |
| #include <lal/LALStdlib.h> | | | |
| #include <lal/DetectorSite.h> | | | |
| #include <lal/SkyCoordinates.h> | | | |
| #include <lal/LALBarycenter.h> | | | |
| | | | |
| #ifdef __cplusplus | | | |
| extern "C" { | | | |
| #pragma } | | | |
| #endif | | | |
| | | | |
| NRCSID( SIMULATECOHERENTGWH, "$Id$" ); | | | |
| | | | |
|
| /********************************************************** <lalLaTeX> | | */ /**@{ */ | |
| \subsection*{Error conditions} | | /** \name Error Codes */ /*@{*/ | |
| ****************************************** </lalLaTeX><lalErrTable> */ | | #define SIMULATECOHERENTGWH_ENUL 1 /**< Unexpected null pointer in argu | |
| #define SIMULATECOHERENTGWH_ENUL 1 | | ments */ | |
| #define SIMULATECOHERENTGWH_EBAD 2 | | #define SIMULATECOHERENTGWH_EBAD 2 /**< A sampling interval is (effecti | |
| #define SIMULATECOHERENTGWH_ESIG 3 | | vely) zero */ | |
| #define SIMULATECOHERENTGWH_EDIM 4 | | #define SIMULATECOHERENTGWH_ESIG 3 /**< Input signal must specify ampli | |
| #define SIMULATECOHERENTGWH_EMEM 5 | | tude and phase functions */ | |
| #define SIMULATECOHERENTGWH_EUNIT 6 | | #define SIMULATECOHERENTGWH_EDIM 4 /**< Amplitude must be a 2-dimension | |
| | | al vector */ | |
| | | #define SIMULATECOHERENTGWH_EMEM 5 /**< Memory allocation error */ | |
| | | #define SIMULATECOHERENTGWH_EUNIT 6 /**< Bad input units */ | |
| | | /** @} */ | |
| | | /** @} */ | |
| | | | |
|
| | | /** \cond DONT_DOXYGEN */ | |
| #define SIMULATECOHERENTGWH_MSGENUL "Unexpected null pointer in arguments" | | #define SIMULATECOHERENTGWH_MSGENUL "Unexpected null pointer in arguments" | |
| #define SIMULATECOHERENTGWH_MSGEBAD "A sampling interval is (effectively)
zero" | | #define SIMULATECOHERENTGWH_MSGEBAD "A sampling interval is (effectively)
zero" | |
| #define SIMULATECOHERENTGWH_MSGESIG "Input signal must specify amplitude a
nd phase functions" | | #define SIMULATECOHERENTGWH_MSGESIG "Input signal must specify amplitude a
nd phase functions" | |
| #define SIMULATECOHERENTGWH_MSGEDIM "Amplitude must be a 2-dimensional vec
tor" | | #define SIMULATECOHERENTGWH_MSGEDIM "Amplitude must be a 2-dimensional vec
tor" | |
| #define SIMULATECOHERENTGWH_MSGEMEM "Memory allocation error" | | #define SIMULATECOHERENTGWH_MSGEMEM "Memory allocation error" | |
| #define SIMULATECOHERENTGWH_MSGEUNIT "Bad input units" | | #define SIMULATECOHERENTGWH_MSGEUNIT "Bad input units" | |
|
| /******************************************** </lalErrTable><lalLaTeX> | | /** \endcond */ | |
| | | | |
| \subsection*{Types} | | | |
| | | | |
| \subsubsection*{Structure \texttt{CoherentGW}} | | | |
| \idx[Type]{CoherentGW} | | | |
| | | | |
| \noindent This structure stores a representation of a plane | | | |
| gravitational wave propagating from a particular point on the sky. | | | |
| Several alternate representations are permitted to allow a more | | | |
| natural characterization of quasiperiodic waveforms. The fields are: | | | |
| | | | |
| \begin{description} | | | |
| \item[\texttt{SkyPosition position}] The location of the source in the | | | |
| sky. This should be in equatorial celestial coordinates, but routines | | | |
| may be able to do the conversion. | | | |
| | | | |
| \item[\texttt{REAL4 psi}] The polarization angle $\psi$, in radians, | | | |
| as defined in Appendix~B of~\cite{Anderson_W:2000}. | | | |
| | | | |
| \item[\texttt{REAL4TimeVectorSeries *h}] A time-sampled | | | |
| two-dimensional vector storing the waveforms $h_+(t)$ and | | | |
| $h_\times(t)$, in dimensionless strain. | | | |
| | | | |
| \item[\texttt{REAL4TimeVectorSeries *a}] A time-sampled | | | |
| two-dimensional vector storing the amplitudes $A_1(t)$ and $A_2(t)$, | | | |
| in dimensionless strain. | | | |
| | | | |
| \item[\texttt{REAL4TimeSeries *f}] A time-sampled sequence storing the | | | |
| instantaneous frequency $f(t)$, in Hz. | | | |
| | | | |
| \item[\texttt{REAL8TimeSeries *phi}] A time-sampled sequence storing | | | |
| the phase function $\phi(t)$, in radians. | | | |
| | | | |
| \item[\texttt{REAL4TimeSeries *shift}] A time-sampled sequence storing | | | |
| the polarization shift $\Phi(t)$, in radians. | | | |
| \end{description} | | | |
| | | | |
| \noindent It is permissible to set only some of the | | | |
| \verb@REAL4TimeSeries@ or \verb@REAL4TimeVectorSeries@ fields above, | | | |
| but the waveform is treated as being zero except during those times | | | |
| when either \verb@h@, or both \verb@a@ and \verb@phi@, are defined. | | | |
| Where \verb@shift@ is not specified, it is assumed that $\Phi$ is | | | |
| zero; where \verb@f@ is not specified but \verb@phi@ is, $f(t)$ can be | | | |
| computed as $\dot{\phi}(t)/2\pi$. Where \verb@f@ and \verb@phi@ | | | |
| overlap, or where \verb@h@ and any other time series overlap, they | | | |
| must be defined consistently. | | | |
| | | | |
|
| ******************************************************* </lalLaTeX> */ | | /** \ingroup SimulateCoherentGW_h | |
| /** This structure stores a representation of a plane | | * This structure stores a representation of a plane | |
| gravitational wave propagating from a particular point on the sky. | | * gravitational wave propagating from a particular point on the sky. | |
| Several alternate representations are permitted to allow a more | | * Several alternate representations are permitted to allow a more | |
| natural characterization of quasiperiodic waveforms.*/ | | * natural characterization of quasiperiodic waveforms. | |
| | | * | |
| | | * \note It is permissible to set only some of the | |
| | | * \c REAL4TimeSeries or \c REAL4TimeVectorSeries fields above, | |
| | | * but the waveform is treated as being zero except during those times | |
| | | * when either \c h, or both \c a and \c phi, are defined. | |
| | | * Where \c shift is not specified, it is assumed that \f$\Phi\f$ is | |
| | | * zero; where \c f is not specified but \c phi is, \f$f(t)\f$ can be | |
| | | * computed as \f$\dot{\phi}(t)/2\pi\f$. Where \c f and \c phi | |
| | | * overlap, or where \c h and any other time series overlap, they | |
| | | * must be defined consistently. | |
| | | * | |
| | | */ | |
| typedef struct tagCoherentGW { | | typedef struct tagCoherentGW { | |
|
| SkyPosition position; /**< sky position of source */ | | SWIGLAL_STRUCT(CoherentGW); | |
| REAL4 psi; /**< polarization angle of source */ | | SkyPosition position; /**< The location of the source in the sky; thi | |
| REAL4TimeVectorSeries *h; /**< sampled waveforms \f$h_+, h_\times\f$ */ | | s should be in equatorial celestial coordinates, but routines may be able t | |
| REAL4TimeVectorSeries *a; /**< amplitudes \f$A_+, A_\times\f$ */ | | o do the conversion */ | |
| REAL4TimeSeries *f; /**< instantaneous frequency */ | | REAL4 psi; /**< The polarization angle \f$\psi\f$, in radi | |
| REAL8TimeSeries *phi; /**< phase function */ | | ans, as defined in Appendix B of [\ref Anderson_W2000] */ | |
| REAL4TimeSeries *shift; /**< polarization shift Phi */ | | REAL4TimeVectorSeries *h; /**< A time-sampled two-dimensional vector stor | |
| | | ing the waveforms \f$h_+(t)\f$ and \f$h_\times(t)\f$, in dimensionless stra | |
| | | in */ | |
| | | REAL4TimeVectorSeries *a; /**< A time-sampled two-dimensional vector stor | |
| | | ing the amplitudes \f$A_1(t)\f$ and \f$A_2(t)\f$, in dimensionless strain * | |
| | | / | |
| | | REAL4TimeSeries *f; /**< A time-sampled sequence storing the instan | |
| | | taneous frequency \f$f(t)\f$, in Hz. */ | |
| | | REAL8TimeSeries *phi; /**< A time-sampled sequence storing the phase | |
| | | function \f$\phi(t)\f$, in radians */ | |
| | | REAL4TimeSeries *shift; /**< A time-sampled sequence storing the polari | |
| | | zation shift \f$\Phi(t)\f$, in radians */ | |
| } CoherentGW; | | } CoherentGW; | |
| | | | |
|
| /********************************************************** <lalLaTeX> | | /** \ingroup SimulateCoherentGW_h | |
| | | * This structure contains information required to determine the response | |
| \subsubsection*{Structure \texttt{DetectorResponse}} | | * of a detector to a gravitational waveform. | |
| \idx[Type]{DetectorResponse} | | */ | |
| | | | |
| \noindent This structure contains information required to determine | | | |
| the response of a detector to a gravitational waveform. The fields | | | |
| are: | | | |
| | | | |
| \begin{description} | | | |
| \item[\texttt{COMPLEX8FrequencySeries *transfer}] The | | | |
| frequency-dependent transfer function of the interferometer, in ADC | | | |
| counts per unit strain amplitude at any given frequency. If absent, | | | |
| the response will be given in raw strain rather than ADC output. | | | |
| | | | |
| \item[\texttt{LALDetector *site}] A structure storing site and | | | |
| polarization information, used to compute the polarization response | | | |
| and the propagation delay. If absent, the response will be computed | | | |
| to the plus mode waveform with no time delay. | | | |
| | | | |
| \item[\texttt{EphemerisData *ephemerides}] A structure storing the | | | |
| positions, velocities, and accelerations of the Earth and Sun centres | | | |
| of mass, used to compute the propagation delay to the solar system | | | |
| barycentre. If absent, the propagation delay will be computed to the | | | |
| Earth centre (rather than a true barycentre). | | | |
| | | | |
| \item[\texttt{LIGOTimeGPS heterodyneEpoch}] A reference time for | | | |
| heterodyned detector output time series, where the phase of the mixing | | | |
| signal is zero. This parameter is only used when generating detector | | | |
| output time series with nonzero heterodyne frequency \verb@f0@. | | | |
| (Note: This should really be a parameter stored in the | | | |
| \verb@TimeSeries@ structure along with \verb@f0@, but it isnt, so we | | | |
| have to add it here.) | | | |
| \end{description} | | | |
| | | | |
| ******************************************************* </lalLaTeX> */ | | | |
| /** This structure contains information required to determine | | | |
| the response of a detector to a gravitational waveform. */ | | | |
| typedef struct tagDetectorResponse { | | typedef struct tagDetectorResponse { | |
|
| COMPLEX8FrequencySeries *transfer; /**< frequency transfer function */ | | SWIGLAL_STRUCT(DetectorResponse); | |
| LALDetector *site; /**< detector location and o | | COMPLEX8FrequencySeries *transfer; /**< The frequency-dependent transfe | |
| rientation */ | | r function of the interferometer, in ADC counts per unit strain amplitude a | |
| EphemerisData *ephemerides; /**< Earth and Sun ephemerid | | t any given frequency; | |
| es */ | | * if absent, the response will be | |
| LIGOTimeGPS heterodyneEpoch; /**< reference time for hete | | given in raw strain rather than ADC output */ | |
| rodyning */ | | LALDetector *site; /**< A structure storing sit | |
| | | e and polarization information, used to compute the polarization response a | |
| | | nd the propagation delay; | |
| | | * if absent, the response will be | |
| | | computed to the plus mode waveform with no time delay */ | |
| | | EphemerisData *ephemerides; /**< A structure storing the | |
| | | positions, velocities, and accelerations of the Earth and Sun centres of m | |
| | | ass, used to compute | |
| | | * the propagation delay to the sol | |
| | | ar system barycentre; | |
| | | * if absent, the propagation delay | |
| | | will be computed to the Earth centre (rather than a true barycentre) */ | |
| | | LIGOTimeGPS heterodyneEpoch; /**< A reference time for he | |
| | | terodyned detector output time series, where the phase of the mixing signal | |
| | | is zero. | |
| | | * This parameter is only used when | |
| | | generating detector output time series with nonzero heterodyne frequency \ | |
| | | c f0. | |
| | | * (Note: This should really be a p | |
| | | arameter stored in the \c TimeSeries structure along with \c f0, but it isn | |
| | | t, so we | |
| | | * have to add it here.) | |
| | | */ | |
| } DetectorResponse; | | } DetectorResponse; | |
| | | | |
|
| /* <lalLaTeX> | | | |
| \vfill{\footnotesize\input{SimulateCoherentGWHV}} | | | |
| </lalLaTeX> */ | | | |
| | | | |
| /* Function prototypes. */ | | /* Function prototypes. */ | |
| | | | |
|
| /* <lalLaTeX> | | | |
| \newpage\input{SimulateCoherentGWC} | | | |
| </lalLaTeX> */ | | | |
| void | | void | |
| LALSimulateCoherentGW( LALStatus *status, | | LALSimulateCoherentGW( LALStatus *status, | |
| REAL4TimeSeries *output, | | REAL4TimeSeries *output, | |
| CoherentGW *input, | | CoherentGW *input, | |
| DetectorResponse *detector ); | | DetectorResponse *detector ); | |
| | | | |
|
| void | | #if 0 | |
| LALSimulateCoherentGW_exp (LALStatus *status, | | { /* so that editors will match succeeding brace */ | |
| REAL4TimeSeries *output, | | #elif defined(__cplusplus) | |
| CoherentGW *input, | | | |
| DetectorResponse *detector ); | | | |
| | | | |
| /* <lalLaTeX> | | | |
| %\newpage\input{SimulateCoherentGWTestC} | | | |
| </lalLaTeX> */ | | | |
| | | | |
| #ifdef __cplusplus | | | |
| #pragma { | | | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| #endif /* _SIMULATECOHERENTGW_H */ | | #endif /* _SIMULATECOHERENTGW_H */ | |
| | | | |
End of changes. 58 change blocks. |
| 297 lines changed or deleted | | 265 lines changed or added | |
|
| StreamInput.h | | StreamInput.h | |
| | | | |
| skipping to change at line 20 | | skipping to change at line 20 | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | | * GNU General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with with program; see the file COPYING. If not, write to the | | * along with with program; see the file COPYING. If not, write to the | |
| * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | | * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | |
| * MA 02111-1307 USA | | * MA 02111-1307 USA | |
| */ | | */ | |
| | | | |
|
| /********************************** <lalVerbatim file="StreamInputHV"> | | /** | |
| Author: Creighton, T. D. | | \author Creighton, T. D. | |
| $Id$ | | \file | |
| **************************************************** </lalVerbatim> */ | | | |
| | | | |
| /********************************************************** <lalLaTeX> | | | |
| | | | |
|
| \section{Header \texttt{StreamInput.h}} | | \heading{Header \ref StreamInput.h} | |
| \label{s:StreamInput.h} | | \latexonly\label{s_StreamInput_h}\endlatexonly | |
| | | | |
| Provides routines to read data from an open stream and store it in LAL | | Provides routines to read data from an open stream and store it in LAL | |
| data structures. | | data structures. | |
| | | | |
|
| \subsection*{Synopsis} | | \heading{Synopsis} | |
| \begin{verbatim} | | \code | |
| #include "StreamInput.h" | | #include "StreamInput.h" | |
|
| \end{verbatim} | | \endcode | |
| | | | |
|
| \noindent This header provides prototypes for routines that construct | | This header provides prototypes for routines that construct | |
| LAL data structures using the data from a file (or other I/O) stream. | | LAL data structures using the data from a file (or other I/O) stream. | |
| The routines do not provide a system-level interface to create files | | The routines do not provide a system-level interface to create files | |
| and open or close file streams; they simply assume that they have been | | and open or close file streams; they simply assume that they have been | |
| passed an open, readable stream. Nonetheless, because they involve | | passed an open, readable stream. Nonetheless, because they involve | |
| I/O stream manipulation, these routines are placed in the | | I/O stream manipulation, these routines are placed in the | |
|
| \verb@lalsupport@ library rather than in \verb@lal@ proper. | | \c lalsupport library rather than in \c lal proper. | |
| | | | |
|
| The routines in \verb@StreamVectorInput.c@ and | | The routines in \ref StreamVectorInput.c and | |
| \verb@StreamVectorSequenceInput.c@ are compartmentalized in such a way | | \ref StreamVectorSequenceInput.c are compartmentalized in such a way | |
| that they can easily be converted if the LAL specification later | | that they can easily be converted if the LAL specification later | |
| changes the way in which I/O streams are handled. In partucular, the | | changes the way in which I/O streams are handled. In partucular, the | |
|
| only file I/O commands used are \verb@fgets()@ and \verb@feof()@. | | only file I/O commands used are <tt>fgets()</tt> and <tt>feof()</tt>. | |
| Thus the upgrade would involve only the following global changes: | | Thus the upgrade would involve only the following global changes: | |
|
| \begin{enumerate} | | <ol> | |
| \item Replace all occurrences of \verb@FILE *@ with the name of the | | <li> Replace all occurrences of <tt>FILE *</tt> with the name of the | |
| LAL I/O stream pointer type. | | LAL I/O stream pointer type.</li> | |
| \item Replace all occurrences of \verb@fgets()@ and \verb@feof()@ with | | <li> Replace all occurrences of <tt>fgets()</tt> and <tt>feof()</tt> with | |
| equivalent LAL functions. | | equivalent LAL functions.</li> | |
| \end{enumerate} | | </ol> | |
| In particular, there is no need to translate routines such as | | In particular, there is no need to translate routines such as | |
|
| \verb@fscanf()@; one should simply read data into a LAL | | <tt>fscanf()</tt>; one should simply read data into a LAL | |
| \verb@CHARVector@ and then use \verb@sscanf()@ to format the input. | | \c CHARVector and then use <tt>sscanf()</tt> to format the input. | |
| This is the approach used in the numerical input routines in | | This is the approach used in the numerical input routines in | |
|
| \verb@StreamVectorInput.c@ and \verb@StreamVectorSequenceInput.c@. | | \ref StreamVectorInput.c and \ref StreamVectorSequenceInput.c. | |
| | | | |
|
| The routines in \verb@StreamSequenceInput.c@ are less robust but much | | The routines in \ref StreamSequenceInput.c are less robust but much | |
| more efficient: they use \verb@fscanf()@ to parse the input stream | | more efficient: they use <tt>fscanf()</tt> to parse the input stream | |
| directly. They are intended primarily for test programs that may need | | directly. They are intended primarily for test programs that may need | |
| to read large datafiles of undetermined length. The routines in | | to read large datafiles of undetermined length. The routines in | |
|
| \verb@StreamSeriesInput.c@ and \verb@StreamGridInput.c@ also parse the | | \ref StreamSeriesInput.c and \ref StreamGridInput.c also parse the | |
| input stream directly using \verb@fscanf()@, to avoid potentially | | input stream directly using <tt>fscanf()</tt>, to avoid potentially | |
| crippling computational overhead. | | crippling computational overhead. | |
| | | | |
|
| ******************************************************* </lalLaTeX> */ | | */ | |
| | | | |
| #ifndef _STREAMINPUT_H | | #ifndef _STREAMINPUT_H | |
| #define _STREAMINPUT_H | | #define _STREAMINPUT_H | |
| | | | |
| #include <lal/LALStdlib.h> | | #include <lal/LALStdlib.h> | |
| #include <lal/Grid.h> | | #include <lal/Grid.h> | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| | | | |
| NRCSID(STREAMINPUTH,"$Id$"); | | NRCSID(STREAMINPUTH,"$Id$"); | |
| | | | |
|
| /********************************************************** <lalLaTeX> | | /** | |
| \subsection*{Error conditions} | | \heading{Error conditions} | |
| ****************************************** </lalLaTeX><lalErrTable> */ | | \name Error Codes */ /*@{*/ | |
| #define STREAMINPUTH_ENUL 1 | | #define STREAMINPUTH_ENUL 1 | |
| #define STREAMINPUTH_EOUT 2 | | #define STREAMINPUTH_EOUT 2 | |
| #define STREAMINPUTH_EMEM 3 | | #define STREAMINPUTH_EMEM 3 | |
| #define STREAMINPUTH_ELEN 4 | | #define STREAMINPUTH_ELEN 4 | |
| #define STREAMINPUTH_ESLEN 5 | | #define STREAMINPUTH_ESLEN 5 | |
| #define STREAMINPUTH_EVLEN 6 | | #define STREAMINPUTH_EVLEN 6 | |
| #define STREAMINPUTH_EDLEN 7 | | #define STREAMINPUTH_EDLEN 7 | |
| #define STREAMINPUTH_EDIM 8 | | #define STREAMINPUTH_EDIM 8 | |
| #define STREAMINPUTH_EFMT 9 | | #define STREAMINPUTH_EFMT 9 | |
| #define STREAMINPUTH_EBUF 10 | | #define STREAMINPUTH_EBUF 10 | |
| | | | |
| skipping to change at line 110 | | skipping to change at line 107 | |
| #define STREAMINPUTH_MSGENUL "Unexpected null pointer in arguments" | | #define STREAMINPUTH_MSGENUL "Unexpected null pointer in arguments" | |
| #define STREAMINPUTH_MSGEOUT "Output handle points to a non-null pointer" | | #define STREAMINPUTH_MSGEOUT "Output handle points to a non-null pointer" | |
| #define STREAMINPUTH_MSGEMEM "Memory allocation error" | | #define STREAMINPUTH_MSGEMEM "Memory allocation error" | |
| #define STREAMINPUTH_MSGELEN "No numbers were read" | | #define STREAMINPUTH_MSGELEN "No numbers were read" | |
| #define STREAMINPUTH_MSGESLEN "Not enough numbers read to fill sequence" | | #define STREAMINPUTH_MSGESLEN "Not enough numbers read to fill sequence" | |
| #define STREAMINPUTH_MSGEVLEN "Could not determine complex vectorLength" | | #define STREAMINPUTH_MSGEVLEN "Could not determine complex vectorLength" | |
| #define STREAMINPUTH_MSGEDLEN "Dimension lengths inconsistent or not given" | | #define STREAMINPUTH_MSGEDLEN "Dimension lengths inconsistent or not given" | |
| #define STREAMINPUTH_MSGEDIM "Inconsistent or non-positive arrayDim value" | | #define STREAMINPUTH_MSGEDIM "Inconsistent or non-positive arrayDim value" | |
| #define STREAMINPUTH_MSGEFMT "Badly formatted number" | | #define STREAMINPUTH_MSGEFMT "Badly formatted number" | |
| #define STREAMINPUTH_MSGEBUF "BUFFSIZE not a multiple of largest complex t
ype size" | | #define STREAMINPUTH_MSGEBUF "BUFFSIZE not a multiple of largest complex t
ype size" | |
|
| /******************************************** </lalErrTable><lalLaTeX> | | /*@}*//** | |
| | | | |
| \subsection*{Types} | | | |
| | | | |
|
| ******************************************************* </lalLaTeX> */ | | \heading{Types} | |
| | | | |
|
| /* <lalLaTeX> | | */ | |
| \vfill{\footnotesize\input{StreamInputHV}} | | | |
| </lalLaTeX> */ | | | |
| | | | |
| /* Function prototypes. */ | | /* Function prototypes. */ | |
| | | | |
|
| /* <lalLaTeX> | | | |
| \newpage\input{StreamVectorInputC} | | | |
| </lalLaTeX> */ | | | |
| void | | void | |
| LALCHARReadVector( LALStatus *status, CHARVector **vector, FILE *stream ); | | LALCHARReadVector( LALStatus *status, CHARVector **vector, FILE *stream ); | |
| | | | |
| void | | void | |
| LALI2ReadVector( LALStatus *status, INT2Vector **vector, FILE *stream, BOO
LEAN strict ); | | LALI2ReadVector( LALStatus *status, INT2Vector **vector, FILE *stream, BOO
LEAN strict ); | |
| | | | |
| void | | void | |
| LALI4ReadVector( LALStatus *status, INT4Vector **vector, FILE *stream, BOO
LEAN strict ); | | LALI4ReadVector( LALStatus *status, INT4Vector **vector, FILE *stream, BOO
LEAN strict ); | |
| | | | |
| void | | void | |
| | | | |
| skipping to change at line 152 | | skipping to change at line 142 | |
| | | | |
| void | | void | |
| LALU8ReadVector( LALStatus *status, UINT8Vector **vector, FILE *stream, BO
OLEAN strict ); | | LALU8ReadVector( LALStatus *status, UINT8Vector **vector, FILE *stream, BO
OLEAN strict ); | |
| | | | |
| void | | void | |
| LALSReadVector( LALStatus *status, REAL4Vector **vector, FILE *stream, BOO
LEAN strict ); | | LALSReadVector( LALStatus *status, REAL4Vector **vector, FILE *stream, BOO
LEAN strict ); | |
| | | | |
| void | | void | |
| LALDReadVector( LALStatus *status, REAL8Vector **vector, FILE *stream, BOO
LEAN strict ); | | LALDReadVector( LALStatus *status, REAL8Vector **vector, FILE *stream, BOO
LEAN strict ); | |
| | | | |
|
| /* <lalLaTeX> | | | |
| \newpage\input{StreamVectorSequenceInputC} | | | |
| </lalLaTeX> */ | | | |
| void | | void | |
| LALCHARReadVectorSequence( LALStatus *status, CHARVectorSequence **sequenc
e, FILE *stream ); | | LALCHARReadVectorSequence( LALStatus *status, CHARVectorSequence **sequenc
e, FILE *stream ); | |
| | | | |
| void | | void | |
| LALI2ReadVectorSequence( LALStatus *status, INT2VectorSequence **sequence,
FILE *stream ); | | LALI2ReadVectorSequence( LALStatus *status, INT2VectorSequence **sequence,
FILE *stream ); | |
| | | | |
| void | | void | |
| LALI4ReadVectorSequence( LALStatus *status, INT4VectorSequence **sequence,
FILE *stream ); | | LALI4ReadVectorSequence( LALStatus *status, INT4VectorSequence **sequence,
FILE *stream ); | |
| | | | |
| void | | void | |
| | | | |
| skipping to change at line 182 | | skipping to change at line 169 | |
| | | | |
| void | | void | |
| LALU8ReadVectorSequence( LALStatus *status, UINT8VectorSequence **sequence
, FILE *stream ); | | LALU8ReadVectorSequence( LALStatus *status, UINT8VectorSequence **sequence
, FILE *stream ); | |
| | | | |
| void | | void | |
| LALSReadVectorSequence( LALStatus *status, REAL4VectorSequence **sequence,
FILE *stream ); | | LALSReadVectorSequence( LALStatus *status, REAL4VectorSequence **sequence,
FILE *stream ); | |
| | | | |
| void | | void | |
| LALDReadVectorSequence( LALStatus *status, REAL8VectorSequence **sequence,
FILE *stream ); | | LALDReadVectorSequence( LALStatus *status, REAL8VectorSequence **sequence,
FILE *stream ); | |
| | | | |
|
| /* <lalLaTeX> | | | |
| \newpage\input{StreamSequenceInputC} | | | |
| </lalLaTeX> */ | | | |
| void | | void | |
| LALCHARReadSequence( LALStatus *status, CHARSequence **sequence, FILE *stre
am ); | | LALCHARReadSequence( LALStatus *status, CHARSequence **sequence, FILE *stre
am ); | |
| | | | |
| void | | void | |
| LALI2ReadSequence( LALStatus *status, INT2Sequence **sequence, FILE *stream
); | | LALI2ReadSequence( LALStatus *status, INT2Sequence **sequence, FILE *stream
); | |
| | | | |
| void | | void | |
| LALI4ReadSequence( LALStatus *status, INT4Sequence **sequence, FILE *stream
); | | LALI4ReadSequence( LALStatus *status, INT4Sequence **sequence, FILE *stream
); | |
| | | | |
| void | | void | |
| | | | |
| skipping to change at line 218 | | skipping to change at line 202 | |
| | | | |
| void | | void | |
| LALDReadSequence( LALStatus *status, REAL8Sequence **sequence, FILE *stream
); | | LALDReadSequence( LALStatus *status, REAL8Sequence **sequence, FILE *stream
); | |
| | | | |
| void | | void | |
| LALCReadSequence( LALStatus *status, COMPLEX8Sequence **sequence, FILE *str
eam ); | | LALCReadSequence( LALStatus *status, COMPLEX8Sequence **sequence, FILE *str
eam ); | |
| | | | |
| void | | void | |
| LALZReadSequence( LALStatus *status, COMPLEX16Sequence **sequence, FILE *st
ream ); | | LALZReadSequence( LALStatus *status, COMPLEX16Sequence **sequence, FILE *st
ream ); | |
| | | | |
|
| /* <lalLaTeX> | | | |
| \newpage\input{StreamSeriesInputC} | | | |
| </lalLaTeX> */ | | | |
| void | | void | |
| LALI2ReadTSeries( LALStatus *status, INT2TimeSeries *series, FILE *stream )
; | | LALI2ReadTSeries( LALStatus *status, INT2TimeSeries *series, FILE *stream )
; | |
| void | | void | |
| LALI4ReadTSeries( LALStatus *status, INT4TimeSeries *series, FILE *stream )
; | | LALI4ReadTSeries( LALStatus *status, INT4TimeSeries *series, FILE *stream )
; | |
| void | | void | |
| LALI8ReadTSeries( LALStatus *status, INT8TimeSeries *series, FILE *stream )
; | | LALI8ReadTSeries( LALStatus *status, INT8TimeSeries *series, FILE *stream )
; | |
| void | | void | |
| LALU2ReadTSeries( LALStatus *status, UINT2TimeSeries *series, FILE *stream
); | | LALU2ReadTSeries( LALStatus *status, UINT2TimeSeries *series, FILE *stream
); | |
| void | | void | |
| LALU4ReadTSeries( LALStatus *status, UINT4TimeSeries *series, FILE *stream
); | | LALU4ReadTSeries( LALStatus *status, UINT4TimeSeries *series, FILE *stream
); | |
| | | | |
| skipping to change at line 305 | | skipping to change at line 286 | |
| LALU8ReadFSeries( LALStatus *status, UINT8FrequencySeries *series, FILE *st
ream ); | | LALU8ReadFSeries( LALStatus *status, UINT8FrequencySeries *series, FILE *st
ream ); | |
| void | | void | |
| LALSReadFSeries( LALStatus *status, REAL4FrequencySeries *series, FILE *str
eam ); | | LALSReadFSeries( LALStatus *status, REAL4FrequencySeries *series, FILE *str
eam ); | |
| void | | void | |
| LALDReadFSeries( LALStatus *status, REAL8FrequencySeries *series, FILE *str
eam ); | | LALDReadFSeries( LALStatus *status, REAL8FrequencySeries *series, FILE *str
eam ); | |
| void | | void | |
| LALCReadFSeries( LALStatus *status, COMPLEX8FrequencySeries *series, FILE *
stream ); | | LALCReadFSeries( LALStatus *status, COMPLEX8FrequencySeries *series, FILE *
stream ); | |
| void | | void | |
| LALZReadFSeries( LALStatus *status, COMPLEX16FrequencySeries *series, FILE
*stream ); | | LALZReadFSeries( LALStatus *status, COMPLEX16FrequencySeries *series, FILE
*stream ); | |
| | | | |
|
| /* <lalLaTeX> | | | |
| \newpage\input{StreamGridInputC} | | | |
| </lalLaTeX> */ | | | |
| void | | void | |
| LALI2ReadGrid( LALStatus *status, INT2Grid **grid, FILE *stream ); | | LALI2ReadGrid( LALStatus *status, INT2Grid **grid, FILE *stream ); | |
| void | | void | |
| LALI4ReadGrid( LALStatus *status, INT4Grid **grid, FILE *stream ); | | LALI4ReadGrid( LALStatus *status, INT4Grid **grid, FILE *stream ); | |
| void | | void | |
| LALI8ReadGrid( LALStatus *status, INT8Grid **grid, FILE *stream ); | | LALI8ReadGrid( LALStatus *status, INT8Grid **grid, FILE *stream ); | |
| void | | void | |
| LALU2ReadGrid( LALStatus *status, UINT2Grid **grid, FILE *stream ); | | LALU2ReadGrid( LALStatus *status, UINT2Grid **grid, FILE *stream ); | |
| void | | void | |
| LALU4ReadGrid( LALStatus *status, UINT4Grid **grid, FILE *stream ); | | LALU4ReadGrid( LALStatus *status, UINT4Grid **grid, FILE *stream ); | |
| | | | |
| skipping to change at line 329 | | skipping to change at line 307 | |
| LALU8ReadGrid( LALStatus *status, UINT8Grid **grid, FILE *stream ); | | LALU8ReadGrid( LALStatus *status, UINT8Grid **grid, FILE *stream ); | |
| void | | void | |
| LALSReadGrid( LALStatus *status, REAL4Grid **grid, FILE *stream ); | | LALSReadGrid( LALStatus *status, REAL4Grid **grid, FILE *stream ); | |
| void | | void | |
| LALDReadGrid( LALStatus *status, REAL8Grid **grid, FILE *stream ); | | LALDReadGrid( LALStatus *status, REAL8Grid **grid, FILE *stream ); | |
| void | | void | |
| LALCReadGrid( LALStatus *status, COMPLEX8Grid **grid, FILE *stream ); | | LALCReadGrid( LALStatus *status, COMPLEX8Grid **grid, FILE *stream ); | |
| void | | void | |
| LALZReadGrid( LALStatus *status, COMPLEX16Grid **grid, FILE *stream ); | | LALZReadGrid( LALStatus *status, COMPLEX16Grid **grid, FILE *stream ); | |
| | | | |
|
| /* <lalLaTeX> | | | |
| \newpage\input{StreamInputTestC} | | | |
| \newpage\input{StreamSeriesInputTestC} | | | |
| </lalLaTeX> */ | | | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| #endif /* _STREAMINPUT_H */ | | #endif /* _STREAMINPUT_H */ | |
| | | | |
End of changes. 24 change blocks. |
| 60 lines changed or deleted | | 33 lines changed or added | |
|
| TimeSeries.h | | TimeSeries.h | |
| | | | |
| skipping to change at line 26 | | skipping to change at line 26 | |
| * You should have received a copy of the GNU General Public License along | | * You should have received a copy of the GNU General Public License along | |
| * with this program; if not, write to the Free Software Foundation, Inc., | | * with this program; if not, write to the Free Software Foundation, Inc., | |
| * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |
| */ | | */ | |
| | | | |
| #ifndef _TIMESERIES_H | | #ifndef _TIMESERIES_H | |
| #define _TIMESERIES_H | | #define _TIMESERIES_H | |
| | | | |
| #include <stddef.h> | | #include <stddef.h> | |
| #include <lal/LALDatatypes.h> | | #include <lal/LALDatatypes.h> | |
|
| | | | |
| #include <lal/LALRCSID.h> | | #include <lal/LALRCSID.h> | |
|
| | | | |
| | | #if defined(__cplusplus) | |
| | | extern "C" { | |
| | | #elif 0 | |
| | | } /* so that editors will match preceding brace */ | |
| | | #endif | |
| | | | |
| NRCSID(TIMESERIESH, "$Id:"); | | NRCSID(TIMESERIESH, "$Id:"); | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesDestroyP"> | | /* COMPLEX8 prototypes */ | |
| \idx{XLALDestroyCOMPLEX8TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesDestroyP"> */ | | | |
| void XLALDestroyCOMPLEX8TimeSeries ( | | void XLALDestroyCOMPLEX8TimeSeries ( | |
| COMPLEX8TimeSeries *series | | COMPLEX8TimeSeries *series | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesCreateP"> | | | |
| \idx{XLALCreateCOMPLEX8TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesCreateP"> */ | | | |
| COMPLEX8TimeSeries *XLALCreateCOMPLEX8TimeSeries ( | | COMPLEX8TimeSeries *XLALCreateCOMPLEX8TimeSeries ( | |
| const CHAR *name, | | const CHAR *name, | |
| const LIGOTimeGPS *epoch, | | const LIGOTimeGPS *epoch, | |
| REAL8 f0, | | REAL8 f0, | |
| REAL8 deltaT, | | REAL8 deltaT, | |
| const LALUnit *sampleUnits, | | const LALUnit *sampleUnits, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesCutP"> | | | |
| \idx{XLALCutCOMPLEX8TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesCutP"> */ | | | |
| COMPLEX8TimeSeries *XLALCutCOMPLEX8TimeSeries ( | | COMPLEX8TimeSeries *XLALCutCOMPLEX8TimeSeries ( | |
| const COMPLEX8TimeSeries *series, | | const COMPLEX8TimeSeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesResizeP"> | | | |
| \idx{XLALResizeCOMPLEX8TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesResizeP"> */ | | | |
| COMPLEX8TimeSeries *XLALResizeCOMPLEX8TimeSeries ( | | COMPLEX8TimeSeries *XLALResizeCOMPLEX8TimeSeries ( | |
| COMPLEX8TimeSeries *series, | | COMPLEX8TimeSeries *series, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesResizeP"> | | | |
| \idx{XLALShrinkCOMPLEX8TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesResizeP"> */ | | | |
| COMPLEX8TimeSeries *XLALShrinkCOMPLEX8TimeSeries ( | | COMPLEX8TimeSeries *XLALShrinkCOMPLEX8TimeSeries ( | |
| COMPLEX8TimeSeries *series, | | COMPLEX8TimeSeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesAddP"> | | | |
| \idx{XLALAddCOMPLEX8TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesAddP"> */ | | | |
| COMPLEX8TimeSeries *XLALAddCOMPLEX8TimeSeries ( | | COMPLEX8TimeSeries *XLALAddCOMPLEX8TimeSeries ( | |
| COMPLEX8TimeSeries *arg1, | | COMPLEX8TimeSeries *arg1, | |
| const COMPLEX8TimeSeries *arg2 | | const COMPLEX8TimeSeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesDestroyP"> | | /* COMPLEX16 prototypes */ | |
| \idx{XLALDestroyCOMPLEX16TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesDestroyP"> */ | | | |
| void XLALDestroyCOMPLEX16TimeSeries ( | | void XLALDestroyCOMPLEX16TimeSeries ( | |
| COMPLEX16TimeSeries *series | | COMPLEX16TimeSeries *series | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesCreateP"> | | | |
| \idx{XLALCreateCOMPLEX16TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesCreateP"> */ | | | |
| COMPLEX16TimeSeries *XLALCreateCOMPLEX16TimeSeries ( | | COMPLEX16TimeSeries *XLALCreateCOMPLEX16TimeSeries ( | |
| const CHAR *name, | | const CHAR *name, | |
| const LIGOTimeGPS *epoch, | | const LIGOTimeGPS *epoch, | |
| REAL8 f0, | | REAL8 f0, | |
| REAL8 deltaT, | | REAL8 deltaT, | |
| const LALUnit *sampleUnits, | | const LALUnit *sampleUnits, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesCutP"> | | | |
| \idx{XLALCutCOMPLEX16TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesCutP"> */ | | | |
| COMPLEX16TimeSeries *XLALCutCOMPLEX16TimeSeries ( | | COMPLEX16TimeSeries *XLALCutCOMPLEX16TimeSeries ( | |
| const COMPLEX16TimeSeries *series, | | const COMPLEX16TimeSeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesResizeP"> | | | |
| \idx{XLALResizeCOMPLEX16TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesResizeP"> */ | | | |
| COMPLEX16TimeSeries *XLALResizeCOMPLEX16TimeSeries ( | | COMPLEX16TimeSeries *XLALResizeCOMPLEX16TimeSeries ( | |
| COMPLEX16TimeSeries *series, | | COMPLEX16TimeSeries *series, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesResizeP"> | | | |
| \idx{XLALShrinkCOMPLEX16TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesResizeP"> */ | | | |
| COMPLEX16TimeSeries *XLALShrinkCOMPLEX16TimeSeries ( | | COMPLEX16TimeSeries *XLALShrinkCOMPLEX16TimeSeries ( | |
| COMPLEX16TimeSeries *series, | | COMPLEX16TimeSeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesAddP"> | | | |
| \idx{XLALAddCOMPLEX16TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesAddP"> */ | | | |
| COMPLEX16TimeSeries *XLALAddCOMPLEX16TimeSeries ( | | COMPLEX16TimeSeries *XLALAddCOMPLEX16TimeSeries ( | |
| COMPLEX16TimeSeries *arg1, | | COMPLEX16TimeSeries *arg1, | |
| const COMPLEX16TimeSeries *arg2 | | const COMPLEX16TimeSeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesDestroyP"> | | /* REAL4 prototypes */ | |
| \idx{XLALDestroyREAL4TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesDestroyP"> */ | | | |
| void XLALDestroyREAL4TimeSeries ( | | void XLALDestroyREAL4TimeSeries ( | |
| REAL4TimeSeries *series | | REAL4TimeSeries *series | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesCreateP"> | | | |
| \idx{XLALCreateREAL4TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesCreateP"> */ | | | |
| REAL4TimeSeries *XLALCreateREAL4TimeSeries ( | | REAL4TimeSeries *XLALCreateREAL4TimeSeries ( | |
| const CHAR *name, | | const CHAR *name, | |
| const LIGOTimeGPS *epoch, | | const LIGOTimeGPS *epoch, | |
| REAL8 f0, | | REAL8 f0, | |
| REAL8 deltaT, | | REAL8 deltaT, | |
| const LALUnit *sampleUnits, | | const LALUnit *sampleUnits, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesCutP"> | | | |
| \idx{XLALCutREAL4TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesCutP"> */ | | | |
| REAL4TimeSeries *XLALCutREAL4TimeSeries ( | | REAL4TimeSeries *XLALCutREAL4TimeSeries ( | |
| const REAL4TimeSeries *series, | | const REAL4TimeSeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesResizeP"> | | | |
| \idx{XLALResizeREAL4TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesResizeP"> */ | | | |
| REAL4TimeSeries *XLALResizeREAL4TimeSeries ( | | REAL4TimeSeries *XLALResizeREAL4TimeSeries ( | |
| REAL4TimeSeries *series, | | REAL4TimeSeries *series, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesResizeP"> | | | |
| \idx{XLALShrinkREAL4TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesResizeP"> */ | | | |
| REAL4TimeSeries *XLALShrinkREAL4TimeSeries ( | | REAL4TimeSeries *XLALShrinkREAL4TimeSeries ( | |
| REAL4TimeSeries *series, | | REAL4TimeSeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesAddP"> | | | |
| \idx{XLALAddREAL4TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesAddP"> */ | | | |
| REAL4TimeSeries *XLALAddREAL4TimeSeries ( | | REAL4TimeSeries *XLALAddREAL4TimeSeries ( | |
| REAL4TimeSeries *arg1, | | REAL4TimeSeries *arg1, | |
| const REAL4TimeSeries *arg2 | | const REAL4TimeSeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesDestroyP"> | | /* REAL8 prototypes */ | |
| \idx{XLALDestroyREAL8TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesDestroyP"> */ | | | |
| void XLALDestroyREAL8TimeSeries ( | | void XLALDestroyREAL8TimeSeries ( | |
| REAL8TimeSeries *series | | REAL8TimeSeries *series | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesCreateP"> | | | |
| \idx{XLALCreateREAL8TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesCreateP"> */ | | | |
| REAL8TimeSeries *XLALCreateREAL8TimeSeries ( | | REAL8TimeSeries *XLALCreateREAL8TimeSeries ( | |
| const CHAR *name, | | const CHAR *name, | |
| const LIGOTimeGPS *epoch, | | const LIGOTimeGPS *epoch, | |
| REAL8 f0, | | REAL8 f0, | |
| REAL8 deltaT, | | REAL8 deltaT, | |
| const LALUnit *sampleUnits, | | const LALUnit *sampleUnits, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesCutP"> | | | |
| \idx{XLALCutREAL8TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesCutP"> */ | | | |
| REAL8TimeSeries *XLALCutREAL8TimeSeries ( | | REAL8TimeSeries *XLALCutREAL8TimeSeries ( | |
| const REAL8TimeSeries *series, | | const REAL8TimeSeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesResizeP"> | | | |
| \idx{XLALResizeREAL8TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesResizeP"> */ | | | |
| REAL8TimeSeries *XLALResizeREAL8TimeSeries ( | | REAL8TimeSeries *XLALResizeREAL8TimeSeries ( | |
| REAL8TimeSeries *series, | | REAL8TimeSeries *series, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesResizeP"> | | | |
| \idx{XLALShrinkREAL8TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesResizeP"> */ | | | |
| REAL8TimeSeries *XLALShrinkREAL8TimeSeries ( | | REAL8TimeSeries *XLALShrinkREAL8TimeSeries ( | |
| REAL8TimeSeries *series, | | REAL8TimeSeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesAddP"> | | | |
| \idx{XLALAddREAL8TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesAddP"> */ | | | |
| REAL8TimeSeries *XLALAddREAL8TimeSeries ( | | REAL8TimeSeries *XLALAddREAL8TimeSeries ( | |
| REAL8TimeSeries *arg1, | | REAL8TimeSeries *arg1, | |
| const REAL8TimeSeries *arg2 | | const REAL8TimeSeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesDestroyP"> | | /* INT2 prototypes */ | |
| \idx{XLALDestroyINT2TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesDestroyP"> */ | | | |
| void XLALDestroyINT2TimeSeries ( | | void XLALDestroyINT2TimeSeries ( | |
| INT2TimeSeries *series | | INT2TimeSeries *series | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesCreateP"> | | | |
| \idx{XLALCreateINT2TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesCreateP"> */ | | | |
| INT2TimeSeries *XLALCreateINT2TimeSeries ( | | INT2TimeSeries *XLALCreateINT2TimeSeries ( | |
| const CHAR *name, | | const CHAR *name, | |
| const LIGOTimeGPS *epoch, | | const LIGOTimeGPS *epoch, | |
| REAL8 f0, | | REAL8 f0, | |
| REAL8 deltaT, | | REAL8 deltaT, | |
| const LALUnit *sampleUnits, | | const LALUnit *sampleUnits, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesCutP"> | | | |
| \idx{XLALCutINT2TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesCutP"> */ | | | |
| INT2TimeSeries *XLALCutINT2TimeSeries ( | | INT2TimeSeries *XLALCutINT2TimeSeries ( | |
| const INT2TimeSeries *series, | | const INT2TimeSeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesResizeP"> | | | |
| \idx{XLALResizeINT2TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesResizeP"> */ | | | |
| INT2TimeSeries *XLALResizeINT2TimeSeries ( | | INT2TimeSeries *XLALResizeINT2TimeSeries ( | |
| INT2TimeSeries *series, | | INT2TimeSeries *series, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesResizeP"> | | | |
| \idx{XLALShrinkINT2TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesResizeP"> */ | | | |
| INT2TimeSeries *XLALShrinkINT2TimeSeries ( | | INT2TimeSeries *XLALShrinkINT2TimeSeries ( | |
| INT2TimeSeries *series, | | INT2TimeSeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesAddP"> | | | |
| \idx{XLALAddINT2TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesAddP"> */ | | | |
| INT2TimeSeries *XLALAddINT2TimeSeries ( | | INT2TimeSeries *XLALAddINT2TimeSeries ( | |
| INT2TimeSeries *arg1, | | INT2TimeSeries *arg1, | |
| const INT2TimeSeries *arg2 | | const INT2TimeSeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesDestroyP"> | | /* INT4 prototypes */ | |
| \idx{XLALDestroyINT4TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesDestroyP"> */ | | | |
| void XLALDestroyINT4TimeSeries ( | | void XLALDestroyINT4TimeSeries ( | |
| INT4TimeSeries *series | | INT4TimeSeries *series | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesCreateP"> | | | |
| \idx{XLALCreateINT4TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesCreateP"> */ | | | |
| INT4TimeSeries *XLALCreateINT4TimeSeries ( | | INT4TimeSeries *XLALCreateINT4TimeSeries ( | |
| const CHAR *name, | | const CHAR *name, | |
| const LIGOTimeGPS *epoch, | | const LIGOTimeGPS *epoch, | |
| REAL8 f0, | | REAL8 f0, | |
| REAL8 deltaT, | | REAL8 deltaT, | |
| const LALUnit *sampleUnits, | | const LALUnit *sampleUnits, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesCutP"> | | | |
| \idx{XLALCutINT4TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesCutP"> */ | | | |
| INT4TimeSeries *XLALCutINT4TimeSeries ( | | INT4TimeSeries *XLALCutINT4TimeSeries ( | |
| const INT4TimeSeries *series, | | const INT4TimeSeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesResizeP"> | | | |
| \idx{XLALResizeINT4TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesResizeP"> */ | | | |
| INT4TimeSeries *XLALResizeINT4TimeSeries ( | | INT4TimeSeries *XLALResizeINT4TimeSeries ( | |
| INT4TimeSeries *series, | | INT4TimeSeries *series, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesResizeP"> | | | |
| \idx{XLALShrinkINT4TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesResizeP"> */ | | | |
| INT4TimeSeries *XLALShrinkINT4TimeSeries ( | | INT4TimeSeries *XLALShrinkINT4TimeSeries ( | |
| INT4TimeSeries *series, | | INT4TimeSeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesAddP"> | | | |
| \idx{XLALAddINT4TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesAddP"> */ | | | |
| INT4TimeSeries *XLALAddINT4TimeSeries ( | | INT4TimeSeries *XLALAddINT4TimeSeries ( | |
| INT4TimeSeries *arg1, | | INT4TimeSeries *arg1, | |
| const INT4TimeSeries *arg2 | | const INT4TimeSeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesDestroyP"> | | /* INT8 prototypes */ | |
| \idx{XLALDestroyINT8TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesDestroyP"> */ | | | |
| void XLALDestroyINT8TimeSeries ( | | void XLALDestroyINT8TimeSeries ( | |
| INT8TimeSeries *series | | INT8TimeSeries *series | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesCreateP"> | | | |
| \idx{XLALCreateINT8TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesCreateP"> */ | | | |
| INT8TimeSeries *XLALCreateINT8TimeSeries ( | | INT8TimeSeries *XLALCreateINT8TimeSeries ( | |
| const CHAR *name, | | const CHAR *name, | |
| const LIGOTimeGPS *epoch, | | const LIGOTimeGPS *epoch, | |
| REAL8 f0, | | REAL8 f0, | |
| REAL8 deltaT, | | REAL8 deltaT, | |
| const LALUnit *sampleUnits, | | const LALUnit *sampleUnits, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesCutP"> | | | |
| \idx{XLALCutINT8TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesCutP"> */ | | | |
| INT8TimeSeries *XLALCutINT8TimeSeries ( | | INT8TimeSeries *XLALCutINT8TimeSeries ( | |
| const INT8TimeSeries *series, | | const INT8TimeSeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesResizeP"> | | | |
| \idx{XLALResizeINT8TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesResizeP"> */ | | | |
| INT8TimeSeries *XLALResizeINT8TimeSeries ( | | INT8TimeSeries *XLALResizeINT8TimeSeries ( | |
| INT8TimeSeries *series, | | INT8TimeSeries *series, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesResizeP"> | | | |
| \idx{XLALShrinkINT8TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesResizeP"> */ | | | |
| INT8TimeSeries *XLALShrinkINT8TimeSeries ( | | INT8TimeSeries *XLALShrinkINT8TimeSeries ( | |
| INT8TimeSeries *series, | | INT8TimeSeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesAddP"> | | | |
| \idx{XLALAddINT8TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesAddP"> */ | | | |
| INT8TimeSeries *XLALAddINT8TimeSeries ( | | INT8TimeSeries *XLALAddINT8TimeSeries ( | |
| INT8TimeSeries *arg1, | | INT8TimeSeries *arg1, | |
| const INT8TimeSeries *arg2 | | const INT8TimeSeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesDestroyP"> | | /* UINT2 prototypes */ | |
| \idx{XLALDestroyUINT2TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesDestroyP"> */ | | | |
| void XLALDestroyUINT2TimeSeries ( | | void XLALDestroyUINT2TimeSeries ( | |
| UINT2TimeSeries *series | | UINT2TimeSeries *series | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesCreateP"> | | | |
| \idx{XLALCreateUINT2TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesCreateP"> */ | | | |
| UINT2TimeSeries *XLALCreateUINT2TimeSeries ( | | UINT2TimeSeries *XLALCreateUINT2TimeSeries ( | |
| const CHAR *name, | | const CHAR *name, | |
| const LIGOTimeGPS *epoch, | | const LIGOTimeGPS *epoch, | |
| REAL8 f0, | | REAL8 f0, | |
| REAL8 deltaT, | | REAL8 deltaT, | |
| const LALUnit *sampleUnits, | | const LALUnit *sampleUnits, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesCutP"> | | | |
| \idx{XLALCutUINT2TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesCutP"> */ | | | |
| UINT2TimeSeries *XLALCutUINT2TimeSeries ( | | UINT2TimeSeries *XLALCutUINT2TimeSeries ( | |
| const UINT2TimeSeries *series, | | const UINT2TimeSeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesResizeP"> | | | |
| \idx{XLALResizeUINT2TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesResizeP"> */ | | | |
| UINT2TimeSeries *XLALResizeUINT2TimeSeries ( | | UINT2TimeSeries *XLALResizeUINT2TimeSeries ( | |
| UINT2TimeSeries *series, | | UINT2TimeSeries *series, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesResizeP"> | | | |
| \idx{XLALShrinkUINT2TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesResizeP"> */ | | | |
| UINT2TimeSeries *XLALShrinkUINT2TimeSeries ( | | UINT2TimeSeries *XLALShrinkUINT2TimeSeries ( | |
| UINT2TimeSeries *series, | | UINT2TimeSeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesAddP"> | | | |
| \idx{XLALAddUINT2TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesAddP"> */ | | | |
| UINT2TimeSeries *XLALAddUINT2TimeSeries ( | | UINT2TimeSeries *XLALAddUINT2TimeSeries ( | |
| UINT2TimeSeries *arg1, | | UINT2TimeSeries *arg1, | |
| const UINT2TimeSeries *arg2 | | const UINT2TimeSeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesDestroyP"> | | /* UINT4 prototypes */ | |
| \idx{XLALDestroyUINT4TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesDestroyP"> */ | | | |
| void XLALDestroyUINT4TimeSeries ( | | void XLALDestroyUINT4TimeSeries ( | |
| UINT4TimeSeries *series | | UINT4TimeSeries *series | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesCreateP"> | | | |
| \idx{XLALCreateUINT4TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesCreateP"> */ | | | |
| UINT4TimeSeries *XLALCreateUINT4TimeSeries ( | | UINT4TimeSeries *XLALCreateUINT4TimeSeries ( | |
| const CHAR *name, | | const CHAR *name, | |
| const LIGOTimeGPS *epoch, | | const LIGOTimeGPS *epoch, | |
| REAL8 f0, | | REAL8 f0, | |
| REAL8 deltaT, | | REAL8 deltaT, | |
| const LALUnit *sampleUnits, | | const LALUnit *sampleUnits, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesCutP"> | | | |
| \idx{XLALCutUINT4TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesCutP"> */ | | | |
| UINT4TimeSeries *XLALCutUINT4TimeSeries ( | | UINT4TimeSeries *XLALCutUINT4TimeSeries ( | |
| const UINT4TimeSeries *series, | | const UINT4TimeSeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesResizeP"> | | | |
| \idx{XLALResizeUINT4TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesResizeP"> */ | | | |
| UINT4TimeSeries *XLALResizeUINT4TimeSeries ( | | UINT4TimeSeries *XLALResizeUINT4TimeSeries ( | |
| UINT4TimeSeries *series, | | UINT4TimeSeries *series, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesResizeP"> | | | |
| \idx{XLALShrinkUINT4TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesResizeP"> */ | | | |
| UINT4TimeSeries *XLALShrinkUINT4TimeSeries ( | | UINT4TimeSeries *XLALShrinkUINT4TimeSeries ( | |
| UINT4TimeSeries *series, | | UINT4TimeSeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesAddP"> | | | |
| \idx{XLALAddUINT4TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesAddP"> */ | | | |
| UINT4TimeSeries *XLALAddUINT4TimeSeries ( | | UINT4TimeSeries *XLALAddUINT4TimeSeries ( | |
| UINT4TimeSeries *arg1, | | UINT4TimeSeries *arg1, | |
| const UINT4TimeSeries *arg2 | | const UINT4TimeSeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesDestroyP"> | | /* UINT8 prototypes */ | |
| \idx{XLALDestroyUINT8TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesDestroyP"> */ | | | |
| void XLALDestroyUINT8TimeSeries ( | | void XLALDestroyUINT8TimeSeries ( | |
| UINT8TimeSeries *series | | UINT8TimeSeries *series | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesCreateP"> | | | |
| \idx{XLALCreateUINT8TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesCreateP"> */ | | | |
| UINT8TimeSeries *XLALCreateUINT8TimeSeries ( | | UINT8TimeSeries *XLALCreateUINT8TimeSeries ( | |
| const CHAR *name, | | const CHAR *name, | |
| const LIGOTimeGPS *epoch, | | const LIGOTimeGPS *epoch, | |
| REAL8 f0, | | REAL8 f0, | |
| REAL8 deltaT, | | REAL8 deltaT, | |
| const LALUnit *sampleUnits, | | const LALUnit *sampleUnits, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesCutP"> | | | |
| \idx{XLALCutUINT8TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesCutP"> */ | | | |
| UINT8TimeSeries *XLALCutUINT8TimeSeries ( | | UINT8TimeSeries *XLALCutUINT8TimeSeries ( | |
| const UINT8TimeSeries *series, | | const UINT8TimeSeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesResizeP"> | | | |
| \idx{XLALResizeUINT8TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesResizeP"> */ | | | |
| UINT8TimeSeries *XLALResizeUINT8TimeSeries ( | | UINT8TimeSeries *XLALResizeUINT8TimeSeries ( | |
| UINT8TimeSeries *series, | | UINT8TimeSeries *series, | |
| int first, | | int first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesResizeP"> | | | |
| \idx{XLALShrinkUINT8TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesResizeP"> */ | | | |
| UINT8TimeSeries *XLALShrinkUINT8TimeSeries ( | | UINT8TimeSeries *XLALShrinkUINT8TimeSeries ( | |
| UINT8TimeSeries *series, | | UINT8TimeSeries *series, | |
| size_t first, | | size_t first, | |
| size_t length | | size_t length | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | | |
|
| /* <lalLaTeX file="TimeSeriesAddP"> | | | |
| \idx{XLALAddUINT8TimeSeries ()} | | | |
| </lalLaTeX> <lalVerbatim file="TimeSeriesAddP"> */ | | | |
| UINT8TimeSeries *XLALAddUINT8TimeSeries ( | | UINT8TimeSeries *XLALAddUINT8TimeSeries ( | |
| UINT8TimeSeries *arg1, | | UINT8TimeSeries *arg1, | |
| const UINT8TimeSeries *arg2 | | const UINT8TimeSeries *arg2 | |
| ); | | ); | |
|
| /* </lalVerbatim> */ | | | |
| | | #if 0 | |
| | | { /* so that editors will match succeeding brace */ | |
| | | #elif defined(__cplusplus) | |
| | | } | |
| | | #endif | |
| | | | |
| #endif /* _TIMESERIES_H */ | | #endif /* _TIMESERIES_H */ | |
| | | | |
End of changes. 122 change blocks. |
| 241 lines changed or deleted | | 33 lines changed or added | |
|
| Units.h | | Units.h | |
| | | | |
| skipping to change at line 20 | | skipping to change at line 20 | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | | * GNU General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with with program; see the file COPYING. If not, write to the | | * along with with program; see the file COPYING. If not, write to the | |
| * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | | * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | |
| * MA 02111-1307 USA | | * MA 02111-1307 USA | |
| */ | | */ | |
| | | | |
|
| /********************************* <lalVerbatim file="UnitsHV"> | | /** | |
| Author: J. T. Whelan <john.whelan@ligo.org> | | \author J. T. Whelan <john.whelan@ligo.org> | |
| $Id$ | | \addtogroup Units_h | |
| ********************************** </lalVerbatim> */ | | | |
| | | | |
| /* <lalLaTeX> | | | |
| | | | |
| \section{Header \texttt{Units.h}} | | | |
| \label{tools:s:Units.h} | | | |
| | | | |
|
| Provides prototypes for manipulation of units and declares | | \brief Provides prototypes for manipulation of units and declares | |
| \texttt{extern} constants for the basic and derived SI units. | | \c extern constants for the basic and derived SI units. | |
| | | | |
|
| \subsection*{Synopsis} | | \heading{Synopsis} | |
| \begin{verbatim} | | \code | |
| #include <lal/Units.h> | | #include <lal/Units.h> | |
|
| \end{verbatim} | | \endcode | |
| | | | |
|
| \noindent This header provides prototypes for functions to manipulate | | This header provides prototypes for functions to manipulate | |
| the \texttt{LALUnit} structure. It also defines \texttt{extern} | | the \c LALUnit structure. It also defines \c extern | |
| constants for a set of predefined units, which are designed to make | | constants for a set of predefined units, which are designed to make | |
| the structure easier to use. For instance, to determine whether a | | the structure easier to use. For instance, to determine whether a | |
| quantity has units of strain per root hertz, one constructs the unit | | quantity has units of strain per root hertz, one constructs the unit | |
|
| "strain per root hertz" from the predefined \texttt{lalStrainUnit} and | | "strain per root hertz" from the predefined \c lalStrainUnit and | |
| \texttt{lalHertzUnit} constant structures using the | | \c lalHertzUnit constant structures using the | |
| \texttt{LALUnitRaise()} and \texttt{LALUnitMultiply()} functions, then | | LALUnitRaise() and LALUnitMultiply() functions, then | |
| compares that to the unit structure in question using the | | compares that to the unit structure in question using the | |
|
| \texttt{LALUnitCompare()} function. | | LALUnitCompare() function. | |
| | | | |
| The LALUnit datatype itself is included in the header | | The LALUnit datatype itself is included in the header | |
|
| \texttt{LALDatatypes.h}, and defines a unit in terms of an integer | | \ref LALDatatypes.h, and defines a unit in terms of an integer | |
| power of ten multiplier along with rational powers of the basic SI | | power of ten multiplier along with rational powers of the basic SI | |
| units (meters, kilograms, seconds, Amperes, and Kelvins) and two | | units (meters, kilograms, seconds, Amperes, and Kelvins) and two | |
| custom units (strain and ADC counts). | | custom units (strain and ADC counts). | |
| | | | |
|
| \subsection*{Error conditions} | | @{ | |
| \input{UnitsHErrTable} | | \defgroup UnitDefs_c Module UnitDefs.c | |
| | | \defgroup UnitNormalize_c Module UnitNormalize.c | |
| \subsection*{Structures} | | \defgroup UnitRaise_c Module UnitRaise.c | |
| | | \defgroup UnitMultiply_c Module UnitMultiply.c | |
| \subsubsection*{LALUnitPair} | | \defgroup UnitCompare_c Module UnitCompare.c | |
| \idx[Type]{LALUnitPair} | | \defgroup UnitXLALFunctions XLAL Functions | |
| Consists of a pair of unit structures; used as an input structure for | | @} | |
| the \texttt{LALUnitCompare()} and \texttt{LALUnitMultiply()} functions. | | */ | |
| The fields are: | | | |
| \begin{description} | | | |
| \item[\texttt{LALUnit *unitOne}] The first unit. | | | |
| \item[\texttt{LALUnit *unitTwo}] The second unit. | | | |
| \end{description} | | | |
| | | | |
| \subsubsection*{RAT4} | | | |
| \idx[Type]{RAT4} | | | |
| A four-byte rational number, used as a parameter structure for | | | |
| \texttt{LALUnitRaise()}. The fields are: | | | |
| \begin{description} | | | |
| \item[\texttt{INT2 numerator}] The numerator. | | | |
| \item[\texttt{UINT2 denominatorMinusOne}] One less than the denominator. | | | |
| \end{description} | | | |
| | | | |
| \vfill{\footnotesize\input{UnitsHV}} | | | |
| | | | |
| \newpage\input{UnitDefsC} | | | |
| \newpage\input{UnitNormalizeC} | | | |
| \newpage\input{UnitRaiseC} | | | |
| \newpage\input{UnitMultiplyC} | | | |
| \newpage\input{UnitCompareC} | | | |
| | | | |
|
| \newpage\subsection{XLAL Functions} | | /** | |
| | | \addtogroup UnitXLALFunctions | |
| | | \brief XLAL interface to Unit.h functions | |
| | | | |
|
| \subsubsection*{Synopsis} | | \heading{Synopsis} | |
| \begin{verbatim} | | \code | |
| #include <lal/Units.h> | | #include <lal/Units.h> | |
|
| | | \endcode | |
| | | | |
|
| char * XLALUnitAsString( char *string, UINT4 length, const LALUnit *input ) | | \heading{Description} | |
| ; | | | |
| LALUnit * XLALParseUnitString( LALUnit *output, const char *string ); | | | |
| int XLALUnitNormalize( LALUnit *unit ); | | | |
| int XLALUnitCompare( const LALUnit *unit1, const LALUnit *unit2 ); | | | |
| LALUnit * XLALUnitMultiply( LALUnit *output, const LALUnit *unit1, | | | |
| const LALUnit *unit2 ); | | | |
| LALUnit * XLALUnitRaiseRAT4( LALUnit *output, const LALUnit *input, | | | |
| const RAT4 *power ); | | | |
| LALUnit * XLALUnitRaiseINT2( LALUnit *output, const LALUnit *input, | | | |
| INT2 power ); | | | |
| LALUnit * XLALUnitSquare( LALUnit *output, const LALUnit *input ); | | | |
| LALUnit * XLALUnitSqrt( LALUnit *output, const LALUnit *input ); | | | |
| \end{verbatim} | | | |
| \idx{XLALUnitAsString} | | | |
| \idx{XLALParseUnitString} | | | |
| \idx{XLALUnitNormalize} | | | |
| \idx{XLALUnitCompare} | | | |
| \idx{XLALUnitMultiply} | | | |
| \idx{XLALUnitRaiseRAT4} | | | |
| \idx{XLALUnitRaiseINT2} | | | |
| \idx{XLALUnitSquare} | | | |
| \idx{XLALUnitSqrt} | | | |
| | | | |
| \subsubsection*{Description} | | | |
| | | | |
|
| \verb+XLALUnitAsString+ converts a \verb+LALUnit+ structure into a characte | | XLALUnitAsString() converts a ::LALUnit structure into a character | |
| r | | string of maximum length \c length (including NUL termination) | |
| string of maximum length \verb+length+ (including NUL termination) | | representation of the units. The inverse function, XLALParseUnitString() | |
| representation of the units. The inverse function, \verb+XLALParseUnitStri | | parses a character string to produce a \c LALUnit structure; if | |
| ng+ | | \c output is \c NULL, memory for the output is allocated. If the input | |
| parses a character string to produce a \verb+LALUnit+ structure; if | | \c string is \c NULL or is empty then the output units are | |
| \verb+output+ is \verb+NULL+, memory for the output is allocated. If the i | | dimensionless: lalDimensionlessUnit. | |
| nput | | | |
| \verb+string+ is \verb+NULL+ or is empty then the output units are | | | |
| dimensionless: \verb+lalDimensionlessUnit+. | | | |
| | | | |
|
| \verb+XLALUnitNormalize+ puts a \verb+LALUnit+ structure into normal form | | XLALUnitNormalize() puts a ::LALUnit structure into normal form | |
| by simplifying all unit exponent fractions to their simplest form. | | by simplifying all unit exponent fractions to their simplest form. | |
| | | | |
|
| \verb+XLALUnitCompare+ compares two \verb+LALUnit+ structures: they are the | | XLALUnitCompare() compares two ::LALUnit structures: they are the | |
| same if their normal forms are identical. | | same if their normal forms are identical. | |
| | | | |
|
| \verb+XLALUnitMultiply+ multiplies two \verb+LALUnit+ structures. The resu
lt | | XLALUnitMultiply() multiplies two ::LALUnit structures. The result | |
| is put into normal form. | | is put into normal form. | |
| | | | |
|
| \verb+XLALUnitRaiseRAT4+ raises a \verb+LALUnit+ structure to a rational | | XLALUnitRaiseRAT4() raises a ::LALUnit structure to a rational | |
| power given by the \verb+RAT4+ structure \verb+power+. | | power given by the ::RAT4 structure \c power. | |
| \verb+XLALUnitRaiseINT2+ raises a \verb+LALUnit+ structure to an integer | | XLALUnitRaiseINT2() raises a ::LALUnit structure to an integer | |
| power \verb+power+. | | power \c power. | |
| \verb+XLALUnitSquare+ produces the square of a \verb+LALUnit+ structure. | | XLALUnitSquare() produces the square of a ::LALUnit structure. | |
| \verb+XLALUnitSqrt+ produces the square-root of a \verb+LALUnit+ structure. | | XLALUnitSqrt() produces the square-root of a ::LALUnit structure. | |
| | | | |
|
| \subsubsection*{Return Values} | | \heading{Return Values} | |
| | | | |
|
| \verb+XLALUnitAsString+ returns the pointer to the input \verb+string+, whi
ch | | XLALUnitAsString() returns the pointer to the input \c string, which | |
| is populated with the unit string if successful. If there is a failure, | | is populated with the unit string if successful. If there is a failure, | |
|
| \verb+XLALUnitAsString+ returns a \verb+NULL+ pointer and \verb+xlalErrno+ | | XLALUnitAsString() returns a \c NULL pointer and \c ::xlalErrno | |
| is set to one of the following values: \verb+XLAL_EFAULT+ if one of the | | is set to one of the following values: \c #XLAL_EFAULT if one of the | |
| input pointers is \verb+NULL+ or \verb+XLAL_EBADLEN+ if the length of the | | input pointers is \c NULL or \c #XLAL_EBADLEN if the length of the | |
| string is insufficent for the unit string. | | string is insufficent for the unit string. | |
| | | | |
|
| \verb+XLALParseUnitString+ returns the pointer \verb+output+ upon return | | XLALParseUnitString() returns the pointer \c output upon return | |
| or a pointer to newly allocated memory if \verb+output+ was \verb+NULL+; | | or a pointer to newly allocated memory if \c output was \c NULL; | |
| on failure, \verb+XLALParseUnitString+ returns \verb+NULL+ and sets | | on failure, \c XLALParseUnitString returns \c NULL and sets | |
| \verb+xlalErrno+ to one of the following values: \verb+XLAL_ENOMEM+ | | \c ::xlalErrno to one of the following values: \c #XLAL_ENOMEM | |
| if the routine was unable to allocate memory for the output or | | if the routine was unable to allocate memory for the output or | |
|
| \verb+XLAL_EFAILED+ if the routine was unable to parse the unit string. | | \c #XLAL_EFAILED if the routine was unable to parse the unit string. | |
| | | | |
|
| \verb+XLALUnitNormalize+ returns 0 upon success or \verb+XLAL_FAILURE+ | | XLALUnitNormalize() returns 0 upon success or \c #XLAL_FAILURE | |
| if the input pointer is \verb+NULL+, in which case \verb+xlalErrno+ | | if the input pointer is \c NULL, in which case \c xlalErrno | |
| is set to \verb+XLAL_EFAULT+ | | is set to \c #XLAL_EFAULT | |
| | | | |
|
| \verb+XLALUnitCompare+ returns 0 if the the normal form of the two unit | | XLALUnitCompare() returns 0 if the the normal form of the two unit | |
| structures are the same or > 0 if they are different. It returns | | structures are the same or > 0 if they are different. It returns | |
|
| \verb+XLAL_FAILURE+ and \verb+xlalErrno+ is set to \verb+XLAL_EFAULT+ if | | \c #XLAL_FAILURE and \c ::xlalErrno is set to \c #XLAL_EFAULT if | |
| one of the input pointers is \verb+NULL+. | | one of the input pointers is \c NULL. | |
| | | | |
|
| \verb+XLALUnitMultiply+ | | XLALUnitMultiply(), XLALUnitRaiseRAT4(), XLALUnitRaiseINT2(), XLALUnitSquar | |
| \verb+XLALUnitRaiseRAT4+ | | e() and | |
| \verb+XLALUnitRaiseINT2+ | | XLALUnitSqrt() all return a pointer to the output unit structure | |
| \verb+XLALUnitSquare+ and | | \c output upon success or \c NULL upon failure. If there is | |
| \verb+XLALUnitSqrt+ all return a pointer to the output unit structure | | a failure, \c ::xlalErrno is set to one of the following values: | |
| \verb+output+ upon success or \verb+NULL+ upon failure. If there is | | \c #XLAL_EFAULT if one of the input pointers is \c NULL, | |
| a failure, \verb+xlalErrno+ is set to one of the following values: | | \c #XLAL_ERANGE if one of the unit powers exceeds the allowed range, | |
| \verb+XLAL_EFAULT+ if one of the input pointers is \verb+NULL+, | | or \c #XLAL_EINVAL (for the raise functions only) if the unit power | |
| \verb+XLAL_ERANGE+ if one of the unit powers exceeds the allowed range, | | | |
| or \verb+XLAL_EINVAL+ (for the raise functions only) if the unit power | | | |
| would not be an integer. | | would not be an integer. | |
|
| | | */ | |
| \newpage\input{UnitsTestC} | | | |
| | | | |
| </lalLaTeX> */ | | | |
| | | | |
| #ifndef _UNITS_H | | #ifndef _UNITS_H | |
| #define _UNITS_H | | #define _UNITS_H | |
| | | | |
|
| | | /* remove SWIG interface directives */ | |
| | | #if !defined(SWIG) && !defined(SWIGLAL_STRUCT) | |
| | | #define SWIGLAL_STRUCT(...) | |
| | | #endif | |
| | | | |
| #include <lal/LALStdlib.h> | | #include <lal/LALStdlib.h> | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| | | | |
| NRCSID (UNITSH, "$Id$"); | | NRCSID (UNITSH, "$Id$"); | |
| | | | |
|
| /******************************** <lalErrTable file="UnitsHErrTable"> */ | | /** \ingroup Units_h | |
| | | * @{ | |
| #define UNITSH_ENULLPIN 1 | | */ | |
| #define UNITSH_ENULLPOUT 2 | | /**\name Error Codes */ /*@{*/ | |
| #define UNITSH_ENULLPD 3 | | #define UNITSH_ENULLPIN 1 /**< Null pointer to input */ | |
| #define UNITSH_ENULLPPARAM 4 | | #define UNITSH_ENULLPOUT 2 /**< Null pointer to output */ | |
| #define UNITSH_ESTRINGSIZE 5 | | #define UNITSH_ENULLPD 3 /**< Null pointer to data member of | |
| #define UNITSH_EOVERFLOW 6 | | vector */ | |
| #define UNITSH_ENONINT 7 | | #define UNITSH_ENULLPPARAM 4 /**< Null pointer to parameters */ | |
| #define UNITSH_EPARSE 8 | | #define UNITSH_ESTRINGSIZE 5 /**< Output string too short */ | |
| | | #define UNITSH_EOVERFLOW 6 /**< Exponent outside of (U)INT2 bou | |
| | | nds */ | |
| | | #define UNITSH_ENONINT 7 /**< Non-integer power of ten */ | |
| | | #define UNITSH_EPARSE 8 /**< Error parsing unit string */ | |
| | | /*@}*/ | |
| | | | |
|
| | | /** \cond DONT_DOXYGEN */ | |
| #define UNITSH_MSGENULLPIN "Null pointer to input" | | #define UNITSH_MSGENULLPIN "Null pointer to input" | |
| #define UNITSH_MSGENULLPOUT "Null pointer to output" | | #define UNITSH_MSGENULLPOUT "Null pointer to output" | |
| #define UNITSH_MSGENULLPD "Null pointer to data member of vector" | | #define UNITSH_MSGENULLPD "Null pointer to data member of vector" | |
| #define UNITSH_MSGENULLPPARAM "Null pointer to parameters" | | #define UNITSH_MSGENULLPPARAM "Null pointer to parameters" | |
| #define UNITSH_MSGESTRINGSIZE "Output string too short" | | #define UNITSH_MSGESTRINGSIZE "Output string too short" | |
| #define UNITSH_MSGEOVERFLOW "Exponent outside of (U)INT2 bounds" | | #define UNITSH_MSGEOVERFLOW "Exponent outside of (U)INT2 bounds" | |
| #define UNITSH_MSGENONINT "Non-integer power of ten" | | #define UNITSH_MSGENONINT "Non-integer power of ten" | |
| #define UNITSH_MSGEPARSE "Error parsing unit string" | | #define UNITSH_MSGEPARSE "Error parsing unit string" | |
|
| | | /** \endcond */ | |
| | | | |
|
| /************************************ </lalErrTable> */ | | /** A four-byte rational number, used as a parameter structure for | |
| | | * LALUnitRaise(). | |
| /* The parameter structure for LALUnitRaise contains the numerator and | | | |
| * denominator-minus-one of the rational power. | | | |
| */ | | */ | |
|
| | | | |
| typedef struct | | typedef struct | |
| tagRAT4 | | tagRAT4 | |
| { | | { | |
|
| INT2 numerator; | | SWIGLAL_STRUCT(RAT4); | |
| UINT2 denominatorMinusOne; | | INT2 numerator; /**< The numerator */ | |
| | | UINT2 denominatorMinusOne; /**< One less than the denominator */ | |
| } RAT4; | | } RAT4; | |
| | | | |
|
| | | /** @} */ | |
| | | | |
| /********************************************************* | | /********************************************************* | |
| * * | | * * | |
| * Functions to manipulate unit structures * | | * Functions to manipulate unit structures * | |
| * * | | * * | |
| *********************************************************/ | | *********************************************************/ | |
| | | | |
| /* XLAL routines */ | | /* XLAL routines */ | |
| | | | |
|
| | | /** \addtogroup UnitXLALFunctions | |
| | | * @{ | |
| | | */ | |
| char * XLALUnitAsString( char *string, UINT4 length, const LALUnit *input )
; | | char * XLALUnitAsString( char *string, UINT4 length, const LALUnit *input )
; | |
| LALUnit * XLALParseUnitString( LALUnit *output, const char *string ); | | LALUnit * XLALParseUnitString( LALUnit *output, const char *string ); | |
| int XLALUnitNormalize( LALUnit *unit ); | | int XLALUnitNormalize( LALUnit *unit ); | |
| int XLALUnitCompare( const LALUnit *unit1, const LALUnit *unit2 ); | | int XLALUnitCompare( const LALUnit *unit1, const LALUnit *unit2 ); | |
| LALUnit * XLALUnitMultiply( LALUnit *output, const LALUnit *unit1, | | LALUnit * XLALUnitMultiply( LALUnit *output, const LALUnit *unit1, | |
| const LALUnit *unit2 ); | | const LALUnit *unit2 ); | |
| LALUnit * XLALUnitDivide( LALUnit *output, const LALUnit *unit1, | | LALUnit * XLALUnitDivide( LALUnit *output, const LALUnit *unit1, | |
| const LALUnit *unit2 ); | | const LALUnit *unit2 ); | |
| LALUnit * XLALUnitRaiseRAT4( LALUnit *output, const LALUnit *input, | | LALUnit * XLALUnitRaiseRAT4( LALUnit *output, const LALUnit *input, | |
| const RAT4 *power ); | | const RAT4 *power ); | |
| LALUnit * XLALUnitRaiseINT2( LALUnit *output, const LALUnit *input, | | LALUnit * XLALUnitRaiseINT2( LALUnit *output, const LALUnit *input, | |
| INT2 power ); | | INT2 power ); | |
| LALUnit * XLALUnitSquare( LALUnit *output, const LALUnit *input ); | | LALUnit * XLALUnitSquare( LALUnit *output, const LALUnit *input ); | |
| LALUnit * XLALUnitSqrt( LALUnit *output, const LALUnit *input ); | | LALUnit * XLALUnitSqrt( LALUnit *output, const LALUnit *input ); | |
| LALUnit * XLALUnitInvert( LALUnit *output, const LALUnit *input ); | | LALUnit * XLALUnitInvert( LALUnit *output, const LALUnit *input ); | |
| REAL8 XLALUnitPrefactor(const LALUnit *unit); | | REAL8 XLALUnitPrefactor(const LALUnit *unit); | |
| int XLALUnitIsDimensionless(const LALUnit *unit); | | int XLALUnitIsDimensionless(const LALUnit *unit); | |
| REAL8 XLALUnitRatio(const LALUnit *unit1, const LALUnit *unit2); | | REAL8 XLALUnitRatio(const LALUnit *unit1, const LALUnit *unit2); | |
|
| | | /** @} */ | |
| | | | |
|
| /* LALUnitNormalize will reduce the rational powers in the basic unit | | /* LALUnitNormalize() will reduce the rational powers in the basic unit | |
| * exponents, e.g. converting 2/2 to 1/1 and 3/6 to 1/2. | | * exponents, e.g. converting 2/2 to 1/1 and 3/6 to 1/2. | |
| */ | | */ | |
|
| | | | |
| void LALUnitNormalize (LALStatus *status, LALUnit *output, | | void LALUnitNormalize (LALStatus *status, LALUnit *output, | |
| const LALUnit *input); | | const LALUnit *input); | |
| | | | |
| /* Several functions take two Unit variables as input, so need the | | /* Several functions take two Unit variables as input, so need the | |
| * following structure. | | * following structure. | |
| */ | | */ | |
| | | | |
|
| | | /* Consists of a pair of unit structures; used as an input structure for | |
| | | * the LALUnitCompare() and LALUnitMultiply() functions. | |
| | | */ | |
| typedef struct | | typedef struct | |
| tagLALUnitPair | | tagLALUnitPair | |
| { | | { | |
|
| const LALUnit *unitOne; | | SWIGLAL_STRUCT(LALUnitPair); | |
| const LALUnit *unitTwo; | | const LALUnit *unitOne; /**< The first unit */ | |
| | | const LALUnit *unitTwo; /**< The second unit */ | |
| } | | } | |
| LALUnitPair; | | LALUnitPair; | |
| | | | |
| /* LALUnitMultiply will multiply together two Unit variables and | | /* LALUnitMultiply will multiply together two Unit variables and | |
| * output their product; it will call LALUnitNormalize. | | * output their product; it will call LALUnitNormalize. | |
| */ | | */ | |
|
| | | | |
| void LALUnitMultiply (LALStatus *status, LALUnit *output, | | void LALUnitMultiply (LALStatus *status, LALUnit *output, | |
| const LALUnitPair *input); | | const LALUnitPair *input); | |
| | | | |
| /* LALUnitCompare will compare two Unit variables and return true if | | /* LALUnitCompare will compare two Unit variables and return true if | |
| * they are the equivalent (the same power of ten offset as well as | | * they are the equivalent (the same power of ten offset as well as | |
| * equivalent ratioanl powers of the base units). | | * equivalent ratioanl powers of the base units). | |
| */ | | */ | |
|
| | | | |
| void LALUnitCompare (LALStatus *status, BOOLEAN *output, | | void LALUnitCompare (LALStatus *status, BOOLEAN *output, | |
| const LALUnitPair *input); | | const LALUnitPair *input); | |
| | | | |
|
| /* LALUnitRaise will raise a unit structure to a rational power; the | | /* LALUnitRaise() will raise a unit structure to a rational power; the | |
| * most common choices will presumably be -1, 2, and 1/2. An error | | * most common choices will presumably be -1, 2, and 1/2. An error | |
| * occurs if input->powerOfTen is not evenly divisible by the | | * occurs if input->powerOfTen is not evenly divisible by the | |
| * denominator of the specified power | | * denominator of the specified power | |
| */ | | */ | |
|
| | | | |
| void LALUnitRaise (LALStatus *status, LALUnit *output, | | void LALUnitRaise (LALStatus *status, LALUnit *output, | |
| const LALUnit *input, const RAT4 *power); | | const LALUnit *input, const RAT4 *power); | |
| | | | |
|
| /* LALUnitAsString will convert an LALUnit structure into a | | /** Converts a LALUnit structure into a human-readable text form. | |
| * human-readable text form. | | | |
| */ | | */ | |
|
| | | | |
| void LALUnitAsString (LALStatus *status, CHARVector *output, | | void LALUnitAsString (LALStatus *status, CHARVector *output, | |
| const LALUnit *input); | | const LALUnit *input); | |
| | | | |
| void | | void | |
| LALParseUnitString ( LALStatus *status, | | LALParseUnitString ( LALStatus *status, | |
| LALUnit *output, | | LALUnit *output, | |
| const CHARVector *input ); | | const CHARVector *input ); | |
| | | | |
|
| enum { LALUnitNameSize = sizeof("strain") }; | | #ifndef SWIG /* exclude from SWIG interface */ | |
| enum { LALUnitTextSize = sizeof("10^-32768 m^-32768/32767 kg^-32768/32767 " | | enum enumLALUnitNameSize { | |
| "s^-32768/32767 A^-32768/32767 " | | LALUnitNameSize = sizeof("strain") | |
| "K^-32768/32767 strain^-32768/32767 " | | }; | |
| "count^-32768/32767") }; | | enum enumLALUnitTextSize { | |
| | | LALUnitTextSize = sizeof("10^-32768 m^-32768/32767 kg^-32768/32767 " | |
| | | "s^-32768/32767 A^-32768/32767 " | |
| | | "K^-32768/32767 strain^-32768/32767 " | |
| | | "count^-32768/32767") | |
| | | }; | |
| | | | |
| extern const CHAR lalUnitName[LALNumUnits][LALUnitNameSize]; | | extern const CHAR lalUnitName[LALNumUnits][LALUnitNameSize]; | |
|
| | | #endif /* SWIG */ | |
| | | | |
| /********************************************************* | | /********************************************************* | |
| * * | | * * | |
| * Predefined units * | | * Predefined units * | |
| * * | | * * | |
| *********************************************************/ | | *********************************************************/ | |
| | | | |
| /* Predefined constant units make it easier for programmers to specify | | /* Predefined constant units make it easier for programmers to specify | |
| * and compare (using LALUnitCompare) units more easily. Those given | | * and compare (using LALUnitCompare) units more easily. Those given | |
| * here are an example; more can be added. | | * here are an example; more can be added. | |
| | | | |
End of changes. 50 change blocks. |
| 162 lines changed or deleted | | 125 lines changed or added | |
|
| VectorIndexRange.h | | VectorIndexRange.h | |
| /* -*- C -*- */ | | /* -*- C -*- */ | |
|
| /******** <lalVerbatim file="VectorIndexRangeHV"> ******** | | /** | |
| Author: David Chin <dwchin@umich.edu> +1-734-709-9119 | | * \author David Chin <dwchin@umich.edu> +1-734-709-9119 | |
| $Id$ | | * \addtogroup VectorIndexRange_h | |
| ********* </lalVerbatim> ********/ | | | |
| | | | |
| /**** <lalLaTeX> | | | |
| * | | | |
| * \section{Header \texttt{VectorIndexRange.h}} | | | |
| * | | * | |
|
| * Routines to slice up vectors/sequences by | | * \section TODOref Header \ref VectorIndexRange.h | |
| * specifying starting and ending indices, inclusive. | | | |
| * \texttt{VectorIndexHole()} | | | |
| * is "complementary" to \texttt{VectorIndexRange()}, in the sense that | | | |
| * it returns the two segments of the vector that would remain after | | | |
| * \texttt{VectorIndexRange()} acts. | | | |
| * | | * | |
|
| * \subsection*{Synopsis} | | * \brief Routines to slice up vectors/sequences by specifying starting and | |
| * \begin{verbatim} | | ending indices, inclusive. | |
| * #include <lal/VectorIndexRange.h> | | | |
| * \end{verbatim} | | | |
| * | | * | |
|
| * \subsection*{Error conditions} | | * VectorIndexHole() is "complementary" to VectorIndexRange(), in the sense | |
| * \input{VectorIndexRangeHE} | | that | |
| | | * it returns the two segments of the vector that would remain after Vector | |
| | | IndexRange() acts. | |
| * | | * | |
|
| * \vfill{\footnotesize\input{VectorIndexRangeHV}} | | * \heading{Synopsis} | |
| * \newpage\input{VectorIndexRangeC} | | * \code | |
| | | * #include <lal/VectorIndexRange.h> | |
| | | * \endcode | |
| * | | * | |
|
| ***** </lalLaTeX> */ | | * @{ | |
| | | */ | |
| | | | |
| #include <math.h> | | #include <math.h> | |
| #include <lal/LALRCSID.h> | | #include <lal/LALRCSID.h> | |
| #include <lal/LALStdlib.h> | | #include <lal/LALStdlib.h> | |
| #include <lal/SeqFactories.h> | | #include <lal/SeqFactories.h> | |
| #include <lal/AVFactories.h> | | #include <lal/AVFactories.h> | |
| | | | |
| #ifndef __LALVECTORINDEXRANGE_H__ | | #ifndef __LALVECTORINDEXRANGE_H__ | |
| #define __LALVECTORINDEXRANGE_H__ | | #define __LALVECTORINDEXRANGE_H__ | |
| | | | |
|
| | | /* remove SWIG interface directives */ | |
| | | #if !defined(SWIG) && !defined(SWIGLAL_STRUCT) | |
| | | #define SWIGLAL_STRUCT | |
| | | #endif | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif /* C++ */ | | #endif /* C++ */ | |
| | | | |
|
| NRCSID( VECTORINDEXRANGEH, "$Id$" ); | | /**\name Error Codes */ /*@{*/ | |
| | | #define VECTORINDEXRANGEH_EARG 1 /**< Error parsing command-line argu | |
| | | ments */ | |
| | | #define VECTORINDEXRANGEH_ECHK 2 /**< Error checking failed to catch | |
| | | bad data */ | |
| | | #define VECTORINDEXRANGEH_EFLS 3 /**< Incorrect answer for valid data | |
| | | */ | |
| | | #define VECTORINDEXRANGEH_EUSE 4 /**< Bad user-entered data */ | |
| | | #define VECTORINDEXRANGEH_ENULL 5 /**< Null Pointer */ | |
| | | #define VECTORINDEXRANGEH_EALOC 6 /**< Memory Allocation Error */ | |
| | | #define VECTORINDEXRANGEH_EFPMS 7 /**< Filter Parameter Structure Erro | |
| | | r */ | |
| | | #define VECTORINDEXRANGEH_ENUMZ 8 /**< Incorrect number of command lin | |
| | | e arguments */ | |
| | | #define VECTORINDEXRANGEH_ELNTH 9 /**< Vector/Array of Improper Length | |
| | | */ | |
| | | #define VECTORINDEXRANGEH_ENNUL 10 /**< Non-Null Pointer that should be | |
| | | NULL */ | |
| | | /** @}*/ | |
| | | | |
| | | /** @}*/ | |
| | | | |
|
| /**** <lalErrTable file="VectorIndexRangeHE"> ****/ | | | |
| #define VECTORINDEXRANGEH_EARG 1 | | | |
| #define VECTORINDEXRANGEH_ECHK 2 | | | |
| #define VECTORINDEXRANGEH_EFLS 3 | | | |
| #define VECTORINDEXRANGEH_EUSE 4 | | | |
| #define VECTORINDEXRANGEH_ENULL 5 | | | |
| #define VECTORINDEXRANGEH_EALOC 6 | | | |
| #define VECTORINDEXRANGEH_EFPMS 7 | | | |
| #define VECTORINDEXRANGEH_ENUMZ 8 | | | |
| #define VECTORINDEXRANGEH_ELNTH 9 | | | |
| #define VECTORINDEXRANGEH_ENNUL 10 | | | |
| #define VECTORINDEXRANGEH_MSGEARG "Error parsing command-line arguments" | | #define VECTORINDEXRANGEH_MSGEARG "Error parsing command-line arguments" | |
| #define VECTORINDEXRANGEH_MSGECHK "Error checking failed to catch bad data" | | #define VECTORINDEXRANGEH_MSGECHK "Error checking failed to catch bad data" | |
| #define VECTORINDEXRANGEH_MSGEFLS "Incorrect answer for valid data" | | #define VECTORINDEXRANGEH_MSGEFLS "Incorrect answer for valid data" | |
| #define VECTORINDEXRANGEH_MSGEUSE "Bad user-entered data" | | #define VECTORINDEXRANGEH_MSGEUSE "Bad user-entered data" | |
| #define VECTORINDEXRANGEH_MSGENULL "Null Pointer." | | #define VECTORINDEXRANGEH_MSGENULL "Null Pointer." | |
| #define VECTORINDEXRANGEH_MSGEALOC "Memory Allocation Error" | | #define VECTORINDEXRANGEH_MSGEALOC "Memory Allocation Error" | |
| #define VECTORINDEXRANGEH_MSGEFPMS "Filter Parameter Structure Error" | | #define VECTORINDEXRANGEH_MSGEFPMS "Filter Parameter Structure Error" | |
| #define VECTORINDEXRANGEH_MSGENUMZ "Incorrect number of command line argume
nts" | | #define VECTORINDEXRANGEH_MSGENUMZ "Incorrect number of command line argume
nts" | |
| #define VECTORINDEXRANGEH_MSGELNTH "Vector/Array of Improper Length" | | #define VECTORINDEXRANGEH_MSGELNTH "Vector/Array of Improper Length" | |
| #define VECTORINDEXRANGEH_MSGENNUL "Non-Null Pointer that should be NULL" | | #define VECTORINDEXRANGEH_MSGENNUL "Non-Null Pointer that should be NULL" | |
|
| /**** </lalErrTable> ****/ | | | |
| | | | |
| /* typedefs */ | | | |
| | | | |
|
| /* | | NRCSID( VECTORINDEXRANGEH, "$Id$" ); | |
| | | | |
|
| */ | | /* typedefs */ | |
| | | | |
|
| | | /* CHAR */ | |
| typedef struct | | typedef struct | |
| tagCHARVectorPair { | | tagCHARVectorPair { | |
|
| | | SWIGLAL_STRUCT(CHARVectorPair); | |
| CHARVector **head; | | CHARVector **head; | |
| CHARVector **tail; | | CHARVector **tail; | |
| } CHARVectorPair; | | } CHARVectorPair; | |
| | | | |
|
| /* | | /* INT2 */ | |
| | | | |
| */ | | | |
| | | | |
| typedef struct | | typedef struct | |
| tagINT2VectorPair { | | tagINT2VectorPair { | |
|
| | | SWIGLAL_STRUCT(INT2VectorPair); | |
| INT2Vector **head; | | INT2Vector **head; | |
| INT2Vector **tail; | | INT2Vector **tail; | |
| } INT2VectorPair; | | } INT2VectorPair; | |
| | | | |
|
| /* | | /* INT4 */ | |
| | | | |
| */ | | | |
| | | | |
| typedef struct | | typedef struct | |
| tagINT4VectorPair { | | tagINT4VectorPair { | |
|
| | | SWIGLAL_STRUCT(INT4VectorPair); | |
| INT4Vector **head; | | INT4Vector **head; | |
| INT4Vector **tail; | | INT4Vector **tail; | |
| } INT4VectorPair; | | } INT4VectorPair; | |
| | | | |
|
| /* | | /* INT8 */ | |
| | | | |
| */ | | | |
| | | | |
| typedef struct | | typedef struct | |
| tagINT8VectorPair { | | tagINT8VectorPair { | |
|
| | | SWIGLAL_STRUCT(INT8VectorPair); | |
| INT8Vector **head; | | INT8Vector **head; | |
| INT8Vector **tail; | | INT8Vector **tail; | |
| } INT8VectorPair; | | } INT8VectorPair; | |
| | | | |
|
| /* | | /* UINT2 */ | |
| | | | |
| */ | | | |
| | | | |
| typedef struct | | typedef struct | |
| tagUINT2VectorPair { | | tagUINT2VectorPair { | |
|
| | | SWIGLAL_STRUCT(UINT2VectorPair); | |
| UINT2Vector **head; | | UINT2Vector **head; | |
| UINT2Vector **tail; | | UINT2Vector **tail; | |
| } UINT2VectorPair; | | } UINT2VectorPair; | |
| | | | |
|
| /* | | /* UINT4 */ | |
| | | | |
| */ | | | |
| | | | |
| typedef struct | | typedef struct | |
| tagUINT4VectorPair { | | tagUINT4VectorPair { | |
|
| | | SWIGLAL_STRUCT(UINT4VectorPair); | |
| UINT4Vector **head; | | UINT4Vector **head; | |
| UINT4Vector **tail; | | UINT4Vector **tail; | |
| } UINT4VectorPair; | | } UINT4VectorPair; | |
| | | | |
|
| /* | | /* UINT8 */ | |
| | | | |
| */ | | | |
| | | | |
| typedef struct | | typedef struct | |
| tagUINT8VectorPair { | | tagUINT8VectorPair { | |
|
| | | SWIGLAL_STRUCT(UINT8VectorPair); | |
| UINT8Vector **head; | | UINT8Vector **head; | |
| UINT8Vector **tail; | | UINT8Vector **tail; | |
| } UINT8VectorPair; | | } UINT8VectorPair; | |
| | | | |
|
| /* | | /* REAL4 */ | |
| | | | |
| */ | | | |
| | | | |
| typedef struct | | typedef struct | |
| tagREAL4VectorPair { | | tagREAL4VectorPair { | |
|
| | | SWIGLAL_STRUCT(REAL4VectorPair); | |
| REAL4Vector **head; | | REAL4Vector **head; | |
| REAL4Vector **tail; | | REAL4Vector **tail; | |
| } REAL4VectorPair; | | } REAL4VectorPair; | |
| | | | |
|
| /* | | /* REAL8 */ | |
| | | | |
| */ | | | |
| | | | |
| typedef struct | | typedef struct | |
| tagREAL8VectorPair { | | tagREAL8VectorPair { | |
|
| | | SWIGLAL_STRUCT(REAL8VectorPair); | |
| REAL8Vector **head; | | REAL8Vector **head; | |
| REAL8Vector **tail; | | REAL8Vector **tail; | |
| } REAL8VectorPair; | | } REAL8VectorPair; | |
| | | | |
|
| /* | | /* COMPLEX8 */ | |
| | | | |
| */ | | | |
| | | | |
| typedef struct | | typedef struct | |
| tagCOMPLEX8VectorPair { | | tagCOMPLEX8VectorPair { | |
|
| | | SWIGLAL_STRUCT(COMPLEX8VectorPair); | |
| COMPLEX8Vector **head; | | COMPLEX8Vector **head; | |
| COMPLEX8Vector **tail; | | COMPLEX8Vector **tail; | |
| } COMPLEX8VectorPair; | | } COMPLEX8VectorPair; | |
| | | | |
|
| /* | | /* COMPLEX16 */ | |
| | | | |
| */ | | | |
| | | | |
| typedef struct | | typedef struct | |
| tagCOMPLEX16VectorPair { | | tagCOMPLEX16VectorPair { | |
|
| | | SWIGLAL_STRUCT(COMPLEX16VectorPair); | |
| COMPLEX16Vector **head; | | COMPLEX16Vector **head; | |
| COMPLEX16Vector **tail; | | COMPLEX16Vector **tail; | |
| } COMPLEX16VectorPair; | | } COMPLEX16VectorPair; | |
| | | | |
| /* Function protos */ | | /* Function protos */ | |
| | | | |
|
| /* | | /* CHAR */ | |
| | | | |
| */ | | | |
| | | | |
| void LALCHARVectorIndexRange ( LALStatus *status, | | void LALCHARVectorIndexRange ( LALStatus *status, | |
| CHARVector **result, | | CHARVector **result, | |
| CHARVector *v, | | CHARVector *v, | |
| const UINT4Vector *indexVector ); | | const UINT4Vector *indexVector ); | |
|
| | | | |
| void LALCHARVectorIndexHole ( LALStatus *status, | | void LALCHARVectorIndexHole ( LALStatus *status, | |
| CHARVectorPair *result_pair, | | CHARVectorPair *result_pair, | |
| CHARVector *v, | | CHARVector *v, | |
| const UINT4Vector *indexVector ); | | const UINT4Vector *indexVector ); | |
| | | | |
|
| /* | | /* INT2 */ | |
| | | | |
| */ | | | |
| | | | |
| void LALI2VectorIndexRange ( LALStatus *status, | | void LALI2VectorIndexRange ( LALStatus *status, | |
| INT2Vector **result, | | INT2Vector **result, | |
| INT2Vector *v, | | INT2Vector *v, | |
| const UINT4Vector *indexVector ); | | const UINT4Vector *indexVector ); | |
|
| | | | |
| void LALI2VectorIndexHole ( LALStatus *status, | | void LALI2VectorIndexHole ( LALStatus *status, | |
| INT2VectorPair *result_pair, | | INT2VectorPair *result_pair, | |
| INT2Vector *v, | | INT2Vector *v, | |
| const UINT4Vector *indexVector ); | | const UINT4Vector *indexVector ); | |
| | | | |
|
| /* | | /* INT4 */ | |
| | | | |
| */ | | | |
| | | | |
| void LALI4VectorIndexRange ( LALStatus *status, | | void LALI4VectorIndexRange ( LALStatus *status, | |
| INT4Vector **result, | | INT4Vector **result, | |
| INT4Vector *v, | | INT4Vector *v, | |
| const UINT4Vector *indexVector ); | | const UINT4Vector *indexVector ); | |
|
| | | | |
| void LALI4VectorIndexHole ( LALStatus *status, | | void LALI4VectorIndexHole ( LALStatus *status, | |
| INT4VectorPair *result_pair, | | INT4VectorPair *result_pair, | |
| INT4Vector *v, | | INT4Vector *v, | |
| const UINT4Vector *indexVector ); | | const UINT4Vector *indexVector ); | |
| | | | |
|
| /* | | /* INT8 */ | |
| | | | |
| */ | | | |
| | | | |
| void LALI8VectorIndexRange ( LALStatus *status, | | void LALI8VectorIndexRange ( LALStatus *status, | |
| INT8Vector **result, | | INT8Vector **result, | |
| INT8Vector *v, | | INT8Vector *v, | |
| const UINT4Vector *indexVector ); | | const UINT4Vector *indexVector ); | |
|
| | | | |
| void LALI8VectorIndexHole ( LALStatus *status, | | void LALI8VectorIndexHole ( LALStatus *status, | |
| INT8VectorPair *result_pair, | | INT8VectorPair *result_pair, | |
| INT8Vector *v, | | INT8Vector *v, | |
| const UINT4Vector *indexVector ); | | const UINT4Vector *indexVector ); | |
| | | | |
|
| /* | | /* UINT2 */ | |
| | | | |
| */ | | | |
| | | | |
| void LALU2VectorIndexRange ( LALStatus *status, | | void LALU2VectorIndexRange ( LALStatus *status, | |
| UINT2Vector **result, | | UINT2Vector **result, | |
| UINT2Vector *v, | | UINT2Vector *v, | |
| const UINT4Vector *indexVector ); | | const UINT4Vector *indexVector ); | |
|
| | | | |
| void LALU2VectorIndexHole ( LALStatus *status, | | void LALU2VectorIndexHole ( LALStatus *status, | |
| UINT2VectorPair *result_pair, | | UINT2VectorPair *result_pair, | |
| UINT2Vector *v, | | UINT2Vector *v, | |
| const UINT4Vector *indexVector ); | | const UINT4Vector *indexVector ); | |
| | | | |
|
| /* | | /* UINT4 */ | |
| | | | |
| */ | | | |
| | | | |
| void LALU4VectorIndexRange ( LALStatus *status, | | void LALU4VectorIndexRange ( LALStatus *status, | |
| UINT4Vector **result, | | UINT4Vector **result, | |
| UINT4Vector *v, | | UINT4Vector *v, | |
| const UINT4Vector *indexVector ); | | const UINT4Vector *indexVector ); | |
|
| | | | |
| void LALU4VectorIndexHole ( LALStatus *status, | | void LALU4VectorIndexHole ( LALStatus *status, | |
| UINT4VectorPair *result_pair, | | UINT4VectorPair *result_pair, | |
| UINT4Vector *v, | | UINT4Vector *v, | |
| const UINT4Vector *indexVector ); | | const UINT4Vector *indexVector ); | |
| | | | |
|
| /* | | /* UINT8 */ | |
| | | | |
| */ | | | |
| | | | |
| void LALU8VectorIndexRange ( LALStatus *status, | | void LALU8VectorIndexRange ( LALStatus *status, | |
| UINT8Vector **result, | | UINT8Vector **result, | |
| UINT8Vector *v, | | UINT8Vector *v, | |
| const UINT4Vector *indexVector ); | | const UINT4Vector *indexVector ); | |
|
| | | | |
| void LALU8VectorIndexHole ( LALStatus *status, | | void LALU8VectorIndexHole ( LALStatus *status, | |
| UINT8VectorPair *result_pair, | | UINT8VectorPair *result_pair, | |
| UINT8Vector *v, | | UINT8Vector *v, | |
| const UINT4Vector *indexVector ); | | const UINT4Vector *indexVector ); | |
| | | | |
|
| /* | | /* REAL4 */ | |
| | | | |
| */ | | | |
| | | | |
| void LALSVectorIndexRange ( LALStatus *status, | | void LALSVectorIndexRange ( LALStatus *status, | |
| REAL4Vector **result, | | REAL4Vector **result, | |
| REAL4Vector *v, | | REAL4Vector *v, | |
| const UINT4Vector *indexVector ); | | const UINT4Vector *indexVector ); | |
|
| | | | |
| void LALSVectorIndexHole ( LALStatus *status, | | void LALSVectorIndexHole ( LALStatus *status, | |
| REAL4VectorPair *result_pair, | | REAL4VectorPair *result_pair, | |
| REAL4Vector *v, | | REAL4Vector *v, | |
| const UINT4Vector *indexVector ); | | const UINT4Vector *indexVector ); | |
| | | | |
|
| /* | | /* REAL8 */ | |
| | | | |
| */ | | | |
| | | | |
| void LALDVectorIndexRange ( LALStatus *status, | | void LALDVectorIndexRange ( LALStatus *status, | |
| REAL8Vector **result, | | REAL8Vector **result, | |
| REAL8Vector *v, | | REAL8Vector *v, | |
| const UINT4Vector *indexVector ); | | const UINT4Vector *indexVector ); | |
|
| | | | |
| void LALDVectorIndexHole ( LALStatus *status, | | void LALDVectorIndexHole ( LALStatus *status, | |
| REAL8VectorPair *result_pair, | | REAL8VectorPair *result_pair, | |
| REAL8Vector *v, | | REAL8Vector *v, | |
| const UINT4Vector *indexVector ); | | const UINT4Vector *indexVector ); | |
| | | | |
|
| /* | | /* COMPLEX8 */ | |
| | | | |
| */ | | | |
| | | | |
| void LALCVectorIndexRange ( LALStatus *status, | | void LALCVectorIndexRange ( LALStatus *status, | |
| COMPLEX8Vector **result, | | COMPLEX8Vector **result, | |
| COMPLEX8Vector *v, | | COMPLEX8Vector *v, | |
| const UINT4Vector *indexVector ); | | const UINT4Vector *indexVector ); | |
|
| | | | |
| void LALCVectorIndexHole ( LALStatus *status, | | void LALCVectorIndexHole ( LALStatus *status, | |
| COMPLEX8VectorPair *result_pair, | | COMPLEX8VectorPair *result_pair, | |
| COMPLEX8Vector *v, | | COMPLEX8Vector *v, | |
| const UINT4Vector *indexVector ); | | const UINT4Vector *indexVector ); | |
| | | | |
|
| /* | | /* COMPLEX16 */ | |
| | | | |
| */ | | | |
| | | | |
| void LALZVectorIndexRange ( LALStatus *status, | | void LALZVectorIndexRange ( LALStatus *status, | |
| COMPLEX16Vector **result, | | COMPLEX16Vector **result, | |
| COMPLEX16Vector *v, | | COMPLEX16Vector *v, | |
| const UINT4Vector *indexVector ); | | const UINT4Vector *indexVector ); | |
|
| | | | |
| void LALZVectorIndexHole ( LALStatus *status, | | void LALZVectorIndexHole ( LALStatus *status, | |
| COMPLEX16VectorPair *result_pair, | | COMPLEX16VectorPair *result_pair, | |
| COMPLEX16Vector *v, | | COMPLEX16Vector *v, | |
| const UINT4Vector *indexVector ); | | const UINT4Vector *indexVector ); | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif /* C++ */ | | #endif /* C++ */ | |
| | | | |
| #endif /* __LALVECTORINDEXRANGE_H__ */ | | #endif /* __LALVECTORINDEXRANGE_H__ */ | |
| | | | |
End of changes. 56 change blocks. |
| 135 lines changed or deleted | | 77 lines changed or added | |
|
| XLALError.h | | XLALError.h | |
| | | | |
| skipping to change at line 20 | | skipping to change at line 20 | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | | * GNU General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with with program; see the file COPYING. If not, write to the | | * along with with program; see the file COPYING. If not, write to the | |
| * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | | * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | |
| * MA 02111-1307 USA | | * MA 02111-1307 USA | |
| */ | | */ | |
| | | | |
|
| /** \file | | /** \file XLALError.h | |
| * \ingroup std | | * \ingroup std | |
| * \author Creighton, J. D. E. | | * \author Creighton, J. D. E. | |
| * \date 2005 | | * \date 2005 | |
|
| * \brief This header covers routines to provide the XLAL interface error h | | * \brief This header covers routines to provide the XLAL interface error | |
| andling. | | * handling. | |
| * | | * | |
| * \par XLAL Errors | | * \par XLAL Errors | |
| * | | * | |
| * When an XLAL routine fails, the routine should set the <tt>xlalErrno</tt
> to | | * When an XLAL routine fails, the routine should set the <tt>xlalErrno</tt
> to | |
| * an appropriate error number and return with the appropriate error code.
The | | * an appropriate error number and return with the appropriate error code.
The | |
|
| * return value depends on the return type of the XLAL function. Furthermo | | * return value depends on the return type of the XLAL function. Furthermo | |
| re, the | | re, | |
| * XLAL error handler should be invoked. | | * the XLAL error handler should be invoked. | |
| * | | * | |
| * Whenever possible (i.e., always), standard XLAL error macros should be u
sed | | * Whenever possible (i.e., always), standard XLAL error macros should be u
sed | |
| * when generating an error. These macros (i) invoke the current error han
dler, | | * when generating an error. These macros (i) invoke the current error han
dler, | |
| * (ii) set the error code to the specified value, and (iii) return with th
e | | * (ii) set the error code to the specified value, and (iii) return with th
e | |
|
| * correct return value. The error macros that should be used are: | | * correct return value. In addition, these macros may take an optional | |
| | | * printf-like format string (along with additional parameters for this for | |
| | | mat | |
| | | * string) to provide additional information about the nature of the failur | |
| | | e. | |
| | | * The error macros that should be used are: | |
| * | | * | |
|
| * <tt>XLAL_ERROR(func,errnum)</tt> for XLAL routines returning an integer | | * <tt>XLAL_ERROR(errnum [, fmt [, ...]])</tt> for XLAL routines returning | |
| type. | | an | |
| | | * integer type. | |
| * | | * | |
|
| * <tt>XLAL_ERROR_VOID(func,errnum)</tt> for XLAL routines with no return v | | * <tt>XLAL_ERROR_VOID(errnum [, fmt [, ...]])</tt> for XLAL routines with | |
| alue. | | no | |
| | | * return value. | |
| * | | * | |
|
| * <tt>XLAL_ERROR_NULL(func,errnum)</tt> for XLAL routines returning a poin | | * <tt>XLAL_ERROR_NULL(errnum [, fmt [, ...]])</tt> for XLAL routines retur | |
| ter. | | ning | |
| | | * a pointer. | |
| * | | * | |
|
| * <tt>XLAL_ERROR_REAL4(func,errnum)</tt> for XLAL routines returning a <tt | | * <tt>XLAL_ERROR_REAL4(errnum [, fmt [, ...]])</tt> for XLAL routines | |
| >REAL4</tt> | | * returning a <tt>REAL4</tt> floating-point value. | |
| * floating-point value. | | | |
| * | | * | |
|
| * <tt>XLAL_ERROR_REAL8(func,errnum)</tt> for XLAL routines returning a <tt | | * <tt>XLAL_ERROR_REAL8(errnum [, fmt [, ...]])</tt> for XLAL routines | |
| >REAL8</tt> | | * returning a <tt>REAL8</tt> floating-point value. | |
| * floating-point value. | | | |
| * | | * | |
|
| * Additional error, warning, and informational messages can be generated u | | * Assert-like error checking can be performed with <tt>XLAL_CHECK</tt>-sty | |
| sing the | | le | |
| * routines <tt>XLALPrintError()</tt>, <tt>XLALPrintWarning()</tt> and | | * macros. Unlike <tt>assert()</tt> statements, <tt>XLAL_CHECK</tt> macros | |
| * <tt>XLALPrintInfo()</tt>. These routines (which work just like <tt>prin | | * do <i>not</i> get removed when the code is not compiled with | |
| tf()</tt>) | | * <tt>NDEBUG</tt> defined. | |
| * print or suppress the message depending on the value of <tt>lalDebugLeve | | | |
| l</tt>. | | | |
| * | | * | |
|
| * On rare occations, you may be prepared for an XLAL routine to fail, and | | * Additional error, warning, and informational messages can be generated u | |
| may want | | sing | |
| * to handle the failure immediately. In these circumstances, the XLAL err | | * the routines <tt>XLALPrintError()</tt>, <tt>XLALPrintWarning()</tt> and | |
| or handler | | * <tt>XLALPrintInfo()</tt>. These routines (which work just like | |
| * needs to be disabled before the routine is called so that the failure ca | | * <tt>printf()</tt>) print or suppress the message depending on the value | |
| n be | | of | |
| * caught. The <tt>XLAL_TRY(statement,errnum)</tt> macro is designed to be | | * <tt>lalDebugLevel</tt>. To print error/warning/info messages with a | |
| used in | | * standard format, use the macros | |
| * these situations. Here is an example: | | * <tt>XLAL_PRINT_ERROR(fmt [, ...])</tt> | |
| | | * <tt>XLAL_PRINT_WARNING(fmt [, ...])</tt> | |
| | | * <tt>XLAL_PRINT_INFO(fmt [, ...])</tt> | |
| | | * | |
| | | * On rare occations, you may be prepared for an XLAL routine to fail, and | |
| | | may | |
| | | * want to handle the failure immediately. In these circumstances, the XLA | |
| | | L | |
| | | * error handler needs to be disabled before the routine is called so that | |
| | | the | |
| | | * failure can be caught. The <tt>XLAL_TRY(statement,errnum)</tt> macro is | |
| | | * designed to be used in these situations. Here is an example: | |
| * \code | | * \code | |
|
| * REAL8 XLALLogFactorial( INT4 n ) | | * REAL8 XLALLogFactorial(INT4 n) | |
| * { | | * { | |
|
| * REAL8 y; | | * REAL8 y; | |
| * int errnum; | | * int errnum; | |
| * XLAL_TRY( y = XLALGammaFunction( n + 1 ), errnum ); | | * XLAL_TRY(y = XLALGammaFunction(n + 1), errnum); | |
| * if ( XLAL_IS_REAL8_FAIL_NAN( y ) ) | | * if (XLAL_IS_REAL8_FAIL_NAN(y)) | |
| * switch ( errnum ) | | * switch (errnum) { | |
| * { | | * case XLAL_ERANGE: | |
| * case XLAL_ERANGE: | | * y = n * (log(n) - 1); | |
| * y = n * ( log(n) - 1 ); | | * y += 0.5 * log(2.0 * LAL_PI * n); | |
| * y += 0.5 * log( 2.0 * LAL_PI * n ); | | * return y; | |
| * return y; | | * default: | |
| * default: | | * XLALSetErrno(errnum); | |
| * XLALSetErrno( errnum ); | | * XLAL_ERROR_REAL8(XLAL_EFUNC); | |
| * XLAL_ERROR_REAL8( "XLALLogFactorial", XLAL_EFUNC ); | | * } | |
| * } | | * return log(y); | |
| * return log( y ); | | | |
| * } | | * } | |
| * \endcode | | * \endcode | |
| * | | * | |
| * \par XLAL Function Return Codes | | * \par XLAL Function Return Codes | |
| * | | * | |
| * XLAL functions that return an integer-type will return <tt>XLAL_FAILURE<
/tt> | | * XLAL functions that return an integer-type will return <tt>XLAL_FAILURE<
/tt> | |
| * on failure. XLAL functions that return a pointer will return <tt>NULL</
tt> | | * on failure. XLAL functions that return a pointer will return <tt>NULL</
tt> | |
| * on failure. | | * on failure. | |
| * | | * | |
| * The LAL specification requires that XLAL functions that return a | | * The LAL specification requires that XLAL functions that return a | |
|
| * floating-point type (either <tt>REAL4</tt> or <tt>REAL8</tt>) should ret | | * floating-point type (either <tt>REAL4</tt> or <tt>REAL8</tt>) should ret | |
| urn a particular | | urn | |
| * value to indicate an error. These values are given by the macros | | * a particular value to indicate an error. These values are given by the | |
| * <tt>XLAL_REAL4_FAIL_NAN</tt> and <tt>XLAL_REAL8_FAIL_NAN</tt> (they are | | * macros <tt>XLAL_REAL4_FAIL_NAN</tt> and <tt>XLAL_REAL8_FAIL_NAN</tt> (th | |
| Not a Number | | ey | |
| * or NaN values). To implement these we choose hexadecimal representation | | * are Not a Number or NaN values). To implement these we choose hexadecim | |
| s | | al | |
| * and then provide static functions that return the equivalent <tt>REAL4</ | | * representations and then provide static functions that return the equiva | |
| tt> or | | lent | |
| * <tt>REAL8</tt> values. The macros then invoke these functions. This is | | * <tt>REAL4</tt> or <tt>REAL8</tt> values. The macros then invoke these | |
| done | | * functions. This is done so that the compiler can easily inline the | |
| * so that the compiler can easily inline the functions (or eliminate them | | * functions (or eliminate them if they are not used). Conversion from the | |
| * if they are not used). Conversion from the hexadecimal representation | | * hexadecimal representation to the floating-point representation is done | |
| * to the floating-point representation is done using a union. | | * using a union. | |
| * | | * | |
| * The LAL specification also requires that there be two macros, | | * The LAL specification also requires that there be two macros, | |
|
| * <tt>XLAL_IS_REAL4_FAIL_NAN(val)</tt> and <tt>XLAL_IS_REAL8_FAIL_NAN(val) | | * <tt>XLAL_IS_REAL4_FAIL_NAN(val)</tt> and | |
| </tt> that will | | * <tt>XLAL_IS_REAL8_FAIL_NAN(val)</tt> that will test if val is one of the | |
| * test if val is one of these XLAL-specific fail NaNs. Again these macros | | se | |
| * invoke static functions that return the result of the comparison. The | | * XLAL-specific fail NaNs. Again these macros invoke static functions tha | |
| * cmparison itself is done with the hexadecimal representation. | | t | |
| | | * return the result of the comparison. The cmparison itself is done with | |
| | | the | |
| | | * hexadecimal representation. | |
| * | | * | |
| * \par XLAL Error Codes | | * \par XLAL Error Codes | |
| * | | * | |
| * The LAL specification requires particular return code and error values. | | * The LAL specification requires particular return code and error values. | |
|
| * These are implemented here as enumeration constants in the <tt>XLALError | | * These are implemented here as enumeration constants in the | |
| Value</tt> | | * <tt>XLALErrorValue</tt> enumeration. | |
| * enumeration. | | | |
| * | | | |
| */ | | */ | |
| | | | |
| #ifndef XLALERROR_H | | #ifndef XLALERROR_H | |
| #define XLALERROR_H | | #define XLALERROR_H | |
| | | | |
|
| | | #include <stdarg.h> | |
| #include <stddef.h> | | #include <stddef.h> | |
| #include <lal/LALAtomicDatatypes.h> | | #include <lal/LALAtomicDatatypes.h> | |
| | | | |
| NRCSID( XLALERRORH, "$Id$" ); | | NRCSID( XLALERRORH, "$Id$" ); | |
| | | | |
|
| #ifdef __cplusplus | | #if defined(__cplusplus) | |
| extern "C" { | | extern "C" { | |
|
| #pragma } | | #elif 0 | |
| | | } /* so that editors will match preceding brace */ | |
| #endif | | #endif | |
| | | | |
| /* | | /* | |
| * | | * | |
| * Use these functions to print arbitrary messages as errors or warnings. | | * Use these functions to print arbitrary messages as errors or warnings. | |
| * | | * | |
| */ | | */ | |
| | | | |
| /** Prints an error message if error printing is enabled by lalDebugLevel.
*/ | | /** Prints an error message if error printing is enabled by lalDebugLevel.
*/ | |
|
| int XLALPrintError( const char *fmt, ... ); | | int XLALPrintError(const char *fmt, ...); | |
| | | | |
| /** Prints a warning message if warning printing is enabled by lalDebugLeve
l. */ | | /** Prints a warning message if warning printing is enabled by lalDebugLeve
l. */ | |
|
| int XLALPrintWarning( const char *fmt, ... ); | | int XLALPrintWarning(const char *fmt, ...); | |
| | | | |
| /** Prints an info message if info printing is enabled by lalDebugLevel. */ | | /** Prints an info message if info printing is enabled by lalDebugLevel. */ | |
|
| int XLALPrintInfo( const char *fmt, ... ); | | int XLALPrintInfo(const char *fmt, ...); | |
| | | | |
| | | #ifndef SWIG /* exclude from SWIG interface */ | |
| | | | |
| | | /** Prints an error message if error printing is enabled by lalDebugLevel. | |
| | | */ | |
| | | int XLALVPrintError(const char *fmt, va_list ap); | |
| | | | |
| | | /** Prints a warning message if warning printing is enabled by lalDebugLeve | |
| | | l. */ | |
| | | int XLALVPrintWarning(const char *fmt, va_list ap); | |
| | | | |
| | | /** Prints an info message if info printing is enabled by lalDebugLevel. */ | |
| | | int XLALVPrintInfo(const char *fmt, va_list ap); | |
| | | | |
| | | #endif /* SWIG */ | |
| | | | |
| | | /* | |
| | | * | |
| | | * Miscelaneous routines to print information with standard formatting. | |
| | | * | |
| | | */ | |
| | | | |
| | | /** Print an error message with standard XLAL formatting (if error messages | |
| | | * are enabled by lalDebugLevel). */ | |
| | | void XLALPrintErrorMessage(const char *func, const char *file, int line, co | |
| | | nst char *fmt, ...); | |
| | | | |
| | | /** Print an warning message with standard XLAL formatting (if warning mess | |
| | | ages | |
| | | * are enabled by lalDebugLevel). */ | |
| | | void XLALPrintWarningMessage(const char *func, const char *file, int line, | |
| | | const char *fmt, ...); | |
| | | | |
| | | /** Print an info message with standard XLAL formatting (if info messages | |
| | | * are enabled by lalDebugLevel). */ | |
| | | void XLALPrintInfoMessage(const char *func, const char *file, int line, con | |
| | | st char *fmt, ...); | |
| | | | |
| | | #ifndef SWIG /* exclude from SWIG interface */ | |
| | | | |
| | | /** Print an error message with standard XLAL formatting (if error messages | |
| | | * are enabled by lalDebugLevel). */ | |
| | | void XLALVPrintErrorMessage(const char *func, const char *file, int line, c | |
| | | onst char *fmt, va_list ap); | |
| | | | |
| | | /** Print an warning message with standard XLAL formatting (if warning mess | |
| | | ages | |
| | | * are enabled by lalDebugLevel). */ | |
| | | void XLALVPrintWarningMessage(const char *func, const char *file, int line, | |
| | | const char *fmt, va_list ap); | |
| | | | |
| | | /** Print an error message with standard XLAL formatting (if error messages | |
| | | * are enabled by lalDebugLevel). */ | |
| | | void XLALVPrintInfoMessage(const char *func, const char *file, int line, co | |
| | | nst char *fmt, va_list ap); | |
| | | | |
| | | #endif /* SWIG */ | |
| | | | |
| /** Prints a progress bar at the "info" verbosity level. */ | | /** Prints a progress bar at the "info" verbosity level. */ | |
|
| int XLALPrintProgressBar( double ); | | int XLALPrintProgressBar(double); | |
| | | | |
| /** Prints a deprecation warning at the "warning" verbosity level. */ | | /** Prints a deprecation warning at the "warning" verbosity level. */ | |
|
| int XLALPrintDeprecationWarning( const char *old, const char *replacement ) | | int XLALPrintDeprecationWarning(const char *old, const char *replacement); | |
| ; | | | |
| | | /* | |
| | | * | |
| | | * Macros that will print error/warning/info messages with a standard forma | |
| | | t. | |
| | | * | |
| | | */ | |
| | | | |
| | | /** \def XLAL_PRINT_ERROR(fmt [, ...]) | |
| | | * \brief Macro that will print an error message with a standard format. | |
| | | * \params fmt A printf-like format string. | |
| | | * \params ... (Optional) Arguments to the format string. | |
| | | */ | |
| | | #define XLAL_PRINT_ERROR(...) \ | |
| | | XLALPrintErrorMessage(__func__, __FILE__, __LINE__, __VA_ARGS__) | |
| | | | |
| | | /** \def XLAL_PRINT_WARNING(fmt [, ...]) | |
| | | * \brief Macro that will print a warning message with a standard format. | |
| | | * \params fmt A printf-like format string. | |
| | | * \params ... (Optional) Arguments to the format string. | |
| | | */ | |
| | | #define XLAL_PRINT_WARNING(...) \ | |
| | | XLALPrintWarningMessage(__func__, __FILE__, __LINE__, __VA_ARGS__) | |
| | | | |
| | | /** \def XLAL_PRINT_INFO(fmt [, ...]) | |
| | | * \brief Macro that will print an info message with a standard format. | |
| | | * \params fmt A printf-like format string. | |
| | | * \params ... (Optional) Arguments to the format string. | |
| | | */ | |
| | | #define XLAL_PRINT_INFO(...) \ | |
| | | XLALPrintInfoMessage(__func__, __FILE__, __LINE__, __VA_ARGS__) | |
| | | | |
| /* silence gcc warnings about certain (possibly) unused symbols */ | | /* silence gcc warnings about certain (possibly) unused symbols */ | |
| #ifdef __GNUC__ | | #ifdef __GNUC__ | |
| #define UNUSED __attribute__ ((unused)) | | #define UNUSED __attribute__ ((unused)) | |
| #else | | #else | |
| #define UNUSED | | #define UNUSED | |
| #endif | | #endif | |
| | | | |
| /* | | /* | |
| * | | * | |
| * The LAL specification requires that XLAL functions that return a | | * The LAL specification requires that XLAL functions that return a | |
|
| * floating-point type (either <tt>REAL4</tt> or <tt>REAL8</tt>) should ret | | * floating-point type (either <tt>REAL4</tt> or <tt>REAL8</tt>) should ret | |
| urn a particular | | urn | |
| * value to indicate an error. These values are given by the macros | | * a particular value to indicate an error. These values are given by the | |
| * <tt>XLAL_REAL4_FAIL_NAN</tt> and <tt>XLAL_REAL8_FAIL_NAN</tt> (they are | | * macros <tt>XLAL_REAL4_FAIL_NAN</tt> and <tt>XLAL_REAL8_FAIL_NAN</tt> (th | |
| Not a Number | | ey | |
| * or NaN values). To implement these we choose hexadecimal representation | | * are Not a Number or NaN values). To implement these we choose hexadecim | |
| s | | al | |
| * and then provide static functions that return the equivalent <tt>REAL4</ | | * representations and then provide static functions that return the equiva | |
| tt> or | | lent | |
| * <tt>REAL8</tt> values. The macros then invoke these functions. This is | | * <tt>REAL4</tt> or <tt>REAL8</tt> values. The macros then invoke these | |
| done | | * functions. This is done so that the compiler can easily inline the | |
| * so that the compiler can easily inline the functions (or eliminate them | | * functions (or eliminate them if they are not used). Conversion from the | |
| * if they are not used). Conversion from the hexadecimal representation | | * hexadecimal representation to the floating-point representation is done | |
| * to the floating-point representation is done using a union. | | * using a union. | |
| * | | * | |
| * The LAL specification also requires that there be two macros, | | * The LAL specification also requires that there be two macros, | |
|
| * <tt>XLAL_IS_REAL4_FAIL_NAN(val)</tt> and <tt>XLAL_IS_REAL8_FAIL_NAN(val) | | * <tt>XLAL_IS_REAL4_FAIL_NAN(val)</tt> and | |
| </tt> that will | | * <tt>XLAL_IS_REAL8_FAIL_NAN(val)</tt> that will | |
| * test if val is one of these XLAL-specific fail NaNs. Again these macros | | * test if val is one of these XLAL-specific fail NaNs. Again these macros | |
| * invoke static functions that return the result of the comparison. The | | * invoke static functions that return the result of the comparison. The | |
|
| * cmparison itself is done with the hexadecimal representation. | | * comparison itself is done with the hexadecimal representation. | |
| * | | * | |
| */ | | */ | |
| | | | |
|
| /* Hexadecimal representation of the <tt>REAL4</tt> and <tt>REAL8</tt> NaN | | /* Hexadecimal representation of the <tt>REAL4</tt> and <tt>REAL8</tt> NaN | |
| failure bit pattern. */ | | * failure bit pattern. */ | |
| #define XLAL_REAL4_FAIL_NAN_INT 0x7fc001a1 /**< Hexadecimal representation
of <tt>REAL4</tt> NaN failure bit pattern */ | | #define XLAL_REAL4_FAIL_NAN_INT 0x7fc001a1 /**< Hexadecimal representation
of <tt>REAL4</tt> NaN failure bit pattern */ | |
| #define XLAL_REAL8_FAIL_NAN_INT LAL_INT8_C(0x7ff80000000001a1) /**< Hexadec
imal representation of <tt>REAL8</tt> NaN failure bit pattern */ | | #define XLAL_REAL8_FAIL_NAN_INT LAL_INT8_C(0x7ff80000000001a1) /**< Hexadec
imal representation of <tt>REAL8</tt> NaN failure bit pattern */ | |
| | | | |
| /* | | /* | |
| * The floating point values themselves are returned by static functions th
at | | * The floating point values themselves are returned by static functions th
at | |
|
| * can be easily inlined by the compiler; similarly, the routines to test | | * can be easily inlined by the compiler; similarly, the routines to test i | |
| * if a value is the LAL failure NaN can also be inlined. | | f a | |
| | | * value is the LAL failure NaN can also be inlined. | |
| */ | | */ | |
| | | | |
| /** Returns the value of the XLAL <tt>REAL4</tt> failure NaN. */ | | /** Returns the value of the XLAL <tt>REAL4</tt> failure NaN. */ | |
|
| static REAL4 UNUSED XLALREAL4FailNaN( void ) | | static REAL4 UNUSED XLALREAL4FailNaN(void) | |
| { | | { | |
|
| volatile const union { INT4 i; REAL4 x; } val = { XLAL_REAL4_FAIL_NAN_INT | | volatile const union { INT4 i; REAL4 x; } val = { XLAL_REAL4_FAIL_NA | |
| } ; | | N_INT } ; | |
| return val.x; | | return val.x; | |
| } | | } | |
| | | | |
| /** Returns the value of the XLAL <tt>REAL8</tt> failure NaN. */ | | /** Returns the value of the XLAL <tt>REAL8</tt> failure NaN. */ | |
|
| static REAL8 UNUSED XLALREAL8FailNaN( void ) | | static REAL8 UNUSED XLALREAL8FailNaN(void) | |
| { | | { | |
|
| volatile const union { INT8 i; REAL8 x; } val = { XLAL_REAL8_FAIL_NAN_INT | | volatile const union { INT8 i; REAL8 x; } val = { XLAL_REAL8_FAIL_NA | |
| } ; | | N_INT } ; | |
| return val.x; | | return val.x; | |
| } | | } | |
| | | | |
| /** Tests if a value is an XLAL <tt>REAL4</tt> failure NaN. */ | | /** Tests if a value is an XLAL <tt>REAL4</tt> failure NaN. */ | |
|
| static int UNUSED XLALIsREAL4FailNaN( REAL4 val ) | | static int UNUSED XLALIsREAL4FailNaN(REAL4 val) | |
| { | | { | |
|
| volatile const union { INT4 i; unsigned char s[4]; } a = { XLAL_REAL4_FAI | | volatile const union { INT4 i; unsigned char s[4]; } a = { XLAL_REAL | |
| L_NAN_INT } ; | | 4_FAIL_NAN_INT } ; | |
| volatile union { REAL4 x; unsigned char s[4]; } b; | | volatile union { REAL4 x; unsigned char s[4]; } b; | |
| size_t n; | | size_t n; | |
| b.x = val; | | b.x = val; | |
| for ( n = 0; n < sizeof( val ); ++n ) | | for (n = 0; n < sizeof(val); ++n) | |
| if ( a.s[n] != b.s[n] ) | | if (a.s[n] != b.s[n]) | |
| return 0; | | return 0; | |
| return 1; | | return 1; | |
| } | | } | |
| | | | |
| /** Tests if a value is an XLAL <tt>REAL8</tt> failure NaN. */ | | /** Tests if a value is an XLAL <tt>REAL8</tt> failure NaN. */ | |
|
| static int UNUSED XLALIsREAL8FailNaN( REAL8 val ) | | static int UNUSED XLALIsREAL8FailNaN(REAL8 val) | |
| { | | { | |
|
| volatile const union { INT8 i; unsigned char s[8]; } a = { XLAL_REAL8_FAI | | volatile const union { INT8 i; unsigned char s[8]; } a = { XLAL_REAL | |
| L_NAN_INT } ; | | 8_FAIL_NAN_INT } ; | |
| volatile union { REAL8 x; unsigned char s[8]; } b; | | volatile union { REAL8 x; unsigned char s[8]; } b; | |
| size_t n; | | size_t n; | |
| b.x = val; | | b.x = val; | |
| for ( n = 0; n < sizeof( val ); ++n ) | | for (n = 0; n < sizeof(val); ++n) | |
| if ( a.s[n] != b.s[n] ) | | if (a.s[n] != b.s[n]) | |
| return 0; | | return 0; | |
| return 1; | | return 1; | |
| } | | } | |
| #undef UNUSED | | #undef UNUSED | |
| | | | |
| /* Here are the macro constants for the fail NaNs. */ | | /* Here are the macro constants for the fail NaNs. */ | |
| #define XLAL_REAL4_FAIL_NAN ( XLALREAL4FailNaN() ) /**< Floating-point valu
e of the XLAL <tt>REAL4</tt> failure NaN. */ | | #define XLAL_REAL4_FAIL_NAN ( XLALREAL4FailNaN() ) /**< Floating-point valu
e of the XLAL <tt>REAL4</tt> failure NaN. */ | |
| #define XLAL_REAL8_FAIL_NAN ( XLALREAL8FailNaN() ) /**< Floating-point valu
e of the XLAL <tt>REAL8</tt> failure NaN. */ | | #define XLAL_REAL8_FAIL_NAN ( XLALREAL8FailNaN() ) /**< Floating-point valu
e of the XLAL <tt>REAL8</tt> failure NaN. */ | |
| | | | |
| /* Here are the macros to test for fail NaNs. */ | | /* Here are the macros to test for fail NaNs. */ | |
| #define XLAL_IS_REAL4_FAIL_NAN(val) XLALIsREAL4FailNaN(val) /**< Tests if <
tt>val</tt> is a XLAL <tt>REAL4</tt> failure NaN. */ | | #define XLAL_IS_REAL4_FAIL_NAN(val) XLALIsREAL4FailNaN(val) /**< Tests if <
tt>val</tt> is a XLAL <tt>REAL4</tt> failure NaN. */ | |
| #define XLAL_IS_REAL8_FAIL_NAN(val) XLALIsREAL8FailNaN(val) /**< Tests if <
tt>val</tt> is a XLAL <tt>REAL8</tt> failure NaN. */ | | #define XLAL_IS_REAL8_FAIL_NAN(val) XLALIsREAL8FailNaN(val) /**< Tests if <
tt>val</tt> is a XLAL <tt>REAL8</tt> failure NaN. */ | |
| | | | |
| /** XLAL error numbers and return values. */ | | /** XLAL error numbers and return values. */ | |
| enum XLALErrorValue { | | enum XLALErrorValue { | |
|
| XLAL_SUCCESS = 0, /**< Success return value (not an error number) */ | | XLAL_SUCCESS = 0, /**< Success return value (not an error number) * | |
| XLAL_FAILURE = -1, /**< Failure return value (not an error number) */ | | / | |
| | | XLAL_FAILURE = -1, /**< Failure return value (not an error number) * | |
| | | / | |
| | | | |
|
| /* these are standard error numbers */ | | /* these are standard error numbers */ | |
| XLAL_EIO = 5, /**< I/O error */ | | XLAL_EIO = 5, /**< I/O error */ | |
| XLAL_ENOMEM = 12, /**< Memory allocation error */ | | XLAL_ENOMEM = 12, /**< Memory allocation error */ | |
| XLAL_EFAULT = 14, /**< Invalid pointer */ | | XLAL_EFAULT = 14, /**< Invalid pointer */ | |
| XLAL_EINVAL = 22, /**< Invalid argument */ | | XLAL_EINVAL = 22, /**< Invalid argument */ | |
| XLAL_EDOM = 33, /**< Input domain error */ | | XLAL_EDOM = 33, /**< Input domain error */ | |
| XLAL_ERANGE = 34, /**< Output range error */ | | XLAL_ERANGE = 34, /**< Output range error */ | |
| | | | |
|
| /* extended error numbers start at 128 ... should be beyond normal errnos | | /* extended error numbers start at 128 ... | |
| */ | | * should be beyond normal errnos */ | |
| | | | |
|
| /* these are common errors for XLAL functions */ | | /* these are common errors for XLAL functions */ | |
| XLAL_EFAILED = 128, /**< Generic failure */ | | XLAL_EFAILED = 128, /**< Generic failure */ | |
| XLAL_EBADLEN = 129, /**< Inconsistent or invalid length */ | | XLAL_EBADLEN = 129, /**< Inconsistent or invalid length */ | |
| XLAL_ESIZE = 130, /**< Wrong size */ | | XLAL_ESIZE = 130, /**< Wrong size */ | |
| XLAL_EDIMS = 131, /**< Wrong dimensions */ | | XLAL_EDIMS = 131, /**< Wrong dimensions */ | |
| XLAL_ETYPE = 132, /**< Wrong or unknown type */ | | XLAL_ETYPE = 132, /**< Wrong or unknown type */ | |
| XLAL_ETIME = 133, /**< Invalid time */ | | XLAL_ETIME = 133, /**< Invalid time */ | |
| XLAL_EFREQ = 134, /**< Invalid freqency */ | | XLAL_EFREQ = 134, /**< Invalid freqency */ | |
| XLAL_EUNIT = 135, /**< Invalid units */ | | XLAL_EUNIT = 135, /**< Invalid units */ | |
| XLAL_ENAME = 136, /**< Wrong name */ | | XLAL_ENAME = 136, /**< Wrong name */ | |
| XLAL_EDATA = 137, /**< Invalid data */ | | XLAL_EDATA = 137, /**< Invalid data */ | |
| | | | |
|
| /* user-defined errors */ | | /* user-defined errors */ | |
| XLAL_EUSR0 = 200, /**< User-defined error 0 */ | | XLAL_EUSR0 = 200, /**< User-defined error 0 */ | |
| XLAL_EUSR1 = 201, /**< User-defined error 1 */ | | XLAL_EUSR1 = 201, /**< User-defined error 1 */ | |
| XLAL_EUSR2 = 202, /**< User-defined error 2 */ | | XLAL_EUSR2 = 202, /**< User-defined error 2 */ | |
| XLAL_EUSR3 = 203, /**< User-defined error 3 */ | | XLAL_EUSR3 = 203, /**< User-defined error 3 */ | |
| XLAL_EUSR4 = 204, /**< User-defined error 4 */ | | XLAL_EUSR4 = 204, /**< User-defined error 4 */ | |
| XLAL_EUSR5 = 205, /**< User-defined error 5 */ | | XLAL_EUSR5 = 205, /**< User-defined error 5 */ | |
| XLAL_EUSR6 = 206, /**< User-defined error 6 */ | | XLAL_EUSR6 = 206, /**< User-defined error 6 */ | |
| XLAL_EUSR7 = 207, /**< User-defined error 7 */ | | XLAL_EUSR7 = 207, /**< User-defined error 7 */ | |
| XLAL_EUSR8 = 208, /**< User-defined error 8 */ | | XLAL_EUSR8 = 208, /**< User-defined error 8 */ | |
| XLAL_EUSR9 = 209, /**< User-defined error 9 */ | | XLAL_EUSR9 = 209, /**< User-defined error 9 */ | |
| | | | |
|
| /* external or internal errors */ | | /* external or internal errors */ | |
| XLAL_ESYS = 254, /**< System error */ | | XLAL_ESYS = 254, /**< System error */ | |
| XLAL_EERR = 255, /**< Internal error */ | | XLAL_EERR = 255, /**< Internal error */ | |
| | | | |
|
| /* specific mathematical and numerical errors start at 256 */ | | /* specific mathematical and numerical errors start at 256 */ | |
| | | | |
|
| /* IEEE floating point errors */ | | /* IEEE floating point errors */ | |
| XLAL_EFPINVAL = 256, /**< IEEE Invalid floating point operation, eg sqrt | | XLAL_EFPINVAL = 256, /**< IEEE Invalid floating point operation, eg | |
| (-1), 0/0 */ | | sqrt(-1), 0/0 */ | |
| XLAL_EFPDIV0 = 257, /**< IEEE Division by zero floating point error */ | | XLAL_EFPDIV0 = 257, /**< IEEE Division by zero floating point erro | |
| XLAL_EFPOVRFLW = 258, /**< IEEE Floating point overflow error */ | | r */ | |
| XLAL_EFPUNDFLW = 259, /**< IEEE Floating point underflow error */ | | XLAL_EFPOVRFLW = 258, /**< IEEE Floating point overflow error */ | |
| XLAL_EFPINEXCT = 260, /**< IEEE Floating point inexact error */ | | XLAL_EFPUNDFLW = 259, /**< IEEE Floating point underflow error */ | |
| | | XLAL_EFPINEXCT = 260, /**< IEEE Floating point inexact error */ | |
| | | | |
|
| /* numerical algorithm errors */ | | /* numerical algorithm errors */ | |
| XLAL_EMAXITER = 261, /**< Exceeded maximum number of iterations */ | | XLAL_EMAXITER = 261, /**< Exceeded maximum number of iterations */ | |
| XLAL_EDIVERGE = 262, /**< Series is diverging */ | | XLAL_EDIVERGE = 262, /**< Series is diverging */ | |
| XLAL_ESING = 263, /**< Apparent singularity detected */ | | XLAL_ESING = 263, /**< Apparent singularity detected */ | |
| XLAL_ETOL = 264, /**< Failed to reach specified tolerance */ | | XLAL_ETOL = 264, /**< Failed to reach specified tolerance */ | |
| XLAL_ELOSS = 265, /**< Loss of accuracy */ | | XLAL_ELOSS = 265, /**< Loss of accuracy */ | |
| | | | |
|
| /* failure from within a function call: "or" error number with this */ | | /* failure from within a function call: "or" error number with this | |
| XLAL_EFUNC = 1024 /**< Internal function call failed bit: "or" this w | | */ | |
| ith existing error number */ | | XLAL_EFUNC = 1024 /**< Internal function call failed bit: "or" t | |
| | | his with existing error number */ | |
| }; | | }; | |
| | | | |
| /* | | /* | |
| * | | * | |
| * These functions provide message associated with an error code and print | | * These functions provide message associated with an error code and print | |
| * an error message associated with the error code. The macro XLAL_PERROR | | * an error message associated with the error code. The macro XLAL_PERROR | |
| * fills in the current file and line information and uses the current | | * fills in the current file and line information and uses the current | |
| * value of xlalErrno as the error number. | | * value of xlalErrno as the error number. | |
| * | | * | |
| */ | | */ | |
| | | | |
| /** Returns the error message associated with an error number. */ | | /** Returns the error message associated with an error number. */ | |
|
| const char * XLALErrorString( int errnum ); | | const char * XLALErrorString(int errnum); | |
| | | | |
| /** Prints an error message for a particular error code in a standard forma
t. */ | | /** Prints an error message for a particular error code in a standard forma
t. */ | |
|
| void XLALPerror( const char *func, const char *file, int line, int errnum )
; | | void XLALPerror(const char *func, const char *file, int line, int errnum); | |
| | | | |
| /** Prints an error message for the current value of <tt>xlalErrno</tt>. */ | | /** Prints an error message for the current value of <tt>xlalErrno</tt>. */ | |
|
| #define XLAL_PERROR( func ) XLALPerror( func, __FILE__, __LINE__, xlalErrno
) | | #define XLAL_PERROR( ) XLALPerror(__func__, __FILE__, __LINE__, xlalErrno) | |
| | | | |
| /* | | /* | |
| * | | * | |
| * Here is the XLAL error handler type and the routines that set it. | | * Here is the XLAL error handler type and the routines that set it. | |
| * Also provide is the default error handler. | | * Also provide is the default error handler. | |
| * | | * | |
| */ | | */ | |
| | | | |
|
| | | #ifndef SWIG /* exclude from SWIG interface */ | |
| | | | |
| /** The XLAL error handler type. */ | | /** The XLAL error handler type. */ | |
|
| typedef void XLALErrorHandlerType( const char *func, const char *file, int
line, int errnum ); | | typedef void XLALErrorHandlerType(const char *func, const char *file, int l
ine, int errnum); | |
| | | | |
| /** The default XLAL error handler. */ | | /** The default XLAL error handler. */ | |
|
| void XLALDefaultErrorHandler( const char *func, const char *file, int line,
int errnum ); | | void XLALDefaultErrorHandler(const char *func, const char *file, int line,
int errnum); | |
| /** A silent XLAL error handler. */ | | /** A silent XLAL error handler. */ | |
|
| void XLALSilentErrorHandler( const char *func, const char *file, int line,
int errnum ); | | void XLALSilentErrorHandler(const char *func, const char *file, int line, i
nt errnum); | |
| | | | |
| /* Other useful XLAL error handlers. */ | | /* Other useful XLAL error handlers. */ | |
| /** The XLAL error handler that raises SIGABRT. */ | | /** The XLAL error handler that raises SIGABRT. */ | |
|
| void XLALAbortErrorHandler( const char *func, const char *file, int line, i
nt errnum ); | | void XLALAbortErrorHandler(const char *func, const char *file, int line, in
t errnum); | |
| /** The XLAL error handler that calls exit. */ | | /** The XLAL error handler that calls exit. */ | |
|
| void XLALExitErrorHandler( const char *func, const char *file, int line, in
t errnum ); | | void XLALExitErrorHandler(const char *func, const char *file, int line, int
errnum); | |
| /** The XLAL error handler that prints a function call backtrace then raise
s SIGABRT. */ | | /** The XLAL error handler that prints a function call backtrace then raise
s SIGABRT. */ | |
|
| void XLALBacktraceErrorHandler( const char *func, const char *file, int lin | | void XLALBacktraceErrorHandler(const char *func, const char *file, int line | |
| e, int errnum ); | | , int errnum); | |
| | | | |
| | | /** Function to return pointer to the XLAL error handler function pointer. | |
| | | */ | |
| | | XLALErrorHandlerType ** XLALGetErrorHandlerPtr( void ); | |
| | | | |
| /** Sets the error handler to a new handler and returns the old handler. */ | | /** Sets the error handler to a new handler and returns the old handler. */ | |
|
| XLALErrorHandlerType * XLALSetErrorHandler( XLALErrorHandlerType *newHandle
r ); | | XLALErrorHandlerType * XLALSetErrorHandler(XLALErrorHandlerType *newHandler
); | |
| | | | |
| /** Sets the error handler to the default handler and returns the old handl
er. */ | | /** Sets the error handler to the default handler and returns the old handl
er. */ | |
|
| XLALErrorHandlerType * XLALSetDefaultErrorHandler( void ); | | XLALErrorHandlerType * XLALSetDefaultErrorHandler(void); | |
| /** Sets the error handler to a silent handler and returns the old handler.
*/ | | /** Sets the error handler to a silent handler and returns the old handler.
*/ | |
|
| XLALErrorHandlerType * XLALSetSilentErrorHandler( void ); | | XLALErrorHandlerType * XLALSetSilentErrorHandler(void); | |
| | | | |
| | | #endif /* SWIG */ | |
| | | | |
| /* | | /* | |
| * | | * | |
| * Here are the routines that set or clear the XLAL error number. | | * Here are the routines that set or clear the XLAL error number. | |
| * | | * | |
| */ | | */ | |
| | | | |
| /** Sets the XLAL error number to errnum, returns the new value. */ | | /** Sets the XLAL error number to errnum, returns the new value. */ | |
|
| int XLALSetErrno( int errnum ); | | int XLALSetErrno(int errnum); | |
| | | | |
| /** Gets the XLAL base error number ignoring the internal-function-failed f
lag. */ | | /** Gets the XLAL base error number ignoring the internal-function-failed f
lag. */ | |
|
| int XLALGetBaseErrno( void ); | | int XLALGetBaseErrno(void); | |
| | | | |
| /** Clears the XLAL error number, returns the old value. */ | | /** Clears the XLAL error number, returns the old value. */ | |
|
| int XLALClearErrno( void ); | | int XLALClearErrno(void); | |
| | | | |
| /* | | /* | |
| * | | * | |
| * The LAL specifiation requires that the XLAL error number be a modifiable | | * The LAL specifiation requires that the XLAL error number be a modifiable | |
| * lvalue. Similarly, the function pointer to the XLAL error handler is | | * lvalue. Similarly, the function pointer to the XLAL error handler is | |
| * a modifiable lvalue. These are implemented as macros that dereference | | * a modifiable lvalue. These are implemented as macros that dereference | |
| * pointers to the current value (in the current thread). The pointer is | | * pointers to the current value (in the current thread). The pointer is | |
| * returned by the functions XLALGetErrnoPtr and XLALGetErrorHandlerPtr. | | * returned by the functions XLALGetErrnoPtr and XLALGetErrorHandlerPtr. | |
| * Here these functions and macros are defined. | | * Here these functions and macros are defined. | |
| * | | * | |
| */ | | */ | |
| | | | |
| /** Function to return pointer to the XLAL error number. */ | | /** Function to return pointer to the XLAL error number. */ | |
|
| int * XLALGetErrnoPtr( void ); | | int * XLALGetErrnoPtr(void); | |
| | | | |
| /** Function to return pointer to the XLAL error handler function pointer. | | | |
| */ | | | |
| XLALErrorHandlerType ** XLALGetErrorHandlerPtr( void ); | | | |
| | | | |
| /* these are the modifiable lvalues for xlalErrno and XLALErrorHandler */ | | /* these are the modifiable lvalues for xlalErrno and XLALErrorHandler */ | |
| #define xlalErrno ( * XLALGetErrnoPtr() ) /**< Modifiable lvalue containing
the XLAL error number */ | | #define xlalErrno ( * XLALGetErrnoPtr() ) /**< Modifiable lvalue containing
the XLAL error number */ | |
| #define XLALErrorHandler ( * XLALGetErrorHandlerPtr() ) /**< Modifiable lva
lue containing the XLAL error handler */ | | #define XLALErrorHandler ( * XLALGetErrorHandlerPtr() ) /**< Modifiable lva
lue containing the XLAL error handler */ | |
| | | | |
| /** | | /** | |
| * | | * | |
| * A macro to (i) disable the XLAL error handling and preserve the | | * A macro to (i) disable the XLAL error handling and preserve the | |
| * current value of xlalErrno (ii) perform a statement that involves an | | * current value of xlalErrno (ii) perform a statement that involves an | |
| * XLAL function call and (iii) restore the XLAL error handler and value of | | * XLAL function call and (iii) restore the XLAL error handler and value of | |
| * xlalErrno while setting variable errnum to the xlalErrno set by the | | * xlalErrno while setting variable errnum to the xlalErrno set by the | |
| * statement. | | * statement. | |
| * | | * | |
| */ | | */ | |
| #define XLAL_TRY( statement, errnum ) \ | | #define XLAL_TRY( statement, errnum ) \ | |
| do { \ | | do { \ | |
|
| XLALErrorHandlerType *xlalSaveErrorHandler; \ | | XLALErrorHandlerType *xlalSaveErrorHandler; \ | |
| int xlalSaveErrno; \ | | int xlalSaveErrno; \ | |
| xlalSaveErrorHandler = XLALSetSilentErrorHandler(); \ | | xlalSaveErrorHandler = XLALSetSilentErrorHandler(); \ | |
| xlalSaveErrno = xlalErrno; \ | | xlalSaveErrno = xlalErrno; \ | |
| XLALClearErrno(); \ | | XLALClearErrno(); \ | |
| statement ; \ | | statement ; \ | |
| errnum = xlalErrno; \ | | errnum = xlalErrno; \ | |
| xlalErrno = xlalSaveErrno; \ | | xlalErrno = xlalSaveErrno; \ | |
| XLALSetErrorHandler( xlalSaveErrorHandler ); \ | | XLALSetErrorHandler(xlalSaveErrorHandler); \ | |
| } while ( 0 ) | | } while (0) | |
| | | | |
| /* | | /* | |
| * | | * | |
| * Here are the routines and macros that are used to report errors when | | * Here are the routines and macros that are used to report errors when | |
| * an XLAL function fails. They (i) set the XLAL error number and (ii) | | * an XLAL function fails. They (i) set the XLAL error number and (ii) | |
| * invoke the XLAL error handler. The macros also (iii) return the | | * invoke the XLAL error handler. The macros also (iii) return the | |
| * appropriate failure codes. The macros should be used to report all | | * appropriate failure codes. The macros should be used to report all | |
| * failures. | | * failures. | |
| * | | * | |
| */ | | */ | |
| | | | |
| /** Routine to set the XLAL error number and invoke the XLAL error handler. | | /** Routine to set the XLAL error number and invoke the XLAL error handler. | |
| * It is used by the error macros. */ | | * It is used by the error macros. */ | |
| void XLALError( | | void XLALError( | |
|
| const char *func, /**< name of function where the error occurs */ | | const char *func, /**< name of function where the error occurs */ | |
| const char *file, /**< source file name (use the __FILE__ macro) */ | | const char *file, /**< source file name (use the __FILE__ macro) */ | |
| int line, /**< source line number (use the __LINE__ macro) */ | | int line, /**< source line number (use the __LINE__ macro) * | |
| int errnum /**< error code */ | | / | |
| ); | | int errnum /**< error code */ | |
| | | ); | |
| | | | |
|
| /** Macro to invoke the <tt>XLALError()</tt> function and return with code | | /** \def XLAL_ERROR_VAL(val, errnum [, fmt [, ...]]) | |
| val (it should not | | * \brief Macro to invoke the <tt>XLALError()</tt> function and return | |
| * really be used itself, but forms the basis for other macros). */ | | * with code val (it should not really be used itself, but forms the basis | |
| #define XLAL_ERROR_VAL( func, errnum, val ) \ | | for | |
| do { \ | | * other macros). | |
| XLALError( func, __FILE__, __LINE__, errnum ); \ | | * | |
| return val; \ | | * \param val The value to return. | |
| } while (0) | | * \param errnum The XLAL error number to set. | |
| | | * \param fmt (Optional) Format string for additional error information. | |
| | | * \param ... (Optional) Additional arguments for printf-like format. | |
| | | */ | |
| | | #define XLAL_ERROR_VAL(val, ...) XLAL_ERROR_VAL_(val, __VA_ARGS__, NULL, NU | |
| | | LL) | |
| | | | |
|
| /** Macro to invoke a failure from a XLAL routine returning an integer. */ | | /* Helper macro for internal use only */ | |
| #define XLAL_ERROR( func, errnum ) \ | | #define XLAL_ERROR_VAL_(val, errnum, fmt, ...) \ | |
| XLAL_ERROR_VAL( func, errnum, XLAL_FAILURE ) | | do { \ | |
| | | if (fmt) XLAL_PRINT_ERROR(fmt, __VA_ARGS__); \ | |
| | | XLALError(__func__, __FILE__, __LINE__, errnum); \ | |
| | | return val; \ | |
| | | } while (0) | |
| | | | |
|
| /** Macro to invoke a failure from a XLAL routine returning a pointer. */ | | /** \def XLAL_ERROR(errnum [, fmt [, ...]]) | |
| #define XLAL_ERROR_NULL( func, errnum ) \ | | * \brief Macro to invoke a failure from a XLAL routine returning an intege | |
| XLAL_ERROR_VAL( func, errnum, NULL ) | | r. | |
| | | * | |
| | | * \param errnum The XLAL error number to set. | |
| | | * \param fmt (Optional) Format string for additional error information. | |
| | | * \param ... (Optional) Additional arguments for printf-like format. | |
| | | */ | |
| | | #define XLAL_ERROR(...) XLAL_ERROR_VAL(XLAL_FAILURE, __VA_ARGS__) | |
| | | | |
|
| /** Macro to invoke a failure from a XLAL routine returning void. */ | | /** \def XLAL_ERROR_NULL(errnum [, fmt [, ...]]) | |
| #define XLAL_ERROR_VOID( func, errnum ) \ | | * \brief Macro to invoke a failure from a XLAL routine returning a pointer | |
| XLAL_ERROR_VAL( func, errnum, /* void */ ) | | . | |
| | | * | |
| | | * \param errnum The XLAL error number to set. | |
| | | * \param fmt (Optional) Format string for additional error information. | |
| | | * \param ... (Optional) Additional arguments for printf-like format. | |
| | | */ | |
| | | #define XLAL_ERROR_NULL(...) XLAL_ERROR_VAL(NULL, __VA_ARGS__) | |
| | | | |
|
| /** Macro to invoke a failure from a XLAL routine returning a <tt>REAL4</tt | | /** \def XLAL_ERROR_VOID(errnum [, fmt [, ...]]) | |
| > */ | | * \brief Macro to invoke a failure from a XLAL routine returning void. | |
| #define XLAL_ERROR_REAL4( func, errnum ) \ | | * | |
| XLAL_ERROR_VAL( func, errnum, XLAL_REAL4_FAIL_NAN ) | | * \param errnum The XLAL error number to set. | |
| | | * \param fmt (Optional) Format string for additional error information. | |
| | | * \param ... (Optional) Additional arguments for printf-like format. | |
| | | */ | |
| | | #define XLAL_ERROR_VOID(...) XLAL_ERROR_VAL(/* void */, __VA_ARGS__) | |
| | | | |
|
| /** Macro to invoke a failure from a XLAL routine returning a <tt>REAL8</tt | | /** \def XLAL_ERROR_REAL4(errnum [, fmt [, ...]]) | |
| > */ | | * \brief Macro to invoke a failure from a XLAL routine returning a | |
| #define XLAL_ERROR_REAL8( func, errnum ) \ | | * <tt>REAL4</tt>. | |
| XLAL_ERROR_VAL( func, errnum, XLAL_REAL8_FAIL_NAN ) | | * | |
| | | * \param errnum The XLAL error number to set. | |
| | | * \param fmt (Optional) Format string for additional error information. | |
| | | * \param ... (Optional) Additional arguments for printf-like format. | |
| | | */ | |
| | | #define XLAL_ERROR_REAL4(...) XLAL_ERROR_VAL(XLAL_REAL4_FAIL_NAN, __VA_ARGS | |
| | | __) | |
| | | | |
|
| #ifdef __cplusplus | | /** \def XLAL_ERROR_REAL8(errnum [, fmt [, ...]]) | |
| #pragma { | | * \brief Macro to invoke a failure from a XLAL routine returning a | |
| | | * <tt>REAL8</tt>. | |
| | | * | |
| | | * \param errnum The XLAL error number to set. | |
| | | * \param fmt (Optional) Format string for additional error information. | |
| | | * \param ... (Optional) Additional arguments for printf-like format. | |
| | | */ | |
| | | #define XLAL_ERROR_REAL8(...) XLAL_ERROR_VAL(XLAL_REAL8_FAIL_NAN, __VA_ARGS | |
| | | __) | |
| | | | |
| | | /** \def XLAL_CHECK_VAL(val, assertion, errnum [, fmt [, ...]]) | |
| | | * \brief Macro to test an assertion; if it is not true, invoke the | |
| | | * <tt>XLALError()</tt> function and return with code val (it should not re | |
| | | ally | |
| | | * be used itself, but forms the basis for other macros). | |
| | | * | |
| | | * \param val The value to return. | |
| | | * \param assertion The assertion to test. | |
| | | * \param errnum The XLAL error number to set if the assertion is false. | |
| | | * \param fmt (Optional) Format string for additional error information. | |
| | | * \param ... (Optional) Additional arguments for printf-like format. | |
| | | */ | |
| | | #define XLAL_CHECK_VAL(val, assertion, ...) \ | |
| | | do { \ | |
| | | if (!(assertion)) { \ | |
| | | XLAL_PRINT_ERROR("Check ("#assertion") failed"); \ | |
| | | XLAL_ERROR_VAL(val, __VA_ARGS__); \ | |
| | | } \ | |
| | | } while (0) | |
| | | | |
| | | /** \def XLAL_CHECK(assertion, errnum [, fmt [, ...]]) | |
| | | * \brief Macro to test an assertion and invoke a failure if it is not true | |
| | | * in a function that returns an integer. | |
| | | * | |
| | | * \param assertion The assertion to test. | |
| | | * \param errnum The XLAL error number to set if the assertion is false. | |
| | | * \param fmt (Optional) Format string for additional error information. | |
| | | * \param ... (Optional) Additional arguments for printf-like format. | |
| | | */ | |
| | | #define XLAL_CHECK(assertion, ...) \ | |
| | | XLAL_CHECK_VAL(XLAL_FAILURE, assertion, __VA_ARGS__) | |
| | | | |
| | | /** \def XLAL_CHECK_NULL(assertion, errnum [, fmt [, ...]]) | |
| | | * \brief Macro to test an assertion and invoke a failure if it is not true | |
| | | * in a function that returns a pointer. | |
| | | * | |
| | | * \param assertion The assertion to test. | |
| | | * \param errnum The XLAL error number to set if the assertion is false. | |
| | | * \param fmt (Optional) Format string for additional error information. | |
| | | * \param ... (Optional) Additional arguments for printf-like format. | |
| | | */ | |
| | | #define XLAL_CHECK_NULL(assertion, ...) \ | |
| | | XLAL_CHECK_VAL(NULL, assertion, __VA_ARGS__) | |
| | | | |
| | | /** \def XLAL_CHECK_VOID(assertion, errnum [, fmt [, ...]]) | |
| | | * \brief Macro to test an assertion and invoke a failure if it is not true | |
| | | * in a function that returns void. | |
| | | * | |
| | | * \param assertion The assertion to test. | |
| | | * \param errnum The XLAL error number to set if the assertion is false. | |
| | | * \param fmt (Optional) Format string for additional error information. | |
| | | * \param ... (Optional) Additional arguments for printf-like format. | |
| | | */ | |
| | | #define XLAL_CHECK_VOID(assertion, ...) \ | |
| | | XLAL_CHECK_VAL(/* void */, assertion, __VA_ARGS__) | |
| | | | |
| | | /** \def XLAL_CHECK_REAL4(assertion, errnum [, fmt [, ...]]) | |
| | | * \brief Macro to test an assertion and invoke a failure if it is not true | |
| | | * in a function that returns a <tt>REAL4</tt>. | |
| | | * | |
| | | * \param assertion The assertion to test. | |
| | | * \param errnum The XLAL error number to set if the assertion is false. | |
| | | * \param fmt (Optional) Format string for additional error information. | |
| | | * \param ... (Optional) Additional arguments for printf-like format. | |
| | | */ | |
| | | #define XLAL_CHECK_REAL4(assertion, ...) \ | |
| | | XLAL_CHECK_VAL(XLAL_REAL4_FAIL_NAN, assertion, __VA_ARGS__) | |
| | | | |
| | | /** \def XLAL_CHECK_REAL8(assertion, errnum [, fmt [, ...]]) | |
| | | * \brief Macro to test an assertion and invoke a failure if it is not true | |
| | | * in a function that returns a <tt>REAL8</tt>. | |
| | | * | |
| | | * \param assertion The assertion to test. | |
| | | * \param errnum The XLAL error number to set if the assertion is false. | |
| | | * \param fmt (Optional) Format string for additional error information. | |
| | | * \param ... (Optional) Additional arguments for printf-like format. | |
| | | */ | |
| | | #define XLAL_CHECK_REAL8(assertion, ...) \ | |
| | | XLAL_CHECK_VAL(XLAL_REAL4_FAIL_NAN, assertion, __VA_ARGS__) | |
| | | | |
| | | #if 0 | |
| | | { /* so that editors will match succeeding brace */ | |
| | | #elif defined(__cplusplus) | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| #endif /* XLALERROR_H */ | | #endif /* XLALERROR_H */ | |
| | | | |
End of changes. 73 change blocks. |
| 247 lines changed or deleted | | 484 lines changed or added | |
|