ConfigFile.h   ConfigFile.h 
skipping to change at line 43 skipping to change at line 43
* \brief Module for general parsing of simple ASCII-based config-files. * \brief Module for general parsing of simple ASCII-based config-files.
\heading{Description} \heading{Description}
This module provides routines for reading formatted This module provides routines for reading formatted
config-files containing definitions of the form <tt>variable = value</tt>. config-files containing definitions of the form <tt>variable = value</tt>.
The general syntax is somewhat similar to the one provided by the The general syntax is somewhat similar to the one provided by the
perl-module <tt>ConfigParser</tt> (cf. perl-module <tt>ConfigParser</tt> (cf.
http://www.python.org/doc/current/lib/module-ConfigParser.html) http://www.python.org/doc/current/lib/module-ConfigParser.html)
Comments are allowed using either '<tt>\#</tt>', '<tt>;</tt>' or <tt>\%</tt >. Comments are allowed using either '<tt>\#</tt>' or <tt>\%</tt>.
You can also use line-continuation using a '<tt>\\</tt>' at the end of the line. You can also use line-continuation using a '<tt>\\</tt>' at the end of the line.
Also note that comment-signs '<tt>\#;\%</tt>' within double-quotes &quot;.. Also note that comment-signs '<tt>\#\%</tt>' within double-quotes &quot;...
.&quot; &quot;
are <em>not</em> treated as comment-characters. The general syntax is best are <em>not</em> treated as comment-characters.
illustrated Semi-colons <tt>;</tt> are ignored, but can be used to separate several ass
ignments on the same line.
The general syntax is best illustrated
using a simple example: using a simple example:
\code \code
# comment line # comment line
var1 = 1.0 ; you can also comment using semi-colons var1 = 1.0; var2 = 3.1; ## several assignments on a line, separated by '; '
somevar = some text.\ somevar = some text.\
You can also use\ You can also use\
line-continuation line-continuation
var3 = 4 # whatever that means var3 = 4 # whatever that means
note = "this is also possible, and # here does nothing" note = "this is also possible, and # here does nothing"
a_switch = true #possible values: 0,1,true,false,yes,no, case insensitive a_switch = true #possible values: 0,1,true,false,yes,no, case insensitive
... ...
\endcode \endcode
Note that TABS generally get replaced by a single space, which can be Note that TABS generally get replaced by a single space, which can be
skipping to change at line 117 skipping to change at line 119
typedef enum { typedef enum {
CONFIGFILE_IGNORE = 0, /**< ignore missing config-variable or unpar sed config-entries */ CONFIGFILE_IGNORE = 0, /**< ignore missing config-variable or unpar sed config-entries */
CONFIGFILE_WARN, /**< issue a warning but don't report an err or. */ CONFIGFILE_WARN, /**< issue a warning but don't report an err or. */
CONFIGFILE_ERROR, /**< issue an error-message and report a LAL -error */ CONFIGFILE_ERROR, /**< issue an error-message and report a LAL -error */
CONFIGFILE_LAST CONFIGFILE_LAST
} ConfigStrictness; } ConfigStrictness;
/** This structure defines a config-variable to be read in using the /** This structure defines a config-variable to be read in using the
* general-purpose reading function LALReadConfigVariable(). */ * general-purpose reading function LALReadConfigVariable(). */
#ifdef SWIG /* SWIG interface directives */ #ifdef SWIG /* SWIG interface directives */
%warnfilter(SWIGWARN_TYPEMAP_CHARLEAK) tagLALConfigVar::secName; SWIGLAL(IMMUTABLE_MEMBERS(tagLALConfigVar, secName, varName, fmt));
%warnfilter(SWIGWARN_TYPEMAP_CHARLEAK) tagLALConfigVar::varName;
%warnfilter(SWIGWARN_TYPEMAP_CHARLEAK) tagLALConfigVar::fmt;
#endif /* SWIG */ #endif /* SWIG */
typedef struct tagLALConfigVar { typedef struct tagLALConfigVar {
const CHAR *secName; /**< Section name within which to find varN ame. May be NULL */ const CHAR *secName; /**< Section name within which to find varN ame. May be NULL */
const CHAR *varName; /**< Variable-name to be read in the config- file */ const CHAR *varName; /**< Variable-name to be read in the config- file */
const CHAR *fmt; /**< Format string for reading (<tt>sscanf() </tt>-style) */ const CHAR *fmt; /**< Format string for reading (<tt>sscanf() </tt>-style) */
ConfigStrictness strictness; /**< what to do if variable not found: ignor e, warn, error */ ConfigStrictness strictness; /**< what to do if variable not found: ignor e, warn, error */
} LALConfigVar; } LALConfigVar;
/** This structure is returned by LALParseDataFile() and holds the contents of an /** This structure is returned by LALParseDataFile() and holds the contents of an
* ASCII data-file in a pre-parsed form, namely stripped from all comments ('\#', ';'), * ASCII data-file in a pre-parsed form, namely stripped from all comments ('\#', '\%'),
* spurious whitespaces, and separated into lines (taking into account line -continuation * spurious whitespaces, and separated into lines (taking into account line -continuation
* by '\\' at the end of lines). * by '\\' at the end of lines).
* This is used as the input structure in the config-variable reading routi nes. * This is used as the input structure in the config-variable reading routi nes.
*/ */
typedef struct tagLALParsedDataFile { typedef struct tagLALParsedDataFile {
TokenList *lines; /**< list of pre-parsed data-file lines */ TokenList *lines; /**< list of pre-parsed data-file lines */
BOOLEAN *wasRead; /**< keep track of successfully read lines for stric tness-checking */ BOOLEAN *wasRead; /**< keep track of successfully read lines for stric tness-checking */
} LALParsedDataFile; } LALParsedDataFile;
/* Function prototypes */ /* Function prototypes */
 End of changes. 5 change blocks. 
10 lines changed or deleted 10 lines changed or added


 Date.h   Date.h 
skipping to change at line 24 skipping to change at line 24
* *
* 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 _DATE_H #ifndef _DATE_H
#define _DATE_H #define _DATE_H
/* the following two preprocessor defines are to include the prototypes for
* gmtime_r() and asctime_r() from /usr/include/time.h
* HOWEVER, they do no good if -ansi is used in gcc: warnings are generated
* that the prototypes have not been seen */
/* HP-UX and Solaris */
#ifndef _REENTRANT
# define _REENTRANT
#endif
#ifndef _POSIX_PTHREAD_SEMANTICS
# define _POSIX_PTHREAD_SEMANTICS
#endif
/* Linux */
#ifndef __USE_POSIX
# define __USE_POSIX
#endif
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <time.h> #include <time.h>
#include <lal/LALConstants.h> #include <lal/LALConstants.h>
#include <lal/LALAtomicDatatypes.h> #include <lal/LALAtomicDatatypes.h>
#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
skipping to change at line 103 skipping to change at line 83
* + utc.tm_yday*86400 + (utc.tm_year-70)*31536000 * + utc.tm_yday*86400 + (utc.tm_year-70)*31536000
* + ((utc.tm_year-69)/4)*86400 - ((utc.tm_year-1)/100)*86400 * + ((utc.tm_year-69)/4)*86400 - ((utc.tm_year-1)/100)*86400
* + ((utc.tm_year+299)/400)*86400; * + ((utc.tm_year+299)/400)*86400;
* \endcode * \endcode
* so if you were to set \c utc.tm_sec=utc.tm_min=utc.tm_hour=0, * so if you were to set \c utc.tm_sec=utc.tm_min=utc.tm_hour=0,
* \c utc.tm_yday=5, and \c utc.tm_year=80, then you get * \c utc.tm_yday=5, and \c utc.tm_year=80, then you get
* \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 #define XLAL_EPOCH_J2000_0_JD 2451545.0 /**< Julian Day of the J200
.0 epoch (2000 JAN 1 12h UTC). */ 0.0 epoch (2000 JAN 1 12h UTC). */
#define XLAL_EPOCH_J2000_0_TAI_UTC 32 /**< Leap seconds (TAI-UTC) #define XLAL_EPOCH_J2000_0_TAI_UTC 32 /**< Leap seconds (TAI-UTC)
on the J2000.0 epoch (2000 JAN 1 12h UTC). */ on the J2000.0 epoch (2000 JAN 1 12h UTC). */
#define XLAL_EPOCH_J2000_0_GPS 630763213 /**< GPS seconds of the J200 #define XLAL_EPOCH_J2000_0_GPS 630763213 /**< GPS seconds of the J20
0.0 epoch (2000 JAN 1 12h UTC). */ 00.0 epoch (2000 JAN 1 12h UTC). */
#define XLAL_EPOCH_GPS_JD 2444244.5 /**< Julian Day of the GPS e #define XLAL_EPOCH_GPS_JD 2444244.5 /**< Julian Day of the GPS
poch (1980 JAN 6 0h UTC) */ epoch (1980 JAN 6 0h UTC) */
#define XLAL_EPOCH_GPS_TAI_UTC 19 /**< Leap seconds (TAI-UTC) #define XLAL_EPOCH_GPS_TAI_UTC 19 /**< Leap seconds (TAI-UTC)
on the GPS epoch (1980 JAN 6 0h UTC) */ on the GPS epoch (1980 JAN 6 0h UTC) */
#define XLAL_MJD_REF 2400000.5 /**< Reference Julia #define XLAL_MJD_REF 2400000.5 /**< Reference Julian Day f
n Day for Mean Julian Day. */ or Mean Julian Day. */
#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. */
/** This structure stores pointers to a ::LALDetector and a /** This structure stores pointers to a ::LALDetector and a
* ::LIGOTimeGPS. Its sole purpose is to aggregate these * ::LIGOTimeGPS. Its sole purpose is to aggregate these
* structures for passing to functions. * structures for passing to functions.
*/ */
typedef struct typedef struct
tagLALPlaceAndGPS tagLALPlaceAndGPS
{ {
LALDetector *p_detector; /**< pointer to a detector */ LALDetector *p_detector; /**< pointer to a detector */
LIGOTimeGPS *p_gps; /**< Pointer to a GPS time structure */ LIGOTimeGPS *p_gps; /**< Pointer to a GPS time structure */
} }
LALPlaceAndGPS; LALPlaceAndGPS;
/*@}*/ /*@}*/
/* ---------- Function prototypes : see respective source.c files for doxyg en documentation ---------- */ /* ---------- Function prototypes : see respective source.c files for doxyg en documentation ---------- */
#ifndef SWIG // exclude from SWIG interface
/* 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, INT8 gpsnan ); LIGOTimeGPS * XLALGPSSet( LIGOTimeGPS *epoch, INT4 gpssec, INT8 gpsnan );
/* Sets GPS time given GPS seconds as a REAL8. */ /* Sets GPS time given GPS seconds as a REAL8. */
skipping to change at line 167 skipping to change at line 149
/* Compares two GPS times. */ /* Compares two GPS times. */
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 );
/* Parse an ASCII string into a LIGOTimeGPS structure */
int XLALStrToGPS(LIGOTimeGPS *t, const char *nptr, char **endptr);
/* Return a string containing the ASCII base 10 representation of a LIGOTim
eGPS. */
char *XLALGPSToStr(char *, const LIGOTimeGPS *t);
#endif // !SWIG
#ifdef SWIG // SWIG interface directives
SWIGLAL(NEW_EMPTY_ARGUMENT(LIGOTimeGPS*, gpstime));
#endif
/* This function returns the current GPS time according to the system clock
*/
LIGOTimeGPS* XLALGPSTimeNow( LIGOTimeGPS *gpstime );
#ifdef SWIG // SWIG interface directives
SWIGLAL_CLEAR(NEW_EMPTY_ARGUMENT(LIGOTimeGPS*, gpstime));
#endif
/* 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 ); int XLALLeapSeconds( INT4 gpssec );
/* 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 ); int XLALGPSLeapSeconds( INT4 gpssec );
/* 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 ); int XLALLeapSecondsUTC( const struct tm *utc );
/* Returns the GPS seconds since the GPS epoch for a specified UTC time str ucture. */ /* Returns the GPS seconds since the GPS epoch for a specified UTC time str ucture. */
INT4 XLALUTCToGPS( const struct tm *utc ); INT4 XLALUTCToGPS( const struct tm *utc );
#ifdef SWIG // SWIG interface directives #ifdef SWIG // SWIG interface directives
SWIGLAL(EMPTY_ARGUMENT(struct tm*, utc)); SWIGLAL(EMPTY_ARGUMENT(struct tm*, utc));
SWIGLAL(RETURN_VALUE(struct tm*, XLALGPSToUTC));
#endif #endif
/* 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, INT4 gpssec );
struct tm *utc,
INT4 gpssec
);
#ifdef SWIG // SWIG interface directives #ifdef SWIG // SWIG interface directives
SWIGLAL_CLEAR(EMPTY_ARGUMENT(struct tm*, utc)); SWIGLAL_CLEAR(EMPTY_ARGUMENT(struct tm*, utc));
#endif #endif
/* 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); REAL8 XLALJulianDay( const struct tm *utc );
/* Returns the Modified Julian Day (MJD) corresponding to the date given in a broken down time structure.*/ /* Returns the Modified Julian Day (MJD) corresponding to the date given in a broken down time structure.*/
INT4 XLALModifiedJulianDay( const struct tm *utc ); INT4 XLALModifiedJulianDay( const struct tm *utc );
/* Fill in missing fields of a C 'tm' broken-down time struct. */ /* Fill in missing fields of a C 'tm' broken-down time struct. */
int XLALFillBrokenDownTime(struct tm *tm); int XLALFillBrokenDownTime( struct tm *tm );
/* 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 time. */ /* Returns the Greenwich Mean Sidereal Time in RADIANS for a specified GPS time. */
REAL8 XLALGreenwichMeanSiderealTime( REAL8 XLALGreenwichMeanSiderealTime(
const LIGOTimeGPS *gpstime const LIGOTimeGPS *gpstime
); );
/* Returns the GPS time for the given Greenwich mean sidereal time (in radi ans). */ /* Returns the GPS time for the given Greenwich mean sidereal time (in radi ans). */
LIGOTimeGPS *XLALGreenwichMeanSiderealTimeToGPS( LIGOTimeGPS *XLALGreenwichMeanSiderealTimeToGPS(
REAL8 gmst, REAL8 gmst,
LIGOTimeGPS *gps LIGOTimeGPS *gps
); );
/* Returns the GPS time for the given Greenwich sidereal time (in radians). */ /* Returns the GPS time for the given Greenwich sidereal time (in radians). */
LIGOTimeGPS *XLALGreenwichSiderealTimeToGPS( LIGOTimeGPS *XLALGreenwichSiderealTimeToGPS(
REAL8 gmst, REAL8 gmst,
REAL8 equation_of_equinoxes, REAL8 equation_of_equinoxes,
LIGOTimeGPS *gps LIGOTimeGPS *gps
); );
int XLALStrToGPS(LIGOTimeGPS *t, const char *nptr, char **endptr);
char *XLALGPSToStr(char *, const LIGOTimeGPS *t);
#ifdef SWIG // SWIG interface directives
SWIGLAL(NEW_EMPTY_ARGUMENT(LIGOTimeGPS*, gpstime));
SWIGLAL(RETURN_VALUE(LIGOTimeGPS*, XLALGPSTimeNow));
#endif
/* This function returns the current GPS time according to the system clock
*/
LIGOTimeGPS *
XLALGPSTimeNow (
LIGOTimeGPS *gpstime
);
#ifdef SWIG // SWIG interface directives
SWIGLAL_CLEAR(NEW_EMPTY_ARGUMENT(LIGOTimeGPS*, gpstime));
#endif
int
XLALINT8NanoSecIsPlayground (
INT8 ns
);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* _DATE_H */ #endif /* _DATE_H */
 End of changes. 15 change blocks. 
72 lines changed or deleted 47 lines changed or added


 FileIO.h   FileIO.h 
/* /*
* Copyright (C) 2007 Jolien Creighton * Copyright (C) 2007 Jolien Creighton
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* 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
*/ */
#ifndef _FILEIO_H #ifndef _FILEIO_H
#define _FILEIO_H #define _FILEIO_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#include <stdio.h> #include <stdio.h>
#include <stdarg.h> #include <stdarg.h>
skipping to change at line 49 skipping to change at line 49
\heading{Synopsis} \heading{Synopsis}
\code \code
#include <lal/LALStdio.h> #include <lal/LALStdio.h>
#include <lal/FileIO.h> #include <lal/FileIO.h>
\endcode \endcode
Only use \ref FileIO.h in test code that links to the \c lalsupport libr ary. Only use \ref FileIO.h in test code that links to the \c lalsupport libr ary.
*/ */
/*@{*/ /*@{*/
FILE * FILE *LALOpenDataFile( const char* );
LALOpenDataFile( const char * );
typedef struct tagLALFILE LALFILE;
typedef struct tagLALFILE {
int compression;
void *fp;
} LALFILE;
LALFILE *lalstdin(void); LALFILE *lalstdin(void);
LALFILE *lalstdout(void); LALFILE *lalstdout(void);
LALFILE *lalstderr(void); LALFILE *lalstderr(void);
#define LALSTDIN (lalstdin()) #define LALSTDIN (lalstdin())
#define LALSTDOUT (lalstdout()) #define LALSTDOUT (lalstdout())
#define LALSTDERR (lalstderr()) #define LALSTDERR (lalstderr())
int XLALFileIsCompressed( const char *path ); int XLALFileIsCompressed( const char *path );
LALFILE * XLALFileOpenRead( const char *path ); LALFILE *XLALFileOpenRead( const char *path );
LALFILE * XLALFileOpenWrite( const char *path, int compression ); LALFILE *XLALFileOpenWrite( const char *path, int compression );
LALFILE * XLALFileOpenAppend( const char *path, int compression ); LALFILE *XLALFileOpenAppend( const char *path, int compression );
LALFILE * XLALFileOpen( const char *path, const char *mode ); LALFILE *XLALFileOpen( const char *path, const char *mode );
int XLALFileClose( LALFILE * file ); int XLALFileClose( LALFILE *file );
size_t XLALFileRead( void *ptr, size_t size, size_t nobj, LALFILE *file ); size_t XLALFileRead( void *ptr, size_t size, size_t nobj, LALFILE *file );
size_t XLALFileWrite( const void *ptr, size_t size, size_t nobj, LALFILE *f ile ); size_t XLALFileWrite( const void *ptr, size_t size, size_t nobj, LALFILE *f ile );
int XLALFileGetc( LALFILE *file ); int XLALFileGetc( LALFILE *file );
int XLALFilePutc( int c, LALFILE *file ); int XLALFilePutc( int c, LALFILE *file );
char * XLALFileGets( char * s, int size, LALFILE *file ); char *XLALFileGets( char *s, int size, LALFILE *file );
int XLALFilePuts( const char * s, LALFILE *file ); int XLALFilePuts( const char *s, LALFILE *file );
#ifndef SWIG /* exclude from SWIG interface */ #ifndef SWIG /* exclude from SWIG interface */
int XLALFileVPrintf( LALFILE *file, const char *fmt, va_list ap ); int XLALFileVPrintf( LALFILE *file, const char *fmt, va_list ap );
#endif /* SWIG */ #endif /* SWIG */
int XLALFilePrintf( LALFILE *file, const char *fmt, ... ); int XLALFilePrintf( LALFILE *file, const char *fmt, ... );
int XLALFileFlush( LALFILE *file ); int XLALFileFlush( LALFILE *file );
int XLALFileSeek( LALFILE *file, long offset, int whence ); int XLALFileSeek( LALFILE *file, long offset, int whence );
long XLALFileTell( LALFILE *file ); long XLALFileTell( LALFILE *file );
void XLALFileRewind( LALFILE *file ); void XLALFileRewind( LALFILE *file );
int XLALFileEOF( LALFILE *file ); int XLALFileEOF( LALFILE *file );
int XLALGzipTextFile( const char *path );
int XLALGunzipTextFile( const char *filename );
/*@}*/ /*@}*/
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* _FILEIO_H */ #endif /* _FILEIO_H */
 End of changes. 6 change blocks. 
30 lines changed or deleted 30 lines changed or added


 FlatLatticeTiling.h   FlatLatticeTiling.h 
skipping to change at line 93 skipping to change at line 93
FlatLatticeTiling* tiling ///< [in] Tiling state FlatLatticeTiling* tiling ///< [in] Tiling state
); );
/// ///
/// Return the number of dimensions being tiled /// Return the number of dimensions being tiled
/// ///
size_t XLALGetFlatLatticeDimensions( size_t XLALGetFlatLatticeDimensions(
FlatLatticeTiling* tiling ///< [in] Tiling state FlatLatticeTiling* tiling ///< [in] Tiling state
); );
#ifdef SWIG // SWIG interface directives
SWIGLAL(GET_OBJECT(XLALGetFlatLatticePoint));
#endif
/// ///
/// Return the current lattice tiling parameter space point /// Return the current lattice tiling parameter space point
/// ///
const gsl_vector* XLALGetFlatLatticePoint( const gsl_vector* XLALGetFlatLatticePoint(
FlatLatticeTiling* tiling ///< [in] Tiling state FlatLatticeTiling* tiling ///< [in] Tiling state
); );
/// ///
/// Return the current number of flat lattice tiling parameter space points /// Return the current number of flat lattice tiling parameter space points
/// ///
unsigned long XLALGetFlatLatticePointCount( unsigned long XLALGetFlatLatticePointCount(
FlatLatticeTiling* tiling ///< [in] Tiling state FlatLatticeTiling* tiling ///< [in] Tiling state
); );
/// ///
/// Return the increment vectors which are used to generate the lattice.
///
gsl_matrix* XLALGetFlatLatticeIncrements(
FlatLatticeTiling* tiling ///< [in] Tiling state
);
///
/// Set a parameter space bound on the flat lattice tiling /// Set a parameter space bound on the flat lattice tiling
/// ///
int XLALSetFlatLatticeBound( int XLALSetFlatLatticeBound(
FlatLatticeTiling* tiling, ///< [in] Tiling state FlatLatticeTiling* tiling, ///< [in] Tiling state
const size_t dimension, ///< [in] Dimension on which bound a pplies const size_t dimension, ///< [in] Dimension on which bound a pplies
const bool singular, ///< [in] Is bound composed of singl e points? const bool singular, ///< [in] Is bound composed of singl e points?
const FlatLatticeBound func, ///< [in] Parameter space bound func tion const FlatLatticeBound func, ///< [in] Parameter space bound func tion
void* data ///< [in] Arbitrary data describing parameter space void* data ///< [in] Arbitrary data describing parameter space
); );
skipping to change at line 135 skipping to change at line 145
/// ///
/// Set the flat lattice tiling metric and maximum mismatch /// Set the flat lattice tiling metric and maximum mismatch
/// ///
int XLALSetFlatLatticeMetric( int XLALSetFlatLatticeMetric(
FlatLatticeTiling* tiling, ///< [in] Tiling state FlatLatticeTiling* tiling, ///< [in] Tiling state
const gsl_matrix* metric, ///< [in] Parameter space metric const gsl_matrix* metric, ///< [in] Parameter space metric
const double max_mismatch ///< [in] Maximum prescribed mismatc h const double max_mismatch ///< [in] Maximum prescribed mismatc h
); );
#ifdef SWIG // SWIG interface directives
SWIGLAL(NO_NEW_OBJECT(XLALNextFlatLatticePoint));
#endif
/// ///
/// Move to the next point in the flat lattice tiling parameter space. /// Move to the next point in the flat lattice tiling parameter space.
/// Returns the index of the lowest dimension where the point has changed, /// Returns the index of the lowest dimension where the point has changed,
/// or a negative number when the template bank is exhausted. /// or a negative number when the template bank is exhausted.
/// ///
int XLALNextFlatLatticePoint( int XLALNextFlatLatticePoint(
FlatLatticeTiling* tiling ///< [in] Tiling state FlatLatticeTiling* tiling ///< [in] Tiling state
); );
/// ///
 End of changes. 3 change blocks. 
3 lines changed or deleted 10 lines changed or added


 Grid.h   Grid.h 
skipping to change at line 27 skipping to change at line 27
* MA 02111-1307 USA * MA 02111-1307 USA
*/ */
#ifndef _GRID_H #ifndef _GRID_H
#define _GRID_H #define _GRID_H
#include <lal/LALStdlib.h> #include <lal/LALStdlib.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#elif 0
} /* so that editors will match preceding brace */
#endif #endif
/** /**
\addtogroup Grid_h \addtogroup Grid_h
\author Creighton, T. D. \author Creighton, T. D.
\brief Provides a structured datatype for a multidimensional rectilinear grid. \brief Provides a structured datatype for a multidimensional rectilinear grid.
\heading{Synopsis} \heading{Synopsis}
\code \code
skipping to change at line 140 skipping to change at line 142
<tr><td>I2</td><td> INT2</td><td> U2</td><td> UINT2</td></tr> <tr><td>I2</td><td> INT2</td><td> U2</td><td> UINT2</td></tr>
<tr><td>I4</td><td> INT4</td><td> U4</td><td> UINT4</td></tr> <tr><td>I4</td><td> INT4</td><td> U4</td><td> UINT4</td></tr>
<tr><td>I8</td><td> INT8</td><td> U8</td><td> UINT8</td></tr> <tr><td>I8</td><td> INT8</td><td> U8</td><td> UINT8</td></tr>
<tr><td> S</td><td> REAL4</td><td> C</td><td> COMPLEX8</td></tr> <tr><td> S</td><td> REAL4</td><td> C</td><td> COMPLEX8</td></tr>
<tr><td> D</td><td> REAL8</td><td> Z</td><td> COMPLEX16</td></tr> <tr><td> D</td><td> REAL8</td><td> Z</td><td> COMPLEX16</td></tr>
</table> </table>
*/ */
/*@{*/ /*@{*/
/** \name Error Codes */ /*@{*/ /** \name Error Codes *//*@{ */
#define GRIDH_ENUL 1 /**< Unexpected null pointer in arguments */ #define GRIDH_ENUL 1 /**< Unexpected null pointer in arguments */
#define GRIDH_EOUT 2 /**< Output handle points to a non-null pointer */ #define GRIDH_EOUT 2 /**< Output handle points to a non-null pointer */
#define GRIDH_EMEM 3 /**< Memory allocation error */ #define GRIDH_EMEM 3 /**< Memory allocation error */
/*@}*/ /*@}*/
/*@}*/ /*@}*/
/** \cond DONT_DOXYGEN */ /** \cond DONT_DOXYGEN */
#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"
/** \endcond */ /** \endcond */
typedef struct tagINT2Grid { typedef struct tagINT2Grid {
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 {
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 {
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 {
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 {
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 {
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 {
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 {
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 {
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 {
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;
/* Function prototypes. */ /* Function prototypes. */
void void
LALI2CreateGrid( LALStatus *status, INT2Grid **grid, UINT4Vector *dimLength LALI2CreateGrid(LALStatus * status, INT2Grid ** grid,
, UINT4 dimension ); UINT4Vector * dimLength, UINT4 dimension);
void void
LALI4CreateGrid( LALStatus *status, INT4Grid **grid, UINT4Vector *dimLength LALI4CreateGrid(LALStatus * status, INT4Grid ** grid,
, UINT4 dimension ); UINT4Vector * dimLength, UINT4 dimension);
void void
LALI8CreateGrid( LALStatus *status, INT8Grid **grid, UINT4Vector *dimLength LALI8CreateGrid(LALStatus * status, INT8Grid ** grid,
, UINT4 dimension ); UINT4Vector * dimLength, UINT4 dimension);
void void
LALU2CreateGrid( LALStatus *status, UINT2Grid **grid, UINT4Vector *dimLengt LALU2CreateGrid(LALStatus * status, UINT2Grid ** grid,
h, UINT4 dimension ); UINT4Vector * dimLength, UINT4 dimension);
void void
LALU4CreateGrid( LALStatus *status, UINT4Grid **grid, UINT4Vector *dimLengt LALU4CreateGrid(LALStatus * status, UINT4Grid ** grid,
h, UINT4 dimension ); UINT4Vector * dimLength, UINT4 dimension);
void void
LALU8CreateGrid( LALStatus *status, UINT8Grid **grid, UINT4Vector *dimLengt LALU8CreateGrid(LALStatus * status, UINT8Grid ** grid,
h, UINT4 dimension ); UINT4Vector * dimLength, UINT4 dimension);
void void
LALSCreateGrid( LALStatus *status, REAL4Grid **grid, UINT4Vector *dimLength LALSCreateGrid(LALStatus * status, REAL4Grid ** grid,
, UINT4 dimension ); UINT4Vector * dimLength, UINT4 dimension);
void void
LALDCreateGrid( LALStatus *status, REAL8Grid **grid, UINT4Vector *dimLength LALDCreateGrid(LALStatus * status, REAL8Grid ** grid,
, UINT4 dimension ); UINT4Vector * dimLength, UINT4 dimension);
void void
LALCCreateGrid( LALStatus *status, COMPLEX8Grid **grid, UINT4Vector *dimLen LALCCreateGrid(LALStatus * status, COMPLEX8Grid ** grid,
gth, UINT4 dimension ); UINT4Vector * dimLength, UINT4 dimension);
void void
LALZCreateGrid( LALStatus *status, COMPLEX16Grid **grid, UINT4Vector *dimLe LALZCreateGrid(LALStatus * status, COMPLEX16Grid ** grid,
ngth, UINT4 dimension ); UINT4Vector * dimLength, UINT4 dimension);
void void LALI2DestroyGrid(LALStatus * status, INT2Grid ** grid);
LALI2DestroyGrid( LALStatus *status, INT2Grid **grid );
void void LALI4DestroyGrid(LALStatus * status, INT4Grid ** grid);
LALI4DestroyGrid( LALStatus *status, INT4Grid **grid );
void void LALI8DestroyGrid(LALStatus * status, INT8Grid ** grid);
LALI8DestroyGrid( LALStatus *status, INT8Grid **grid );
void void LALU2DestroyGrid(LALStatus * status, UINT2Grid ** grid);
LALU2DestroyGrid( LALStatus *status, UINT2Grid **grid );
void void LALU4DestroyGrid(LALStatus * status, UINT4Grid ** grid);
LALU4DestroyGrid( LALStatus *status, UINT4Grid **grid );
void void LALU8DestroyGrid(LALStatus * status, UINT8Grid ** grid);
LALU8DestroyGrid( LALStatus *status, UINT8Grid **grid );
void void LALSDestroyGrid(LALStatus * status, REAL4Grid ** grid);
LALSDestroyGrid( LALStatus *status, REAL4Grid **grid );
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 );
#ifdef __cplusplus #if 0
{ /* so that editors will match succeeding brace */
#elif defined(__cplusplus)
} }
#endif #endif
#endif /* _GRID_H */ #endif /* _GRID_H */
 End of changes. 33 change blocks. 
105 lines changed or deleted 99 lines changed or added


 IIRFilter.h   IIRFilter.h 
skipping to change at line 143 skipping to change at line 143
#define IIRFILTERH_MSGEOUT "Output handle points to a non-null pointer" #define IIRFILTERH_MSGEOUT "Output handle points to a non-null pointer"
#define IIRFILTERH_MSGEMEM "Memory allocation error" #define IIRFILTERH_MSGEMEM "Memory allocation error"
#define IIRFILTERH_MSGEPAIR "Input has unpaired nonreal poles or zeros" #define IIRFILTERH_MSGEPAIR "Input has unpaired nonreal poles or zeros"
/** \endcond */ /** \endcond */
/** This structure stores the direct and recursive REAL4 filter coefficient s, as /** This structure stores the direct and recursive REAL4 filter coefficient s, as
* well as the history of the auxiliary sequence \f$w\f$. * well as the history of the auxiliary sequence \f$w\f$.
* The length of the history vector gives the order of the filter * The length of the history vector gives the order of the filter
*/ */
#ifdef SWIG /* SWIG interface directives */ #ifdef SWIG /* SWIG interface directives */
%warnfilter(SWIGWARN_TYPEMAP_CHARLEAK) tagREAL4IIRFilter::name; SWIGLAL(IMMUTABLE_MEMBERS(tagREAL4IIRFilter, name));
#endif /* SWIG */ #endif /* SWIG */
typedef struct tagREAL4IIRFilter{ typedef struct tagREAL4IIRFilter{
const CHAR *name; /**< User assigned name. */ const CHAR *name; /**< User assigned name. */
REAL8 deltaT; /**< Sampling time interval of the filter; If \f $\leq0\f$, it will be ignored (ie it will be taken from the data stream) */ REAL8 deltaT; /**< Sampling time interval of the filter; If \f $\leq0\f$, it will be ignored (ie it will be taken from the data stream) */
REAL4Vector *directCoef; /**< The direct filter coefficients. */ REAL4Vector *directCoef; /**< The direct filter coefficients. */
REAL4Vector *recursCoef; /**< The recursive filter coefficients. */ REAL4Vector *recursCoef; /**< The recursive filter coefficients. */
REAL4Vector *history; /**< The previous values of w. */ REAL4Vector *history; /**< The previous values of w. */
} REAL4IIRFilter; } REAL4IIRFilter;
/** This structure stores the direct and recursive REAL8 filter coefficient s, as /** This structure stores the direct and recursive REAL8 filter coefficient s, as
* well as the history of the auxiliary sequence \f$w\f$. * well as the history of the auxiliary sequence \f$w\f$.
* The length of the history vector gives the order of the filter * The length of the history vector gives the order of the filter
*/ */
#ifdef SWIG /* SWIG interface directives */ #ifdef SWIG /* SWIG interface directives */
%warnfilter(SWIGWARN_TYPEMAP_CHARLEAK) tagREAL8IIRFilter::name; SWIGLAL(IMMUTABLE_MEMBERS(tagREAL8IIRFilter, name));
#endif /* SWIG */ #endif /* SWIG */
typedef struct tagREAL8IIRFilter{ typedef struct tagREAL8IIRFilter{
const CHAR *name; /**< User assigned name. */ const CHAR *name; /**< User assigned name. */
REAL8 deltaT; /**< Sampling time interval of the filter; If \f $\leq0\f$, it will be ignored (ie it will be taken from the data stream). * / REAL8 deltaT; /**< Sampling time interval of the filter; If \f $\leq0\f$, it will be ignored (ie it will be taken from the data stream). * /
REAL8Vector *directCoef; /**< The direct filter coefficients. */ REAL8Vector *directCoef; /**< The direct filter coefficients. */
REAL8Vector *recursCoef; /**< The recursive filter coefficients. */ REAL8Vector *recursCoef; /**< The recursive filter coefficients. */
REAL8Vector *history; /**< The previous values of w. */ REAL8Vector *history; /**< The previous values of w. */
} REAL8IIRFilter; } REAL8IIRFilter;
/*@}*/ /*@}*/
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 LALAtomicDatatypes.h   LALAtomicDatatypes.h 
skipping to change at line 112 skipping to change at line 112
/* Complex types */ /* Complex types */
#if defined(__cplusplus) #if defined(__cplusplus)
typedef std::complex<float> COMPLEX8; typedef std::complex<float> COMPLEX8;
typedef std::complex<double> COMPLEX16; typedef std::complex<double> COMPLEX16;
#else #else
typedef float complex COMPLEX8; /**< Single-precision floating-point co mplex number (8 bytes total) */ typedef float complex COMPLEX8; /**< Single-precision floating-point co mplex number (8 bytes total) */
typedef double complex COMPLEX16; /**< Double-precision floating-point co mplex number (16 bytes total) */ typedef double complex COMPLEX16; /**< Double-precision floating-point co mplex number (16 bytes total) */
#endif #endif
/* Complex type constructors */ /* Complex type constructors */
#if defined(__cplusplus) #if !defined(__cplusplus)
#define CX8rect( re, im) COMPLEX8( re, im ) #define crectf(re, im) (((REAL4)(re)) + _Complex_I*((REAL4)(im))) /**<
#define CX16rect(re, im) COMPLEX16( re, im ) Construct a COMPLEX8 from real and imaginary parts */
#define CX8polar( r, th) ( (r) * std::exp( CX8rect( 0, th ) ) ) #define crect(re, im) (((REAL8)(re)) + _Complex_I*((REAL8)(im))) /**<
#define CX16polar(r, th) ( (r) * std::exp( CX16rect( 0, th ) ) ) Construct a COMPLEX16 from real and imaginary parts */
#else #define cpolarf(r, th) (((REAL4)(r)) * cexpf(crectf(0, th))) /**<
#define CX8rect( re, im) ( (re) + _Complex_I * (im) ) /**< Constr Construct a COMPLEX8 from polar modulus and argument */
uct a COMPLEX8 from real and imaginary parts */ #define cpolar(r, th) (((REAL8)(r)) * cexp(crect(0, th))) /**<
#define CX16rect(re, im) ( (re) + _Complex_I * (im) ) /**< Constr Construct a COMPLEX16 from polar modulus and argument */
uct a COMPLEX16 from real and imaginary parts */
#define CX8polar( r, th) ( (r) * cexpf( CX8rect( 0, th ) ) ) /**< Constr
uct a COMPLEX8 from polar modulus and argument */
#define CX16polar(r, th) ( (r) * cexp( CX16rect( 0, th ) ) ) /**< Constr
uct a COMPLEX16 from polar modulus and argument */
#endif
/* Real and imaginary part accessors */
#if defined(__cplusplus)
#define CX8re( z) std::real(z)
#define CX16re(z) std::real(z)
#define CX8im( z) std::imag(z)
#define CX16im(z) std::imag(z)
#else
#define CX8re( z) crealf(z) /**< Get the real part of a COMPLEX8 */
#define CX16re(z) creal( z) /**< Get the real part of a COMPLEX16 */
#define CX8im( z) cimagf(z) /**< Get the imaginary part of a COMPLEX8 */
#define CX16im(z) cimag( z) /**< Get the imaginary part of a COMPLEX16 */
#endif
/* Real and imaginary part assignment */
#if !defined(__cplusplus) && defined(__GNUC__)
#define setCX8re( z, re) ( __real__(z) = (re) )
#define setCX16re(z, re) ( __real__(z) = (re) )
#define setCX8im( z, im) ( __imag__(z) = (im) )
#define setCX16im(z, im) ( __imag__(z) = (im) )
#else
#define setCX8re( z, re) ( (z) = CX8rect( re, CX8im( z) ) ) /**< Set the
real part of a COMPLEX8 */
#define setCX16re(z, re) ( (z) = CX16rect( re, CX16im(z) ) ) /**< Set the
real part of a COMPLEX16 */
#define setCX8im( z, im) ( (z) = CX8rect( CX8re( z), im ) ) /**< Set the
imaginary part of a COMPLEX8 */
#define setCX16im(z, im) ( (z) = CX16rect( CX16re(z), im ) ) /**< Set the
imaginary part of a COMPLEX16 */
#endif #endif
#else /* LAL_USE_OLD_COMPLEX_STRUCTS */ #else /* LAL_USE_OLD_COMPLEX_STRUCTS */
/** \cond DONT_DOXYGEN */ /** \cond DONT_DOXYGEN */
/* Old LAL complex structs, being phased out ... */ /* Old LAL complex structs, being phased out ... */
typedef struct tagCOMPLEX8 { REAL4 re; REAL4 im; } COMPLEX8; typedef struct tagCOMPLEX8 { REAL4 realf_FIXME; REAL4 imagf_FIXME; } COMPLE
typedef struct tagCOMPLEX16 { REAL8 re; REAL8 im; } COMPLEX16; X8;
#define crealf(z) ((z).realf_FIXME)
#define cimagf(z) ((z).imagf_FIXME)
typedef struct tagCOMPLEX16 { REAL8 real_FIXME; REAL8 imag_FIXME; } COMPLEX
16;
#define creal(z) ((z).real_FIXME)
#define cimag(z) ((z).imag_FIXME)
/** \endcond */ /** \endcond */
#endif /* LAL_USE_OLD_COMPLEX_STRUCTS */ #endif /* LAL_USE_OLD_COMPLEX_STRUCTS */
/*@}*/ /*@}*/
#endif /* SWIG */ #endif /* SWIG */
#if 0 #if 0
{ /* so that editors will match succeeding brace */ { /* so that editors will match succeeding brace */
 End of changes. 2 change blocks. 
46 lines changed or deleted 17 lines changed or added


 LALCache.h   LALCache.h 
skipping to change at line 84 skipping to change at line 84
/** Reads a LAL cache file and produces a LALCache structure. */ /** Reads a LAL cache file and produces a LALCache structure. */
LALCache *XLALCacheImport(const char *fname); LALCache *XLALCacheImport(const char *fname);
/** Globs a directory and construct LALCache from matching entries. /** Globs a directory and construct LALCache from matching entries.
* \param [in] dirstr Colon-delimited list of directories. * \param [in] dirstr Colon-delimited list of directories.
* \param [in] fnptrn Glob pattern for matching files. * \param [in] fnptrn Glob pattern for matching files.
* \returns LALCache structure. * \returns LALCache structure.
*/ */
LALCache *XLALCacheGlob(const char *dirstr, const char *fnptrn); LALCache *XLALCacheGlob(const char *dirstr, const char *fnptrn);
/** Writes a LALCache structure to an output LAL cache file. */ /** Writes a LALCache structure to output LALFILE. */
int XLALCacheFileWrite(LALFILE * fp, const LALCache * cache); int XLALCacheFileWrite(LALFILE * fp, const LALCache * cache);
/** Exports a LALCache structure to an output LAL cache file. */
int XLALCacheExport(const LALCache * cache, const char *filename);
/** Sorts entries in a LALCache structure. */ /** Sorts entries in a LALCache structure. */
int XLALCacheSort(LALCache * cache); int XLALCacheSort(LALCache * cache);
/** Prunes duplicate entries keeping the second one; cache is reduced in /** Prunes duplicate entries keeping the second one; cache is reduced in
* length if there are. Entries are duplicates if their metadata are * length if there are. Entries are duplicates if their metadata are
* the same (even if the urls are different */ * the same (even if the urls are different */
int XLALCacheUniq(LALCache * cache); int XLALCacheUniq(LALCache * cache);
/** Selects only matching entries in a LALCache structure -- other entries /** Selects only matching entries in a LALCache structure -- other entries
* are deleted from the LALCache structure. * are deleted from the LALCache structure.
 End of changes. 2 change blocks. 
1 lines changed or deleted 4 lines changed or added


 LALConfig.h   LALConfig.h 
/* include/lal/LALConfig.h. Generated from LALConfig.h.in by configure. * / /* include/lal/LALConfig.h. Generated from LALConfig.h.in by configure. * /
/* only include this file if LAL's config.h has not been included */ /* only include this file if LAL's config.h has not been included */
#ifndef CONFIG_H__LAL #ifndef CONFIG_H__LAL
#ifndef _LALCONFIG_H #ifndef _LALCONFIG_H
#define _LALCONFIG_H #define _LALCONFIG_H
/* LAL Version */ /* LAL Version */
#define LAL_VERSION "6.10.0" #define LAL_VERSION "6.11.0"
/* LAL Version Major Number */ /* LAL Version Major Number */
#define LAL_VERSION_MAJOR 6 #define LAL_VERSION_MAJOR 6
/* LAL Version Minor Number */ /* LAL Version Minor Number */
#define LAL_VERSION_MINOR 10 #define LAL_VERSION_MINOR 11
/* LAL Version Micro Number */ /* LAL Version Micro Number */
#define LAL_VERSION_MICRO 0 #define LAL_VERSION_MICRO 0
/* LAL Version Devel Number */ /* LAL Version Devel Number */
#define LAL_VERSION_DEVEL 0 #define LAL_VERSION_DEVEL 0
/* LAL Configure Arguments */ /* LAL Configure Arguments */
#define LAL_CONFIGURE_ARGS " '--enable-shared' '--prefix=/home/ut/testing/l al/6.10.0' '--exec-prefix=/home/ut/testing/lal/6.10.0' '--sysconfdir=/home/ ut/testing/lal/6.10.0' '--datadir=/home/ut/testing/lal/6.10.0/share' 'CFLAG S=-w -fpermissive' 'CXXFLAGS=-w -fpermissive'" #define LAL_CONFIGURE_ARGS " '--enable-shared' '--prefix=/home/ut/testing/l al/6.11.0' '--exec-prefix=/home/ut/testing/lal/6.11.0' '--sysconfdir=/home/ ut/testing/lal/6.11.0' '--datadir=/home/ut/testing/lal/6.11.0/share' 'CFLAG S=-w -fpermissive' 'CXXFLAGS=-w -fpermissive'"
/* LAL Configure Date */ /* LAL Configure Date */
#define LAL_CONFIGURE_DATE "2013-03-13T02:35:15+0400" #define LAL_CONFIGURE_DATE "2013-06-28T04:11:52+0400"
/* Suppress debugging code */ /* Suppress debugging code */
/* #undef LAL_NDEBUG */ /* #undef LAL_NDEBUG */
/* Use functions rather than macros */ /* Use functions rather than macros */
/* #undef NOLALMACROS */ /* #undef NOLALMACROS */
/* Use pthread mutex lock for threadsafety */ /* Use pthread mutex lock for threadsafety */
/* #undef LAL_PTHREAD_LOCK */ /* #undef LAL_PTHREAD_LOCK */
 End of changes. 4 change blocks. 
4 lines changed or deleted 4 lines changed or added


 LALConstants.h   LALConstants.h 
skipping to change at line 147 skipping to change at line 147
* given in the SI units shown. Note that the ``year'' and * given in the SI units shown. Note that the ``year'' and
* ``light-year'' have exactly defined values, and appear under * ``light-year'' have exactly defined values, and appear under
* ``Exact physical constants''. * ``Exact physical constants''.
*/ */
/*@{*/ /*@{*/
#define LAL_REARTH_SI 6.378140e6 /**< Earth equatorial radius, m */ #define LAL_REARTH_SI 6.378140e6 /**< Earth equatorial radius, m */
#define LAL_AWGS84_SI 6.378137e6 /**< Semimajor axis of WGS-84 Referen ce Ellipsoid, m */ #define LAL_AWGS84_SI 6.378137e6 /**< Semimajor axis of WGS-84 Referen ce Ellipsoid, m */
#define LAL_BWGS84_SI 6.356752314e6 /**< Semiminor axis of WGS-84 Referen ce Ellipsoid, m */ #define LAL_BWGS84_SI 6.356752314e6 /**< Semiminor axis of WGS-84 Referen ce Ellipsoid, m */
#define LAL_MEARTH_SI 5.97370e24 /**< Earth mass, kg */ #define LAL_MEARTH_SI 5.97370e24 /**< Earth mass, kg */
#define LAL_IEARTH 0.409092804 /**< Earth inclination (2000), radian s */ #define LAL_IEARTH 0.409092804 /**< Earth inclination (2000), radian s */
#define LAL_COSIEARTH 0.91748206215761919815 /**< Cosine of Earth inclina #define LAL_COSIEARTH 0.91748206215761919815 /**< Cosine of Earth inclin
tion (2000) */ ation (2000) */
#define LAL_SINIEARTH 0.39777715572793088957 /**< Sine of Earth inclinati #define LAL_SINIEARTH 0.39777715572793088957 /**< Sine of Earth inclinat
on (2000) */ ion (2000) */
#define LAL_EEARTH 0.0167 /**< Earth orbital eccentricity */ #define LAL_EEARTH 0.0167 /**< Earth orbital eccentricity */
#define LAL_RSUN_SI 6.960e8 /**< Solar equatorial radius, m */ #define LAL_RSUN_SI 6.960e8 /**< Solar equatorial radius, m */
#define LAL_MSUN_SI 1.98892e30 /**< Solar mass, kg */ #define LAL_MSUN_SI 1.98892e30 /**< Solar mass, kg */
#define LAL_MRSUN_SI 1.4766254500421874513093320107664308e3 /**< Geometri zed solar mass, m. = LAL_MSUN_SI / LAL_MPL_SI * LAL_LPL_SI */ #define LAL_MRSUN_SI 1.4766254500421874513093320107664308e3 /**< Geometri zed solar mass, m. = LAL_MSUN_SI / LAL_MPL_SI * LAL_LPL_SI */
#define LAL_MTSUN_SI 4.9254923218988636432342917247829673e-6 /**< Geometri zed solar mass, s. = LAL_MSUN_SI / LAL_MPL_SI * LAL_TPL_SI */ #define LAL_MTSUN_SI 4.9254923218988636432342917247829673e-6 /**< Geometri zed solar mass, s. = LAL_MSUN_SI / LAL_MPL_SI * LAL_TPL_SI */
#define LAL_LSUN_SI 3.846e26 /**< Solar luminosity, W */ #define LAL_LSUN_SI 3.846e26 /**< Solar luminosity, W */
#define LAL_AU_SI 1.4959787066e11 /**< Astronomical unit, m */ #define LAL_AU_SI 1.4959787066e11 /**< Astronomical unit, m */
#define LAL_PC_SI 3.0856775807e16 /**< Parsec, m */ #define LAL_PC_SI 3.0856775807e16 /**< Parsec, m */
#define LAL_YRTROP_SI 31556925.2 /**< Tropical year (1994), s */ #define LAL_YRTROP_SI 31556925.2 /**< Tropical year (1994), s */
#define LAL_YRSID_SI 31558149.8 /**< Sidereal year (1994), s */ #define LAL_YRSID_SI 31558149.8 /**< Sidereal year (1994), s */
skipping to change at line 193 skipping to change at line 193
#define LAL_VCBR_SI 3.695e5 /**< Solar velocity with respect to CBR, m s^ -1 */ #define LAL_VCBR_SI 3.695e5 /**< Solar velocity with respect to CBR, m s^ -1 */
#define LAL_RHOCBR_SI 4.177e-14 /**< Energy density of CBR, J m^-3 */ #define LAL_RHOCBR_SI 4.177e-14 /**< Energy density of CBR, J m^-3 */
#define LAL_NCBR_SI 4.109e8 /**< Number density of CBR photons, m^-3 */ #define LAL_NCBR_SI 4.109e8 /**< Number density of CBR photons, m^-3 */
#define LAL_SCBR_SI 3.993e-14 /**< Entropy density of CBR, J K^-1 m^-3 */ #define LAL_SCBR_SI 3.993e-14 /**< Entropy density of CBR, J K^-1 m^-3 */
/*@}*/ /*@}*/
/*@}*/ /*@}*/
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* _LALCONSTANTS_H */ #endif /* _LALCONSTANTS_H */
 End of changes. 2 change blocks. 
5 lines changed or deleted 4 lines changed or added


 LALDatatypes.h   LALDatatypes.h 
skipping to change at line 27 skipping to change at line 27
* MA 02111-1307 USA * MA 02111-1307 USA
*/ */
// ---------- SEE LALDatatypes.dox for doxygen documentation ---------- // ---------- SEE LALDatatypes.dox for doxygen documentation ----------
#ifndef _LALDATATYPES_H #ifndef _LALDATATYPES_H
#define _LALDATATYPES_H #define _LALDATATYPES_H
#include <lal/LALAtomicDatatypes.h> #include <lal/LALAtomicDatatypes.h>
/** \addtogroup LALDatatypes */ /*@{*/ /** \addtogroup LALDatatypes *//*@{ */
/* ---------- constants ---------- */ /* ---------- constants ---------- */
/** Type size constants, see \ref LALDatatypes for more details. */ /** Type size constants, see \ref LALDatatypes for more details. */
enum enum {
{ LAL_1_BYTE_TYPE_SIZE = 000, /**< One byte size 00 = 0 */
LAL_1_BYTE_TYPE_SIZE = 000, /**< One byte size 00 = 0 */ LAL_2_BYTE_TYPE_SIZE = 001, /**< Two byte size 01 = 1 */
LAL_2_BYTE_TYPE_SIZE = 001, /**< Two byte size 01 = 1 */ LAL_4_BYTE_TYPE_SIZE = 002, /**< Four byte size 010 = 2 */
LAL_4_BYTE_TYPE_SIZE = 002, /**< Four byte size 010 = 2 */ LAL_8_BYTE_TYPE_SIZE = 003, /**< Eight byte size 011 = 3 */
LAL_8_BYTE_TYPE_SIZE = 003, /**< Eight byte size 011 = 3 */ LAL_16_BYTE_TYPE_SIZE = 004, /**< Sixteen byte size 0100 = 4 */
LAL_16_BYTE_TYPE_SIZE = 004, /**< Sixteen byte size 0100 = 4 */ LAL_TYPE_SIZE_MASK = 007 /**< Type size mask 0111 = 7 */
LAL_TYPE_SIZE_MASK = 007 /**< Type size mask 0111 = 7 */
}; };
/** Type flag constants, see \ref LALDatatypes for more details. */ /** Type flag constants, see \ref LALDatatypes for more details. */
enum enum {
{ LAL_FLTPT_TYPE_FLAG = 010, /**< Floating-point (vs integer) type 0100
LAL_FLTPT_TYPE_FLAG = 010, /**< Floating-point (vs integer) type 0100 0 = 8 */
0 = 8 */ LAL_CMPLX_TYPE_FLAG = 020, /**< Complex (vs real) type 010000 = 16 *
LAL_CMPLX_TYPE_FLAG = 020, /**< Complex (vs real) type 010000 = 16 * /
/ LAL_UNSGN_TYPE_FLAG = 040 /**< Unsigned (vs signed) type 0100000 = 3
LAL_UNSGN_TYPE_FLAG = 040 /**< Unsigned (vs signed) type 0100000 = 3 2 */
2 */
}; };
/** Type codes: use these type codes to identify a LAL atomic data type, se e \ref LALDatatypes for more details. */ /** Type codes: use these type codes to identify a LAL atomic data type, se e \ref LALDatatypes for more details. */
typedef enum typedef enum {
{ LAL_CHAR_TYPE_CODE = LAL_1_BYTE_TYPE_SIZE, /**< CHAR type code (0) */
LAL_CHAR_TYPE_CODE = LAL_1_BYTE_TYPE_SIZE, /**< CHAR type code (0) */ LAL_I2_TYPE_CODE = LAL_2_BYTE_TYPE_SIZE, /**< INT2 type code (1) */
LAL_I2_TYPE_CODE = LAL_2_BYTE_TYPE_SIZE, /**< INT2 type code (1) */ LAL_I4_TYPE_CODE = LAL_4_BYTE_TYPE_SIZE, /**< INT4 type code (2) */
LAL_I4_TYPE_CODE = LAL_4_BYTE_TYPE_SIZE, /**< INT4 type code (2) */ LAL_I8_TYPE_CODE = LAL_8_BYTE_TYPE_SIZE, /**< INT8 type code (3) */
LAL_I8_TYPE_CODE = LAL_8_BYTE_TYPE_SIZE, /**< INT8 type code (3) */ LAL_UCHAR_TYPE_CODE = LAL_1_BYTE_TYPE_SIZE | LAL_UNSGN_TYPE_FLAG, /**
LAL_UCHAR_TYPE_CODE = LAL_1_BYTE_TYPE_SIZE | LAL_UNSGN_TYPE_FLAG, /** < UCHAR type code (32) */
< UCHAR type code (32) */ LAL_U2_TYPE_CODE = LAL_2_BYTE_TYPE_SIZE | LAL_UNSGN_TYPE_FLAG, /**
LAL_U2_TYPE_CODE = LAL_2_BYTE_TYPE_SIZE | LAL_UNSGN_TYPE_FLAG, /** < UINT2 type code (33) */
< UINT2 type code (33) */ LAL_U4_TYPE_CODE = LAL_4_BYTE_TYPE_SIZE | LAL_UNSGN_TYPE_FLAG, /**
LAL_U4_TYPE_CODE = LAL_4_BYTE_TYPE_SIZE | LAL_UNSGN_TYPE_FLAG, /** < UINT4 type code (34) */
< UINT4 type code (34) */ LAL_U8_TYPE_CODE = LAL_8_BYTE_TYPE_SIZE | LAL_UNSGN_TYPE_FLAG, /**
LAL_U8_TYPE_CODE = LAL_8_BYTE_TYPE_SIZE | LAL_UNSGN_TYPE_FLAG, /** < UINT8 type code (35) */
< UINT8 type code (35) */ LAL_S_TYPE_CODE = LAL_4_BYTE_TYPE_SIZE | LAL_FLTPT_TYPE_FLAG, /**
LAL_S_TYPE_CODE = LAL_4_BYTE_TYPE_SIZE | LAL_FLTPT_TYPE_FLAG, /** < REAL4 type code (18) */
< REAL4 type code (18) */ LAL_D_TYPE_CODE = LAL_8_BYTE_TYPE_SIZE | LAL_FLTPT_TYPE_FLAG, /**
LAL_D_TYPE_CODE = LAL_8_BYTE_TYPE_SIZE | LAL_FLTPT_TYPE_FLAG, /** < REAL8 type code (19) */
< REAL8 type code (19) */ LAL_C_TYPE_CODE = LAL_8_BYTE_TYPE_SIZE | LAL_CMPLX_TYPE_FLAG | LAL_FLTP
LAL_C_TYPE_CODE = LAL_8_BYTE_TYPE_SIZE | LAL_CMPLX_TYPE_FLAG | LAL_ T_TYPE_FLAG, /**< COMPLEX8 type code (27) */
FLTPT_TYPE_FLAG, /**< COMPLEX8 type code (27) */ LAL_Z_TYPE_CODE = LAL_16_BYTE_TYPE_SIZE | LAL_CMPLX_TYPE_FLAG | LAL_FLT
LAL_Z_TYPE_CODE = LAL_16_BYTE_TYPE_SIZE | LAL_CMPLX_TYPE_FLAG | LAL PT_TYPE_FLAG /**< COMPLEX16 type code (28) */
_FLTPT_TYPE_FLAG /**< COMPLEX16 type code (28) */ } LALTYPECODE;
}
LALTYPECODE;
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#elif 0
} /* so that editors will match preceding brace */
#endif #endif
/* ---------- Vector types ---------- */ /* ---------- Vector types ---------- */
/** Vector of type CHAR, see \ref ss_Vector for more details. */ /** Vector of type CHAR, see \ref ss_Vector for more details. */
typedef struct typedef struct tagCHARVector {
tagCHARVector #ifdef SWIG /* SWIG interface directives */
{ SWIGLAL(ARRAY_1D(CHARVector, CHAR, data, UINT4, length));
#ifdef SWIG /* SWIG interface directives */ #endif /* SWIG */
SWIGLAL(1D_ARRAY(CHAR, data, UINT4, length)); UINT4 length; /**< Number of elements in array. */
#endif /* SWIG */ CHAR *data; /**< Pointer to the data array. */
UINT4 length; /**< Number of elements in array. */ } CHARVector;
CHAR *data; /**< Pointer to the data array. */
}
CHARVector;
/** Vector of type CHAR*, ie 'strings', see \ref ss_Vector for more details . */ /** Vector of type CHAR*, ie 'strings', see \ref ss_Vector for more details . */
typedef struct tagLALStringVector { typedef struct tagLALStringVector {
#ifdef SWIG /* SWIG interface directives */ #ifdef SWIG /* SWIG interface directives */
SWIGLAL(1D_ARRAY(CHAR*, data, UINT4, length)); SWIGLAL(ARRAY_1D(LALStringVector, CHAR *, data, UINT4, length));
#endif /* SWIG */ #endif /* SWIG */
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, see \ref ss_Vector for more details. */ /** Vector of type INT2, see \ref ss_Vector for more details. */
typedef struct typedef struct tagINT2Vector {
tagINT2Vector #ifdef SWIG /* SWIG interface directives */
{ SWIGLAL(ARRAY_1D(INT2Vector, INT2, data, UINT4, length));
#ifdef SWIG /* SWIG interface directives */ #endif /* SWIG */
SWIGLAL(1D_ARRAY(INT2, data, UINT4, length)); UINT4 length; /**< Number of elements in array. */
#endif /* SWIG */ INT2 *data; /**< Pointer to the data array. */
UINT4 length; /**< Number of elements in array. */ } INT2Vector;
INT2 *data; /**< Pointer to the data array. */
}
INT2Vector;
/** Vector of type UINT2, see \ref ss_Vector for more details. */ /** Vector of type UINT2, see \ref ss_Vector for more details. */
typedef struct typedef struct tagUINT2Vector {
tagUINT2Vector #ifdef SWIG /* SWIG interface directives */
{ SWIGLAL(ARRAY_1D(UINT2Vector, UINT2, data, UINT4, length));
#ifdef SWIG /* SWIG interface directives */ #endif /* SWIG */
SWIGLAL(1D_ARRAY(UINT2, data, UINT4, length)); UINT4 length; /**< Number of elements in array. */
#endif /* SWIG */ UINT2 *data; /**< Pointer to the data array. */
UINT4 length; /**< Number of elements in array. */ } UINT2Vector;
UINT2 *data; /**< Pointer to the data array. */
}
UINT2Vector;
/** Vector of type INT4, see \ref ss_Vector for more details. */ /** Vector of type INT4, see \ref ss_Vector for more details. */
typedef struct typedef struct tagINT4Vector {
tagINT4Vector #ifdef SWIG /* SWIG interface directives */
{ SWIGLAL(ARRAY_1D(INT4Vector, INT4, data, UINT4, length));
#ifdef SWIG /* SWIG interface directives */ #endif /* SWIG */
SWIGLAL(1D_ARRAY(INT4, data, UINT4, length)); UINT4 length; /**< Number of elements in array. */
#endif /* SWIG */ INT4 *data; /**< Pointer to the data array. */
UINT4 length; /**< Number of elements in array. */ } INT4Vector;
INT4 *data; /**< Pointer to the data array. */
}
INT4Vector;
/** Vector of type UINT4, see \ref ss_Vector for more details. */ /** Vector of type UINT4, see \ref ss_Vector for more details. */
typedef struct typedef struct tagUINT4Vector {
tagUINT4Vector #ifdef SWIG /* SWIG interface directives */
{ SWIGLAL(ARRAY_1D(UINT4Vector, UINT4, data, UINT4, length));
#ifdef SWIG /* SWIG interface directives */ #endif /* SWIG */
SWIGLAL(1D_ARRAY(UINT4, data, UINT4, length)); UINT4 length; /**< Number of elements in array. */
#endif /* SWIG */ UINT4 *data; /**< Pointer to the data array. */
UINT4 length; /**< Number of elements in array. */ } UINT4Vector;
UINT4 *data; /**< Pointer to the data array. */
}
UINT4Vector;
/** Vector of type INT8, see \ref ss_Vector for more details. */ /** Vector of type INT8, see \ref ss_Vector for more details. */
typedef struct typedef struct tagINT8Vector {
tagINT8Vector #ifdef SWIG /* SWIG interface directives */
{ SWIGLAL(ARRAY_1D(INT8Vector, INT8, data, UINT4, length));
#ifdef SWIG /* SWIG interface directives */ #endif /* SWIG */
SWIGLAL(1D_ARRAY(INT8, data, UINT4, length)); UINT4 length; /**< Number of elements in array. */
#endif /* SWIG */ INT8 *data; /**< Pointer to the data array. */
UINT4 length; /**< Number of elements in array. */ } INT8Vector;
INT8 *data; /**< Pointer to the data array. */
}
INT8Vector;
/** Vector of type UINT8, see \ref ss_Vector for more details. */ /** Vector of type UINT8, see \ref ss_Vector for more details. */
typedef struct typedef struct tagUINT8Vector {
tagUINT8Vector #ifdef SWIG /* SWIG interface directives */
{ SWIGLAL(ARRAY_1D(UINT8Vector, UINT8, data, UINT4, length));
#ifdef SWIG /* SWIG interface directives */ #endif /* SWIG */
SWIGLAL(1D_ARRAY(UINT8, data, UINT4, length)); UINT4 length; /**< Number of elements in array. */
#endif /* SWIG */ UINT8 *data; /**< Pointer to the data array. */
UINT4 length; /**< Number of elements in array. */ } UINT8Vector;
UINT8 *data; /**< Pointer to the data array. */
}
UINT8Vector;
/** Vector of type REAL4, see \ref ss_Vector for more details. */ /** Vector of type REAL4, see \ref ss_Vector for more details. */
typedef struct typedef struct tagREAL4Vector {
tagREAL4Vector #ifdef SWIG /* SWIG interface directives */
{ SWIGLAL(ARRAY_1D(REAL4Vector, REAL4, data, UINT4, length));
#ifdef SWIG /* SWIG interface directives */ #endif /* SWIG */
SWIGLAL(1D_ARRAY(REAL4, data, UINT4, length)); UINT4 length; /**< Number of elements in array. */
#endif /* SWIG */ REAL4 *data; /**< Pointer to the data array. */
UINT4 length; /**< Number of elements in array. */ } REAL4Vector;
REAL4 *data; /**< Pointer to the data array. */
}
REAL4Vector;
/** Vector of type REAL8, see \ref ss_Vector for more details. */ /** Vector of type REAL8, see \ref ss_Vector for more details. */
typedef struct tagREAL8Vector typedef struct tagREAL8Vector {
{ #ifdef SWIG /* SWIG interface directives */
#ifdef SWIG /* SWIG interface directives */ SWIGLAL(ARRAY_1D(REAL8Vector, REAL8, data, UINT4, length));
SWIGLAL(1D_ARRAY(REAL8, data, UINT4, length)); #endif /* SWIG */
#endif /* SWIG */ 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, see \ref ss_Vector for more details. */ /** Vector of type COMPLEX8, see \ref ss_Vector for more details. */
typedef struct tagCOMPLEX8Vector typedef struct tagCOMPLEX8Vector {
{ #ifdef SWIG /* SWIG interface directives */
#ifdef SWIG /* SWIG interface directives */ SWIGLAL(ARRAY_1D(COMPLEX8Vector, COMPLEX8, data, UINT4, length));
SWIGLAL(1D_ARRAY(COMPLEX8, data, UINT4, length)); #endif /* SWIG */
#endif /* SWIG */ 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, see \ref ss_Vector for more details. */ /** Vector of type COMPLEX16, see \ref ss_Vector for more details. */
typedef struct tagCOMPLEX16Vector typedef struct tagCOMPLEX16Vector {
{ #ifdef SWIG /* SWIG interface directives */
#ifdef SWIG /* SWIG interface directives */ SWIGLAL(ARRAY_1D(COMPLEX16Vector, COMPLEX16, data, UINT4, length));
SWIGLAL(1D_ARRAY(COMPLEX16, data, UINT4, length)); #endif /* SWIG */
#endif /* SWIG */ 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;
/* ---------- Array types ---------- */ /* ---------- Array types ---------- */
/** Multidimentional array of INT2, see \ref ss_Array for more details. */ /** Multidimentional array of INT2, see \ref ss_Array for more details. */
typedef struct typedef struct tagINT2Array {
tagINT2Array UINT4Vector *dimLength; /**< Vector of array dimensions. */
{ INT2 *data; /**< Pointer to the data array. */
UINT4Vector *dimLength; /**< Vector of array dimensions. */ } INT2Array;
INT2 *data; /**< Pointer to the data array. */
}
INT2Array;
/** Multidimentional array of UINT2, see \ref ss_Array for more details. */ /** Multidimentional array of UINT2, see \ref ss_Array for more details. */
typedef struct typedef struct tagUINT2Array {
tagUINT2Array UINT4Vector *dimLength; /**< Vector of array dimensions. */
{ UINT2 *data; /**< Pointer to the data array. */
UINT4Vector *dimLength; /**< Vector of array dimensions. */ } UINT2Array;
UINT2 *data; /**< Pointer to the data array. */
}
UINT2Array;
/** Multidimentional array of INT4, see \ref ss_Array for more details. */ /** Multidimentional array of INT4, see \ref ss_Array for more details. */
typedef struct typedef struct tagINT4Array {
tagINT4Array UINT4Vector *dimLength; /**< Vector of array dimensions. */
{ INT4 *data; /**< Pointer to the data array. */
UINT4Vector *dimLength; /**< Vector of array dimensions. */ } INT4Array;
INT4 *data; /**< Pointer to the data array. */
}
INT4Array;
/** Multidimentional array of UINT4, see \ref ss_Array for more details. */ /** Multidimentional array of UINT4, see \ref ss_Array for more details. */
typedef struct typedef struct tagUINT4Array {
tagUINT4Array UINT4Vector *dimLength; /**< Vector of array dimensions. */
{ UINT4 *data; /**< Pointer to the data array. */
UINT4Vector *dimLength; /**< Vector of array dimensions. */ } UINT4Array;
UINT4 *data; /**< Pointer to the data array. */
}
UINT4Array;
/** Multidimentional array of INT8, see \ref ss_Array for more details. */ /** Multidimentional array of INT8, see \ref ss_Array for more details. */
typedef struct typedef struct tagINT8Array {
tagINT8Array UINT4Vector *dimLength; /**< Vector of array dimensions. */
{ INT8 *data; /**< Pointer to the data array. */
UINT4Vector *dimLength; /**< Vector of array dimensions. */ } INT8Array;
INT8 *data; /**< Pointer to the data array. */
}
INT8Array;
/** Multidimentional array of UINT8, see \ref ss_Array for more details. */ /** Multidimentional array of UINT8, see \ref ss_Array for more details. */
typedef struct typedef struct tagUINT8Array {
tagUINT8Array UINT4Vector *dimLength; /**< Vector of array dimensions. */
{ UINT8 *data; /**< Pointer to the data array. */
UINT4Vector *dimLength; /**< Vector of array dimensions. */ } UINT8Array;
UINT8 *data; /**< Pointer to the data array. */
}
UINT8Array;
/** Multidimentional array of REAL4, see \ref ss_Array for more details. */ /** Multidimentional array of REAL4, see \ref ss_Array for more details. */
typedef struct typedef struct tagREAL4Array {
tagREAL4Array UINT4Vector *dimLength; /**< Vector of array dimensions. */
{ REAL4 *data; /**< Pointer to the data array. */
UINT4Vector *dimLength; /**< Vector of array dimensions. */ } REAL4Array;
REAL4 *data; /**< Pointer to the data array. */
}
REAL4Array;
/** Multidimentional array of REAL8, see \ref ss_Array for more details. */ /** Multidimentional array of REAL8, see \ref ss_Array for more details. */
typedef struct typedef struct tagREAL8Array {
tagREAL8Array UINT4Vector *dimLength; /**< Vector of array dimensions. */
{ REAL8 *data; /**< Pointer to the data array. */
UINT4Vector *dimLength; /**< Vector of array dimensions. */ } REAL8Array;
REAL8 *data; /**< Pointer to the data array. */
}
REAL8Array;
/** Multidimentional array of COMPLEX8, see \ref ss_Array for more details. */ /** Multidimentional array of COMPLEX8, see \ref ss_Array for more details. */
typedef struct typedef struct tagCOMPLEX8Array {
tagCOMPLEX8Array UINT4Vector *dimLength; /**< Vector of array dimensions. */
{ COMPLEX8 *data; /**< Pointer to the data array. */
UINT4Vector *dimLength; /**< Vector of array dimensions. */ } COMPLEX8Array;
COMPLEX8 *data; /**< Pointer to the data array. */
}
COMPLEX8Array;
/** Multidimentional array of COMPLEX16, see \ref ss_Array for more details . */ /** Multidimentional array of COMPLEX16, see \ref ss_Array for more details . */
typedef struct typedef struct tagCOMPLEX16Array {
tagCOMPLEX16Array UINT4Vector *dimLength; /**< Vector of array dimensions. */
{ COMPLEX16 *data; /**< Pointer to the data array. */
UINT4Vector *dimLength; /**< Vector of array dimensions. */ } COMPLEX16Array;
COMPLEX16 *data; /**< Pointer to the data array. */
} /* ---------- Sequence types ---------- */
COMPLEX16Array;
typedef CHARVector CHARSequence; /**< See \ref ss_Sequence for docum
entation */
typedef INT2Vector INT2Sequence; /**< See \ref ss_Sequence for docum
entation */
typedef UINT2Vector UINT2Sequence; /**< See \ref ss_Sequence for docum
entation */
typedef INT4Vector INT4Sequence; /**< See \ref ss_Sequence for docum
entation */
typedef UINT4Vector UINT4Sequence; /**< See \ref ss_Sequence for docum
entation */
typedef INT8Vector INT8Sequence; /**< See \ref ss_Sequence for docum
entation */
typedef UINT8Vector UINT8Sequence; /**< See \ref ss_Sequence for docum
entation */
typedef REAL4Vector REAL4Sequence; /**< See \ref ss_Sequence for docum
entation */
typedef REAL8Vector REAL8Sequence; /**< See \ref ss_Sequence for docum
entation */
typedef COMPLEX8Vector COMPLEX8Sequence; /**< See \ref ss_Sequence for docu
mentation */
typedef COMPLEX16Vector COMPLEX16Sequence; /**< See \ref ss_Sequence for do
cumentation */
/* ---------- Sequence types ---------- */ /* ---------- VectorSequence types ---------- */
typedef CHARVector CHARSequence; /**< See \ref ss_Sequence for docume
ntation */
typedef INT2Vector INT2Sequence; /**< See \ref ss_Sequence for docume
ntation */
typedef UINT2Vector UINT2Sequence; /**< See \ref ss_Sequence for docume
ntation */
typedef INT4Vector INT4Sequence; /**< See \ref ss_Sequence for docume
ntation */
typedef UINT4Vector UINT4Sequence; /**< See \ref ss_Sequence for docume
ntation */
typedef INT8Vector INT8Sequence; /**< See \ref ss_Sequence for docume
ntation */
typedef UINT8Vector UINT8Sequence; /**< See \ref ss_Sequence for docume
ntation */
typedef REAL4Vector REAL4Sequence; /**< See \ref ss_Sequence for docume
ntation */
typedef REAL8Vector REAL8Sequence; /**< See \ref ss_Sequence for docume
ntation */
typedef COMPLEX8Vector COMPLEX8Sequence;/**< See \ref ss_Sequence for docu
mentation */
typedef COMPLEX16Vector COMPLEX16Sequence;/**< See \ref ss_Sequence for doc
umentation */
/* ---------- VectorSequence types ---------- */
/** Sequence of CHAR Vectors, see \ref ss_VectorSequence for more details. */ /** Sequence of CHAR Vectors, see \ref ss_VectorSequence for more details. */
typedef struct typedef struct tagCHARVectorSequence {
tagCHARVectorSequence #ifdef SWIG /* SWIG interface directives */
{ SWIGLAL(ARRAY_2D(CHARVectorSequence, CHAR, data, UINT4, length, vectorL
#ifdef SWIG /* SWIG interface directives */ ength));
SWIGLAL(2D_ARRAY(CHAR, data, UINT4, length, vectorLength)); #endif /* SWIG */
#endif /* SWIG */ 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
CHAR *data; /**< Pointer to the data array. Element \a i of vector \a j j is \c data[ \a jn + \a i \c ]. */
is \c data[ \a jn + \a i \c ]. */ } CHARVectorSequence;
}
CHARVectorSequence;
/** Sequence of INT2 Vectors, see \ref ss_VectorSequence for more details. */ /** Sequence of INT2 Vectors, see \ref ss_VectorSequence for more details. */
typedef struct typedef struct tagINT2VectorSequence {
tagINT2VectorSequence #ifdef SWIG /* SWIG interface directives */
{ SWIGLAL(ARRAY_2D(INT2VectorSequence, INT2, data, UINT4, length, vectorL
#ifdef SWIG /* SWIG interface directives */ ength));
SWIGLAL(2D_ARRAY(INT2, data, UINT4, length, vectorLength)); #endif /* SWIG */
#endif /* SWIG */ 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
INT2 *data; /**< Pointer to the data array. Element \a i of vector \a j j is \c data[ \a jn + \a i \c ]. */
is \c data[ \a jn + \a i \c ]. */ } INT2VectorSequence;
}
INT2VectorSequence;
/** Sequence of UINT2 Vectors, see \ref ss_VectorSequence for more details. */ /** Sequence of UINT2 Vectors, see \ref ss_VectorSequence for more details. */
typedef struct typedef struct tagUINT2VectorSequence {
tagUINT2VectorSequence #ifdef SWIG /* SWIG interface directives */
{ SWIGLAL(ARRAY_2D(UINT2VectorSequence, UINT2, data, UINT4, length, vecto
#ifdef SWIG /* SWIG interface directives */ rLength));
SWIGLAL(2D_ARRAY(UINT2, data, UINT4, length, vectorLength)); #endif /* SWIG */
#endif /* SWIG */ 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
UINT2 *data; /**< Pointer to the data array. Element \a i of vector \a j j is \c data[ \a jn + \a i \c ]. */
is \c data[ \a jn + \a i \c ]. */ } UINT2VectorSequence;
}
UINT2VectorSequence;
/** Sequence of INT4 Vectors, see \ref ss_VectorSequence for more details. */ /** Sequence of INT4 Vectors, see \ref ss_VectorSequence for more details. */
typedef struct typedef struct tagINT4VectorSequence {
tagINT4VectorSequence #ifdef SWIG /* SWIG interface directives */
{ SWIGLAL(ARRAY_2D(INT4VectorSequence, INT4, data, UINT4, length, vectorL
#ifdef SWIG /* SWIG interface directives */ ength));
SWIGLAL(2D_ARRAY(INT4, data, UINT4, length, vectorLength)); #endif /* SWIG */
#endif /* SWIG */ 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
INT4 *data; /**< Pointer to the data array. Element \a i of vector \a j j is \c data[ \a jn + \a i \c ]. */
is \c data[ \a jn + \a i \c ]. */ } INT4VectorSequence;
}
INT4VectorSequence;
/** Sequence of UINT4 Vectors, see \ref ss_VectorSequence for more details. */ /** Sequence of UINT4 Vectors, see \ref ss_VectorSequence for more details. */
typedef struct typedef struct tagUINT4VectorSequence {
tagUINT4VectorSequence #ifdef SWIG /* SWIG interface directives */
{ SWIGLAL(ARRAY_2D(UINT4VectorSequence, UINT4, data, UINT4, length, vecto
#ifdef SWIG /* SWIG interface directives */ rLength));
SWIGLAL(2D_ARRAY(UINT4, data, UINT4, length, vectorLength)); #endif /* SWIG */
#endif /* SWIG */ 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
UINT4 *data; /**< Pointer to the data array. Element \a i of vector \a j j is \c data[ \a jn + \a i \c ]. */
is \c data[ \a jn + \a i \c ]. */ } UINT4VectorSequence;
}
UINT4VectorSequence;
/** Sequence of INT8 Vectors, see \ref ss_VectorSequence for more details. */ /** Sequence of INT8 Vectors, see \ref ss_VectorSequence for more details. */
typedef struct typedef struct tagINT8VectorSequence {
tagINT8VectorSequence #ifdef SWIG /* SWIG interface directives */
{ SWIGLAL(ARRAY_2D(INT8VectorSequence, INT8, data, UINT4, length, vectorL
#ifdef SWIG /* SWIG interface directives */ ength));
SWIGLAL(2D_ARRAY(INT8, data, UINT4, length, vectorLength)); #endif /* SWIG */
#endif /* SWIG */ 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
INT8 *data; /**< Pointer to the data array. Element \a i of vector \a j j is \c data[ \a jn + \a i \c ]. */
is \c data[ \a jn + \a i \c ]. */ } INT8VectorSequence;
}
INT8VectorSequence;
/** Sequence of UINT8 Vectors, see \ref ss_VectorSequence for more details. */ /** Sequence of UINT8 Vectors, see \ref ss_VectorSequence for more details. */
typedef struct typedef struct tagUINT8VectorSequence {
tagUINT8VectorSequence #ifdef SWIG /* SWIG interface directives */
{ SWIGLAL(ARRAY_2D(UINT8VectorSequence, UINT8, data, UINT4, length, vecto
#ifdef SWIG /* SWIG interface directives */ rLength));
SWIGLAL(2D_ARRAY(UINT8, data, UINT4, length, vectorLength)); #endif /* SWIG */
#endif /* SWIG */ 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
UINT8 *data; /**< Pointer to the data array. Element \a i of vector \a j j is \c data[ \a jn + \a i \c ]. */
is \c data[ \a jn + \a i \c ]. */ } UINT8VectorSequence;
}
UINT8VectorSequence;
/** Sequence of REAL4 Vectors, see \ref ss_VectorSequence for more details. */ /** Sequence of REAL4 Vectors, see \ref ss_VectorSequence for more details. */
typedef struct typedef struct tagREAL4VectorSequence {
tagREAL4VectorSequence #ifdef SWIG /* SWIG interface directives */
{ SWIGLAL(ARRAY_2D(REAL4VectorSequence, REAL4, data, UINT4, length, vecto
#ifdef SWIG /* SWIG interface directives */ rLength));
SWIGLAL(2D_ARRAY(REAL4, data, UINT4, length, vectorLength)); #endif /* SWIG */
#endif /* SWIG */ 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
REAL4 *data; /**< Pointer to the data array. Element \a i of vector \a j j is \c data[ \a jn + \a i \c ]. */
is \c data[ \a jn + \a i \c ]. */ } REAL4VectorSequence;
}
REAL4VectorSequence;
/** Sequence of REAL8 Vectors, see \ref ss_VectorSequence for more details. */ /** Sequence of REAL8 Vectors, see \ref ss_VectorSequence for more details. */
typedef struct typedef struct tagREAL8VectorSequence {
tagREAL8VectorSequence #ifdef SWIG /* SWIG interface directives */
{ SWIGLAL(ARRAY_2D(REAL8VectorSequence, REAL8, data, UINT4, length, vecto
#ifdef SWIG /* SWIG interface directives */ rLength));
SWIGLAL(2D_ARRAY(REAL8, data, UINT4, length, vectorLength)); #endif /* SWIG */
#endif /* SWIG */ 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
REAL8 *data; /**< Pointer to the data array. Element \a i of vector \a j j is \c data[ \a jn + \a i \c ]. */
is \c data[ \a jn + \a i \c ]. */ } REAL8VectorSequence;
}
REAL8VectorSequence;
/** Sequence of COMPLEX8 Vectors, see \ref ss_VectorSequence for more detai ls. */ /** Sequence of COMPLEX8 Vectors, see \ref ss_VectorSequence for more detai ls. */
typedef struct typedef struct tagCOMPLEX8VectorSequence {
tagCOMPLEX8VectorSequence #ifdef SWIG /* SWIG interface directives */
{ SWIGLAL(ARRAY_2D(COMPLEX8VectorSequence, COMPLEX8, data, UINT4, length,
#ifdef SWIG /* SWIG interface directives */ vectorLength));
SWIGLAL(2D_ARRAY(COMPLEX8, data, UINT4, length, vectorLength)); #endif /* SWIG */
#endif /* SWIG */ 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
COMPLEX8 *data; /**< Pointer to the data array. Element \a i of vector \ \a j is \c data[ \a jn + \a i \c ]. */
a j is \c data[ \a jn + \a i \c ]. */ } COMPLEX8VectorSequence;
}
COMPLEX8VectorSequence;
/** Sequence of COMPLEX16 Vectors, see \ref ss_VectorSequence for more deta ils. */ /** Sequence of COMPLEX16 Vectors, see \ref ss_VectorSequence for more deta ils. */
typedef struct typedef struct tagCOMPLEX16VectorSequence {
tagCOMPLEX16VectorSequence #ifdef SWIG /* SWIG interface directives */
{ SWIGLAL(ARRAY_2D(COMPLEX16VectorSequence, COMPLEX16, data, UINT4, lengt
#ifdef SWIG /* SWIG interface directives */ h, vectorLength));
SWIGLAL(2D_ARRAY(COMPLEX16, data, UINT4, length, vectorLength)); #endif /* SWIG */
#endif /* SWIG */ 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 vecto
COMPLEX16 *data; /**< Pointer to the data array. Element \a i of vector r \a j is \c data[ \a jn + \a i \c ]. */
\a j is \c data[ \a jn + \a i \c ]. */ } COMPLEX16VectorSequence;
}
COMPLEX16VectorSequence;
/* ---------- ArraySequence types ---------- */ /* ---------- ArraySequence types ---------- */
/** Sequence of INT2 multidimensional arrays, see \ref ss_ArraySequence for more details. */ /** Sequence of INT2 multidimensional arrays, see \ref ss_ArraySequence for more details. */
typedef struct typedef struct tagINT2ArraySequence {
tagINT2ArraySequence UINT4 length; /**< The number \a l of vectors. */
{ UINT4 arrayDim; /**< The number of data \a N in each array element
UINT4 length; /**< The number \a l of vectors. */ (this is not the number \a m of indices). */
UINT4 arrayDim; /**< The number of data \a N in each array element UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing
(this is not the number \a m of indices). */ the array dimensions */
UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t INT2 *data; /**< Pointer to the data array. */
he array dimensions */ } INT2ArraySequence;
INT2 *data; /**< Pointer to the data array. */
}
INT2ArraySequence;
/** Sequence of UINT2 multidimensional arrays, see \ref ss_ArraySequence fo r more details. */ /** Sequence of UINT2 multidimensional arrays, see \ref ss_ArraySequence fo r more details. */
typedef struct typedef struct tagUINT2ArraySequence {
tagUINT2ArraySequence UINT4 length; /**< The number \a l of vectors. */
{ UINT4 arrayDim; /**< The number of data \a N in each array element
UINT4 length; /**< The number \a l of vectors. */ (this is not the number \a m of indices). */
UINT4 arrayDim; /**< The number of data \a N in each array element UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing
(this is not the number \a m of indices). */ the array dimensions */
UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t UINT2 *data; /**< Pointer to the data array. */
he array dimensions */ } UINT2ArraySequence;
UINT2 *data; /**< Pointer to the data array. */
}
UINT2ArraySequence;
/** Sequence of INT4 multidimensional arrays, see \ref ss_ArraySequence for more details. */ /** Sequence of INT4 multidimensional arrays, see \ref ss_ArraySequence for more details. */
typedef struct typedef struct tagINT4ArraySequence {
tagINT4ArraySequence UINT4 length; /**< The number \a l of vectors. */
{ UINT4 arrayDim; /**< The number of data \a N in each array element
UINT4 length; /**< The number \a l of vectors. */ (this is not the number \a m of indices). */
UINT4 arrayDim; /**< The number of data \a N in each array element UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing
(this is not the number \a m of indices). */ the array dimensions */
UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t INT4 *data; /**< Pointer to the data array. */
he array dimensions */ } INT4ArraySequence;
INT4 *data; /**< Pointer to the data array. */
}
INT4ArraySequence;
/** Sequence of UINT4 multidimensional arrays, see \ref ss_ArraySequence fo r more details. */ /** Sequence of UINT4 multidimensional arrays, see \ref ss_ArraySequence fo r more details. */
typedef struct typedef struct tagUINT4ArraySequence {
tagUINT4ArraySequence UINT4 length; /**< The number \a l of vectors. */
{ UINT4 arrayDim; /**< The number of data \a N in each array element
UINT4 length; /**< The number \a l of vectors. */ (this is not the number \a m of indices). */
UINT4 arrayDim; /**< The number of data \a N in each array element UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing
(this is not the number \a m of indices). */ the array dimensions */
UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t UINT4 *data; /**< Pointer to the data array. */
he array dimensions */ } UINT4ArraySequence;
UINT4 *data; /**< Pointer to the data array. */
}
UINT4ArraySequence;
/** Sequence of INT8 multidimensional arrays, see \ref ss_ArraySequence for more details. */ /** Sequence of INT8 multidimensional arrays, see \ref ss_ArraySequence for more details. */
typedef struct typedef struct tagINT8ArraySequence {
tagINT8ArraySequence UINT4 length; /**< The number \a l of vectors. */
{ UINT4 arrayDim; /**< The number of data \a N in each array element
UINT4 length; /**< The number \a l of vectors. */ (this is not the number \a m of indices). */
UINT4 arrayDim; /**< The number of data \a N in each array element UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing
(this is not the number \a m of indices). */ the array dimensions */
UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t INT8 *data; /**< Pointer to the data array. */
he array dimensions */ } INT8ArraySequence;
INT8 *data; /**< Pointer to the data array. */
}
INT8ArraySequence;
/** Sequence of UINT8 multidimensional arrays, see \ref ss_ArraySequence fo r more details. */ /** Sequence of UINT8 multidimensional arrays, see \ref ss_ArraySequence fo r more details. */
typedef struct typedef struct tagUINT8ArraySequence {
tagUINT8ArraySequence UINT4 length; /**< The number \a l of vectors. */
{ UINT4 arrayDim; /**< The number of data \a N in each array element
UINT4 length; /**< The number \a l of vectors. */ (this is not the number \a m of indices). */
UINT4 arrayDim; /**< The number of data \a N in each array element UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing
(this is not the number \a m of indices). */ the array dimensions */
UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t UINT8 *data; /**< Pointer to the data array. */
he array dimensions */ } UINT8ArraySequence;
UINT8 *data; /**< Pointer to the data array. */
}
UINT8ArraySequence;
/** Sequence of REAL4 multidimensional arrays, see \ref ss_ArraySequence fo r more details. */ /** Sequence of REAL4 multidimensional arrays, see \ref ss_ArraySequence fo r more details. */
typedef struct typedef struct tagREAL4ArraySequence {
tagREAL4ArraySequence UINT4 length; /**< The number \a l of vectors. */
{ UINT4 arrayDim; /**< The number of data \a N in each array element
UINT4 length; /**< The number \a l of vectors. */ (this is not the number \a m of indices). */
UINT4 arrayDim; /**< The number of data \a N in each array element UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing
(this is not the number \a m of indices). */ the array dimensions */
UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t REAL4 *data; /**< Pointer to the data array. */
he array dimensions */ } REAL4ArraySequence;
REAL4 *data; /**< Pointer to the data array. */
}
REAL4ArraySequence;
/** Sequence of REAL8 multidimensional arrays, see \ref ss_ArraySequence fo r more details. */ /** Sequence of REAL8 multidimensional arrays, see \ref ss_ArraySequence fo r more details. */
typedef struct typedef struct tagREAL8ArraySequence {
tagREAL8ArraySequence UINT4 length; /**< The number \a l of vectors. */
{ UINT4 arrayDim; /**< The number of data \a N in each array element
UINT4 length; /**< The number \a l of vectors. */ (this is not the number \a m of indices). */
UINT4 arrayDim; /**< The number of data \a N in each array element UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing
(this is not the number \a m of indices). */ the array dimensions */
UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t REAL8 *data; /**< Pointer to the data array. */
he array dimensions */ } REAL8ArraySequence;
REAL8 *data; /**< Pointer to the data array. */
}
REAL8ArraySequence;
/** Sequence of COMPLEX8 multidimensional arrays, see \ref ss_ArraySequence for more details. */ /** Sequence of COMPLEX8 multidimensional arrays, see \ref ss_ArraySequence for more details. */
typedef struct typedef struct tagCOMPLEX8ArraySequence {
tagCOMPLEX8ArraySequence UINT4 length; /**< The number \a l of vectors. */
{ UINT4 arrayDim; /**< The number of data \a N in each array element
UINT4 length; /**< The number \a l of vectors. */ (this is not the number \a m of indices). */
UINT4 arrayDim; /**< The number of data \a N in each array element UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing
(this is not the number \a m of indices). */ the array dimensions */
UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t COMPLEX8 *data; /**< Pointer to the data array. */
he array dimensions */ } COMPLEX8ArraySequence;
COMPLEX8 *data; /**< Pointer to the data array. */
}
COMPLEX8ArraySequence;
/** Sequence of COMPLEX16 multidimensional arrays, see \ref ss_ArraySequenc e for more details. */ /** Sequence of COMPLEX16 multidimensional arrays, see \ref ss_ArraySequenc e for more details. */
typedef struct typedef struct tagCOMPLEX16ArraySequence {
tagCOMPLEX16ArraySequence UINT4 length; /**< The number \a l of vectors. */
{ UINT4 arrayDim; /**< The number of data \a N in each array element
UINT4 length; /**< The number \a l of vectors. */ (this is not the number \a m of indices). */
UINT4 arrayDim; /**< The number of data \a N in each array element UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing
(this is not the number \a m of indices). */ the array dimensions */
UINT4Vector *dimLength; /**< Pointer to a vector of length \a m storing t COMPLEX16 *data; /**< Pointer to the data array. */
he array dimensions */ } COMPLEX16ArraySequence;
COMPLEX16 *data; /**< Pointer to the data array. */
}
COMPLEX16ArraySequence;
/* ---------- Structured datatypes ---------- */ /* ---------- Structured datatypes ---------- */
/** Epoch relative to GPS epoch, see \ref ss_LIGOTimeGPS for more details * / /** Epoch relative to GPS epoch, see \ref ss_LIGOTimeGPS for more details * /
typedef struct typedef struct tagLIGOTimeGPS {
tagLIGOTimeGPS INT4 gpsSeconds; /**< Seconds since 0h UTC 6 Jan 1980. */
{ INT4 gpsNanoSeconds; /**< Residual nanoseconds. */
INT4 gpsSeconds; /**< Seconds since 0h UTC 6 Jan 1980. */ } LIGOTimeGPS;
INT4 gpsNanoSeconds; /**< Residual nanoseconds. */
}
LIGOTimeGPS;
/** Zero-initializer for LIGOTimeGPS structs */ /** Zero-initializer for LIGOTimeGPS structs */
#define LIGOTIMEGPSZERO { 0, 0 } #define LIGOTIMEGPSZERO { 0, 0 }
#ifdef SWIG /* SWIG interface directives */
/* *INDENT-OFF* */
%include <lal/lalswig_ligotimegps.i>
/* *INDENT-ON* */
#endif /* SWIG */
/** Indices of arrays corresponding to particular units. /** Indices of arrays corresponding to particular units.
* *
* The ::LALUnit structure has arrays giving the numerators * The ::LALUnit structure has arrays giving the numerators
* and denominators-minus-one of the powers of various units. * and denominators-minus-one of the powers of various units.
* These are the indices for the particular units. * These are the indices for the particular units.
*/ */
enum enum {
{ LALUnitIndexMeter, /**< The meter index. */
LALUnitIndexMeter, /**< The meter index. */ LALUnitIndexKiloGram, /**< The kilogram index. */
LALUnitIndexKiloGram, /**< The kilogram index. */ LALUnitIndexSecond, /**< The second index. */
LALUnitIndexSecond, /**< The second index. */ LALUnitIndexAmpere, /**< The ampere index. */
LALUnitIndexAmpere, /**< The ampere index. */ LALUnitIndexKelvin, /**< The kelvin index. */
LALUnitIndexKelvin, /**< The kelvin index. */ LALUnitIndexStrain, /**< The strain index. */
LALUnitIndexStrain, /**< The strain index. */ LALUnitIndexADCCount, /**< The ADC counts index. */
LALUnitIndexADCCount, /**< The ADC counts index. */ LALNumUnits /**< The number of units. */
LALNumUnits /**< The number of units. */
}; };
/** This structure stores units in the mksA system (plus Kelvin, Strain, /** This structure stores units in the mksA system (plus Kelvin, Strain,
* and ADC Count). It also stores an overall power-of-ten scaling factor. * and ADC Count). It also stores an overall power-of-ten scaling factor.
* Thus, the units are given by * Thus, the units are given by
* \f{equation}{ * \f{equation}{
* 10^p\times\textrm{m}^{N_0/(1+D_0)}\times\textrm{kg}^{N_1/(1+D_1)} * 10^p\times\textrm{m}^{N_0/(1+D_0)}\times\textrm{kg}^{N_1/(1+D_1)}
* \times\textrm{s}^{N_2/(1+D_2)}\times\textrm{A}^{N_3/(1+D_3)} * \times\textrm{s}^{N_2/(1+D_2)}\times\textrm{A}^{N_3/(1+D_3)}
* \times\textrm{K}^{N_4/(1+D_4)}\times\textrm{strain}^{N_5/(1+D_5)} * \times\textrm{K}^{N_4/(1+D_4)}\times\textrm{strain}^{N_5/(1+D_5)}
* \times\textrm{count}^{N_6/(1+D_6)} * \times\textrm{count}^{N_6/(1+D_6)}
* \f} * \f}
* *
*/ */
typedef struct typedef struct tagLALUnit {
tagLALUnit 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 de
UINT2 unitDenominatorMinusOne[LALNumUnits]; /**< Array of unit power deno nominators-minus-one. */
minators-minus-one. */ } LALUnit;
}
LALUnit;
/* ---------- TimeSeries types ---------- */ /* ---------- TimeSeries types ---------- */
/** Length of name fields of LAL structured data types. */ /** Length of name fields of LAL structured data types. */
enum enumLALNameLength { LALNameLength = 64 }; enum enumLALNameLength { LALNameLength = 64 };
/** Time series of INT2 data, see \ref ss_TimeSeries for more details. */ /** Time series of INT2 data, see \ref ss_TimeSeries for more details. */
typedef struct typedef struct tagINT2TimeSeries {
tagINT2TimeSeries CHAR name[LALNameLength]; /**< The name of the time series. */
{ LIGOTimeGPS epoch; /**< The start time of the time series. */
CHAR name[LALNameLength]; /**< The name of the time series. */ REAL8 deltaT; /**< The time step between samples of the time seri
LIGOTimeGPS epoch; /**< The start time of the time series. */ es in seconds. */
REAL8 deltaT; /**< The time step between samples of the time seri REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not
es in seconds. */ heterodyned). */
REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not LALUnit sampleUnits; /**< The physical units of the quantity being
heterodyned). */ sampled. */
LALUnit sampleUnits; /**< The physical units of the quantity being INT2Sequence *data; /**< The sequence of sampled data. */
sampled. */ } INT2TimeSeries;
INT2Sequence *data; /**< The sequence of sampled data. */
}
INT2TimeSeries;
/** Time series of UINT2 data, see \ref ss_TimeSeries for more details. */ /** Time series of UINT2 data, see \ref ss_TimeSeries for more details. */
typedef struct typedef struct tagUINT2TimeSeries {
tagUINT2TimeSeries CHAR name[LALNameLength]; /**< The name of the time series. */
{ LIGOTimeGPS epoch; /**< The start time of the time series. */
CHAR name[LALNameLength]; /**< The name of the time series. */ REAL8 deltaT; /**< The time step between samples of the time ser
LIGOTimeGPS epoch; /**< The start time of the time series. */ ies in seconds. */ REAL8 f0; /**< The heterodyning frequency, in Her
REAL8 deltaT; /**< The time step between samples of the time ser tz (zero if not heterodyned). */
ies in seconds. */ LALUnit sampleUnits; /**< The physical units of the quantity being
REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not sampled. */
heterodyned). */ UINT2Sequence *data; /**< The sequence of sampled data. */
LALUnit sampleUnits; /**< The physical units of the quantity being } UINT2TimeSeries;
sampled. */
UINT2Sequence *data; /**< The sequence of sampled data. */
}
UINT2TimeSeries;
/** Time series of INT4 data, see \ref ss_TimeSeries for more details. */ /** Time series of INT4 data, see \ref ss_TimeSeries for more details. */
typedef struct typedef struct tagINT4TimeSeries {
tagINT4TimeSeries CHAR name[LALNameLength]; /**< The name of the time series. */
{ LIGOTimeGPS epoch; /**< The start time of the time series. */
CHAR name[LALNameLength]; /**< The name of the time series. */ REAL8 deltaT; /**< The time step between samples of the time seri
LIGOTimeGPS epoch; /**< The start time of the time series. */ es in seconds. */
REAL8 deltaT; /**< The time step between samples of the time seri REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not
es in seconds. */ heterodyned). */
REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not LALUnit sampleUnits; /**< The physical units of the quantity being
heterodyned). */ sampled. */
LALUnit sampleUnits; /**< The physical units of the quantity being INT4Sequence *data; /**< The sequence of sampled data. */
sampled. */ } INT4TimeSeries;
INT4Sequence *data; /**< The sequence of sampled data. */
}
INT4TimeSeries;
/** Time series of UINT4 data, see \ref ss_TimeSeries for more details. */ /** Time series of UINT4 data, see \ref ss_TimeSeries for more details. */
typedef struct typedef struct tagUINT4TimeSeries {
tagUINT4TimeSeries CHAR name[LALNameLength]; /**< The name of the time series. */
{ LIGOTimeGPS epoch; /**< The start time of the time series. */
CHAR name[LALNameLength]; /**< The name of the time series. */ REAL8 deltaT; /**< The time step between samples of the time ser
LIGOTimeGPS epoch; /**< The start time of the time series. */ ies in seconds. */
REAL8 deltaT; /**< The time step between samples of the time ser REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not
ies in seconds. */ heterodyned). */
REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not LALUnit sampleUnits; /**< The physical units of the quantity being
heterodyned). */ sampled. */
LALUnit sampleUnits; /**< The physical units of the quantity being UINT4Sequence *data; /**< The sequence of sampled data. */
sampled. */ } UINT4TimeSeries;
UINT4Sequence *data; /**< The sequence of sampled data. */
}
UINT4TimeSeries;
/** Time series of INT8 data, see \ref ss_TimeSeries for more details. */ /** Time series of INT8 data, see \ref ss_TimeSeries for more details. */
typedef struct typedef struct tagINT8TimeSeries {
tagINT8TimeSeries CHAR name[LALNameLength]; /**< The name of the time series. */
{ LIGOTimeGPS epoch; /**< The start time of the time series. */
CHAR name[LALNameLength]; /**< The name of the time series. */ REAL8 deltaT; /**< The time step between samples of the time seri
LIGOTimeGPS epoch; /**< The start time of the time series. */ es in seconds. */
REAL8 deltaT; /**< The time step between samples of the time seri REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not
es in seconds. */ heterodyned). */
REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not LALUnit sampleUnits; /**< The physical units of the quantity being
heterodyned). */ sampled. */
LALUnit sampleUnits; /**< The physical units of the quantity being INT8Sequence *data; /**< The sequence of sampled data. */
sampled. */ } INT8TimeSeries;
INT8Sequence *data; /**< The sequence of sampled data. */
}
INT8TimeSeries;
/** Time series of UINT8 data, see \ref ss_TimeSeries for more details. */ /** Time series of UINT8 data, see \ref ss_TimeSeries for more details. */
typedef struct typedef struct tagUINT8TimeSeries {
tagUINT8TimeSeries CHAR name[LALNameLength]; /**< The name of the time series. */
{ LIGOTimeGPS epoch; /**< The start time of the time series. */
CHAR name[LALNameLength]; /**< The name of the time series. */ REAL8 deltaT; /**< The time step between samples of the time ser
LIGOTimeGPS epoch; /**< The start time of the time series. */ ies in seconds. */
REAL8 deltaT; /**< The time step between samples of the time ser REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not
ies in seconds. */ heterodyned). */
REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not LALUnit sampleUnits; /**< The physical units of the quantity being
heterodyned). */ sampled. */
LALUnit sampleUnits; /**< The physical units of the quantity being UINT8Sequence *data; /**< The sequence of sampled data. */
sampled. */ } UINT8TimeSeries;
UINT8Sequence *data; /**< The sequence of sampled data. */
}
UINT8TimeSeries;
/** Time series of REAL4 data, see \ref ss_TimeSeries for more details. */ /** Time series of REAL4 data, see \ref ss_TimeSeries for more details. */
typedef struct typedef struct tagREAL4TimeSeries {
tagREAL4TimeSeries CHAR name[LALNameLength]; /**< The name of the time series. */
{ LIGOTimeGPS epoch; /**< The start time of the time series. */
CHAR name[LALNameLength]; /**< The name of the time series. */ REAL8 deltaT; /**< The time step between samples of the time ser
LIGOTimeGPS epoch; /**< The start time of the time series. */ ies in seconds. */
REAL8 deltaT; /**< The time step between samples of the time ser REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not
ies in seconds. */ heterodyned). */
REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not LALUnit sampleUnits; /**< The physical units of the quantity being
heterodyned). */ sampled. */
LALUnit sampleUnits; /**< The physical units of the quantity being REAL4Sequence *data; /**< The sequence of sampled data. */
sampled. */ } REAL4TimeSeries;
REAL4Sequence *data; /**< The sequence of sampled data. */
}
REAL4TimeSeries;
/** Time series of REAL8 data, see \ref ss_TimeSeries for more details. */ /** Time series of REAL8 data, see \ref ss_TimeSeries for more details. */
typedef struct typedef struct tagREAL8TimeSeries {
tagREAL8TimeSeries CHAR name[LALNameLength]; /**< The name of the time series. */
{ LIGOTimeGPS epoch; /**< The start time of the time series. */
CHAR name[LALNameLength]; /**< The name of the time series. */ REAL8 deltaT; /**< The time step between samples of the time ser
LIGOTimeGPS epoch; /**< The start time of the time series. */ ies in seconds. */
REAL8 deltaT; /**< The time step between samples of the time ser REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not
ies in seconds. */ heterodyned). */
REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if not LALUnit sampleUnits; /**< The physical units of the quantity being
heterodyned). */ sampled. */
LALUnit sampleUnits; /**< The physical units of the quantity being REAL8Sequence *data; /**< The sequence of sampled data. */
sampled. */ } REAL8TimeSeries;
REAL8Sequence *data; /**< The sequence of sampled data. */
}
REAL8TimeSeries;
/** Time series of COMPLEX8 data, see \ref ss_TimeSeries for more details. */ /** Time series of COMPLEX8 data, see \ref ss_TimeSeries for more details. */
typedef struct typedef struct tagCOMPLEX8TimeSeries {
tagCOMPLEX8TimeSeries 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. */
*/ REAL8 deltaT; /**< The time step between samples of the time
LIGOTimeGPS epoch; /**< The start time of the time series. */ series in seconds. */
REAL8 deltaT; /**< The time step between samples of the time REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if
series in seconds. */ not heterodyned). */
REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if LALUnit sampleUnits; /**< The physical units of the quantity be
not heterodyned). */ ing sampled. */
LALUnit sampleUnits; /**< The physical units of the quantity be COMPLEX8Sequence *data; /**< The sequence of sampled data. */
ing sampled. */ } COMPLEX8TimeSeries;
COMPLEX8Sequence *data; /**< The sequence of sampled data. */
}
COMPLEX8TimeSeries;
/** Time series of COMPLEX16 data, see \ref ss_TimeSeries for more details. */ /** Time series of COMPLEX16 data, see \ref ss_TimeSeries for more details. */
typedef struct typedef struct tagCOMPLEX16TimeSeries {
tagCOMPLEX16TimeSeries 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. */
*/ REAL8 deltaT; /**< The time step between samples of the time
LIGOTimeGPS epoch; /**< The start time of the time series. */ series in seconds. */
REAL8 deltaT; /**< The time step between samples of the time REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if
series in seconds. */ not heterodyned). */
REAL8 f0; /**< The heterodyning frequency, in Hertz (zero if LALUnit sampleUnits; /**< The physical units of the quantity b
not heterodyned). */ eing sampled. */
LALUnit sampleUnits; /**< The physical units of the quantity b COMPLEX16Sequence *data; /**< The sequence of sampled data. */
eing sampled. */ } COMPLEX16TimeSeries;
COMPLEX16Sequence *data; /**< The sequence of sampled data. */
}
COMPLEX16TimeSeries;
/* ---------- TimeVectorSeries types ---------- */ /* ---------- TimeVectorSeries types ---------- */
/** Time series of INT2 vectors, see \ref ss_TimeVectorSeries for more deta ils. */ /** Time series of INT2 vectors, see \ref ss_TimeVectorSeries for more deta ils. */
typedef struct typedef struct tagINT2TimeVectorSeries {
tagINT2TimeVectorSeries CHAR name[LALNameLength]; /**< The name of the time serie
{ s of vectors. */
CHAR name[LALNameLength]; /**< The name of the time serie LIGOTimeGPS epoch; /**< The start time of the time series of vec
s of vectors. */ tors. */
LIGOTimeGPS epoch; /**< The start time of the time series of vec REAL8 deltaT; /**< The time step between samples of the ti
tors. */ me series of vectors in seconds. */
REAL8 deltaT; /**< The time step between samples of the ti REAL8 f0; /**< The heterodyning frequency, in Hertz (zero
me series of vectors in seconds. */ if not heterodyned). */
REAL8 f0; /**< The heterodyning frequency, in Hertz (zero LALUnit sampleUnits; /**< The physical units of the quantity
if not heterodyned). */ being sampled. */
LALUnit sampleUnits; /**< The physical units of the quantity INT2VectorSequence *data; /**< The sequence of sampled data vectors. */
being sampled. */ } INT2TimeVectorSeries;
INT2VectorSequence *data; /**< The sequence of sampled data vectors. */
}
INT2TimeVectorSeries;
/** Time series of UINT2 vectors, see \ref ss_TimeVectorSeries for more det ails. */ /** Time series of UINT2 vectors, see \ref ss_TimeVectorSeries for more det ails. */
typedef struct typedef struct tagUINT2TimeVectorSeries {
tagUINT2TimeVectorSeries CHAR name[LALNameLength]; /**< The name of the time serie
{ s of vectors. */
CHAR name[LALNameLength]; /**< The name of the time serie LIGOTimeGPS epoch; /**< The start time of the time series of vec
s of vectors. */ tors. */
LIGOTimeGPS epoch; /**< The start time of the time series of vec REAL8 deltaT; /**< The time step between samples of the ti
tors. */ me series of vectors in seconds. */
REAL8 deltaT; /**< The time step between samples of the ti REAL8 f0; /**< The heterodyning frequency, in Hertz (zero
me series of vectors in seconds. */ if not heterodyned). */
REAL8 f0; /**< The heterodyning frequency, in Hertz (zero LALUnit sampleUnits; /**< The physical units of the quantity
if not heterodyned). */ being sampled. */
LALUnit sampleUnits; /**< The physical units of the quantity UINT2VectorSequence *data; /**< The sequence of sampled data vectors. *
being sampled. */ /
UINT2VectorSequence *data; /**< The sequence of sampled data vectors. */ } UINT2TimeVectorSeries;
}
UINT2TimeVectorSeries;
/** Time series of INT4 vectors, see \ref ss_TimeVectorSeries for more deta ils. */ /** Time series of INT4 vectors, see \ref ss_TimeVectorSeries for more deta ils. */
typedef struct typedef struct tagINT4TimeVectorSeries {
tagINT4TimeVectorSeries CHAR name[LALNameLength]; /**< The name of the time serie
{ s of vectors. */
CHAR name[LALNameLength]; /**< The name of the time serie LIGOTimeGPS epoch; /**< The start time of the time series of vec
s of vectors. */ tors. */
LIGOTimeGPS epoch; /**< The start time of the time series of vec REAL8 deltaT; /**< The time step between samples of the ti
tors. */ me series of vectors in seconds. */
REAL8 deltaT; /**< The time step between samples of the ti REAL8 f0; /**< The heterodyning frequency, in Hertz (zero
me series of vectors in seconds. */ if not heterodyned). */
REAL8 f0; /**< The heterodyning frequency, in Hertz (zero LALUnit sampleUnits; /**< The physical units of the quantity
if not heterodyned). */ being sampled. */
LALUnit sampleUnits; /**< The physical units of the quantity INT4VectorSequence *data; /**< The sequence of sampled data vectors. */
being sampled. */ } INT4TimeVectorSeries;
INT4VectorSequence *data; /**< The sequence of sampled data vectors. */
}
INT4TimeVectorSeries;
/** Time series of UINT4 vectors, see \ref ss_TimeVectorSeries for more det ails. */ /** Time series of UINT4 vectors, see \ref ss_TimeVectorSeries for more det ails. */
typedef struct typedef struct tagUINT4TimeVectorSeries {
tagUINT4TimeVectorSeries CHAR name[LALNameLength]; /**< The name of the time serie
{ s of vectors. */
CHAR name[LALNameLength]; /**< The name of the time serie LIGOTimeGPS epoch; /**< The start time of the time series of vec
s of vectors. */ tors. */
LIGOTimeGPS epoch; /**< The start time of the time series of vec REAL8 deltaT; /**< The time step between samples of the ti
tors. */ me series of vectors in seconds. */
REAL8 deltaT; /**< The time step between samples of the ti REAL8 f0; /**< The heterodyning frequency, in Hertz (zero
me series of vectors in seconds. */ if not heterodyned). */
REAL8 f0; /**< The heterodyning frequency, in Hertz (zero LALUnit sampleUnits; /**< The physical units of the quantity
if not heterodyned). */ being sampled. */
LALUnit sampleUnits; /**< The physical units of the quantity UINT4VectorSequence *data; /**< The sequence of sampled data vectors. *
being sampled. */ /
UINT4VectorSequence *data; /**< The sequence of sampled data vectors. */ } UINT4TimeVectorSeries;
}
UINT4TimeVectorSeries;
/** Time series of INT8 vectors, see \ref ss_TimeVectorSeries for more deta ils. */ /** Time series of INT8 vectors, see \ref ss_TimeVectorSeries for more deta ils. */
typedef struct typedef struct tagINT8TimeVectorSeries {
tagINT8TimeVectorSeries CHAR name[LALNameLength]; /**< The name of the time serie
{ s of vectors. */
CHAR name[LALNameLength]; /**< The name of the time serie LIGOTimeGPS epoch; /**< The start time of the time series of vec
s of vectors. */ tors. */
LIGOTimeGPS epoch; /**< The start time of the time series of vec REAL8 deltaT; /**< The time step between samples of the ti
tors. */ me series of vectors in seconds. */
REAL8 deltaT; /**< The time step between samples of the ti REAL8 f0; /**< The heterodyning frequency, in Hertz (zero
me series of vectors in seconds. */ if not heterodyned). */
REAL8 f0; /**< The heterodyning frequency, in Hertz (zero LALUnit sampleUnits; /**< The physical units of the quantity
if not heterodyned). */ being sampled. */
LALUnit sampleUnits; /**< The physical units of the quantity INT8VectorSequence *data; /**< The sequence of sampled data vectors. */
being sampled. */ } INT8TimeVectorSeries;
INT8VectorSequence *data; /**< The sequence of sampled data vectors. */
}
INT8TimeVectorSeries;
/** Time series of UINT8 vectors, see \ref ss_TimeVectorSeries for more det ails. */ /** Time series of UINT8 vectors, see \ref ss_TimeVectorSeries for more det ails. */
typedef struct typedef struct tagUINT8TimeVectorSeries {
tagUINT8TimeVectorSeries CHAR name[LALNameLength]; /**< The name of the time serie
{ s of vectors. */
CHAR name[LALNameLength]; /**< The name of the time serie LIGOTimeGPS epoch; /**< The start time of the time series of vec
s of vectors. */ tors. */
LIGOTimeGPS epoch; /**< The start time of the time series of vec REAL8 deltaT; /**< The time step between samples of the ti
tors. */ me series of vectors in seconds. */
REAL8 deltaT; /**< The time step between samples of the ti REAL8 f0; /**< The heterodyning frequency, in Hertz (zero
me series of vectors in seconds. */ if not heterodyned). */
REAL8 f0; /**< The heterodyning frequency, in Hertz (zero LALUnit sampleUnits; /**< The physical units of the quantity
if not heterodyned). */ being sampled. */
LALUnit sampleUnits; /**< The physical units of the quantity UINT8VectorSequence *data; /**< The sequence of sampled data vectors. *
being sampled. */ /
UINT8VectorSequence *data; /**< The sequence of sampled data vectors. */ } UINT8TimeVectorSeries;
}
UINT8TimeVectorSeries;
/** Time series of REAL4 vectors, see \ref ss_TimeVectorSeries for more det ails. */ /** Time series of REAL4 vectors, see \ref ss_TimeVectorSeries for more det ails. */
typedef struct typedef struct tagREAL4TimeVectorSeries {
tagREAL4TimeVectorSeries CHAR name[LALNameLength]; /**< The name of the time serie
{ s of vectors. */
CHAR name[LALNameLength]; /**< The name of the time serie LIGOTimeGPS epoch; /**< The start time of the time series of vec
s of vectors. */ tors. */
LIGOTimeGPS epoch; /**< The start time of the time series of vec REAL8 deltaT; /**< The time step between samples of the ti
tors. */ me series of vectors in seconds. */
REAL8 deltaT; /**< The time step between samples of the ti REAL8 f0; /**< The heterodyning frequency, in Hertz (zero
me series of vectors in seconds. */ if not heterodyned). */
REAL8 f0; /**< The heterodyning frequency, in Hertz (zero LALUnit sampleUnits; /**< The physical units of the quantity
if not heterodyned). */ being sampled. */
LALUnit sampleUnits; /**< The physical units of the quantity REAL4VectorSequence *data; /**< The sequence of sampled data vectors. *
being sampled. */ /
REAL4VectorSequence *data; /**< The sequence of sampled data vectors. */ } REAL4TimeVectorSeries;
}
REAL4TimeVectorSeries;
/** Time series of REAL8 vectors, see \ref ss_TimeVectorSeries for more det ails. */ /** Time series of REAL8 vectors, see \ref ss_TimeVectorSeries for more det ails. */
typedef struct typedef struct tagREAL8TimeVectorSeries {
tagREAL8TimeVectorSeries CHAR name[LALNameLength]; /**< The name of the time serie
{ s of vectors. */
CHAR name[LALNameLength]; /**< The name of the time serie LIGOTimeGPS epoch; /**< The start time of the time series of vec
s of vectors. */ tors. */
LIGOTimeGPS epoch; /**< The start time of the time series of vec REAL8 deltaT; /**< The time step between samples of the ti
tors. */ me series of vectors in seconds. */
REAL8 deltaT; /**< The time step between samples of the ti REAL8 f0; /**< The heterodyning frequency, in Hertz (zero
me series of vectors in seconds. */ if not heterodyned). */
REAL8 f0; /**< The heterodyning frequency, in Hertz (zero LALUnit sampleUnits; /**< The physical units of the quantity
if not heterodyned). */ being sampled. */
LALUnit sampleUnits; /**< The physical units of the quantity REAL8VectorSequence *data; /**< The sequence of sampled data vectors. *
being sampled. */ /
REAL8VectorSequence *data; /**< The sequence of sampled data vectors. */ } REAL8TimeVectorSeries;
}
REAL8TimeVectorSeries;
/** Time series of COMPLEX8 vectors, see \ref ss_TimeVectorSeries for more details. */ /** Time series of COMPLEX8 vectors, see \ref ss_TimeVectorSeries for more details. */
typedef struct typedef struct tagCOMPLEX8TimeVectorSeries {
tagCOMPLEX8TimeVectorSeries CHAR name[LALNameLength]; /**< The name of the time s
{ eries of vectors. */
CHAR name[LALNameLength]; /**< The name of the time s LIGOTimeGPS epoch; /**< The start time of the time series of
eries of vectors. */ vectors. */
LIGOTimeGPS epoch; /**< The start time of the time series of REAL8 deltaT; /**< The time step between samples of th
vectors. */ e time series of vectors in seconds. */
REAL8 deltaT; /**< The time step between samples of th REAL8 f0; /**< The heterodyning frequency, in Hertz (z
e time series of vectors in seconds. */ ero if not heterodyned). */
REAL8 f0; /**< The heterodyning frequency, in Hertz (z LALUnit sampleUnits; /**< The physical units of the quan
ero if not heterodyned). */ tity being sampled. */
LALUnit sampleUnits; /**< The physical units of the quan COMPLEX8VectorSequence *data; /**< The sequence of sampled data vectors
tity being sampled. */ . */
COMPLEX8VectorSequence *data; /**< The sequence of sampled data vectors. } COMPLEX8TimeVectorSeries;
*/
}
COMPLEX8TimeVectorSeries;
/** Time series of COMPLEX16 vectors, see \ref ss_TimeVectorSeries for more details. */ /** Time series of COMPLEX16 vectors, see \ref ss_TimeVectorSeries for more details. */
typedef struct typedef struct tagCOMPLEX16TimeVectorSeries {
tagCOMPLEX16TimeVectorSeries CHAR name[LALNameLength]; /**< The name of the time
{ series of vectors. */
CHAR name[LALNameLength]; /**< The name of the time LIGOTimeGPS epoch; /**< The start time of the time series o
series of vectors. */ f vectors. */
LIGOTimeGPS epoch; /**< The start time of the time series o REAL8 deltaT; /**< The time step between samples of t
f vectors. */ he time series of vectors in seconds. */
REAL8 deltaT; /**< The time step between samples of t REAL8 f0; /**< The heterodyning frequency, in Hertz (
he time series of vectors in seconds. */ zero if not heterodyned). */
REAL8 f0; /**< The heterodyning frequency, in Hertz ( LALUnit sampleUnits; /**< The physical units of the qua
zero if not heterodyned). */ ntity being sampled. */
LALUnit sampleUnits; /**< The physical units of the qua COMPLEX16VectorSequence *data; /**< The sequence of sampled data vector
ntity being sampled. */ s. */
COMPLEX16VectorSequence *data; /**< The sequence of sampled data vectors } COMPLEX16TimeVectorSeries;
. */
}
COMPLEX16TimeVectorSeries;
/* ---------- TimeArraySeries ---------- */ /* ---------- TimeArraySeries ---------- */
/** See \ref ss_TimeArraySeries for documentation */ /** See \ref ss_TimeArraySeries for documentation */
typedef struct typedef struct tagINT2TimeArraySeries {
tagINT2TimeArraySeries CHAR name[LALNameLength];
{ LIGOTimeGPS epoch;
CHAR name[LALNameLength]; REAL8 deltaT;
LIGOTimeGPS epoch; REAL8 f0;
REAL8 deltaT; LALUnit sampleUnits;
REAL8 f0; INT2ArraySequence *data;
LALUnit sampleUnits; } INT2TimeArraySeries;
INT2ArraySequence *data;
}
INT2TimeArraySeries;
/** See \ref ss_TimeArraySeries for documentation */ /** See \ref ss_TimeArraySeries for documentation */
typedef struct typedef struct tagUINT2TimeArraySeries {
tagUINT2TimeArraySeries CHAR name[LALNameLength];
{ LIGOTimeGPS epoch;
CHAR name[LALNameLength]; REAL8 deltaT;
LIGOTimeGPS epoch; REAL8 f0;
REAL8 deltaT; LALUnit sampleUnits;
REAL8 f0; UINT2ArraySequence *data;
LALUnit sampleUnits; } UINT2TimeArraySeries;
UINT2ArraySequence *data;
}
UINT2TimeArraySeries;
/** See \ref ss_TimeArraySeries for documentation */ /** See \ref ss_TimeArraySeries for documentation */
typedef struct typedef struct tagINT4TimeArraySeries {
tagINT4TimeArraySeries CHAR name[LALNameLength];
{ LIGOTimeGPS epoch;
CHAR name[LALNameLength]; REAL8 deltaT;
LIGOTimeGPS epoch; REAL8 f0;
REAL8 deltaT; LALUnit sampleUnits;
REAL8 f0; INT4ArraySequence *data;
LALUnit sampleUnits; } INT4TimeArraySeries;
INT4ArraySequence *data;
}
INT4TimeArraySeries;
/** See \ref ss_TimeArraySeries for documentation */ /** See \ref ss_TimeArraySeries for documentation */
typedef struct typedef struct tagUINT4TimeArraySeries {
tagUINT4TimeArraySeries CHAR name[LALNameLength];
{ LIGOTimeGPS epoch;
CHAR name[LALNameLength]; REAL8 deltaT;
LIGOTimeGPS epoch; REAL8 f0;
REAL8 deltaT; LALUnit sampleUnits;
REAL8 f0; UINT4ArraySequence *data;
LALUnit sampleUnits; } UINT4TimeArraySeries;
UINT4ArraySequence *data;
}
UINT4TimeArraySeries;
/** See \ref ss_TimeArraySeries for documentation */ /** See \ref ss_TimeArraySeries for documentation */
typedef struct typedef struct tagINT8TimeArraySeries {
tagINT8TimeArraySeries CHAR name[LALNameLength];
{ LIGOTimeGPS epoch;
CHAR name[LALNameLength]; REAL8 deltaT;
LIGOTimeGPS epoch; REAL8 f0;
REAL8 deltaT; LALUnit sampleUnits;
REAL8 f0; INT8ArraySequence *data;
LALUnit sampleUnits; } INT8TimeArraySeries;
INT8ArraySequence *data;
}
INT8TimeArraySeries;
/** See \ref ss_TimeArraySeries for documentation */ /** See \ref ss_TimeArraySeries for documentation */
typedef struct typedef struct tagUINT8TimeArraySeries {
tagUINT8TimeArraySeries CHAR name[LALNameLength];
{ LIGOTimeGPS epoch;
CHAR name[LALNameLength]; REAL8 deltaT;
LIGOTimeGPS epoch; REAL8 f0;
REAL8 deltaT; LALUnit sampleUnits;
REAL8 f0; UINT8ArraySequence *data;
LALUnit sampleUnits; } UINT8TimeArraySeries;
UINT8ArraySequence *data;
}
UINT8TimeArraySeries;
/** See \ref ss_TimeArraySeries for documentation */ /** See \ref ss_TimeArraySeries for documentation */
typedef struct typedef struct tagREAL4TimeArraySeries {
tagREAL4TimeArraySeries CHAR name[LALNameLength];
{ LIGOTimeGPS epoch;
CHAR name[LALNameLength]; REAL8 deltaT;
LIGOTimeGPS epoch; REAL8 f0;
REAL8 deltaT; LALUnit sampleUnits;
REAL8 f0; REAL4ArraySequence *data;
LALUnit sampleUnits; } REAL4TimeArraySeries;
REAL4ArraySequence *data;
}
REAL4TimeArraySeries;
/** See \ref ss_TimeArraySeries for documentation */ /** See \ref ss_TimeArraySeries for documentation */
typedef struct typedef struct tagREAL8TimeArraySeries {
tagREAL8TimeArraySeries CHAR name[LALNameLength];
{ LIGOTimeGPS epoch;
CHAR name[LALNameLength]; REAL8 deltaT;
LIGOTimeGPS epoch; REAL8 f0;
REAL8 deltaT; LALUnit sampleUnits;
REAL8 f0; REAL8ArraySequence *data;
LALUnit sampleUnits; } REAL8TimeArraySeries;
REAL8ArraySequence *data;
}
REAL8TimeArraySeries;
/** See \ref ss_TimeArraySeries for documentation */ /** See \ref ss_TimeArraySeries for documentation */
typedef struct typedef struct tagCOMPLEX8TimeArraySeries {
tagCOMPLEX8TimeArraySeries CHAR name[LALNameLength];
{ LIGOTimeGPS epoch;
CHAR name[LALNameLength]; REAL8 deltaT;
LIGOTimeGPS epoch; REAL8 f0;
REAL8 deltaT; LALUnit sampleUnits;
REAL8 f0; COMPLEX8ArraySequence *data;
LALUnit sampleUnits; } COMPLEX8TimeArraySeries;
COMPLEX8ArraySequence *data;
}
COMPLEX8TimeArraySeries;
/** See \ref ss_TimeArraySeries for documentation */ /** See \ref ss_TimeArraySeries for documentation */
typedef struct typedef struct tagCOMPLEX16TimeArraySeries {
tagCOMPLEX16TimeArraySeries CHAR name[LALNameLength];
{ LIGOTimeGPS epoch;
CHAR name[LALNameLength]; REAL8 deltaT;
LIGOTimeGPS epoch; REAL8 f0;
REAL8 deltaT; LALUnit sampleUnits;
REAL8 f0; COMPLEX16ArraySequence *data;
LALUnit sampleUnits; } COMPLEX16TimeArraySeries;
COMPLEX16ArraySequence *data;
}
COMPLEX16TimeArraySeries;
/* ---------- FrequencySeries types ---------- */ /* ---------- FrequencySeries types ---------- */
/** See \ref ss_FrequencySeries for documentation */ /** See \ref ss_FrequencySeries for documentation */
typedef struct typedef struct tagINT2FrequencySeries {
tagINT2FrequencySeries CHAR name[LALNameLength];
{ LIGOTimeGPS epoch;
CHAR name[LALNameLength]; REAL8 f0;
LIGOTimeGPS epoch; REAL8 deltaF;
REAL8 f0; LALUnit sampleUnits;
REAL8 deltaF; INT2Sequence *data;
LALUnit sampleUnits; } INT2FrequencySeries;
INT2Sequence *data;
}
INT2FrequencySeries;
/** See \ref ss_FrequencySeries for documentation */ /** See \ref ss_FrequencySeries for documentation */
typedef struct typedef struct tagUINT2FrequencySeries {
tagUINT2FrequencySeries CHAR name[LALNameLength];
{ LIGOTimeGPS epoch;
CHAR name[LALNameLength]; REAL8 f0;
LIGOTimeGPS epoch; REAL8 deltaF;
REAL8 f0; LALUnit sampleUnits;
REAL8 deltaF; UINT2Sequence *data;
LALUnit sampleUnits; } UINT2FrequencySeries;
UINT2Sequence *data;
}
UINT2FrequencySeries;
/** See \ref ss_FrequencySeries for documentation */ /** See \ref ss_FrequencySeries for documentation */
typedef struct typedef struct tagINT4FrequencySeries {
tagINT4FrequencySeries CHAR name[LALNameLength];
{ LIGOTimeGPS epoch;
CHAR name[LALNameLength]; REAL8 f0;
LIGOTimeGPS epoch; REAL8 deltaF;
REAL8 f0; LALUnit sampleUnits;
REAL8 deltaF; INT4Sequence *data;
LALUnit sampleUnits; } INT4FrequencySeries;
INT4Sequence *data;
}
INT4FrequencySeries;
/** See \ref ss_FrequencySeries for documentation */ /** See \ref ss_FrequencySeries for documentation */
typedef struct typedef struct tagUINT4FrequencySeries {
tagUINT4FrequencySeries CHAR name[LALNameLength];
{ LIGOTimeGPS epoch;
CHAR name[LALNameLength]; REAL8 f0;
LIGOTimeGPS epoch; REAL8 deltaF;
REAL8 f0; LALUnit sampleUnits;
REAL8 deltaF; UINT4Sequence *data;
LALUnit sampleUnits; } UINT4FrequencySeries;
UINT4Sequence *data;
}
UINT4FrequencySeries;
/** See \ref ss_FrequencySeries for documentation */ /** See \ref ss_FrequencySeries for documentation */
typedef struct typedef struct tagINT8FrequencySeries {
tagINT8FrequencySeries CHAR name[LALNameLength];
{ LIGOTimeGPS epoch;
CHAR name[LALNameLength]; REAL8 f0;
LIGOTimeGPS epoch; REAL8 deltaF;
REAL8 f0; LALUnit sampleUnits;
REAL8 deltaF; INT8Sequence *data;
LALUnit sampleUnits; } INT8FrequencySeries;
INT8Sequence *data;
}
INT8FrequencySeries;
/** See \ref ss_FrequencySeries for documentation */ /** See \ref ss_FrequencySeries for documentation */
typedef struct typedef struct tagUINT8FrequencySeries {
tagUINT8FrequencySeries CHAR name[LALNameLength];
{ LIGOTimeGPS epoch;
CHAR name[LALNameLength]; REAL8 f0;
LIGOTimeGPS epoch; REAL8 deltaF;
REAL8 f0; LALUnit sampleUnits;
REAL8 deltaF; UINT8Sequence *data;
LALUnit sampleUnits; } UINT8FrequencySeries;
UINT8Sequence *data;
}
UINT8FrequencySeries;
/** See \ref ss_FrequencySeries for documentation */ /** See \ref ss_FrequencySeries for documentation */
typedef struct typedef struct tagREAL4FrequencySeries {
tagREAL4FrequencySeries CHAR name[LALNameLength];
{ LIGOTimeGPS epoch;
CHAR name[LALNameLength]; REAL8 f0;
LIGOTimeGPS epoch; REAL8 deltaF;
REAL8 f0; LALUnit sampleUnits;
REAL8 deltaF; REAL4Sequence *data;
LALUnit sampleUnits; } REAL4FrequencySeries;
REAL4Sequence *data;
}
REAL4FrequencySeries;
/** See \ref ss_FrequencySeries for documentation */ /** See \ref ss_FrequencySeries for documentation */
typedef struct typedef struct tagREAL8FrequencySeries {
tagREAL8FrequencySeries CHAR name[LALNameLength];
{ LIGOTimeGPS epoch;
CHAR name[LALNameLength]; REAL8 f0;
LIGOTimeGPS epoch; REAL8 deltaF;
REAL8 f0; LALUnit sampleUnits;
REAL8 deltaF; REAL8Sequence *data;
LALUnit sampleUnits; } REAL8FrequencySeries;
REAL8Sequence *data;
}
REAL8FrequencySeries;
/** See \ref ss_FrequencySeries for documentation */ /** See \ref ss_FrequencySeries for documentation */
typedef struct typedef struct tagCOMPLEX8FrequencySeries {
tagCOMPLEX8FrequencySeries CHAR name[LALNameLength];
{ LIGOTimeGPS epoch;
CHAR name[LALNameLength]; REAL8 f0;
LIGOTimeGPS epoch; REAL8 deltaF;
REAL8 f0; LALUnit sampleUnits;
REAL8 deltaF; COMPLEX8Sequence *data;
LALUnit sampleUnits; } COMPLEX8FrequencySeries;
COMPLEX8Sequence *data;
}
COMPLEX8FrequencySeries;
/** See \ref ss_FrequencySeries for documentation */ /** See \ref ss_FrequencySeries for documentation */
typedef struct typedef struct tagCOMPLEX16FrequencySeries {
tagCOMPLEX16FrequencySeries CHAR name[LALNameLength];
{ LIGOTimeGPS epoch;
CHAR name[LALNameLength]; REAL8 f0;
LIGOTimeGPS epoch; REAL8 deltaF;
REAL8 f0; LALUnit sampleUnits;
REAL8 deltaF; COMPLEX16Sequence *data;
LALUnit sampleUnits; } COMPLEX16FrequencySeries;
COMPLEX16Sequence *data;
}
COMPLEX16FrequencySeries;
/* ---------- ZPGFilter types ---------- */ /* ---------- ZPGFilter types ---------- */
/** See \ref ss_ZPGFilter for details */ /** See \ref ss_ZPGFilter for details */
typedef struct typedef struct tagCOMPLEX8ZPGFilter {
tagCOMPLEX8ZPGFilter CHAR name[LALNameLength];
{ REAL8 deltaT;
CHAR name[LALNameLength]; COMPLEX8Vector *zeros;
REAL8 deltaT; COMPLEX8Vector *poles;
COMPLEX8Vector *zeros; COMPLEX8 gain;
COMPLEX8Vector *poles; } COMPLEX8ZPGFilter;
COMPLEX8 gain;
}
COMPLEX8ZPGFilter;
/** See \ref ss_ZPGFilter for details */ /** See \ref ss_ZPGFilter for details */
typedef struct typedef struct tagCOMPLEX16ZPGFilter {
tagCOMPLEX16ZPGFilter CHAR name[LALNameLength];
{ REAL8 deltaT;
CHAR name[LALNameLength]; COMPLEX16Vector *zeros;
REAL8 deltaT; COMPLEX16Vector *poles;
COMPLEX16Vector *zeros; COMPLEX16 gain;
COMPLEX16Vector *poles; } COMPLEX16ZPGFilter;
COMPLEX16 gain;
}
COMPLEX16ZPGFilter;
/*@}*/ // end of LALDatatypes documentation group /*@} */// end of LALDatatypes documentation group
#ifndef SWIG /* exclude from SWIG interface */ #ifndef SWIG /* exclude from SWIG interface */
/** \ingroup LALStatusMacros_h /** \ingroup LALStatusMacros_h
* \brief LAL status structure, see \ref ss_LALStatus for more details. * \brief LAL status structure, see \ref ss_LALStatus for more details.
*/ */
typedef struct typedef struct tagLALStatus {
tagLALStatus INT4 statusCode; /**< A numerical code ident
{ ifying the type of error, or 0 for nominal status; Negative values are rese
INT4 statusCode; /**< A numerical code identi rved for certain standard error types */
fying the type of error, or 0 for nominal status; Negative values are reser const CHAR *statusDescription; /**< An explanatory string
ved for certain standard error types */ corresponding to the numerical status code */
const CHAR *statusDescription; /**< An explanatory string c volatile const CHAR *Id; /**< A character string ide
orresponding to the numerical status code */ ntifying the source file and version number of the function being reported
volatile const CHAR *Id; /**< A character string iden on */
tifying the source file and version number of the function being reported o const CHAR *function; /**< The name of the functi
n */ on */
const CHAR *function; /**< The name of the functio const CHAR *file; /**< The name of the source
n */ file containing the function code */
const CHAR *file; /**< The name of the source INT4 line; /**< The line number in the
file containing the function code */ source file where the current \c statusCode was set */
INT4 line; /**< The line number in the struct tagLALStatus *statusPtr; /**< Pointer to the next no
source file where the current \c statusCode was set */ de in the list; \c NULL if this function is not reporting a subroutine erro
struct tagLALStatus *statusPtr; /**< Pointer to the next nod r */
e in the list; \c NULL if this function is not reporting a subroutine error INT4 level; /**< The nested-function le
*/ vel where any error was reported */
INT4 level; /**< The nested-function lev } LALStatus;
el where any error was reported */
}
LALStatus;
#endif /* SWIG */ #endif /* SWIG */
#ifdef __cplusplus #if 0
{ /* so that editors will match succeeding brace */
#elif defined(__cplusplus)
} }
#endif #endif
#endif /* _LALDATATYPES_H */ #endif /* _LALDATATYPES_H */
 End of changes. 105 change blocks. 
1093 lines changed or deleted 856 lines changed or added


 LALError.h   LALError.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
*/ */
// ---------- SEE LALError.dox for doxygen documentation ---------- /* ---------- SEE LALError.dox for doxygen documentation ---------- */
#ifndef _LALERROR_H #ifndef _LALERROR_H
#define _LALERROR_H #define _LALERROR_H
#include <lal/LALDebugLevel.h>
#include <lal/LALDatatypes.h> #include <lal/LALDatatypes.h>
#include <lal/XLALError.h> #include <lal/XLALError.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#elif 0
} /* so that editors will match preceding brace */
#endif #endif
/* lalDebugLevel bit field values: */ #ifndef SWIG /* exclude from SWIG interface */
enum
{
LALNDEBUG = 0,
LALERROR = 1,
LALWARNING = 2,
LALINFO = 4,
LALTRACE = 8,
LALMEMINFO = 16,
LALNMEMDBG = 32,
LALNMEMPAD = 64,
LALNMEMTRK = 128,
LALMEMDBG = 16384 /* convenience: don't combine with other bits */
};
/* composite lalDebugLevels: */ extern int (*lalRaiseHook) (int, const char *, ...);
enum { LALMSGLVL1 = LALERROR }; extern void (*lalAbortHook) (const char *, ...);
enum { LALMSGLVL2 = LALERROR | LALWARNING };
enum { LALMSGLVL3 = LALERROR | LALWARNING | LALINFO };
enum { LALMEMTRACE = LALTRACE | LALMEMINFO };
enum { LALALLDBG = ~( LALNMEMDBG | LALNMEMPAD | LALNMEMTRK ) };
#ifndef SWIG /* exclude from SWIG interface */ /** \addtogroup LALError_h *//*@{ */
extern int ( *lalRaiseHook )( int, const char *, ... ); int LALPrintError(const char *fmt, ...);
extern void ( *lalAbortHook )( const char *, ... );
/** \addtogroup LALError_h */ /*@{*/ int LALRaise(int sig, const char *fmt, ...);
int
LALPrintError( const char *fmt, ... );
int void LALAbort(const char *fmt, ...);
LALRaise( int sig, const char *fmt, ... );
void int LALError(LALStatus * status, const char *statement);
LALAbort( const char *fmt, ... );
int
LALError( LALStatus *status, const char *statement );
int int LALWarning(LALStatus * status, const char *warning);
LALWarning( LALStatus *status, const char *warning );
int int LALInfo(LALStatus * status, const char *info);
LALInfo( LALStatus *status, const char *info );
int int LALTrace(LALStatus * status, int exitflg);
LALTrace( LALStatus *status, int exitflg );
/*@}*/ /*@}*/
int int
LALInitStatus( LALStatus *status, const char *function, const char *id, LALInitStatus(LALStatus * status, const char *function,
const char *file, const int line ); const char *id, const char *file, const int line);
int int LALPrepareReturn(LALStatus * status, const char *file, const int line);
LALPrepareReturn( LALStatus *status, const char *file, const int line );
int int
LALAttatchStatusPtr( LALStatus *status, const char *file, const int line ); LALAttatchStatusPtr(LALStatus * status, const char *file, const int line);
int int
LALDetatchStatusPtr( LALStatus *status, const char *file, const int line ); LALDetatchStatusPtr(LALStatus * status, const char *file, const int line);
int int
LALPrepareAbort( LALStatus *status, const INT4 code, const char *mesg, LALPrepareAbort(LALStatus * status, const INT4 code, const char *mesg,
const char *file, const int line ); const char *file, const int line);
int int
LALPrepareAssertFail( LALStatus *status, const INT4 code, const char *mesg, LALPrepareAssertFail(LALStatus * status, const INT4 code,
const char *statement, const char *file, const char *mesg, const char *statement,
const int line ); const char *file, const int line);
int int
LALCheckStatusPtr( LALStatus *status, const char *statement, const char *fi LALCheckStatusPtr(LALStatus * status, const char *statement,
le, const char *file, const int line);
const int line );
#ifdef NOLALMACROS #ifdef NOLALMACROS
void void FREESTATUSPTR(LALStatus * status);
FREESTATUSPTR( LALStatus *status );
void void REPORTSTATUS(LALStatus * status);
REPORTSTATUS( LALStatus *status );
#endif #endif
#ifdef NDEBUG #ifdef NDEBUG
#define LALError( statusptr, statement ) 0 #define LALError( statusptr, statement ) 0
#define LALWarning( statusptr, warning ) 0 #define LALWarning( statusptr, warning ) 0
#define LALInfo( statusptr, info ) 0 #define LALInfo( statusptr, info ) 0
#define LALTrace( statusptr, exitflg ) 0 #define LALTrace( statusptr, exitflg ) 0
skipping to change at line 167 skipping to change at line 140
(statusptr)->function, (statusptr)->file, (statusptr)->line, \ (statusptr)->function, (statusptr)->file, (statusptr)->line, \
(statusptr)->Id ) \ (statusptr)->Id ) \
: 0 ) : 0 )
#endif /* NOLALMACROS */ #endif /* NOLALMACROS */
#endif /* NDEBUG */ #endif /* NDEBUG */
#endif /* SWIG */ #endif /* SWIG */
#ifdef __cplusplus #if 0
{ /* so that editors will match succeeding brace */
#elif defined(__cplusplus)
} }
#endif #endif
#endif /* _LALERROR_H */ #endif /* _LALERROR_H */
 End of changes. 23 change blocks. 
59 lines changed or deleted 33 lines changed or added


 LALGSL.h   LALGSL.h 
skipping to change at line 127 skipping to change at line 127
#include <lal/LALMalloc.h> #include <lal/LALMalloc.h>
#include <lal/LALDatatypes.h> #include <lal/LALDatatypes.h>
#include <lal/LALError.h> #include <lal/LALError.h>
#include <lal/XLALGSL.h> #include <lal/XLALGSL.h>
#include <gsl/gsl_errno.h> #include <gsl/gsl_errno.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#elif 0
} /* so that editors will match preceding brace */
#endif #endif
#ifndef SWIG /* exclude from SWIG interface */ #ifndef SWIG /* exclude from SWIG interface */
extern LALStatus * lalGSLGlobalStatusPtr; extern LALStatus *lalGSLGlobalStatusPtr;
#endif /* SWIG */ #endif /* SWIG */
void void
LALGSLErrorHandler( LALGSLErrorHandler(const char *reason,
const char *reason, const char *file, int line, int errnum);
const char *file,
int line,
int errnum
);
#ifdef LAL_PTHREAD_LOCK #ifdef LAL_PTHREAD_LOCK
#include <pthread.h> #include <pthread.h>
extern pthread_mutex_t lalGSLPthreadMutex; extern pthread_mutex_t lalGSLPthreadMutex;
#define LALGSL_PTHREAD_MUTEX_LOCK pthread_mutex_lock( &lalGSLPthreadMutex ) #define LALGSL_PTHREAD_MUTEX_LOCK pthread_mutex_lock( &lalGSLPthreadMutex )
#define LALGSL_PTHREAD_MUTEX_UNLOCK pthread_mutex_unlock( &lalGSLPthreadMut ex ) #define LALGSL_PTHREAD_MUTEX_UNLOCK pthread_mutex_unlock( &lalGSLPthreadMut ex )
#else #else
#define LALGSL_PTHREAD_MUTEX_LOCK ((void)(0)) #define LALGSL_PTHREAD_MUTEX_LOCK ((void)(0))
#define LALGSL_PTHREAD_MUTEX_UNLOCK ((void)(0)) #define LALGSL_PTHREAD_MUTEX_UNLOCK ((void)(0))
#endif #endif
skipping to change at line 207 skipping to change at line 205
(void) LALError( statusptr, "Statement \"" #statement "\" failed:" ); \ (void) LALError( statusptr, "Statement \"" #statement "\" failed:" ); \
(void) LALTrace( statusptr, 1 ); \ (void) LALTrace( statusptr, 1 ); \
return; \ return; \
} \ } \
} \ } \
else \ else \
lalAbortHook( "Abort: CALLGSL, file %s, line %d\n" \ lalAbortHook( "Abort: CALLGSL, file %s, line %d\n" \
" Null status pointer passed to CALLGSL\n", \ " Null status pointer passed to CALLGSL\n", \
__FILE__, __LINE__ ) __FILE__, __LINE__ )
#ifdef __cplusplus #if 0
{ /* so that editors will match succeeding brace */
#elif defined(__cplusplus)
} }
#endif #endif
#endif /* _LALGSL_H */ #endif /* _LALGSL_H */
 End of changes. 5 change blocks. 
10 lines changed or deleted 9 lines changed or added


 LALMalloc.h   LALMalloc.h 
skipping to change at line 28 skipping to change at line 28
*/ */
#ifndef _LALMALLOC_H #ifndef _LALMALLOC_H
#define _LALMALLOC_H #define _LALMALLOC_H
#include <stddef.h> #include <stddef.h>
#include <lal/LALConfig.h> #include <lal/LALConfig.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#elif 0
} /* so that editors will match preceding brace */
#endif #endif
/** \addtogroup LALMalloc_h */ /*@{*/ /** \addtogroup LALMalloc_h *//*@{ */
void *XLALMalloc( size_t n ); void *XLALMalloc(size_t n);
void *XLALMallocLong( size_t n, const char *file, int line ); void *XLALMallocLong(size_t n, const char *file, int line);
void *XLALCalloc( size_t m, size_t n ); void *XLALCalloc(size_t m, size_t n);
void *XLALCallocLong( size_t m, size_t n, const char *file, int line ); void *XLALCallocLong(size_t m, size_t n, const char *file, int line);
void *XLALRealloc( void *p, size_t n ); void *XLALRealloc(void *p, size_t n);
void *XLALReallocLong( void *p, size_t n, const char *file, int line ); void *XLALReallocLong(void *p, size_t n, const char *file, int line);
void XLALFree( void *p ); void XLALFree(void *p);
#ifndef SWIG /* exclude from SWIG interface */ #ifndef SWIG /* exclude from SWIG interface */
#define XLALMalloc( n ) XLALMallocLong( n, __FILE__, __LINE__ ) #define XLALMalloc( n ) XLALMallocLong( n, __FILE__, __LINE__ )
#define XLALCalloc( m, n ) XLALCallocLong( m, n, __FILE__, __LINE__ ) #define XLALCalloc( m, n ) XLALCallocLong( m, n, __FILE__, __LINE__ )
#define XLALRealloc( p, n ) XLALReallocLong( p, n, __FILE__, __LINE__ ) #define XLALRealloc( p, n ) XLALReallocLong( p, n, __FILE__, __LINE__ )
#endif /* SWIG */ #endif /* SWIG */
/*@}*/ /*@}*/
#if defined NDEBUG || defined LAL_NDEBUG #if defined NDEBUG || defined LAL_NDEBUG
#ifndef SWIG /* exclude from SWIG interface */ #ifndef SWIG /* exclude from SWIG interface */
#define LALMalloc malloc #define LALMalloc malloc
#define LALMallocShort malloc #define LALMallocShort malloc
#define LALMallocLong( n, file, line ) malloc( n ) #define LALMallocLong( n, file, line ) malloc( n )
#define LALCalloc calloc #define LALCalloc calloc
#define LALCallocShort calloc #define LALCallocShort calloc
#define LALCallocLong( m, n, file, line ) calloc( m, n ) #define LALCallocLong( m, n, file, line ) calloc( m, n )
#define LALRealloc realloc #define LALRealloc realloc
#define LALReallocShort realloc #define LALReallocShort realloc
#define LALReallocLong( p, n, file, line ) realloc( p, n ) #define LALReallocLong( p, n, file, line ) realloc( p, n )
#define LALFree free #define LALFree free
#define LALCheckMemoryLeaks() #define LALCheckMemoryLeaks()
#endif /* SWIG */ #endif /* SWIG */
#else #else
#ifndef SWIG /* exclude from SWIG interface */ #ifndef SWIG /* exclude from SWIG interface */
#define LALMalloc( n ) LALMallocLong( n, __FILE__, __LINE__ ) #define LALMalloc( n ) LALMallocLong( n, __FILE__, __LINE__ )
#define LALCalloc( m, n ) LALCallocLong( m, n, __FILE__, __LINE__ ) #define LALCalloc( m, n ) LALCallocLong( m, n, __FILE__, __LINE__ )
#define LALRealloc( p, n ) LALReallocLong( p, n, __FILE__, __LINE__ ) #define LALRealloc( p, n ) LALReallocLong( p, n, __FILE__, __LINE__ )
#endif /* SWIG */ #endif /* SWIG */
/* global variables to assist in memory debugging */ /* global variables to assist in memory debugging */
/* watch the value of these variables to find a particular alloc/free */ /* watch the value of these variables to find a particular alloc/free */
#ifndef SWIG /* exclude from SWIG interface */ #ifndef SWIG /* exclude from SWIG interface */
extern char *lalMemDbgArgPtr; /* set to ptr arg in free or realloc */ extern char *lalMemDbgArgPtr; /* set to ptr arg in free or realloc */
extern char *lalMemDbgRetPtr; /* set to ptr returned in alloc functions extern char *lalMemDbgRetPtr; /* set to ptr returned in alloc functions *
*/ /
extern char *lalMemDbgPtr; /* set in both cases */ extern char *lalMemDbgPtr; /* set in both cases */
extern char *lalMemDbgUsrPtr; /* avaliable global memory pointer for use extern char *lalMemDbgUsrPtr; /* avaliable global memory pointer for user
r */ */
extern void **lalMemDbgUsrHndl; /* avaliable global memory handle for user extern void **lalMemDbgUsrHndl; /* avaliable global memory handle for user
*/ */
extern int lalIsMemDbgArgPtr; /* ( lalMemDbgUsrPtr == lalMemDbgArgPtr ) extern int lalIsMemDbgArgPtr; /* ( lalMemDbgUsrPtr == lalMemDbgArgPtr ) *
*/ /
extern int lalIsMemDbgRetPtr; /* ( lalMemDbgUsrPtr == lalMemDbgRetPtr ) extern int lalIsMemDbgRetPtr; /* ( lalMemDbgUsrPtr == lalMemDbgRetPtr ) *
*/ /
extern int lalIsMemDbgPtr; /* ( lalMemDbgUsrPtr == lalMemDbgPtr ) */ extern int lalIsMemDbgPtr; /* ( lalMemDbgUsrPtr == lalMemDbgPtr ) */
#endif /* SWIG */ #endif /* SWIG */
// ----- Prototypes /** \addtogroup LALMalloc_h *//*@{ */
/** \addtogroup LALMalloc_h */ /*@{*/ void *LALMallocShort(size_t n);
void *LALMallocShort( size_t n ); void *LALMallocLong(size_t n, const char *file, int line);
void *LALMallocLong( size_t n, const char *file, int line ); void *LALCallocShort(size_t m, size_t n);
void *LALCallocShort( size_t m, size_t n ); void LALFree(void *p);
void LALFree( void *p ); void *LALCallocLong(size_t m, size_t n, const char *file, int line);
void *LALCallocLong( size_t m, size_t n, const char *file, int line ); void *LALReallocShort(void *p, size_t n);
void *LALReallocShort( void *p, size_t n ); void *LALReallocLong(void *p, size_t n, const char *file, int line);
void *LALReallocLong( void *p, size_t n, const char *file, int line );
/*@}*/ /*@}*/
#endif /* NDEBUG || LAL_NDEBUG */ #endif /* NDEBUG || LAL_NDEBUG */
void (LALCheckMemoryLeaks)( void ); void (LALCheckMemoryLeaks) (void);
#ifdef __cplusplus #if 0
{ /* so that editors will match succeeding brace */
#elif defined(__cplusplus)
} }
#endif #endif
#endif /* _LALMALLOC_H */ #endif /* _LALMALLOC_H */
 End of changes. 9 change blocks. 
37 lines changed or deleted 39 lines changed or added


 LALStatusMacros.h   LALStatusMacros.h 
skipping to change at line 35 skipping to change at line 35
#include <lal/LALConfig.h> #include <lal/LALConfig.h>
#ifdef NDEBUG #ifdef NDEBUG
#ifndef LAL_NDEBUG #ifndef LAL_NDEBUG
#define LAL_NDEBUG #define LAL_NDEBUG
#endif #endif
#endif #endif
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <lal/LALDebugLevel.h>
#include <lal/LALMalloc.h> #include <lal/LALMalloc.h>
#include <lal/LALDatatypes.h> #include <lal/LALDatatypes.h>
#include <lal/LALError.h> #include <lal/LALError.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#elif 0
} /* so that editors will match preceding brace */
#endif #endif
extern int lalDebugLevel; /**< Global LAL debug level, see \ref ss_lal DebugLevel for more details */
extern const int lalNoDebug; extern const int lalNoDebug;
#define LAL_EXLAL 16384 #define LAL_EXLAL 16384
#define LAL_MSGEXLAL "Failure in an XLAL routine" #define LAL_MSGEXLAL "Failure in an XLAL routine"
#define ABORTXLAL(sp) ABORT(sp,LAL_EXLAL,LAL_MSGEXLAL) #define ABORTXLAL(sp) ABORT(sp,LAL_EXLAL,LAL_MSGEXLAL)
#ifndef NOLALMACROS #ifndef NOLALMACROS
#define INITSTATUS( statusptr ) \ #define INITSTATUS( statusptr ) \
do { if ( (statusptr) ) \ do { if ( (statusptr) ) \
skipping to change at line 263 skipping to change at line 265
} while ( 0 ) } while ( 0 )
#define SETSTATUSFILELINE( statusptr ) \ #define SETSTATUSFILELINE( statusptr ) \
( ( void ) ( (statusptr)->file = __FILE__, (statusptr)->line = __LINE__ ) ) ( ( void ) ( (statusptr)->file = __FILE__, (statusptr)->line = __LINE__ ) )
#define SETSTATUS( statusptr, code, mesg ) \ #define SETSTATUS( statusptr, code, mesg ) \
( SETSTATUSFILELINE( statusptr ), \ ( SETSTATUSFILELINE( statusptr ), \
(statusptr)->statusDescription = (mesg), \ (statusptr)->statusDescription = (mesg), \
(statusptr)->statusCode = (code) ) (statusptr)->statusCode = (code) )
#ifdef __cplusplus #if 0
{ /* so that editors will match succeeding brace */
#elif defined(__cplusplus)
} }
#endif #endif
#endif /* _LALSTATUSMACROS_H */ #endif /* _LALSTATUSMACROS_H */
 End of changes. 5 change blocks. 
3 lines changed or deleted 6 lines changed or added


 LALStdio.h   LALStdio.h 
skipping to change at line 41 skipping to change at line 41
*/ */
#ifndef _LALSTDIO_H #ifndef _LALSTDIO_H
#define _LALSTDIO_H #define _LALSTDIO_H
#include <stdio.h> #include <stdio.h>
#include <stdarg.h> #include <stdarg.h>
#include <inttypes.h> #include <inttypes.h>
#include <lal/LALConfig.h> #include <lal/LALConfig.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#elif 0
} /* so that editors will match preceding brace */
#endif #endif
#if LAL_BOINC_ENABLED #if LAL_BOINC_ENABLED
extern FILE* boinc_fopen(const char* path, const char* mode); extern FILE *boinc_fopen(const char *path, const char *mode);
#define LALFopen boinc_fopen #define LALFopen boinc_fopen
#else #else
#define LALFopen fopen #define LALFopen fopen
#endif #endif
#define LALFclose fclose #define LALFclose fclose
#define LAL_INT2_PRId PRId16 #define LAL_INT2_PRId PRId16
#define LAL_INT2_PRIi PRIi16 #define LAL_INT2_PRIi PRIi16
#define LAL_INT2_PRIo PRIo16 #define LAL_INT2_PRIo PRIo16
#define LAL_INT2_PRIu PRIu16 #define LAL_INT2_PRIu PRIu16
skipping to change at line 103 skipping to change at line 105
* either scanf or printf (decimal integers only) */ * either scanf or printf (decimal integers only) */
#define LAL_INT2_FORMAT LAL_INT2_SCNd #define LAL_INT2_FORMAT LAL_INT2_SCNd
#define LAL_INT4_FORMAT LAL_INT4_SCNd #define LAL_INT4_FORMAT LAL_INT4_SCNd
#define LAL_INT8_FORMAT LAL_INT8_SCNd #define LAL_INT8_FORMAT LAL_INT8_SCNd
#define LAL_UINT2_FORMAT LAL_INT2_SCNu #define LAL_UINT2_FORMAT LAL_INT2_SCNu
#define LAL_UINT4_FORMAT LAL_INT4_SCNu #define LAL_UINT4_FORMAT LAL_INT4_SCNu
#define LAL_UINT8_FORMAT LAL_INT8_SCNu #define LAL_UINT8_FORMAT LAL_INT8_SCNu
#define LAL_REAL4_FORMAT "g" #define LAL_REAL4_FORMAT "g"
#define LAL_REAL8_FORMAT "lg" #define LAL_REAL8_FORMAT "lg"
#ifdef __cplusplus #if 0
{ /* so that editors will match succeeding brace */
#elif defined(__cplusplus)
} }
#endif #endif
#endif /* _LALSTDIO_H */ #endif /* _LALSTDIO_H */
 End of changes. 5 change blocks. 
4 lines changed or deleted 7 lines changed or added


 LALString.h   LALString.h 
skipping to change at line 24 skipping to change at line 24
* 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 _LALSTRING_H #ifndef _LALSTRING_H
#define _LALSTRING_H #define _LALSTRING_H
#include <stddef.h> #include <stddef.h>
#include <lal/LALAtomicDatatypes.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#elif 0
} /* so that editors will match preceding brace */
#endif #endif
char * XLALStringAppend( char *s, const char *append ); char *XLALStringAppend(char *s, const char *append);
char * XLALStringDuplicate( const char *s ); char *XLALStringDuplicate(const char *s);
size_t XLALStringCopy( char *dst, const char *src, size_t size ); size_t XLALStringCopy(char *dst, const char *src, size_t size);
size_t XLALStringConcatenate( char *dst, const char *src, size_t size ); size_t XLALStringConcatenate(char *dst, const char *src, size_t size);
int XLALStringToLowerCase ( CHAR *string ); int XLALStringToLowerCase(CHAR * string);
#ifdef __cplusplus #if 0
{ /* so that editors will match succeeding brace */
#elif defined(__cplusplus)
} }
#endif #endif
#endif /* _LALSTRING_H */ #endif /* _LALSTRING_H */
 End of changes. 5 change blocks. 
9 lines changed or deleted 13 lines changed or added


 LALVCSInfo.h   LALVCSInfo.h 
skipping to change at line 33 skipping to change at line 33
#define _LALVCSINFO_H #define _LALVCSINFO_H
#include <lal/LALLibVCSInfo.h> #include <lal/LALLibVCSInfo.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
/* vcs information defines */ /* vcs information defines */
#define LAL_NAME "LAL" #define LAL_NAME "LAL"
#define LAL_VCS_ID "ac12d6c15bf45da08381cf3d1eb119d6b613e278" #define LAL_VCS_ID "93c2cc4647065f8954108d6fdb68b3497c5ee798"
#define LAL_VCS_DATE "2013-03-12 15:51:25 +0000" #define LAL_VCS_DATE "2013-06-27 15:59:46 +0000"
#define LAL_VCS_BRANCH "lalsuite-v6.15_release_prep" #define LAL_VCS_BRANCH "None"
#define LAL_VCS_TAG "None" #define LAL_VCS_TAG "lal-v6.11.0"
#define LAL_VCS_AUTHOR "Steffen Grunewald <steffen.grunewald@aei.mpg.de>" #define LAL_VCS_AUTHOR "Adam Mercer <adam.mercer@ligo.org>"
#define LAL_VCS_COMMITTER "Adam Mercer <adam.mercer@ligo.org>" #define LAL_VCS_COMMITTER "Adam Mercer <adam.mercer@ligo.org>"
#define LAL_VCS_STATUS "CLEAN: All modifications committed" #define LAL_VCS_STATUS "CLEAN: All modifications committed"
/* vcs information defines - identable*/ /* vcs information defines - identable*/
#define LAL_VCS_IDENT_ID "$" "LALId: ac12d6c15bf45da08381cf3d1eb119d6b613e2 #define LAL_VCS_IDENT_ID "$" "LALId: 93c2cc4647065f8954108d6fdb68b3497c5ee7
78 " "$" 98 " "$"
#define LAL_VCS_IDENT_DATE "$" "LALDate: 2013-03-12 15:51:25 +0000 " "$" #define LAL_VCS_IDENT_DATE "$" "LALDate: 2013-06-27 15:59:46 +0000 " "$"
#define LAL_VCS_IDENT_BRANCH "$" "LALBranch: lalsuite-v6.15_release_prep " #define LAL_VCS_IDENT_BRANCH "$" "LALBranch: None " "$"
"$" #define LAL_VCS_IDENT_TAG "$" "LALTag: lal-v6.11.0 " "$"
#define LAL_VCS_IDENT_TAG "$" "LALTag: None " "$" #define LAL_VCS_IDENT_AUTHOR "$" "LALAuthor: Adam Mercer <adam.mercer@ligo.
#define LAL_VCS_IDENT_AUTHOR "$" "LALAuthor: Steffen Grunewald <steffen.gru org> " "$"
newald@aei.mpg.de> " "$"
#define LAL_VCS_IDENT_COMMITTER "$" "LALCommitter: Adam Mercer <adam.mercer @ligo.org> " "$" #define LAL_VCS_IDENT_COMMITTER "$" "LALCommitter: Adam Mercer <adam.mercer @ligo.org> " "$"
#define LAL_VCS_IDENT_STATUS "$" "LALStatus: CLEAN: All modifications commi tted " "$" #define LAL_VCS_IDENT_STATUS "$" "LALStatus: CLEAN: All modifications commi tted " "$"
/* header vcs information structure */ /* header vcs information structure */
static const struct tagLALVCSInfo lalHeaderVCSInfo = { \ static const struct tagLALVCSInfo lalHeaderVCSInfo = { \
LAL_NAME, \ LAL_NAME, \
LAL_VERSION, \ LAL_VERSION, \
LAL_VCS_ID, \ LAL_VCS_ID, \
LAL_VCS_DATE, \ LAL_VCS_DATE, \
LAL_VCS_BRANCH, \ LAL_VCS_BRANCH, \
 End of changes. 2 change blocks. 
13 lines changed or deleted 12 lines changed or added


 LALVersion.h   LALVersion.h 
skipping to change at line 25 skipping to change at line 25
* 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 _LALVERSION_H #ifndef _LALVERSION_H
#define _LALVERSION_H #define _LALVERSION_H
#include <lal/LALDatatypes.h> #include <lal/LALDatatypes.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#elif 0
} /* so that editors will match preceding brace */
#endif #endif
/** /**
\addtogroup LALVersion_h \addtogroup LALVersion_h
\brief Provides routines for reporting the LAL version. \brief Provides routines for reporting the LAL version.
\heading{Synopsis} \heading{Synopsis}
\code \code
#include <lal/LALVersion.h> #include <lal/LALVersion.h>
skipping to change at line 53 skipping to change at line 55
extern const int lalVersionMajor; extern const int lalVersionMajor;
extern const int lalVersionMinor; extern const int lalVersionMinor;
extern const char *lalConfigureArgs; extern const char *lalConfigureArgs;
extern const char *lalConfigureDate; extern const char *lalConfigureDate;
\endcode \endcode
These constant variables are set at compile time and included into the LAL These constant variables are set at compile time and included into the LAL
library. They contain the information about the version of LAL and the library. They contain the information about the version of LAL and the
configuration information. configuration information.
*/ /*@{*/ *//*@{ */
/**\name Error Codes */ /*@{*/ /**\name Error Codes *//*@{ */
#define LALVERSIONH_ENULL 1 /**< Null string pointer */ #define LALVERSIONH_ENULL 1 /**< Null string pointer */
#define LALVERSIONH_ESIZE 2 /**< Zero string size */ #define LALVERSIONH_ESIZE 2 /**< Zero string size */
#define LALVERSIONH_ESPRN 4 /**< Error in snprintf */ #define LALVERSIONH_ESPRN 4 /**< Error in snprintf */
#define LALVERSIONH_ESHRT 8 /**< String too short */ #define LALVERSIONH_ESHRT 8 /**< String too short */
/*@}*/ /*@}*/
/*@}*/ /*@}*/
#define LALVERSIONH_MSGENULL "Null string pointer." #define LALVERSIONH_MSGENULL "Null string pointer."
#define LALVERSIONH_MSGESIZE "Zero string size." #define LALVERSIONH_MSGESIZE "Zero string size."
#define LALVERSIONH_MSGESPRN "Error in snprintf." #define LALVERSIONH_MSGESPRN "Error in snprintf."
#define LALVERSIONH_MSGESHRT "String too short." #define LALVERSIONH_MSGESHRT "String too short."
extern const char *const lalVersion; extern const char *const lalVersion;
extern const int lalVersionMajor; extern const int lalVersionMajor;
extern const int lalVersionMinor; extern const int lalVersionMinor;
extern const int lalVersionMicro; extern const int lalVersionMicro;
extern const int lalVersionDevel; extern const int lalVersionDevel;
extern const char *const lalBuildDate; extern const char *const lalBuildDate;
extern const char *const lalConfigureArgs; extern const char *const lalConfigureArgs;
extern const char *const lalConfigureDate; extern const char *const lalConfigureDate;
void void LALVersion(LALStatus * status, CHAR * message, UINT4 size,
LALVersion( LALStatus *status, CHAR *message, UINT4 size, INT4 verbose ); INT4 verbose);
#ifdef __cplusplus #if 0
{ /* so that editors will match succeeding brace */
#elif defined(__cplusplus)
} }
#endif #endif
#endif /* _LALVERSION_H */ #endif /* _LALVERSION_H */
 End of changes. 9 change blocks. 
15 lines changed or deleted 18 lines changed or added


 Segments.h   Segments.h 
skipping to change at line 215 skipping to change at line 215
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 );
LALSeg *
XLALSegListGet( LALSegList *seglist, UINT4 indx );
int XLALSegListIsInitialized ( const LALSegList *seglist ); int XLALSegListIsInitialized ( const LALSegList *seglist );
int XLALSegListInitSimpleSegments ( LALSegList *seglist, LIGOTimeGPS startT ime, UINT4 Nseg, REAL8 Tseg ); int XLALSegListInitSimpleSegments ( LALSegList *seglist, LIGOTimeGPS startT ime, UINT4 Nseg, REAL8 Tseg );
char *XLALSegList2String ( const LALSegList *seglist ); char *XLALSegList2String ( const LALSegList *seglist );
/*@}*/ /*@}*/
#if 0 #if 0
{ /* so that editors will match succeeding brace */ { /* so that editors will match succeeding brace */
#elif defined(__cplusplus) #elif defined(__cplusplus)
} }
 End of changes. 1 change blocks. 
0 lines changed or deleted 3 lines changed or added


 SimulateCoherentGW.h   SimulateCoherentGW.h 
skipping to change at line 26 skipping to change at line 26
* 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 _SIMULATECOHERENTGW_H #ifndef _SIMULATECOHERENTGW_H
#define _SIMULATECOHERENTGW_H #define _SIMULATECOHERENTGW_H
#include <lal/LALStdlib.h> #include <lal/LALStdlib.h>
#include <lal/DetectorSite.h> #include <lal/DetectorSite.h>
#include <lal/SkyCoordinates.h> #include <lal/SkyCoordinates.h>
#include <lal/LALBarycenter.h>
#if defined(__cplusplus) #if defined(__cplusplus)
extern "C" { extern "C" {
#elif 0 #elif 0
} /* so that editors will match preceding brace */ } /* so that editors will match preceding brace */
#endif #endif
/** /**
\addtogroup SimulateCoherentGW_h \addtogroup SimulateCoherentGW_h
\author Creighton, T. D. \author Creighton, T. D.
\deprecated This module is deprecated, please see LALSimulation for a re
placement.
*/
/*
\brief Provides routines to simulate generic gravitational waveforms \brief Provides routines to simulate generic gravitational waveforms
originating from a particular source. originating from a particular source.
\heading{Synopsis} \heading{Synopsis}
\code \code
#include <lal/SimulateCoherentGW.h> #include <lal/SimulateCoherentGW.h>
\endcode \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
skipping to change at line 248 skipping to change at line 249
of waveforms that are "effectively monochromatic" over some of waveforms that are "effectively monochromatic" over some
coherence timescale \f$t_\mathrm{coh}\f$; i.e.\ in any timespan coherence timescale \f$t_\mathrm{coh}\f$; i.e.\ in any timespan
\f$t_\mathrm{coh}\f$ 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 \f$90^\circ\f$ 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 \f$t_\mathrm{coh}\sim\dot{f}^{-1/2}\f $, smoothly-varying waveforms one has \f$t_\mathrm{coh}\sim\dot{f}^{-1/2}\f $,
which is much shorter than the evolution timescale \f$\tau\sim which is much shorter than the evolution timescale \f$\tau\sim
f/\dot{f}\f$ (provided \f$\tau\gg1/f\f$, as we have assumed). f/\dot{f}\f$ (provided \f$\tau\gg1/f\f$, as we have assumed).
*/ */
/*@{*/
/** \name Error Codes */ /* This structure stores a representation of a plane
/*@{*/
#define SIMULATECOHERENTGWH_ENUL 1 /**< Unexpected null pointer in argu
ments */
#define SIMULATECOHERENTGWH_EBAD 2 /**< A sampling interval is (effecti
vely) zero */
#define SIMULATECOHERENTGWH_ESIG 3 /**< Input signal must specify ampli
tude and phase functions */
#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_MSGEBAD "A sampling interval is (effectively)
zero"
#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_MSGEMEM "Memory allocation error"
#define SIMULATECOHERENTGWH_MSGEUNIT "Bad input units"
/** \endcond */
/** 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 * \note It is permissible to set only some of the
* \c REAL4TimeSeries or \c REAL4TimeVectorSeries fields above, * \c REAL4TimeSeries or \c REAL4TimeVectorSeries fields above,
* but the waveform is treated as being zero except during those times * 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. * 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 * 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 * 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 * 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 * overlap, or where \c h and any other time series overlap, they
* must be defined consistently. * must be defined consistently.
* *
*/ */
typedef struct tagCoherentGW { typedef struct tagCoherentGW {
SkyPosition position; /**< The location of the source in the sky; thi SkyPosition position; /*< The location of the source in the sky; this
s should be in equatorial celestial coordinates, but routines may be able t should be in equatorial celestial coordinates, but routines may be able to
o do the conversion */ do the conversion */
REAL4 psi; /**< The polarization angle \f$\psi\f$, in radi REAL4 psi; /*< The polarization angle \f$\psi\f$, in radia
ans, as defined in Appendix B of [\ref Anderson_W2000] */ ns, as defined in Appendix B of [\ref Anderson_W2000] */
REAL4TimeVectorSeries *h; /**< A time-sampled two-dimensional vector stor REAL4TimeVectorSeries *h; /*< A time-sampled two-dimensional vector stori
ing the waveforms \f$h_+(t)\f$ and \f$h_\times(t)\f$, in dimensionless stra ng the waveforms \f$h_+(t)\f$ and \f$h_\times(t)\f$, in dimensionless strai
in */ n */
REAL4TimeVectorSeries *a; /**< A time-sampled two-dimensional vector stor REAL4TimeVectorSeries *a; /*< A time-sampled two-dimensional vector stori
ing the amplitudes \f$A_1(t)\f$ and \f$A_2(t)\f$, in dimensionless strain * ng the amplitudes \f$A_1(t)\f$ and \f$A_2(t)\f$, in dimensionless strain */
/ REAL4TimeSeries *f; /*< A time-sampled sequence storing the instant
REAL4TimeSeries *f; /**< A time-sampled sequence storing the instan aneous frequency \f$f(t)\f$, in Hz. */
taneous frequency \f$f(t)\f$, in Hz. */ REAL8TimeSeries *phi; /*< A time-sampled sequence storing the phase f
REAL8TimeSeries *phi; /**< A time-sampled sequence storing the phase unction \f$\phi(t)\f$, in radians */
function \f$\phi(t)\f$, in radians */ REAL4TimeSeries *shift; /*< A time-sampled sequence storing the polariz
REAL4TimeSeries *shift; /**< A time-sampled sequence storing the polari ation shift \f$\Phi(t)\f$, in radians */
zation shift \f$\Phi(t)\f$, in radians */ UINT4 dtDelayBy2; /*< A user specified half-interval time step fo
UINT4 dtDelayBy2; /**< A user specified half-interval time step f r the Doppler delay look-up table (will default to 400s if set to 0) */
or the Doppler delay look-up table (will default to 400s if set to 0) */ UINT4 dtPolBy2; /*< A user defined half-interval time step for
UINT4 dtPolBy2; /**< A user defined half-interval time step for the polarisation response look-up table (will default to 300s if set to 0)
the polarisation response look-up table (will default to 300s if set to 0) */
*/
} CoherentGW; } CoherentGW;
/** This structure contains information required to determine the response /* This structure contains information required to determine the response
* of a detector to a gravitational waveform. * of a detector to a gravitational waveform.
*/ */
typedef struct tagDetectorResponse { typedef struct tagDetectorResponse {
COMPLEX8FrequencySeries *transfer; /**< The frequency-dependent transf er function of the interferometer, in ADC counts per unit strain amplitude at any given frequency; COMPLEX8FrequencySeries *transfer; /*< The frequency-dependent transfe r function of the interferometer, in ADC counts per unit strain amplitude a t any given frequency;
* if absent, the response will be given in raw strain rather than ADC output */ * if absent, the response will be given in raw strain rather than ADC output */
LALDetector *site; /**< A structure storing site and p olarization information, used to compute the polarization response and the propagation delay; LALDetector *site; /*< A structure storing site and po larization information, used to compute the polarization response and the p ropagation delay;
* if absent, the response will be computed to the plus mode waveform with no time delay */ * if absent, the response will be computed to the plus mode waveform with no time delay */
EphemerisData *ephemerides; /**< A structure storing the positi LIGOTimeGPS heterodyneEpoch; /*< A reference time for heterodyne
ons, velocities, and accelerations of the Earth and Sun centres of mass, us d detector output time series, where the phase of the mixing signal is zero
ed 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 heterodyn
ed detector output time series, where the phase of the mixing signal is zer
o.
* This parameter is only used when generating detector output time series with nonzero heterodyne frequency \ c f0. * 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 * (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.) * have to add it here.)
*/ */
} DetectorResponse; } DetectorResponse;
/* Function prototypes. */ /* Function prototypes. */
/** \deprecated This function is deprecated, please see LALSimulation for a replacement. */
void void
LALSimulateCoherentGW( LALStatus *status, LALSimulateCoherentGW( LALStatus *status,
REAL4TimeSeries *output, REAL4TimeSeries *output,
CoherentGW *input, CoherentGW *input,
DetectorResponse *detector ); DetectorResponse *detector );
/*@}*/
#if 0 #if 0
{ /* so that editors will match succeeding brace */ { /* so that editors will match succeeding brace */
#elif defined(__cplusplus) #elif defined(__cplusplus)
} }
#endif #endif
#endif /* _SIMULATECOHERENTGW_H */ #endif /* _SIMULATECOHERENTGW_H */
 End of changes. 11 change blocks. 
67 lines changed or deleted 33 lines changed or added


 Skymap.h   Skymap.h 
skipping to change at line 23 skipping to change at line 23
* Public License for more details. * Public License for more details.
* *
* 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 SKYMAP_H #ifndef SKYMAP_H
#define SKYMAP_H #define SKYMAP_H
/* Special cases for Python bindings of functions defined in this header.
* FIXME: add Octave section, or modify function declarations to work more
* smoothly with stock swiglal typemaps. */
#if defined(SWIG) && defined(SWIGPYTHON)
// special typemaps for XLALSkymapPlanConstruct
%typemap(in, noblock=1) (int n, int *detectors) (int i, PyObject *seq) {
seq = PySequence_Fast($input, "expected detectors to be a sequence");
if (!seq) SWIG_fail;
$1 = PySequence_Fast_GET_SIZE(seq);
$2 = ($2_type) calloc($1, sizeof($*2_type));
if (!$2)
{
Py_DECREF(seq);
SWIG_exception(SWIG_MemoryError,
"failed to allocate temporary memory");
}
for (i = 0; i < $1; i ++)
{
long longValue = PyInt_AsLong(PySequence_Fast_GET_ITEM(seq, i));
if (longValue == -1 && PyErr_Occurred())
{
Py_DECREF(seq);
SWIG_fail;
}
$2[i] = longValue;
}
Py_DECREF(seq);
}
%typemap(freearg, noblock=1) (int n, int *detectors) {
free($2);
}
%typemap(argout, noblock=1) (int n, int *detectors) "";
// special typemaps for XLALSkymapKernelConstruct
// and XLALSkymapUncertainKernelConstruct
%typemap(in, noblock=1) double *wSw (int i, int n, PyObject *seq) {
seq = PySequence_Fast($input, "expected direction to be a sequence");
if (!seq) SWIG_fail;
n = PySequence_Fast_GET_SIZE(seq);
$1 = ($1_type) calloc(n, sizeof($*1_type));
if (!$1)
{
Py_DECREF(seq);
SWIG_exception(SWIG_MemoryError,
"failed to allocate temporary memory");
}
for (i = 0; i < n; i ++)
{
double doubleValue = PyFloat_AsDouble(PySequence_Fast_GET_ITEM(seq,
i));
if (doubleValue == -1 && PyErr_Occurred())
{
Py_DECREF(seq);
SWIG_fail;
}
$1[i] = doubleValue;
}
Py_DECREF(seq);
}
%typemap(freearg, noblock=1) double *wSw {
free($1);
}
%typemap(argout, noblock=1) double *wSw "";
%apply double *wSw { double *error };
// special typemaps for XLALSkymapApply
%typemap(in, noblock=1) double **xSw (PyObject *seq, int n, int i) {
seq = PySequence_Fast($input, "expected xSw to be a sequence");
if (!seq) SWIG_fail;
n = PySequence_Fast_GET_SIZE(seq);
$1 = ($1_type) calloc(n, sizeof($*1_type));
if (!$1)
{
Py_DECREF(seq);
SWIG_exception(SWIG_MemoryError,
"failed to allocate temporary memory");
}
for (i = 0; i < n; i ++)
{
PyObject *arr;
int len;
void *data;
arr = PyArray_CheckFromAny(PySequence_Fast_GET_ITEM(seq, i),
PyArray_DescrFromType(NPY_DOUBLE), 1, 1,
NPY_IN_ARRAY | NPY_NOTSWAPPED, NULL);
if (!arr)
{
Py_DECREF(seq);
SWIG_fail;
}
len = PyArray_SIZE(arr);
data = malloc(len * sizeof(double));
if (!data)
{
Py_DECREF(arr);
Py_DECREF(seq);
SWIG_exception(SWIG_MemoryError,
"failed to allocate temporary memory");
}
memcpy(data, PyArray_DATA(arr), len * sizeof(double));
Py_DECREF(arr);
$1[i] = ($*1_type) data;
}
Py_DECREF(seq);
}
%typemap(argout, noblock=1) double **xSw {
}
%typemap(freearg, noblock=1) double **xSw (int i) {
for (i = 0; i < n$argnum; i ++)
free($1[i]);
free($1);
}
%typemap(in, noblock=1, numinputs=0) double *logPosterior (double ret) {
$1 = &ret;
}
%typemap(argout, noblock=1) double *logPosterior {
$result = PyFloat_FromDouble(*$1);
}
#endif
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#include <lal/LALDetectors.h> #include <lal/LALDetectors.h>
// Manipulate log-represented values without overflowing // Manipulate log-represented values without overflowing
double XLALSkymapLogSumExp(double a, double b); double XLALSkymapLogSumExp(double a, double b);
double XLALSkymapLogTotalExp(double* begin, double* end); double XLALSkymapLogTotalExp(double* begin, double* end);
 End of changes. 1 change blocks. 
132 lines changed or deleted 0 lines changed or added


 StringInput.h   StringInput.h 
skipping to change at line 29 skipping to change at line 29
#ifndef _STRINGINPUT_H #ifndef _STRINGINPUT_H
#define _STRINGINPUT_H #define _STRINGINPUT_H
#include <lal/LALStdlib.h> #include <lal/LALStdlib.h>
#include <lal/LALStdio.h> #include <lal/LALStdio.h>
#if defined(__cplusplus) #if defined(__cplusplus)
extern "C" { extern "C" {
#elif 0 #elif 0
} /* so that editors will match preceding brace */ } /* so that editors will match preceding brace */
#endif #endif
/** /**
\addtogroup StringInput_h \addtogroup StringInput_h
\author Creighton, T. D. \author Creighton, T. D.
\brief Provides routines to parse \c CHARVectors into other LAL datatype s. \brief Provides routines to parse \c CHARVectors into other LAL datatype s.
\heading{Synopsis} \heading{Synopsis}
\code \code
skipping to change at line 116 skipping to change at line 116
<tr><td>#LAL_UINT2_FORMAT</td><td><tt>"hu"</tt></td></tr> <tr><td>#LAL_UINT2_FORMAT</td><td><tt>"hu"</tt></td></tr>
<tr><td>#LAL_UINT4_FORMAT</td><td><tt>"u"</tt> or <tt>"lu"</tt></td></tr> <tr><td>#LAL_UINT4_FORMAT</td><td><tt>"u"</tt> or <tt>"lu"</tt></td></tr>
<tr><td>#LAL_UINT8_FORMAT</td><td><tt>"lu"</tt> or <tt>"llu"</tt></td></tr> <tr><td>#LAL_UINT8_FORMAT</td><td><tt>"lu"</tt> or <tt>"llu"</tt></td></tr>
<tr><td>#LAL_REAL4_FORMAT</td><td><tt>"f"</tt></td></tr> <tr><td>#LAL_REAL4_FORMAT</td><td><tt>"f"</tt></td></tr>
<tr><td>#LAL_REAL8_FORMAT</td><td><tt>"lf"</tt></td></tr> <tr><td>#LAL_REAL8_FORMAT</td><td><tt>"lf"</tt></td></tr>
</table> </table>
*/ */
/*@{*/ /*@{*/
/** \name Error Codes */ /*@{*/ /** \name Error Codes *//*@{ */
#define STRINGINPUTH_ENUL 1 /**< Unexpected null pointer in arguments */ #define STRINGINPUTH_ENUL 1 /**< Unexpected null pointer in arguments *
#define STRINGINPUTH_EOUT 2 /**< Output handle points to a non-null poin /
ter */ #define STRINGINPUTH_EOUT 2 /**< Output handle points to a non-null poi
#define STRINGINPUTH_EMEM 3 /**< Memory allocation error */ nter */
#define STRINGINPUTH_EMEM 3 /**< Memory allocation error */
/*@}*/ /*@}*/
/** \cond DONT_DOXYGEN */ /** \cond DONT_DOXYGEN */
#define STRINGINPUTH_MSGENUL "Unexpected null pointer in arguments" #define STRINGINPUTH_MSGENUL "Unexpected null pointer in arguments"
#define STRINGINPUTH_MSGEOUT "Output handle points to a non-null pointer" #define STRINGINPUTH_MSGEOUT "Output handle points to a non-null pointer"
#define STRINGINPUTH_MSGEMEM "Memory allocation error" #define STRINGINPUTH_MSGEMEM "Memory allocation error"
/** \endcond */ /** \endcond */
/** /**
* This structure stores a number of null-terminated strings of arbitrary * This structure stores a number of null-terminated strings of arbitrary
* length. The entire list is stored flattened in a \c CHARVector, * length. The entire list is stored flattened in a \c CHARVector,
* and individual tokens are pointed to by a <tt>CHAR *[]</tt> handle. * and individual tokens are pointed to by a <tt>CHAR *[]</tt> handle.
*/ */
typedef struct tagTokenList { typedef struct tagTokenList {
UINT4 nTokens; /**< The number of tokens in the list */ UINT4 nTokens; /**< The number of tokens in the list */
CHAR **tokens; /**< A list of pointers to the individual tokens; CHAR **tokens; /**< A list of pointers to the individual tokens;
* the elements <tt>tokens[0..nTokens-1]</tt> point to tokens, and * the elements <tt>tokens[0..nTokens-1]</tt> point to tokens, and
* the element <tt>tokens[nTokens]</tt> is explicitly \ c NULL (as is * the element <tt>tokens[nTokens]</tt> is explicitly \ c NULL (as is
the convention for an \c argv argument list */ the convention for an \c argv argument list */
CHARVector *list; /**< The flattened list of tokens, separated by (and te CHARVector *list;
rminated with) <tt>'\0'</tt> characters */ /**< The flattened list of tokens, separated by (and te
rminated with) <tt>'\0'</tt> characters */
} TokenList; } TokenList;
/*@}*/ /*@}*/
/* Function prototypes. */ /* Function prototypes. */
void void
LALCreateTokenList( LALStatus *status, LALCreateTokenList(LALStatus * status,
TokenList **list, TokenList ** list,
const CHAR *string, const CHAR * string, const CHAR * delimiters);
const CHAR *delimiters );
void void LALDestroyTokenList(LALStatus * status, TokenList ** list);
LALDestroyTokenList( LALStatus *status,
TokenList **list );
int int
XLALCreateTokenList( TokenList **list, XLALCreateTokenList(TokenList ** list,
const CHAR *string, const CHAR * string, const CHAR * delimiters);
const CHAR *delimiters );
void void XLALDestroyTokenList(TokenList * list);
XLALDestroyTokenList( TokenList *list );
void void
LALStringToU2( LALStatus *status, UINT2 *value, const CHAR *string, CHAR ** LALStringToU2(LALStatus * status, UINT2 * value, const CHAR * string,
endptr ); CHAR ** endptr);
void void
LALStringToU4( LALStatus *status, UINT4 *value, const CHAR *string, CHAR ** LALStringToU4(LALStatus * status, UINT4 * value, const CHAR * string,
endptr ); CHAR ** endptr);
void void
LALStringToU8( LALStatus *status, UINT8 *value, const CHAR *string, CHAR ** LALStringToU8(LALStatus * status, UINT8 * value, const CHAR * string,
endptr ); CHAR ** endptr);
void void
LALStringToI2( LALStatus *status, INT2 *value, const CHAR *string, CHAR **e LALStringToI2(LALStatus * status, INT2 * value, const CHAR * string,
ndptr ); CHAR ** endptr);
void void
LALStringToI4( LALStatus *status, INT4 *value, const CHAR *string, CHAR **e LALStringToI4(LALStatus * status, INT4 * value, const CHAR * string,
ndptr ); CHAR ** endptr);
void void
LALStringToI8( LALStatus *status, INT8 *value, const CHAR *string, CHAR **e LALStringToI8(LALStatus * status, INT8 * value, const CHAR * string,
ndptr ); CHAR ** endptr);
void void
LALStringToS( LALStatus *status, REAL4 *value, const CHAR *string, CHAR **e LALStringToS(LALStatus * status, REAL4 * value, const CHAR * string,
ndptr ); CHAR ** endptr);
void void
LALStringToD( LALStatus *status, REAL8 *value, const CHAR *string, CHAR **e LALStringToD(LALStatus * status, REAL8 * value, const CHAR * string,
ndptr ); CHAR ** endptr);
void void
LALStringToC( LALStatus *status, COMPLEX8 *value, const CHAR *string, CHAR LALStringToC(LALStatus * status, COMPLEX8 * value, const CHAR * string,
**endptr ); CHAR ** endptr);
void void
LALStringToZ( LALStatus *status, COMPLEX16 *value, const CHAR *string, CHAR LALStringToZ(LALStatus * status, COMPLEX16 * value, const CHAR * string,
**endptr ); CHAR ** endptr);
void void
LALStringToGPS( LALStatus *status, LIGOTimeGPS *value, const CHAR *string, LALStringToGPS(LALStatus * status, LIGOTimeGPS * value,
CHAR **endptr ); const CHAR * string, CHAR ** endptr);
#if 0 #if 0
{ /* so that editors will match succeeding brace */ { /* so that editors will match succeeding brace */
#elif defined(__cplusplus) #elif defined(__cplusplus)
} }
#endif #endif
#endif /* _STRINGINPUT_H */ #endif /* _STRINGINPUT_H */
 End of changes. 20 change blocks. 
45 lines changed or deleted 42 lines changed or added


 TriggerInterpolation.h   TriggerInterpolation.h 
skipping to change at line 134 skipping to change at line 134
* Perform interpolation using the allocated workspace. * Perform interpolation using the allocated workspace.
* *
* Perform interpolation around the matched-filter output data pointed to b y * Perform interpolation around the matched-filter output data pointed to b y
* \c y. There should exist \c window samples before and \c window samples * \c y. There should exist \c window samples before and \c window samples
* after this pointer. * after this pointer.
* *
* On success, set \c *tmax to the interpolated time, \c *ymax to the * On success, set \c *tmax to the interpolated time, \c *ymax to the
* complex interpolated signal, and return 0. On failure, return a non-zero GSL * complex interpolated signal, and return 0. On failure, return a non-zero GSL
* error code. * error code.
*/ */
int XLALApplyCubicSplineTriggerInterpolant( int XLALCOMPLEX16ApplyCubicSplineTriggerInterpolant(
CubicSplineTriggerInterpolant *interp, CubicSplineTriggerInterpolant *interp,
double *tmax, double *tmax,
COMPLEX16 *ymax, COMPLEX16 *ymax,
const COMPLEX16 *y); const COMPLEX16 *y);
int XLALCOMPLEX8ApplyCubicSplineTriggerInterpolant(
CubicSplineTriggerInterpolant *interp,
double *tmax,
COMPLEX8 *ymax,
const COMPLEX8 *y);
int XLALREAL8ApplyCubicSplineTriggerInterpolant(
CubicSplineTriggerInterpolant *interp,
double *tmax,
REAL8 *ymax,
const REAL8 *y);
int XLALREAL4ApplyCubicSplineTriggerInterpolant(
CubicSplineTriggerInterpolant *interp,
double *tmax,
REAL4 *ymax,
const REAL4 *y);
/* \} */ /* \} */
/** /**
* Lanczos interpolation * Lanczos interpolation
* *
* Convolve the data with a Lanczos reconstruction kernel and find the maxi mum * Convolve the data with a Lanczos reconstruction kernel and find the maxi mum
* of the absolute value using a one-dimensional numerical method. * of the absolute value using a one-dimensional numerical method.
* *
* \addtogroup LanczosTriggerInterpolant * \addtogroup LanczosTriggerInterpolant
* \{ * \{
skipping to change at line 181 skipping to change at line 199
* Perform interpolation using the allocated workspace. * Perform interpolation using the allocated workspace.
* *
* Perform interpolation around the matched-filter output data pointed to b y * Perform interpolation around the matched-filter output data pointed to b y
* \c y. There should exist \c window samples before and \c window samples * \c y. There should exist \c window samples before and \c window samples
* after this pointer. * after this pointer.
* *
* On success, set \c *tmax to the interpolated time, \c *ymax to the * On success, set \c *tmax to the interpolated time, \c *ymax to the
* complex interpolated signal, and return 0. On failure, return a non-zero GSL * complex interpolated signal, and return 0. On failure, return a non-zero GSL
* error code. * error code.
*/ */
int XLALApplyLanczosTriggerInterpolant( int XLALCOMPLEX16ApplyLanczosTriggerInterpolant(
LanczosTriggerInterpolant *interp, LanczosTriggerInterpolant *interp,
double *tmax, double *tmax,
COMPLEX16 *ymax, COMPLEX16 *ymax,
const COMPLEX16 *y); const COMPLEX16 *y);
int XLALCOMPLEX8ApplyLanczosTriggerInterpolant(
LanczosTriggerInterpolant *interp,
double *tmax,
COMPLEX8 *ymax,
const COMPLEX8 *y);
int XLALREAL8ApplyLanczosTriggerInterpolant(
LanczosTriggerInterpolant *interp,
double *tmax,
REAL8 *ymax,
const REAL8 *y);
int XLALREAL4ApplyLanczosTriggerInterpolant(
LanczosTriggerInterpolant *interp,
double *tmax,
REAL4 *ymax,
const REAL4 *y);
/* \} */ /* \} */
/** /**
* Nearest-neighbor interpolation * Nearest-neighbor interpolation
* *
* Perform trivial, nearest-neighbor interpolation. * Perform trivial, nearest-neighbor interpolation.
* Always sets <tt>*tmax = 0, *ymax = data[0]</tt>. * Always sets <tt>*tmax = 0, *ymax = data[0]</tt>.
* *
* \warning It is an error to request a nearest-neighbor workspace with a w indow * \warning It is an error to request a nearest-neighbor workspace with a w indow
* size not equal to 0. * size not equal to 0.
skipping to change at line 234 skipping to change at line 270
* Perform interpolation using the allocated workspace. * Perform interpolation using the allocated workspace.
* *
* Perform interpolation around the matched-filter output data pointed to b y * Perform interpolation around the matched-filter output data pointed to b y
* \c y. There should exist \c window samples before and \c window samples * \c y. There should exist \c window samples before and \c window samples
* after this pointer. * after this pointer.
* *
* On success, set \c *tmax to the interpolated time, \c *ymax to the * On success, set \c *tmax to the interpolated time, \c *ymax to the
* complex interpolated signal, and return 0. On failure, return a non-zero GSL * complex interpolated signal, and return 0. On failure, return a non-zero GSL
* error code. * error code.
*/ */
int XLALApplyNearestNeighborTriggerInterpolant( int XLALCOMPLEX16ApplyNearestNeighborTriggerInterpolant(
NearestNeighborTriggerInterpolant *interp, NearestNeighborTriggerInterpolant *interp,
double *tmax, double *tmax,
COMPLEX16 *ymax, COMPLEX16 *ymax,
const COMPLEX16 *y); const COMPLEX16 *y);
int XLALCOMPLEX8ApplyNearestNeighborTriggerInterpolant(
NearestNeighborTriggerInterpolant *interp,
double *tmax,
COMPLEX8 *ymax,
const COMPLEX8 *y);
int XLALREAL8ApplyNearestNeighborTriggerInterpolant(
NearestNeighborTriggerInterpolant *interp,
double *tmax,
REAL8 *ymax,
const REAL8 *y);
int XLALREAL4ApplyNearestNeighborTriggerInterpolant(
NearestNeighborTriggerInterpolant *interp,
double *tmax,
REAL4 *ymax,
const REAL4 *y);
/* \} */ /* \} */
/** /**
* Quadratic fit * Quadratic fit
* *
* Fit a quadratic function to the absolute value of the data. Report the s ample * Fit a quadratic function to the absolute value of the data. Report the s ample
* index of the vertex if the vertex is a maximum. Note that this is not * index of the vertex if the vertex is a maximum. Note that this is not
* actually an interpolant because it is not guaranteed to agree with the i nput * actually an interpolant because it is not guaranteed to agree with the i nput
* data points, and that it always sets *ymax = data[0]. * data points, and that it always sets *ymax = data[0].
* *
skipping to change at line 283 skipping to change at line 337
* Perform interpolation using the allocated workspace. * Perform interpolation using the allocated workspace.
* *
* Perform interpolation around the matched-filter output data pointed to b y * Perform interpolation around the matched-filter output data pointed to b y
* \c y. There should exist \c window samples before and \c window samples * \c y. There should exist \c window samples before and \c window samples
* after this pointer. * after this pointer.
* *
* On success, set \c *tmax to the interpolated time, \c *ymax to the * On success, set \c *tmax to the interpolated time, \c *ymax to the
* complex interpolated signal, and return 0. On failure, return a non-zero GSL * complex interpolated signal, and return 0. On failure, return a non-zero GSL
* error code. * error code.
*/ */
int XLALApplyQuadraticFitTriggerInterpolant( int XLALCOMPLEX16ApplyQuadraticFitTriggerInterpolant(
QuadraticFitTriggerInterpolant *interp, QuadraticFitTriggerInterpolant *interp,
double *tmax, double *tmax,
COMPLEX16 *ymax, COMPLEX16 *ymax,
const COMPLEX16 *y); const COMPLEX16 *y);
int XLALCOMPLEX8ApplyQuadraticFitTriggerInterpolant(
QuadraticFitTriggerInterpolant *interp,
double *tmax,
COMPLEX8 *ymax,
const COMPLEX8 *y);
int XLALREAL8ApplyQuadraticFitTriggerInterpolant(
QuadraticFitTriggerInterpolant *interp,
double *tmax,
REAL8 *ymax,
const REAL8 *y);
int XLALREAL4ApplyQuadraticFitTriggerInterpolant(
QuadraticFitTriggerInterpolant *interp,
double *tmax,
REAL4 *ymax,
const REAL4 *y);
/* \} */ /* \} */
/* \} */ /* \} */
#if 0 #if 0
{ /* so that editors will match succeeding brace */ { /* so that editors will match succeeding brace */
#elif defined(__cplusplus) #elif defined(__cplusplus)
} /* extern "C" */ } /* extern "C" */
#endif #endif
 End of changes. 8 change blocks. 
4 lines changed or deleted 76 lines changed or added


 Units.h   Units.h 
skipping to change at line 182 skipping to change at line 182
/* end: Units_h */ /* end: Units_h */
/********************************************************* /*********************************************************
* * * *
* Functions to manipulate unit structures * * Functions to manipulate unit structures *
* * * *
*********************************************************/ *********************************************************/
/* XLAL routines */ /* XLAL routines */
char * XLALUnitAsString( char *string, UINT4 length, const LALUnit *input ) ; char * XLALUnitAsString( char *string, UINT4 length, const LALUnit *input ) ;
char * XLALUnitToString( 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,
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 UserInput.h   UserInput.h 
skipping to change at line 49 skipping to change at line 49
This module provides simple function and macros to 'register' a set of C-v ariables as 'User Variables', This module provides simple function and macros to 'register' a set of C-v ariables as 'User Variables',
which can then be read in from the commandline and/or an input config file , as parsed by \ref ConfigFile_h. which can then be read in from the commandline and/or an input config file , as parsed by \ref ConfigFile_h.
The module handles generating and outputting a help-string on the availabl e inputs when requested, and The module handles generating and outputting a help-string on the availabl e inputs when requested, and
can deal with required inputs and providing defaults. can deal with required inputs and providing defaults.
\heading{Usage} \heading{Usage}
The general approach consists of these steps The general approach consists of these steps
<ol> <ol>
<li> read log-level from user-input using XLALGetDebugLevel() [<b>Note:</b > this must happend before and (X)LAL memory allocation!!]</li>
<li> set default-value for optional user-variables</li> <li> set default-value for optional user-variables</li>
<li> \c register all user-variables using calls to \c XLALRegister<TYPE>Us erVar(), or more conveniently, using the shortcut-macros <li> \c register all user-variables using calls to \c XLALRegister<TYPE>Us erVar(), or more conveniently, using the shortcut-macros
XLALreg<TYPE>UserStruct() that assume a struct-pointer named 'uvar' c ontaining all user-variables as 'uvar->UserVariable'.</li> XLALreg<TYPE>UserStruct() that assume a struct-pointer named 'uvar' c ontaining all user-variables as 'uvar->UserVariable'.</li>
<li> parse all user-input using XLALUserVarReadAllInput()</li> <li> parse all user-input using XLALUserVarReadAllInput()</li>
<li> At the end, free user-input structure</li> <li> At the end, free user-input structure</li>
</ol> </ol>
One can use XLALUserVarWasSet() to determine wheter the user specified inp ut for a given (optional) variable, or if it still has just its default val ue. One can use XLALUserVarWasSet() to determine wheter the user specified inp ut for a given (optional) variable, or if it still has just its default val ue.
The function XLALUserVarGetLog() can be used to obtain a log-string contai ning the full user-input, either in \c commandline- or \c ConfigFile format . The function XLALUserVarGetLog() can be used to obtain a log-string contai ning the full user-input, either in \c commandline- or \c ConfigFile format .
skipping to change at line 82 skipping to change at line 81
REAL8 specialGeekSwitch; REAL8 specialGeekSwitch;
} UserInput_t; } UserInput_t;
UserInput_t empty_UserInput; // this is zero-intialized! UserInput_t empty_UserInput; // this is zero-intialized!
int main(int argc,char *argv[]) int main(int argc,char *argv[])
{ {
UserInput_t UserVariables = empty_UserInput; // initializes this struct to {0} UserInput_t UserVariables = empty_UserInput; // initializes this struct to {0}
UserInput_t *uvar = &UserVariables; // struct-pointer allows us to use the XLALreg<TYPE>UserStruct() macros... UserInput_t *uvar = &UserVariables; // struct-pointer allows us to use the XLALreg<TYPE>UserStruct() macros...
// 1. step: read lal-debug level, using short-option '-v' // 1. step: set default-values for optional user-input variables
if ( XLALGetDebugLevel ( argc, argv, 'v') != XLAL_SUCCESS )
XLAL_ERROR ( XLAL_EFUNC );
// 2. step: set default-values for optional user-input variables
uvar->anInteger = 0; uvar->anInteger = 0;
uvar->andAString = NULL; // Note: need to assign allocated strings h ere as default!! uvar->andAString = NULL; // Note: need to assign allocated strings h ere as default!!
// 3. step: Register all user-variables using the shortcut macros: // 2. step: Register all user-variables using the shortcut macros:
XLALregBOOLUserStruct ( help, 'h', UVAR_HELP, "Outpu t this help-message"); XLALregBOOLUserStruct ( help, 'h', UVAR_HELP, "Outpu t this help-message");
XLALregINTUserStruct ( anInteger, 'i', UVAR_OPTIONAL, "An ex ample user-variable of an optional integer"); XLALregINTUserStruct ( anInteger, 'i', UVAR_OPTIONAL, "An ex ample user-variable of an optional integer");
XLALregREALUserStruct ( aDoubleVar, 'r', UVAR_REQUIRED, "This REAL8 user-variable is required"); XLALregREALUserStruct ( aDoubleVar, 'r', UVAR_REQUIRED, "This REAL8 user-variable is required");
XLALregSTRINGUserStruct( andAString, 0, UVAR_OPTIONAL, "Optio nal string-input, has no short-option"); XLALregSTRINGUserStruct( andAString, 0, UVAR_OPTIONAL, "Optio nal string-input, has no short-option");
XLALregREALUserStruct ( specialGeekSwitch, 'g', UVAR_DEVELOPER, "Thi s REAL8 user-variable is required"); XLALregREALUserStruct ( specialGeekSwitch, 'g', UVAR_DEVELOPER, "Thi s REAL8 user-variable is required");
// 4. step: parse all user-input, from either config-file if given, or c ommandline (overloads config-file values) // 3. step: parse all user-input, from either config-file if given, or c ommandline (overloads config-file values)
if ( XLALUserVarReadAllInput ( argc, argv ) != XLAL_SUCCESS ) if ( XLALUserVarReadAllInput ( argc, argv ) != XLAL_SUCCESS )
XLAL_ERROR ( XLAL_EFUNC ); XLAL_ERROR ( XLAL_EFUNC );
if (uvar->help) // if user had requested help, then we're already d one here if (uvar->help) // if user had requested help, then we're already d one here
return 0; return 0;
printf ("User-input was: anInteger = %d, aDoubleVar = %f, andAString = % s\n", uvar->anInteger, uvar->aDoubleVar, uvar->andAString ); printf ("User-input was: anInteger = %d, aDoubleVar = %f, andAString = % s\n", uvar->anInteger, uvar->aDoubleVar, uvar->andAString );
// 5. step: free user-input module memory // 4. step: free user-input module memory
XLALDestroyUserVars(); XLALDestroyUserVars();
LALCheckMemoryLeaks(); LALCheckMemoryLeaks();
return 0; return 0;
} // main() } // main()
\endcode \endcode
\note This code can be compiled <b>as is</b> within lalapps, and yields \note This code can be compiled <b>as is</b> within lalapps, and yields
\code \code
skipping to change at line 193 skipping to change at line 188
} UserVarLogFormat; } UserVarLogFormat;
/* Function prototypes */ /* Function prototypes */
void XLALDestroyUserVars( void ); void XLALDestroyUserVars( void );
int XLALUserVarReadCmdline (int argc, char *argv[]); int XLALUserVarReadCmdline (int argc, char *argv[]);
int XLALUserVarReadCfgfile ( const CHAR *cfgfile ); int XLALUserVarReadCfgfile ( const CHAR *cfgfile );
CHAR *XLALUserVarHelpString ( const CHAR *progname ); CHAR *XLALUserVarHelpString ( const CHAR *progname );
int XLALUserVarReadAllInput ( int argc, char *argv[] ); int XLALUserVarReadAllInput ( int argc, char *argv[] );
int XLALUserVarCheckRequired( void ); int XLALUserVarCheckRequired( void );
int XLALUserVarWasSet (const void *cvar); int XLALUserVarWasSet (const void *cvar);
int XLALGetDebugLevel (int argc, char *argv[], CHAR optchar);
CHAR * XLALUserVarGetLog ( UserVarLogFormat format ); CHAR * XLALUserVarGetLog ( UserVarLogFormat format );
/* type-specific wrappers to XLALRegisterUserVar() to allow type-checking! */ /* type-specific wrappers to XLALRegisterUserVar() to allow type-checking! */
int XLALRegisterREALUserVar ( const CHAR *name, CHAR optchar, UserVarState flag, const CHAR *helpstr, REAL8 *cvar ); int XLALRegisterREALUserVar ( const CHAR *name, CHAR optchar, UserVarState flag, const CHAR *helpstr, REAL8 *cvar );
int XLALRegisterINTUserVar ( const CHAR *name, CHAR optchar, UserVarState f lag, const CHAR *helpstr, INT4 *cvar ); int XLALRegisterINTUserVar ( const CHAR *name, CHAR optchar, UserVarState f lag, const CHAR *helpstr, INT4 *cvar );
int XLALRegisterBOOLUserVar ( const CHAR *name, CHAR optchar, UserVarState flag, const CHAR *helpstr, BOOLEAN *cvar ); int XLALRegisterBOOLUserVar ( const CHAR *name, CHAR optchar, UserVarState flag, const CHAR *helpstr, BOOLEAN *cvar );
int XLALRegisterSTRINGUserVar ( const CHAR *name, CHAR optchar, UserVarStat e flag, const CHAR *helpstr, CHAR **cvar ); int XLALRegisterSTRINGUserVar ( const CHAR *name, CHAR optchar, UserVarStat e flag, const CHAR *helpstr, CHAR **cvar );
int XLALRegisterLISTUserVar ( const CHAR *name, CHAR optchar, UserVarState flag, const CHAR *helpstr, LALStringVector **cvar); int XLALRegisterLISTUserVar ( const CHAR *name, CHAR optchar, UserVarState flag, const CHAR *helpstr, LALStringVector **cvar);
/* ========== Deprecated LAL interface wrappers ========== */ /* ========== Deprecated LAL interface wrappers ========== */
skipping to change at line 288 skipping to change at line 282
void LALDestroyUserVars (LALStatus *); void LALDestroyUserVars (LALStatus *);
void LALUserVarReadAllInput(LALStatus *, int argc, char *argv[]); void LALUserVarReadAllInput(LALStatus *, int argc, char *argv[]);
void LALUserVarReadCmdline (LALStatus *, int argc, char *argv[]); void LALUserVarReadCmdline (LALStatus *, int argc, char *argv[]);
void LALUserVarReadCfgfile (LALStatus *, const CHAR *cfgfile); void LALUserVarReadCfgfile (LALStatus *, const CHAR *cfgfile);
void LALUserVarHelpString (LALStatus *, CHAR **helpstring, const CHAR *prog name); void LALUserVarHelpString (LALStatus *, CHAR **helpstring, const CHAR *prog name);
void LALUserVarCheckRequired (LALStatus *); void LALUserVarCheckRequired (LALStatus *);
INT4 LALUserVarWasSet (const void *cvar); INT4 LALUserVarWasSet (const void *cvar);
void LALGetDebugLevel (LALStatus *, int argc, char *argv[], CHAR optchar);
void LALUserVarGetLog (LALStatus *, CHAR **logstr, UserVarLogFormat format ); void LALUserVarGetLog (LALStatus *, CHAR **logstr, UserVarLogFormat format );
#if 0 #if 0
void LALUserVarGetProcParamsTable (LALStatus *status, ProcessParamsTable ** out, CHAR *progname); void LALUserVarGetProcParamsTable (LALStatus *status, ProcessParamsTable ** out, CHAR *progname);
#endif #endif
/*@}*/ /*@}*/
/*@}*/ /*@}*/
#ifdef __cplusplus #ifdef __cplusplus
 End of changes. 7 change blocks. 
11 lines changed or deleted 4 lines changed or added


 XLALError.h   XLALError.h 
skipping to change at line 30 skipping to change at line 30
#ifndef XLALERROR_H #ifndef XLALERROR_H
#define XLALERROR_H #define XLALERROR_H
#include <stdarg.h> #include <stdarg.h>
#include <stddef.h> #include <stddef.h>
#include <lal/LALAtomicDatatypes.h> #include <lal/LALAtomicDatatypes.h>
#if defined(__cplusplus) #if defined(__cplusplus)
extern "C" { extern "C" {
#elif 0 #elif 0
} /* so that editors will match preceding brace */ } /* so that editors will match preceding brace */
#endif #endif
/** /**
* \addtogroup XLALError_h * \addtogroup XLALError_h
* \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 * \brief This header covers routines to provide the XLAL interface error
* handling. * handling.
* *
* \heading{XLAL Errors} * \heading{XLAL Errors}
skipping to change at line 158 skipping to change at line 158
/** 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 */ #ifndef SWIG /* exclude from SWIG interface */
/** Prints an error message if error printing is enabled by lalDebugLevel. */ /** Prints an error message if error printing is enabled by lalDebugLevel. */
int XLALVPrintError(const char *fmt, va_list ap); int XLALVPrintError(const char *fmt, va_list ap);
/** 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 XLALVPrintWarning(const char *fmt, va_list ap); int XLALVPrintWarning(const char *fmt, va_list ap);
/** Prints an info message if info printing is enabled by lalDebugLevel. */ /** Prints an info message if info printing is enabled by lalDebugLevel. */
int XLALVPrintInfo(const char *fmt, va_list ap); int XLALVPrintInfo(const char *fmt, va_list ap);
#endif /* SWIG */ #endif /* SWIG */
/* /*
* *
* Miscelaneous routines to print information with standard formatting. * Miscelaneous routines to print information with standard formatting.
* *
*/ */
/** Print an error message with standard XLAL formatting (if error messages /** Print an error message with standard XLAL formatting (if error messages
* are enabled by lalDebugLevel). */ * are enabled by lalDebugLevel). */
void XLALPrintErrorMessage(const char *func, const char *file, int line, co void XLALPrintErrorMessage(const char *func, const char *file, int line,
nst char *fmt, ...); const char *fmt, ...);
/** Print an warning message with standard XLAL formatting (if warning mess ages /** Print an warning message with standard XLAL formatting (if warning mess ages
* are enabled by lalDebugLevel). */ * are enabled by lalDebugLevel). */
void XLALPrintWarningMessage(const char *func, const char *file, int line, void XLALPrintWarningMessage(const char *func, const char *file, int line,
const char *fmt, ...); const char *fmt, ...);
/** Print an info message with standard XLAL formatting (if info messages /** Print an info message with standard XLAL formatting (if info messages
* are enabled by lalDebugLevel). */ * are enabled by lalDebugLevel). */
void XLALPrintInfoMessage(const char *func, const char *file, int line, con void XLALPrintInfoMessage(const char *func, const char *file, int line,
st char *fmt, ...); const char *fmt, ...);
#ifndef SWIG /* exclude from SWIG interface */ #ifndef SWIG /* exclude from SWIG interface */
/** Print an error message with standard XLAL formatting (if error messages /** Print an error message with standard XLAL formatting (if error messages
* are enabled by lalDebugLevel). */ * are enabled by lalDebugLevel). */
void XLALVPrintErrorMessage(const char *func, const char *file, int line, c void XLALVPrintErrorMessage(const char *func, const char *file, int line,
onst char *fmt, va_list ap); const char *fmt, va_list ap);
/** Print an warning message with standard XLAL formatting (if warning mess ages /** Print an warning message with standard XLAL formatting (if warning mess ages
* are enabled by lalDebugLevel). */ * are enabled by lalDebugLevel). */
void XLALVPrintWarningMessage(const char *func, const char *file, int line, void XLALVPrintWarningMessage(const char *func, const char *file, int line,
const char *fmt, va_list ap); const char *fmt, va_list ap);
/** Print an error message with standard XLAL formatting (if error messages /** Print an error message with standard XLAL formatting (if error messages
* are enabled by lalDebugLevel). */ * are enabled by lalDebugLevel). */
void XLALVPrintInfoMessage(const char *func, const char *file, int line, co void XLALVPrintInfoMessage(const char *func, const char *file, int line,
nst char *fmt, va_list ap); const char *fmt, va_list ap);
#endif /* SWIG */ #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);
/* /*
skipping to change at line 297 skipping to change at line 303
/* /*
* 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 i f a * can be easily inlined by the compiler; similarly, the routines to test i f a
* value is the LAL failure NaN can also be inlined. * 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_NA volatile const union {
N_INT } ; INT4 i;
return val.x; REAL4 x;
} val = {
XLAL_REAL4_FAIL_NAN_INT};
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_NA volatile const union {
N_INT } ; INT8 i;
return val.x; REAL8 x;
} val = {
XLAL_REAL8_FAIL_NAN_INT};
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_REAL volatile const union {
4_FAIL_NAN_INT } ; INT4 i;
volatile union { REAL4 x; unsigned char s[4]; } b; unsigned char s[4];
size_t n; } a = {
b.x = val; XLAL_REAL4_FAIL_NAN_INT};
for (n = 0; n < sizeof(val); ++n) volatile union {
if (a.s[n] != b.s[n]) REAL4 x;
return 0; unsigned char s[4];
return 1; } b;
size_t n;
b.x = val;
for (n = 0; n < sizeof(val); ++n)
if (a.s[n] != b.s[n])
return 0;
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_REAL volatile const union {
8_FAIL_NAN_INT } ; INT8 i;
volatile union { REAL8 x; unsigned char s[8]; } b; unsigned char s[8];
size_t n; } a = {
b.x = val; XLAL_REAL8_FAIL_NAN_INT};
for (n = 0; n < sizeof(val); ++n) volatile union {
if (a.s[n] != b.s[n]) REAL8 x;
return 0; unsigned char s[8];
return 1; } b;
size_t n;
b.x = val;
for (n = 0; n < sizeof(val); ++n)
if (a.s[n] != b.s[n])
return 0;
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 ... /* extended error numbers start at 128 ...
* should be beyond normal errnos */ * 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 XLAL_EFPINVAL = 256, /**< IEEE Invalid floating point operation, e
sqrt(-1), 0/0 */ g sqrt(-1), 0/0 */
XLAL_EFPDIV0 = 257, /**< IEEE Division by zero floating point erro XLAL_EFPDIV0 = 257, /**< IEEE Division by zero floating point err
r */ or */
XLAL_EFPOVRFLW = 258, /**< IEEE Floating point overflow error */ XLAL_EFPOVRFLW = 258, /**< IEEE Floating point overflow error */
XLAL_EFPUNDFLW = 259, /**< IEEE Floating point underflow error */ XLAL_EFPUNDFLW = 259, /**< IEEE Floating point underflow error */
XLAL_EFPINEXCT = 260, /**< IEEE Floating point inexact 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"
XLAL_EFUNC = 1024 /**< Internal function call failed bit: "or" t this with existing error number */
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( ) 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 */ #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 l typedef void XLALErrorHandlerType(const char *func, const char *file,
ine, int errnum); int line, int errnum);
/** The default XLAL error handler. */ /** The default XLAL error handler. */
void XLALDefaultErrorHandler(const char *func, const char *file, int line, void XLALDefaultErrorHandler(const char *func, const char *file, int line,
int errnum); int errnum);
/** A silent XLAL error handler. */ /** A silent XLAL error handler. */
void XLALSilentErrorHandler(const char *func, const char *file, int line, i void XLALSilentErrorHandler(const char *func, const char *file, int line,
nt errnum); int 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, in void XLALAbortErrorHandler(const char *func, const char *file, int line,
t errnum); int 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, int void XLALExitErrorHandler(const char *func, const char *file, int line,
errnum); 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 line void XLALBacktraceErrorHandler(const char *func, const char *file,
, int errnum); int line, int errnum);
/** Function to return pointer to the XLAL error handler function pointer. */ /** Function to return pointer to the XLAL error handler function pointer. */
XLALErrorHandlerType ** XLALGetErrorHandlerPtr( void ); 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 *newHandler 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 */ #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.
* *
*/ */
#ifdef SWIG /* SWIG interface directives */ #ifdef SWIG /* SWIG interface directives */
SWIGLAL(DISABLE_EXCEPTIONS(XLALSetErrno, XLALGetBaseErrno, XLALClearErrno)) ; SWIGLAL(DISABLE_EXCEPTIONS(XLALSetErrno, XLALGetBaseErrno, XLALClearErrno)) ;
#endif /* SWIG */ #endif /* SWIG */
/** 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. */
skipping to change at line 494 skipping to change at line 530
* 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);
/* 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
skipping to change at line 534 skipping to change at line 570
* 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,
const char *func, /**< name of function where the error occurs */ /**< name of function where the error occurs */
const char *file, /**< source file name (use the __FILE__ macro) */ const char *file,
int line, /**< source line number (use the __LINE__ macro) * /**< source file name (use the __FILE__ macro) */
/ int line, /**< source line number (use the __LINE__ macro)
int errnum /**< error code */ */
); int errnum /**< error code */
);
/** \brief Macro to invoke the <tt>XLALError()</tt> function and return /** \brief Macro to invoke the <tt>XLALError()</tt> function and return
* with code val (it should not really be used itself, but forms the basis for * with code val (it should not really be used itself, but forms the basis for
* other macros). * other macros).
* *
* Prototype: <b>XLAL_ERROR_VAL(val, errnum [, fmt [, ...]])</b> * Prototype: <b>XLAL_ERROR_VAL(val, errnum [, fmt [, ...]])</b>
* *
* \b Parameters:<ul> * \b Parameters:<ul>
* <li> \b val The value to return. * <li> \b val The value to return.
* <li> \b errnum The XLAL error number to set. * <li> \b errnum The XLAL error number to set.
skipping to change at line 734 skipping to change at line 771
* <li> \b fmt (Optional) Format string for additional error information. * <li> \b fmt (Optional) Format string for additional error information.
* <li> \b ... (Optional) Additional arguments for printf-like format. * <li> \b ... (Optional) Additional arguments for printf-like format.
* </ul> * </ul>
*/ */
#define XLAL_CHECK_REAL8(assertion, ...) \ #define XLAL_CHECK_REAL8(assertion, ...) \
XLAL_CHECK_VAL(XLAL_REAL8_FAIL_NAN, assertion, __VA_ARGS__) XLAL_CHECK_VAL(XLAL_REAL8_FAIL_NAN, assertion, __VA_ARGS__)
/*@}*/ /*@}*/
#if 0 #if 0
{ /* so that editors will match succeeding brace */ { /* so that editors will match succeeding brace */
#elif defined(__cplusplus) #elif defined(__cplusplus)
} }
#endif #endif
#endif /* XLALERROR_H */ #endif /* XLALERROR_H */
 End of changes. 33 change blocks. 
132 lines changed or deleted 151 lines changed or added


 XLALGSL.h   XLALGSL.h 
skipping to change at line 28 skipping to change at line 28
*/ */
#ifndef XLALGSL_H #ifndef XLALGSL_H
#define XLALGSL_H #define XLALGSL_H
#include <gsl/gsl_errno.h> #include <gsl/gsl_errno.h>
#include <lal/LALConfig.h> #include <lal/LALConfig.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#elif 0
} /* so that editors will match preceding brace */
#endif #endif
#ifdef LAL_PTHREAD_LOCK #ifdef LAL_PTHREAD_LOCK
#include <pthread.h> #include <pthread.h>
extern pthread_mutex_t lalGSLPthreadMutex; extern pthread_mutex_t lalGSLPthreadMutex;
#define XLALGSL_PTHREAD_MUTEX_LOCK pthread_mutex_lock( &lalGSLPthreadMutex ) #define XLALGSL_PTHREAD_MUTEX_LOCK pthread_mutex_lock( &lalGSLPthreadMutex )
#define XLALGSL_PTHREAD_MUTEX_UNLOCK pthread_mutex_unlock( &lalGSLPthreadMu tex ) #define XLALGSL_PTHREAD_MUTEX_UNLOCK pthread_mutex_unlock( &lalGSLPthreadMu tex )
#else #else
#define XLALGSL_PTHREAD_MUTEX_LOCK ((void)(0)) #define XLALGSL_PTHREAD_MUTEX_LOCK ((void)(0))
#define XLALGSL_PTHREAD_MUTEX_UNLOCK ((void)(0)) #define XLALGSL_PTHREAD_MUTEX_UNLOCK ((void)(0))
skipping to change at line 50 skipping to change at line 52
#define XLAL_CALLGSL( statement ) \ #define XLAL_CALLGSL( statement ) \
do { \ do { \
gsl_error_handler_t *saveGSLErrorHandler_; \ gsl_error_handler_t *saveGSLErrorHandler_; \
XLALGSL_PTHREAD_MUTEX_LOCK; \ XLALGSL_PTHREAD_MUTEX_LOCK; \
saveGSLErrorHandler_ = gsl_set_error_handler_off(); \ saveGSLErrorHandler_ = gsl_set_error_handler_off(); \
statement; \ statement; \
gsl_set_error_handler( saveGSLErrorHandler_ ); \ gsl_set_error_handler( saveGSLErrorHandler_ ); \
XLALGSL_PTHREAD_MUTEX_UNLOCK; \ XLALGSL_PTHREAD_MUTEX_UNLOCK; \
} while (0) } while (0)
#ifdef __cplusplus #if 0
{ /* so that editors will match succeeding brace */
#elif defined(__cplusplus)
} }
#endif #endif
#endif /* XLALGSL_H */ #endif /* XLALGSL_H */
 End of changes. 3 change blocks. 
2 lines changed or deleted 5 lines changed or added


 lalswig_error.i   lalswig_error.i 
skipping to change at line 34 skipping to change at line 34
#ifdef SWIG #ifdef SWIG
// Replace default LAL raise/abort hooks with custom handlers which // Replace default LAL raise/abort hooks with custom handlers which
// translate them into an XLAL error, so that they will be caught // translate them into an XLAL error, so that they will be caught
// by the SWIG %exception handler. // by the SWIG %exception handler.
%header %{ %header %{
#include <signal.h> #include <signal.h>
// Print the supplied error message, then raise an XLAL error. // Print the supplied error message, then raise an XLAL error.
int lalswig_LALRaise(int sig, const char *fmt, ...) { static int lalswig_LALRaise(int sig, const char *fmt, ...) {
va_list ap; va_list ap;
va_start(ap, fmt); va_start(ap, fmt);
(void) vfprintf(stderr, fmt, ap); (void) vfprintf(stderr, fmt, ap);
va_end(ap); va_end(ap);
(void) fprintf(stderr, "LALRaise: %s\n", strsignal(sig)); (void) fprintf(stderr, "LALRaise: %s\n", strsignal(sig));
swiglal_XLAL_error(); XLALSetErrno(XLAL_EFAILED);
return 0; return 0;
} }
// Print the supplied error message, then raise an XLAL error. // Print the supplied error message, then raise an XLAL error.
void lalswig_LALAbort(const char *fmt, ...) { static void lalswig_LALAbort(const char *fmt, ...) {
va_list ap; va_list ap;
va_start(ap, fmt); va_start(ap, fmt);
(void) vfprintf(stderr, fmt, ap); (void) vfprintf(stderr, fmt, ap);
va_end(ap); va_end(ap);
swiglal_XLAL_error(); XLALSetErrno(XLAL_EFAILED);
} }
%} %}
%init %{ %init %{
lalRaiseHook = lalswig_LALRaise; lalRaiseHook = lalswig_LALRaise;
lalAbortHook = lalswig_LALAbort; lalAbortHook = lalswig_LALAbort;
%} %}
#endif // SWIG #endif // SWIG
 End of changes. 4 change blocks. 
4 lines changed or deleted 4 lines changed or added


 lalswig_gsl.i   lalswig_gsl.i 
skipping to change at line 40 skipping to change at line 40
%header %{ %header %{
#include <gsl/gsl_vector.h> #include <gsl/gsl_vector.h>
#include <gsl/gsl_matrix.h> #include <gsl/gsl_matrix.h>
#include <gsl/gsl_rng.h> #include <gsl/gsl_rng.h>
%} %}
////////// Error handling ////////// ////////// Error handling //////////
// Set custom GSL error handler which raises an XLAL error (instead of abor ting). // Set custom GSL error handler which raises an XLAL error (instead of abor ting).
%header %{ %header %{
void swiglal_gsl_error_handler(const char *reason, const char *file, int line, int errnum) { static void swiglal_gsl_error_handler(const char *reason, const char *fil e, int line, int errnum) {
XLALPrintError("GSL function failed: %s (errnum=%i)\n", reason, errnum) ; XLALPrintError("GSL function failed: %s (errnum=%i)\n", reason, errnum) ;
XLALError("<GSL function>", file, line, XLAL_EFAILED); XLALError("<GSL function>", file, line, XLAL_EFAILED);
} }
%} %}
%init %{ %init %{
gsl_set_error_handler(swiglal_gsl_error_handler); gsl_set_error_handler(swiglal_gsl_error_handler);
%} %}
////////// GSL vectors and matrices ////////// ////////// GSL vectors and matrices //////////
skipping to change at line 69 skipping to change at line 69
} }
gsl_vector##NAME(gsl_vector##NAME *v0) { gsl_vector##NAME(gsl_vector##NAME *v0) {
gsl_vector##NAME *v = gsl_vector##NAME##_alloc(v0->size); gsl_vector##NAME *v = gsl_vector##NAME##_alloc(v0->size);
gsl_vector##NAME##_memcpy(v, v0); gsl_vector##NAME##_memcpy(v, v0);
return v; return v;
} }
~gsl_vector##NAME() { ~gsl_vector##NAME() {
%swiglal_call_dtor(gsl_vector##NAME##_free, $self); %swiglal_call_dtor(gsl_vector##NAME##_free, $self);
} }
} }
%swiglal_array_dynamic_1D(TYPE, size_t, data, size, arg1->stride); %swiglal_array_dynamic_size(size_t, size);
%swiglal_array_dynamic_1D(gsl_vector##NAME, TYPE, size_t, data, arg1->s
ize, arg1->stride);
} gsl_vector##NAME; } gsl_vector##NAME;
// GSL matrix of type NAME. // GSL matrix of type NAME.
typedef struct { typedef struct {
%extend { %extend {
gsl_matrix##NAME(const size_t n1, const size_t n2) { gsl_matrix##NAME(const size_t n1, const size_t n2) {
return gsl_matrix##NAME##_calloc(n1, n2); return gsl_matrix##NAME##_calloc(n1, n2);
} }
gsl_matrix##NAME(gsl_matrix##NAME *m0) { gsl_matrix##NAME(gsl_matrix##NAME *m0) {
gsl_matrix##NAME *m = gsl_matrix##NAME##_alloc(m0->size1, m0->size2 ); gsl_matrix##NAME *m = gsl_matrix##NAME##_alloc(m0->size1, m0->size2 );
gsl_matrix##NAME##_memcpy(m, m0); gsl_matrix##NAME##_memcpy(m, m0);
return m; return m;
} }
~gsl_matrix##NAME() { ~gsl_matrix##NAME() {
%swiglal_call_dtor(gsl_matrix##NAME##_free, $self); %swiglal_call_dtor(gsl_matrix##NAME##_free, $self);
} }
} }
%swiglal_array_dynamic_2D(TYPE, size_t, data, size1, size2, arg1->tda, %swiglal_array_dynamic_size(size_t, size1);
1); %swiglal_array_dynamic_size(size_t, size2);
%swiglal_array_dynamic_2D(gsl_matrix##NAME, TYPE, size_t, data, arg1->s
ize1, arg1->size2, arg1->tda, 1);
} gsl_matrix##NAME; } gsl_matrix##NAME;
%enddef // %lalswig_gsl_vector_matrix %enddef // %lalswig_gsl_vector_matrix
// GSL integer vectors and matrices. // GSL integer vectors and matrices.
%lalswig_gsl_vector_matrix(short, _short); %lalswig_gsl_vector_matrix(short, _short);
%lalswig_gsl_vector_matrix(unsigned short, _ushort); %lalswig_gsl_vector_matrix(unsigned short, _ushort);
%lalswig_gsl_vector_matrix(int, _int); %lalswig_gsl_vector_matrix(int, _int);
%lalswig_gsl_vector_matrix(unsigned int, _uint); %lalswig_gsl_vector_matrix(unsigned int, _uint);
%lalswig_gsl_vector_matrix(long, _long); %lalswig_gsl_vector_matrix(long, _long);
 End of changes. 3 change blocks. 
4 lines changed or deleted 8 lines changed or added


 lalswig_ligotimegps.i   lalswig_ligotimegps.i 
skipping to change at line 24 skipping to change at line 24
// 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
// //
// SWIG methods and operators for LAL GPS time class // SWIG methods and operators for LAL GPS time class
// Author: Karl Wette // Author: Karl Wette
// Only in SWIG interface. // Only in SWIG interface.
#ifdef SWIG #if defined(SWIG) && !defined(SWIGXML)
// Specialised input typemaps for LIGOTimeGPS structs.
// Accepts a SWIG-wrapped LIGOTimeGPS or a double as input.
%typemap(in, noblock=1, fragment=SWIG_AsVal_frag(double))
LIGOTimeGPS (void *argp = 0, int res = 0),
const LIGOTimeGPS (void *argp = 0, int res = 0)
{
res = SWIG_ConvertPtr($input, &argp, $&descriptor, $disown | %convertptr_
flags);
if (!SWIG_IsOK(res)) {
double val = 0;
res = SWIG_AsVal(double)($input, &val);
if (!SWIG_IsOK(res)) {
%argument_fail(res, "$type", $symname, $argnum);
} else {
XLALGPSSetREAL8(&$1, val);
}
} else {
if (!argp) {
%argument_nullref("$type", $symname, $argnum);
} else {
$&ltype temp = %reinterpret_cast(argp, $&ltype);
$1 = *temp;
if (SWIG_IsNewObj(res)) {
%delete(temp);
}
}
}
}
%typemap(freearg) LIGOTimeGPS, const LIGOTimeGPS "";
// Specialised input typemaps for pointers to LIGOTimeGPS.
// Accepts a SWIG-wrapped LIGOTimeGPS or a double as input.
%typemap(in, noblock=1, fragment=SWIG_AsVal_frag(double))
LIGOTimeGPS* (LIGOTimeGPS tmp, void *argp = 0, int res = 0),
const LIGOTimeGPS* (LIGOTimeGPS tmp, void *argp = 0, int res = 0)
{
res = SWIG_ConvertPtr($input, &argp, $descriptor, $disown | %convertptr_f
lags);
if (!SWIG_IsOK(res)) {
double val = 0;
res = SWIG_AsVal(double)($input, &val);
if (!SWIG_IsOK(res)) {
%argument_fail(res, "$type", $symname, $argnum);
} else {
$1 = %reinterpret_cast(XLALGPSSetREAL8(&tmp, val), $ltype);
}
} else {
$1 = %reinterpret_cast(argp, $ltype);
}
}
%typemap(freearg) LIGOTimeGPS*, const LIGOTimeGPS* "";
// Allocate a new LIGOTimeGPS. // Allocate a new LIGOTimeGPS.
#define %lalswig_new_LIGOTimeGPS() (LIGOTimeGPS*)(XLALCalloc(1, sizeof(LIGO TimeGPS))) #define %lalswig_new_LIGOTimeGPS() (LIGOTimeGPS*)(XLALCalloc(1, sizeof(LIGO TimeGPS)))
// Extend the LIGOTimeGPS class. // Extend the LIGOTimeGPS class.
// Uses some code from PyLAL: Copyright (C) 2006 Kipp Cannon // Uses some code from PyLAL: Copyright (C) 2006 Kipp Cannon
%extend tagLIGOTimeGPS { %extend tagLIGOTimeGPS {
// Construct a new LIGOTimeGPS from a real number. // Construct a new LIGOTimeGPS from a real number.
tagLIGOTimeGPS(REAL8 t) { tagLIGOTimeGPS(REAL8 t) {
skipping to change at line 47 skipping to change at line 97
// Construct a new LIGOTimeGPS from integer seconds and nanoseconds. // Construct a new LIGOTimeGPS from integer seconds and nanoseconds.
tagLIGOTimeGPS(INT4 gpssec) { tagLIGOTimeGPS(INT4 gpssec) {
return XLALGPSSet(%lalswig_new_LIGOTimeGPS(), gpssec, 0); return XLALGPSSet(%lalswig_new_LIGOTimeGPS(), gpssec, 0);
} }
tagLIGOTimeGPS(INT4 gpssec, INT8 gpsnan) { tagLIGOTimeGPS(INT4 gpssec, INT8 gpsnan) {
return XLALGPSSet(%lalswig_new_LIGOTimeGPS(), gpssec, gpsnan); return XLALGPSSet(%lalswig_new_LIGOTimeGPS(), gpssec, gpsnan);
} }
// Construct a new LIGOTimeGPS from a string // Construct a new LIGOTimeGPS from a string
tagLIGOTimeGPS(const char* str) { tagLIGOTimeGPS(const char *str) {
LIGOTimeGPS *gps = %lalswig_new_LIGOTimeGPS(); LIGOTimeGPS *gps = %lalswig_new_LIGOTimeGPS();
char *end = NULL; char *end = NULL;
if (XLALStrToGPS(gps, str, &end) < 0 || end == str) { if (XLALStrToGPS(gps, str, &end) < 0 || *end != '\0') {
XLALFree(gps); XLALFree(gps);
xlalErrno = XLAL_EFUNC; // Silently signal an error to constructor
return NULL; return NULL;
} }
return gps; return gps;
} }
// Operators are implemented by defining Python-style __operator__ // Operators are implemented by defining Python-style __operator__
// methods (since LAL is C99, we don't have C++ operators available). // methods (since LAL is C99, we don't have C++ operators available).
// Many SWIG language modules will automatically map these functions // Many SWIG language modules will automatically map these functions
// to scripting-language operations in their runtime code. In some // to scripting-language operations in their runtime code. In some
// cases (ironically, Python itself when using -builtin!) additional // cases (ironically, Python itself when using -builtin!) additional
skipping to change at line 247 skipping to change at line 298
%enddef %enddef
// Comparison operators // Comparison operators
%lalswig_LIGOTimeGPS_comparison_operator(lt, < ); %lalswig_LIGOTimeGPS_comparison_operator(lt, < );
%lalswig_LIGOTimeGPS_comparison_operator(le, <=); %lalswig_LIGOTimeGPS_comparison_operator(le, <=);
%lalswig_LIGOTimeGPS_comparison_operator(eq, ==); %lalswig_LIGOTimeGPS_comparison_operator(eq, ==);
%lalswig_LIGOTimeGPS_comparison_operator(ne, !=); %lalswig_LIGOTimeGPS_comparison_operator(ne, !=);
%lalswig_LIGOTimeGPS_comparison_operator(gt, > ); %lalswig_LIGOTimeGPS_comparison_operator(gt, > );
%lalswig_LIGOTimeGPS_comparison_operator(ge, >=); %lalswig_LIGOTimeGPS_comparison_operator(ge, >=);
// Return the number of nanoseconds in a LIGOTimeGPS
INT8 ns() {
return XLALGPSToINT8NS($self);
}
} // %extend tagLIGOTimeGPS } // %extend tagLIGOTimeGPS
#endif // SWIG #endif // SWIG
 End of changes. 5 change blocks. 
3 lines changed or deleted 61 lines changed or added


 lalswig_test.i   lalswig_test.i 
skipping to change at line 19 skipping to change at line 19
lalswig_test_enum_c lalswig_test_enum_c
} lalswig_test_enum; } lalswig_test_enum;
typedef struct taglalswig_test_struct { typedef struct taglalswig_test_struct {
INT4 i; INT4 i;
REAL4 f; REAL4 f;
CHAR str[10]; CHAR str[10];
INT4 vec[3]; INT4 vec[3];
INT4 mat[2][3]; INT4 mat[2][3];
lalswig_test_enum evec[3]; lalswig_test_enum evec[3];
} lalswig_test_struct; } lalswig_test_struct;
const lalswig_test_struct lalswig_test_struct_const = { static const lalswig_test_struct lalswig_test_struct_const = {
3, 5.7, "abcde", {1,2,3}, {{4,5,6},{7,8,9}}, 3, 5.7, "abcde", {1,2,3}, {{4,5,6},{7,8,9}},
{lalswig_test_enum_a,lalswig_test_enum_b,lalswig_test_enum_c} {lalswig_test_enum_a,lalswig_test_enum_b,lalswig_test_enum_c}
}; };
lalswig_test_struct lalswig_test_struct_vector[3]; static lalswig_test_struct lalswig_test_struct_vector[3];
lalswig_test_struct lalswig_test_struct_matrix[2][3]; static lalswig_test_struct lalswig_test_struct_matrix[2][3];
lalswig_test_enum lalswig_test_enum_vector[3]; static lalswig_test_enum lalswig_test_enum_vector[3];
lalswig_test_enum lalswig_test_enum_matrix[2][3]; static lalswig_test_enum lalswig_test_enum_matrix[2][3];
INT4 lalswig_test_INT4_vector[3]; static INT4 lalswig_test_empty_INT4_vector[0];
INT4 lalswig_test_INT4_matrix[2][3]; static INT4 lalswig_test_INT4_vector[3];
const INT4 lalswig_test_INT4_const_vector[3] = {1, 2, 4}; static INT4 lalswig_test_INT4_matrix[2][3];
const INT4 lalswig_test_INT4_const_matrix[2][3] = {{1, 2, 4}, {2, 4, 8}}; static const INT4 lalswig_test_INT4_const_vector[3] = {1, 2, 4};
REAL8 lalswig_test_REAL8_vector[3]; static const INT4 lalswig_test_INT4_const_matrix[2][3] = {{1, 2, 4}, {2, 4,
REAL8 lalswig_test_REAL8_matrix[2][3]; 8}};
COMPLEX8 lalswig_test_COMPLEX8_vector[3]; static REAL8 lalswig_test_REAL8_vector[3];
COMPLEX8 lalswig_test_COMPLEX8_matrix[2][3]; static REAL8 lalswig_test_REAL8_matrix[2][3];
static COMPLEX8 lalswig_test_COMPLEX8_vector[3];
static COMPLEX8 lalswig_test_COMPLEX8_matrix[2][3];
// Test dynamic array of pointer access
typedef struct taglalswig_test_arrayofdata {
#ifdef SWIG
SWIGLAL(ARRAY_1D(lalswig_test_arrayofdata, INT4, data, UINT4, length));
#endif // SWIG
UINT4 length;
INT4 *data;
} lalswig_test_arrayofdata;
typedef struct taglalswig_test_arrayofptrs {
#ifdef SWIG
SWIGLAL(ARRAY_1D(lalswig_test_arrayofptrs, lalswig_test_arrayofdata*, dat
a, UINT4, length));
#endif // SWIG
UINT4 length;
lalswig_test_arrayofdata **data;
} lalswig_test_arrayofptrs;
static lalswig_test_arrayofptrs* lalswig_test_Create_arrayofptrs(UINT4);
static void lalswig_test_Destroy_arrayofptrs(lalswig_test_arrayofptrs*);
#ifdef SWIG
%header %{
static lalswig_test_arrayofptrs* lalswig_test_Create_arrayofptrs(UINT4 le
ngth) {
lalswig_test_arrayofptrs* ap = (lalswig_test_arrayofptrs*)XLALMalloc(si
zeof(lalswig_test_arrayofptrs));
XLAL_CHECK_NULL(ap != NULL, XLAL_ENOMEM);
ap->length = length;
ap->data = (lalswig_test_arrayofdata**)XLALCalloc(ap->length, sizeof(la
lswig_test_arrayofdata*));
XLAL_CHECK_NULL(ap->data != NULL, XLAL_ENOMEM);
for (UINT4 i = 0; i < ap->length; ++i) {
ap->data[i] = (lalswig_test_arrayofdata*)XLALMalloc(sizeof(lalswig_te
st_arrayofdata));
XLAL_CHECK_NULL(ap->data[i] != NULL, XLAL_ENOMEM);
ap->data[i]->length = 2*length;
ap->data[i]->data = (INT4*)XLALCalloc(ap->data[i]->length, sizeof(INT
4));
XLAL_CHECK_NULL(ap->data[i]->data != NULL, XLAL_ENOMEM);
for (UINT4 j = 0; j < ap->data[i]->length; ++j) {
ap->data[i]->data[j] = 42*length*i + j;
}
}
return ap;
}
static void lalswig_test_Destroy_arrayofptrs(lalswig_test_arrayofptrs* ap
) {
if (ap) {
if (ap->data) {
for (UINT4 i = 0; i < ap->length; ++i) {
if (ap->data[i]) {
if (ap->data[i]->data) {
XLALFree(ap->data[i]->data);
}
XLALFree(ap->data[i]);
}
}
XLALFree(ap->data);
}
XLALFree(ap);
}
}
%}
#endif // SWIG
// Test LIGOTimeGPS operations.
typedef struct taglalswig_test_gps {
LIGOTimeGPS t;
} lalswig_test_gps;
static REAL8 lalswig_test_noptrgps(const LIGOTimeGPS gps);
#ifdef SWIG
%header %{
static REAL8 lalswig_test_noptrgps(const LIGOTimeGPS gps) {
return XLALGPSGetREAL8(&gps);
}
%}
#endif // SWIG
 End of changes. 2 change blocks. 
1 lines changed or deleted 1 lines changed or added


 swiglal_common.i   swiglal_common.i 
skipping to change at line 87 skipping to change at line 87
#if #X != "" #if #X != ""
MACRO(A, X); MACRO(A, X);
%_swiglal_map_a(MACRO, A, __VA_ARGS__); %_swiglal_map_a(MACRO, A, __VA_ARGS__);
#endif #endif
%enddef %enddef
%define %swiglal_map_a(MACRO, A, ...) %define %swiglal_map_a(MACRO, A, ...)
%_swiglal_map_a(MACRO, A, __VA_ARGS__, ); %_swiglal_map_a(MACRO, A, __VA_ARGS__, );
%enddef %enddef
// The macro %swiglal_map_ab() maps a three-argument MACRO(A, B, X) onto a list // The macro %swiglal_map_ab() maps a three-argument MACRO(A, B, X) onto a list
// of arguments (which may be empty), with a common first arguments A and B . // of arguments (which may be empty), with common first arguments A and B.
%define %_swiglal_map_ab(MACRO, A, B, X, ...) %define %_swiglal_map_ab(MACRO, A, B, X, ...)
#if #X != "" #if #X != ""
MACRO(A, B, X); MACRO(A, B, X);
%_swiglal_map_ab(MACRO, A, B, __VA_ARGS__); %_swiglal_map_ab(MACRO, A, B, __VA_ARGS__);
#endif #endif
%enddef %enddef
%define %swiglal_map_ab(MACRO, A, B, ...) %define %swiglal_map_ab(MACRO, A, B, ...)
%_swiglal_map_ab(MACRO, A, B, __VA_ARGS__, ); %_swiglal_map_ab(MACRO, A, B, __VA_ARGS__, );
%enddef %enddef
// The macro %swiglal_map_abc() maps a four-argument MACRO(A, B, C, X) onto
a list
// of arguments (which may be empty), with common first arguments A, B, and
C.
%define %_swiglal_map_abc(MACRO, A, B, C, X, ...)
#if #X != ""
MACRO(A, B, C, X);
%_swiglal_map_abc(MACRO, A, B, C, __VA_ARGS__);
#endif
%enddef
%define %swiglal_map_abc(MACRO, A, B, C, ...)
%_swiglal_map_abc(MACRO, A, B, C, __VA_ARGS__, );
%enddef
// Apply and clear SWIG typemaps. // Apply and clear SWIG typemaps.
%define %swiglal_apply(TYPEMAP, TYPE, NAME) %define %swiglal_apply(TYPEMAP, TYPE, NAME)
%apply TYPEMAP { TYPE NAME }; %apply TYPEMAP { TYPE NAME };
%enddef %enddef
%define %swiglal_clear(TYPE, NAME) %define %swiglal_clear(TYPE, NAME)
%clear TYPE NAME; %clear TYPE NAME;
%enddef %enddef
// Apply a SWIG feature. // Apply a SWIG feature.
%define %swiglal_feature(FEATURE, VALUE, NAME) %define %swiglal_feature(FEATURE, VALUE, NAME)
%feature(FEATURE, VALUE) NAME; %feature(FEATURE, VALUE) NAME;
%enddef %enddef
%define %swiglal_feature_nspace(FEATURE, VALUE, NSPACE, NAME)
%feature(FEATURE, VALUE) NSPACE::NAME;
%enddef
// Macros for allocating/copying new instances and arrays // Macros for allocating/copying new instances and arrays
// Analogous to SWIG macros but using XLAL memory functions // Analogous to SWIG macros but using XLAL memory functions
#define %swiglal_new_instance(TYPE...) \ #define %swiglal_new_instance(TYPE...) \
%reinterpret_cast(XLALMalloc(sizeof(TYPE)), TYPE*) %reinterpret_cast(XLALMalloc(sizeof(TYPE)), TYPE*)
#define %swiglal_new_copy(VAL, TYPE...) \ #define %swiglal_new_copy(VAL, TYPE...) \
%reinterpret_cast(memcpy(%swiglal_new_instance(TYPE), &VAL, sizeof(TYPE)) , TYPE*) %reinterpret_cast(memcpy(%swiglal_new_instance(TYPE), &VAL, sizeof(TYPE)) , TYPE*)
#define %swiglal_new_array(SIZE, TYPE...) \ #define %swiglal_new_array(SIZE, TYPE...) \
%reinterpret_cast(XLALMalloc((SIZE)*sizeof(TYPE)), TYPE*) %reinterpret_cast(XLALMalloc((SIZE)*sizeof(TYPE)), TYPE*)
#define %swiglal_new_copy_array(PTR, SIZE, TYPE...) \ #define %swiglal_new_copy_array(PTR, SIZE, TYPE...) \
skipping to change at line 150 skipping to change at line 165
%} %}
// Include LAL headers. // Include LAL headers.
%header %{ %header %{
#include <lal/LALDatatypes.h> #include <lal/LALDatatypes.h>
#include <lal/LALMalloc.h> #include <lal/LALMalloc.h>
#include <lal/XLALError.h> #include <lal/XLALError.h>
#include <lal/Date.h> #include <lal/Date.h>
%} %}
// Print LAL debugging errors by default.
%init %{
lalDebugLevel |= LALERROR;
%}
// Version of SWIG used to generate wrapping code. // Version of SWIG used to generate wrapping code.
%inline %{const int swig_version = SWIG_VERSION;%} %inline %{const int swig_version = SWIG_VERSION;%}
// Whether wrapping code was generated in debug mode. // Whether wrapping code was generated in debug mode.
#ifdef NDEBUG #ifdef NDEBUG
%inline %{const bool swig_debug = false;%} %inline %{const bool swig_debug = false;%}
#else #else
%inline %{const bool swig_debug = true;%} %inline %{const bool swig_debug = true;%}
#endif #endif
skipping to change at line 192 skipping to change at line 202
// - LAL: For any function which has a LALStatus* argument, create a // - LAL: For any function which has a LALStatus* argument, create a
// blank LALStatus struct and pass its pointer to the LAL function. // blank LALStatus struct and pass its pointer to the LAL function.
// After the function is called, check the LALStatus statusCode; // After the function is called, check the LALStatus statusCode;
// if it is non-zero, raise a generic XLAL error (to set the XLAL // if it is non-zero, raise a generic XLAL error (to set the XLAL
// error number), then a native scripting-language exception. The // error number), then a native scripting-language exception. The
// swiglal_check_LALStatus (C) preprocessor symbol determines if // swiglal_check_LALStatus (C) preprocessor symbol determines if
// the LAL error handling code is invoked; by default this symbol // the LAL error handling code is invoked; by default this symbol
// should be undefined, i.e. functions are XLAL functions by default. // should be undefined, i.e. functions are XLAL functions by default.
%header %{ %header %{
static const LALStatus swiglal_empty_LALStatus = {0, NULL, NULL, NULL, NULL , 0, NULL, 0}; static const LALStatus swiglal_empty_LALStatus = {0, NULL, NULL, NULL, NULL , 0, NULL, 0};
#define swiglal_XLAL_error() XLALError(__func__, __FILE__, __LINE__, XLAL_E FAILED)
#undef swiglal_check_LALStatus #undef swiglal_check_LALStatus
%} %}
%typemap(in, noblock=1, numinputs=0) LALStatus* { %typemap(in, noblock=1, numinputs=0) LALStatus* {
LALStatus lalstatus = swiglal_empty_LALStatus; LALStatus lalstatus = swiglal_empty_LALStatus;
$1 = &lalstatus; $1 = &lalstatus;
%#define swiglal_check_LALStatus %#define swiglal_check_LALStatus
} }
%exception %{ %exception %{
XLALClearErrno(); XLALClearErrno();
$action $action
#ifdef swiglal_check_LALStatus #ifdef swiglal_check_LALStatus
if (lalstatus.statusCode) { if (lalstatus.statusCode) {
swiglal_XLAL_error(); XLALSetErrno(XLAL_EFAILED);
SWIG_exception(SWIG_RuntimeError, lalstatus.statusDescription); SWIG_exception(SWIG_RuntimeError, lalstatus.statusDescription);
} }
#else #else
if (xlalErrno) { if (xlalErrno) {
SWIG_exception(SWIG_RuntimeError, XLALErrorString(xlalErrno)); SWIG_exception(SWIG_RuntimeError, XLALErrorString(xlalErrno));
} }
#endif #endif
#undef swiglal_check_LALStatus #undef swiglal_check_LALStatus
%} %}
////////// General fragments ////////// ////////// General fragments //////////
// Empty fragment, for fragment-generating macros. // Empty fragment, for fragment-generating macros.
%fragment("swiglal_empty_frag", "header") {} %fragment("swiglal_empty_frag", "header") {}
// Wrappers around SWIG's pointer to/from SWIG-wrapped scripting language o bject functions. // Wrappers around SWIG's pointer to/from SWIG-wrapped scripting language o bject functions.
// swiglal_from_SWIGTYPE() simply returns a SWIG-wrapped object containing the input pointer. // swiglal_from_SWIGTYPE() simply returns a SWIG-wrapped object containing the input pointer.
// swiglal_from_SWIGTYPE() extracts a pointer from a SWIG-wrapped object, t hen struct-copies // swiglal_from_SWIGTYPE() extracts a pointer from a SWIG-wrapped object, t hen struct-copies
// the pointer to the supplied output pointer. // the pointer to the supplied output pointer.
%fragment("swiglal_from_SWIGTYPE", "header") { %fragment("swiglal_from_SWIGTYPE", "header") {
SWIGINTERNINLINE SWIG_Object swiglal_from_SWIGTYPE(SWIG_Object self, void SWIGINTERNINLINE SWIG_Object swiglal_from_SWIGTYPE(SWIG_Object self, void
*ptr, swig_type_info *tinfo, int tflags) { *ptr, bool isptr, swig_type_info *tinfo, int tflags) {
return SWIG_NewPointerObj(ptr, tinfo, tflags); return SWIG_NewPointerObj(isptr ? *((void**)ptr) : ptr, tinfo, tflags);
} }
} }
%fragment("swiglal_as_SWIGTYPE", "header") { %fragment("swiglal_as_SWIGTYPE", "header") {
SWIGINTERN int swiglal_as_SWIGTYPE(SWIG_Object self, SWIG_Object obj, voi d *ptr, size_t len, swig_type_info *tinfo, int tflags) { SWIGINTERN int swiglal_as_SWIGTYPE(SWIG_Object self, SWIG_Object obj, voi d *ptr, size_t len, bool isptr, swig_type_info *tinfo, int tflags) {
void *vptr = NULL; void *vptr = NULL;
int ecode = SWIG_ConvertPtr(obj, &vptr, tinfo, tflags); int ecode = SWIG_ConvertPtr(obj, &vptr, tinfo, tflags);
if (!SWIG_IsOK(ecode)) { if (!SWIG_IsOK(ecode)) {
return ecode; return ecode;
} }
memcpy(ptr, vptr, len); memcpy(ptr, isptr ? &vptr : vptr, len);
return ecode; return ecode;
} }
} }
////////// Generate interface ////////// ////////// Generate interface //////////
// The SWIG interface file is generated by 'generate_swiglal_iface.py', whi ch // The SWIG interface file is generated by 'generate_swiglal_iface.py', whi ch
// extracts lists of interface symbols (functions, structs, typedefs to str ucts) // extracts lists of interface symbols (functions, structs, typedefs to str ucts)
// and headers from the preprocessing interface, and generates calls to the // and headers from the preprocessing interface, and generates calls to the
// following macros: // following macros:
// Process an interface function NAME: rename it to RENAME, and set it to // Process an interface function NAME: rename it to RENAME, and set it to
// always return SWIG-owned wrapping objects (unless the function is being // always return SWIG-owned wrapping objects (unless the function is being
// ignored). If TYPE is given, ignore the return value of the function. // ignored). If IGNORE_TYPE is given, ignore the function's return value.
%typemap(out, noblock=1) SWIGTYPE SWIGLAL_RETURN_VOID { // If DISOWN is true, disown the function's first argument.
%set_output(VOID_Object); %define %swiglal_process_function(NAME, RENAME, IGNORE_TYPE, DISOWN)
}
%typemap(newfree, noblock=1) SWIGTYPE SWIGLAL_RETURN_VOID "";
%define %swiglal_process_function(NAME, RENAME, TYPE)
%rename(#RENAME) NAME; %rename(#RENAME) NAME;
#if #RENAME != "$ignore" #if #RENAME != "$ignore"
%feature("new", "1") NAME; %feature("new", "1") NAME;
#if #TYPE != "" #if #IGNORE_TYPE != ""
%apply SWIGTYPE SWIGLAL_RETURN_VOID { TYPE NAME }; %apply SWIGTYPE SWIGLAL_RETURN_VOID { IGNORE_TYPE NAME };
#endif
#if DISOWN
%feature("del", "1") NAME;
#endif #endif
#endif #endif
%enddef %enddef
// Process a typedef to an interface struct TAGNAME: rename it to RENAME. // Process a typedef to an interface struct TAGNAME: rename it to RENAME.
%define %swiglal_process_tdstruct(TAGNAME, RENAME) %define %swiglal_process_tdstruct(TAGNAME, RENAME)
%rename(#RENAME) TAGNAME; %rename(#RENAME) TAGNAME;
%enddef %enddef
// Do not generate any default (copy) contructors or destructors. // Do not generate any default (copy) contructors or destructors.
skipping to change at line 340 skipping to change at line 349
} }
} }
#endif #endif
%enddef // %swiglal_generate_struct_cdtor() %enddef // %swiglal_generate_struct_cdtor()
////////// Fragments and typemaps for arrays ////////// ////////// Fragments and typemaps for arrays //////////
// Map fixed-array types to special variables of their elements, // Map fixed-array types to special variables of their elements,
// e.g. $typemap(swiglal_fixarr_ltype, const int[][]) returns "int". // e.g. $typemap(swiglal_fixarr_ltype, const int[][]) returns "int".
// Fixed-array types are assumed never to be arrays of pointers.
%typemap(swiglal_fixarr_ltype) SWIGTYPE "$ltype"; %typemap(swiglal_fixarr_ltype) SWIGTYPE "$ltype";
%typemap(swiglal_fixarr_ltype) SWIGTYPE[ANY] "$typemap(swiglal_fixarr_ltype , $*type)"; %typemap(swiglal_fixarr_ltype) SWIGTYPE[ANY] "$typemap(swiglal_fixarr_ltype , $*type)";
%typemap(swiglal_fixarr_ltype) SWIGTYPE[ANY][ANY] "$typemap(swiglal_fixarr_ ltype, $*type)"; %typemap(swiglal_fixarr_ltype) SWIGTYPE[ANY][ANY] "$typemap(swiglal_fixarr_ ltype, $*type)";
%typemap(swiglal_fixarr_pdesc) SWIGTYPE "$&descriptor"; %typemap(swiglal_fixarr_tinfo) SWIGTYPE "$&descriptor";
%typemap(swiglal_fixarr_pdesc) SWIGTYPE[ANY] "$typemap(swiglal_fixarr_pdesc %typemap(swiglal_fixarr_tinfo) SWIGTYPE[ANY] "$typemap(swiglal_fixarr_tinfo
, $*type)"; , $*type)";
%typemap(swiglal_fixarr_pdesc) SWIGTYPE[ANY][ANY] "$typemap(swiglal_fixarr_ %typemap(swiglal_fixarr_tinfo) SWIGTYPE[ANY][ANY] "$typemap(swiglal_fixarr_
pdesc, $*type)"; tinfo, $*type)";
// The conversion of C arrays to/from scripting-language arrays are perform ed // The conversion of C arrays to/from scripting-language arrays are perform ed
// by the following functions: // by the following functions:
// - %swiglal_array_copyin...() copies a scripting-language array into a C array. // - %swiglal_array_copyin...() copies a scripting-language array into a C array.
// - %swiglal_array_copyout...() copies a C array into a scripting-languag e array. // - %swiglal_array_copyout...() copies a C array into a scripting-languag e array.
// - %swiglal_array_viewout...() wraps a C array inside a scripting-langua ge array, // - %swiglal_array_viewout...() wraps a C array inside a scripting-langua ge array,
// if this is supported by the target scripting language. // if this is supported by the target scripting language.
// These functions accept a subset of the following arguments: // These functions accept a subset of the following arguments:
// - SWIG_Object obj: input scripting-language array. // - SWIG_Object obj: input scripting-language array.
// - SWIG_Object parent: SWIG-wrapped object containing parent struct. // - SWIG_Object parent: SWIG-wrapped object containing parent struct.
skipping to change at line 399 skipping to change at line 409
%typemap(swiglal_array_typeid, fragment="swiglal_array_frags_" %str(ACFTYPE )) TYPE[ANY][ANY] %str(ACFTYPE); %typemap(swiglal_array_typeid, fragment="swiglal_array_frags_" %str(ACFTYPE )) TYPE[ANY][ANY] %str(ACFTYPE);
%typemap(swiglal_array_typeid, fragment="swiglal_array_frags_" %str(ACFTYPE )) const TYPE[ANY] %str(ACFTYPE); %typemap(swiglal_array_typeid, fragment="swiglal_array_frags_" %str(ACFTYPE )) const TYPE[ANY] %str(ACFTYPE);
%typemap(swiglal_array_typeid, fragment="swiglal_array_frags_" %str(ACFTYPE )) const TYPE[ANY][ANY] %str(ACFTYPE); %typemap(swiglal_array_typeid, fragment="swiglal_array_frags_" %str(ACFTYPE )) const TYPE[ANY][ANY] %str(ACFTYPE);
%enddef %enddef
%define %swiglal_array_type(ACFTYPE, ...) %define %swiglal_array_type(ACFTYPE, ...)
%swiglal_map_a(%_swiglal_array_type, ACFTYPE, __VA_ARGS__); %swiglal_map_a(%_swiglal_array_type, ACFTYPE, __VA_ARGS__);
%enddef %enddef
// Map C array TYPEs to array conversion function ACFTYPEs. // Map C array TYPEs to array conversion function ACFTYPEs.
%swiglal_array_type(SWIGTYPE, SWIGTYPE); %swiglal_array_type(SWIGTYPE, SWIGTYPE);
%swiglal_array_type(LALCHAR, CHAR*); %swiglal_array_type(LALchar, char*);
%swiglal_array_type(int8_t, char, signed char, int8_t); %swiglal_array_type(int8_t, char, signed char, int8_t);
%swiglal_array_type(uint8_t, unsigned char, uint8_t); %swiglal_array_type(uint8_t, unsigned char, uint8_t);
%swiglal_array_type(int16_t, short, int16_t); %swiglal_array_type(int16_t, short, int16_t);
%swiglal_array_type(uint16_t, unsigned short, uint16_t); %swiglal_array_type(uint16_t, unsigned short, uint16_t);
%swiglal_array_type(int32_t, int, int32_t, enum SWIGTYPE); %swiglal_array_type(int32_t, int, int32_t, enum SWIGTYPE);
%swiglal_array_type(uint32_t, unsigned int, uint32_t); %swiglal_array_type(uint32_t, unsigned int, uint32_t);
%swiglal_array_type(int64_t, long long, int64_t); %swiglal_array_type(int64_t, long long, int64_t);
%swiglal_array_type(uint64_t, unsigned long long, uint64_t); %swiglal_array_type(uint64_t, unsigned long long, uint64_t);
%swiglal_array_type(float, float); %swiglal_array_type(float, float);
%swiglal_array_type(double, double); %swiglal_array_type(double, double);
skipping to change at line 452 skipping to change at line 462
// Input typemaps for functions and structs: // Input typemaps for functions and structs:
%typemap(in) SWIGTYPE[ANY], SWIGTYPE INOUT[ANY] { %typemap(in) SWIGTYPE[ANY], SWIGTYPE INOUT[ANY] {
const size_t dims[] = {$1_dim0}; const size_t dims[] = {$1_dim0};
const size_t strides[] = {1}; const size_t strides[] = {1};
$typemap(swiglal_fixarr_ltype, $1_type) temp[$1_dim0]; $typemap(swiglal_fixarr_ltype, $1_type) temp[$1_dim0];
$1 = &temp[0]; $1 = &temp[0];
// swiglal_array_typeid input type: $1_type // swiglal_array_typeid input type: $1_type
int ecode = %swiglal_array_copyin($1_type)(swiglal_no_self(), $input, %as _voidptr($1), int ecode = %swiglal_array_copyin($1_type)(swiglal_no_self(), $input, %as _voidptr($1),
sizeof($1[0]), 1, dims, stride s, sizeof($1[0]), 1, dims, stride s,
$typemap(swiglal_fixarr_pdesc, $1_type), false, $typemap(swiglal_fixarr _tinfo, $1_type),
$disown | %convertptr_flags); $disown | %convertptr_flags);
if (!SWIG_IsOK(ecode)) { if (!SWIG_IsOK(ecode)) {
%argument_fail(ecode, "$type", $symname, $argnum); %argument_fail(ecode, "$type", $symname, $argnum);
} }
} }
%typemap(in) SWIGTYPE[ANY][ANY], SWIGTYPE INOUT[ANY][ANY] { %typemap(in) SWIGTYPE[ANY][ANY], SWIGTYPE INOUT[ANY][ANY] {
const size_t dims[] = {$1_dim0, $1_dim1}; const size_t dims[] = {$1_dim0, $1_dim1};
const size_t strides[] = {$1_dim1, 1}; const size_t strides[] = {$1_dim1, 1};
$typemap(swiglal_fixarr_ltype, $1_type) temp[$1_dim0][$1_dim1]; $typemap(swiglal_fixarr_ltype, $1_type) temp[$1_dim0][$1_dim1];
$1 = &temp[0]; $1 = &temp[0];
// swiglal_array_typeid input type: $1_type // swiglal_array_typeid input type: $1_type