Commit 0020af3d authored by Adam Mercer's avatar Adam Mercer

migrate SEOBNRv4HM branch

parent 837952ed
This diff is collapsed.
FROM ligo/lalsuite-runtime:jessie
COPY /opt/lalsuite /opt/lalsuite
ENV LD_LIBRARY_PATH="/opt/lalsuite/lib" \
OCTAVE_PATH="/opt/lalsuite/lib/x86_64-linux-gnu/octave/3.8.2/site/oct/x86_64-pc-linux-gnu" \
PATH="/opt/lalsuite/bin:${PATH}" \
PKG_CONFIG_PATH="/opt/lalsuite/lib/pkgconfig" \
PYTHONPATH="/opt/lalsuite/lib/python2.7/site-packages" \
# LALSuite
This is the main LALSuite development repository, past development is
captured in the repository below:
https://git.ligo.org/lscsoft/lalsuite-archive
This new repository utilizes [git-lfs](https://wiki.ligo.org/DASWG/GitLFS#Install_the_git_LFS_client) for the managament of large files and as such `git-lfs` needs to be installed and configured to correctly clone this repository. After installing `git-lfs` it can be configured using:
```
$ git lfs install
```
This only needs to be done once for each machine you access the repository. It can then be cloned using:
```
$ git clone git@git.ligo.org:lscsoft/lalsuite.git
```
......@@ -618,13 +618,13 @@ class LinearPlusOverflowBins(LoHiCountBins):
raise IndexError(x)
def lower(self):
return numpy.concatenate((numpy.array([NegInf]), numpy.linspace(self.min, self.max - self.delta, len(self) - 1)))
return numpy.concatenate((numpy.array([NegInf]), self.min + self.delta * numpy.arange(len(self) - 2), numpy.array([self.max])))
def centres(self):
return numpy.concatenate((numpy.array([NegInf]), numpy.linspace(self.min + self.delta / 2., self.max - self.delta / 2., len(self) - 2), numpy.array([PosInf])))
return numpy.concatenate((numpy.array([NegInf]), self.min + self.delta * (numpy.arange(len(self) - 2) + 0.5), numpy.array([PosInf])))
def upper(self):
return numpy.concatenate((numpy.linspace(self.min + self.delta, self.max, len(self) - 1), numpy.array([PosInf])))
return numpy.concatenate((numpy.array([self.min]), self.min + self.delta * (numpy.arange(len(self) - 2) + 1), numpy.array([PosInf])))
#
# XML I/O related methods and data
......@@ -1486,49 +1486,12 @@ class BinnedArray(object):
"""
Add the contents of another BinnedArray object to this one.
Both must have identical binnings.
Example:
>>> x = BinnedArray(NDBins((LinearBins(-0.5, 1.5, 2), LinearBins(-0.5, 1.5, 2))))
>>> x[0, 0] = 0
>>> x[0, 1] = 1
>>> x[1, 0] = 2
>>> x[1, 1] = 4
>>> x.at_centres()
array([[ 0., 1.],
[ 2., 4.]])
>>> x += x
>>> x.at_centres()
array([[ 0., 2.],
[ 4., 8.]])
"""
if self.bins != other.bins:
raise TypeError("incompatible binning: %s" % repr(other))
self.array += other.array
return self
def __add__(self, other):
"""
Add two BinnedArray objects together.
Example:
>>> x = BinnedArray(NDBins((LinearBins(-0.5, 1.5, 2), LinearBins(-0.5, 1.5, 2))))
>>> x[0, 0] = 0
>>> x[0, 1] = 1
>>> x[1, 0] = 2
>>> x[1, 1] = 4
>>> x.at_centres()
array([[ 0., 1.],
[ 2., 4.]])
>>> (x + x).at_centres()
array([[ 0., 2.],
[ 4., 8.]])
"""
self = self.copy()
self += other
return self
def copy(self):
"""
Return a copy of the BinnedArray. The .bins attribute is
......@@ -1592,7 +1555,7 @@ class BinnedArray(object):
NOTE:
- This is a legacy method that has been superceded by the
BinnedDensity and BinnedLnPDF classes. You almost
BinnedDensity and BinnedLnPDF classes. You also
certainly want to be using those instead of whatever
you're doing that needs this method.
"""
......@@ -1613,7 +1576,7 @@ class BinnedArray(object):
NOTE:
- This is a legacy method that has been superceded by the
BinnedDensity and BinnedLnPDF classes. You almost
BinnedDensity and BinnedLnPDF classes. You also
certainly want to be using those instead of whatever
you're doing that needs this method.
"""
......@@ -2048,7 +2011,7 @@ class BinnedLnPDF(BinnedDensity):
As with the BinnedDensity class, the internal array contains counts
(not densities, nor natural logarithms of densities), and the
.count attribute continues to be a BinnedArray interface to those
.counts attribute continues to be a BinnedArray interface to those
counts. The intention is for the counts themselves to provide an
additional degree of freedom apart from the normalized density.
For example, see the .__iadd__() method where it is assumed that
......@@ -2090,7 +2053,7 @@ class BinnedLnPDF(BinnedDensity):
>>> # ln probability density = ln 1/(2 * 3) = -1.791759469228055
>>> y.at_centres()
array([ -inf, -1.79175947, -1.79175947, -1.79175947, -inf])
>>> # assuming \\sqrt{N} counting fluctuations, compute the fractional uncertainty
>>> # assuming \\sqrt{N} counting flucutations, compute the fractional uncertainty
>>> import numpy
>>> d = BinnedArray(x.bins, 1. / numpy.sqrt(x.count.at_centres()))
>>> d.at_centres()
......@@ -2160,7 +2123,7 @@ class BinnedLnPDF(BinnedDensity):
# between them are preserved. forbidden cases include:
# infinite bin size, total count is initially 0.
#
raise NotImplementedError("item assignment operation not defined. assign to .count then invoke .normalize()")
raise NotImplementedError("item assignment operation not defined. assign to .counts then invoke .normalize()")
def mkinterp(self):
"""
......@@ -2203,8 +2166,7 @@ class BinnedLnPDF(BinnedDensity):
return InterpBinnedArray(self)
def at_centres(self):
with numpy.errstate(divide = "ignore", invalid = "ignore"):
return numpy.log(super(BinnedLnPDF, self).at_centres()) - self.norm
return numpy.log(super(BinnedLnPDF, self).at_centres()) - self.norm
def marginalize(self, dim):
new = super(BinnedLnPDF, self).marginalize(dim)
......@@ -2249,11 +2211,6 @@ class BinnedLnPDF(BinnedDensity):
self.norm = other.norm + math.log1p(math.exp(self.norm - other.norm))
return self
def __add__(self, other):
self = super(BinnedLnPDF, self).__add__(other)
self.normalize()
return self
def copy(self):
new = super(BinnedLnPDF, self).copy()
new.norm = self.norm
......
......@@ -377,8 +377,7 @@ LALSimulateCoherentGW( LALStatus *stat,
} else {
output->sampleUnits = CWsignal->a->sampleUnits;
}
if( snprintf( output->name, LALNameLength, "response to %s", CWsignal->a->name ) >= LALNameLength )
ABORT( stat, SIMULATECOHERENTGWH_ENUL, SIMULATECOHERENTGWH_MSGENUL );
snprintf( output->name, LALNameLength, "response to %s", CWsignal->a->name );
}
/* Define temporary variables to access the data of CWsignal->a,
......
......@@ -32,7 +32,7 @@
/**
* Compute the natural logarithm of the complementary cumulative
* probability function of the \f$\chi^{2}\f$ distribution.
* probability function of the chi squared distribution.
*
* Returns the natural logarithm of the probability that \f$x_{1}^{2} +
* \cdots + x_{\mathrm{dof}}^{2} \geq \chi^{2}\f$, where \f$x_{1}, \ldots,
......
......@@ -79,7 +79,7 @@ void *XLALMallocLong(size_t n, const char *file, int line)
void *(XLALCalloc) (size_t m, size_t n) {
void *p;
p = LALCallocShort(m, n);
XLAL_TEST_POINTER(p, m && n);
XLAL_TEST_POINTER(p, m * n);
return p;
}
......@@ -87,7 +87,7 @@ void *XLALCallocLong(size_t m, size_t n, const char *file, int line)
{
void *p;
p = LALCallocLong(m, n, file, line);
XLAL_TEST_POINTER_LONG(p, m && n, file, line);
XLAL_TEST_POINTER_LONG(p, m * n, file, line);
return p;
}
......
......@@ -112,12 +112,15 @@ extern const int lalNoDebug;
} while ( 0 )
#define ABORT( statusptr, code, mesg ) \
do { if ( (statusptr)->statusPtr ) FREESTATUSPTR( statusptr ); \
do { if ( 1 ) \
{ \
if ( (statusptr)->statusPtr ) FREESTATUSPTR( statusptr ); \
SETSTATUS( statusptr, code, mesg ); \
if ( code ) \
(void) LALError( statusptr, "ABORT:" ); \
(void) LALTrace( statusptr, 1 ); \
return; \
} \
} while ( 0 )
#ifdef LAL_NDEBUG
......
......@@ -44,7 +44,6 @@
// ---------- local prototypes ----------
static void cleanConfig ( char *text );
static CHAR *XLALGetSectionName ( const CHAR *line );
// ==================== function definitions ==========
/**
......@@ -164,41 +163,37 @@ XLALDestroyParsedDataFile (LALParsedDataFile *cfgdata) /**< [in] config-file da
*
* \note: this function tolerates NULL input as secName, cfgdata, or cfgdata->lines,
* in which case the answer is simply 'FALSE'.
*
* NOTE2: quite inefficient implementation, re-creates table of content each time it's called
* however this function also doesn't seem to be used right now and should probably be removed?
*/
int
XLALConfigSectionExists ( const LALParsedDataFile *cfgdata, /**< [in] pre-parsed config-data */
const CHAR *secName) /**< [in] section-name to read */
{
UINT4 i;
size_t sec_searchlen = 0;
/* If there's no config file, or no section, then */
/* the section isn;t in the config file, return 0 */
if ( secName == NULL || cfgdata == NULL || cfgdata->lines == NULL )
{
return 0;
return FALSE;
}
CHAR *secName_cleaned;
XLAL_CHECK ( (secName_cleaned = XLALDeblankString ( secName, strlen(secName) )) != NULL, XLAL_EFUNC );
LALStringVector *toc;
XLAL_CHECK ( (toc = XLALListConfigFileSections ( cfgdata )) != NULL, XLAL_EFUNC );
sec_searchlen = strlen(secName);
int foundit = 0;
for ( UINT4 i = 0; i < toc->length; i ++ )
for (i = 0; i < cfgdata->lines->nTokens; i++)
{
if ( strcmp ( secName_cleaned, toc->data[i] ) == 0 )
/* Is this the start of a new section? */
if (cfgdata->lines->tokens[i][0] == '[')
{
foundit = 1;
break;
}
/* If we're looking for a particular section, is this it? */
if (strncmp(cfgdata->lines->tokens[i] + 1, secName, sec_searchlen) == 0)
{
return TRUE;
}
}
}
XLALDestroyStringVector ( toc );
XLALFree ( secName_cleaned );
return foundit;
return FALSE;
} /* XLALConfigSectionExists() */
......@@ -232,8 +227,12 @@ XLALListConfigFileSections ( const LALParsedDataFile *cfgdata ) /**< [in] pre
/* Is this the start of a new section? */
if ( thisLine[0] == '[' )
{
CHAR *secName;
XLAL_CHECK_NULL ( (secName = XLALGetSectionName ( thisLine )) != NULL, XLAL_EFUNC );
UINT4 len = strlen ( thisLine );
XLAL_CHECK_NULL ( thisLine[len-1] == ']', XLAL_EINVAL, "Invalid section start '%s'\n", thisLine );
const char *secName0 = thisLine + 1; // skip '['
char *secName;
XLAL_CHECK_NULL ( (secName = XLALDeblankString ( secName0, len - 2 )) != NULL, XLAL_EFUNC );
XLAL_CHECK_NULL ( (sections = XLALAppendString2Vector ( sections, secName )) != NULL, XLAL_EFUNC );
XLALFree ( secName );
} // if section found
......@@ -245,27 +244,6 @@ XLALListConfigFileSections ( const LALParsedDataFile *cfgdata ) /**< [in] pre
} // XLALListConfigFileSections()
// local helper function: check section syntax '[...]' and extract de-blanked section name
static CHAR *
XLALGetSectionName ( const CHAR *line )
{
XLAL_CHECK_NULL ( line != NULL, XLAL_EINVAL );
CHAR *lineCleaned = XLALDeblankString ( line, strlen(line) );
size_t lenLine = strlen ( lineCleaned );
if ( lineCleaned[0] != '[' || lineCleaned[lenLine-1] != ']' ) {
XLALPrintError ( "Invalid input line '%s' is not of the form '[...]' specifying a section name\n", lineCleaned );
XLALFree ( lineCleaned );
XLAL_ERROR_NULL ( XLAL_EINVAL );
}
CHAR *secName;
XLAL_CHECK_NULL ( (secName = XLALDeblankString ( lineCleaned+1, lenLine - 2 )) != NULL, XLAL_EFUNC );
XLALFree ( lineCleaned );
return secName;
} // XLALGetSectionName()
/**
* String parser for config-file: can read config-variables of the form VARIABLE [=:] VALUE.
......@@ -294,15 +272,10 @@ XLALReadConfigSTRINGVariable ( CHAR **varp, //!< [out] retur
// If we haven't been asked for a section then we want the
// "default" section, which starts at the top of the file without any section heading
CHAR *secName_cleaned = NULL;
if ( secName == NULL )
{
inRightSection = TRUE;
}
else
{
XLAL_CHECK ( (secName_cleaned = XLALDeblankString ( secName, strlen(secName) )) != NULL, XLAL_EFUNC );
}
/* find the variable-name in the token-list (and in the right section, if given) */
size_t searchlen = strlen ( varName );
......@@ -318,13 +291,10 @@ XLALReadConfigSTRINGVariable ( CHAR **varp, //!< [out] retur
return XLAL_SUCCESS;
}
CHAR *thisSec = XLALGetSectionName ( cfgdata->lines->tokens[i] );
XLAL_CHECK ( thisSec != NULL, XLAL_EFUNC );
if ( (secName_cleaned != NULL) && ( strcmp ( secName_cleaned, thisSec ) == 0 ) )
if ( (secName != NULL) && ( strncmp ( cfgdata->lines->tokens[i] + 1, secName, strlen(secName)) == 0) )
{
inRightSection = TRUE;
}
XLALFree ( thisSec );
} // end: if start of new section found
else
{
......@@ -355,8 +325,6 @@ XLALReadConfigSTRINGVariable ( CHAR **varp, //!< [out] retur
} // end: for i < num_lines
XLALFree ( secName_cleaned );
return XLAL_SUCCESS;
} // XLALReadConfigSTRINGVariable()
......
......@@ -38,23 +38,6 @@ extern "C" {
/*@{*/
///
/// Convert an unsigned long index \c i into a bit, i.e. \f$b = 2^i\f$
///
#define XLAL_IDX2BIT(i) (1UL << ((unsigned long)(i)))
///
/// Convert an unsigned long \e single bit \c b into an index, i.e. \f$i = \log_2 b \f$
///
#define XLAL_BIT2IDX(b) ( \
(((((unsigned long)(b)) & 0xAAAAAAAAAAAAAAAAUL) != 0)) | \
(((((unsigned long)(b)) & 0xCCCCCCCCCCCCCCCCUL) != 0) << 1UL) | \
(((((unsigned long)(b)) & 0xF0F0F0F0F0F0F0F0UL) != 0) << 2UL) | \
(((((unsigned long)(b)) & 0xFF00FF00FF00FF00UL) != 0) << 3UL) | \
(((((unsigned long)(b)) & 0xFFFF0000FFFF0000UL) != 0) << 4UL) | \
(((((unsigned long)(b)) & 0xFFFFFFFF00000000UL) != 0) << 5UL) \
)
///
/// A range of REAL8 values; first element is minimum, second element is maximum of range
///
......@@ -65,6 +48,7 @@ typedef REAL8 REAL8Range[2];
///
typedef INT4 INT4Range[2];
///
/// A range of GPS times; first element is minimum, second element is maximum of range
///
......
......@@ -54,10 +54,6 @@ static inline REAL8 local_mul ( REAL8 x, REAL8 y ) {
return x * y;
}
static inline REAL4 local_fmaxf ( REAL4 x, REAL4 y ) {
return (x > y) ? x : y;
}
// ========== internal generic functions ==========
// ---------- generic operator with 1 REAL4 vector input to 1 REAL4 vector output (S2S) ----------
......@@ -139,7 +135,7 @@ DEFINE_VECTORMATH_S2SS(SinCos2Pi, local_sincosf_2pi)
DEFINE_VECTORMATH_SS2S(Add, local_addf)
DEFINE_VECTORMATH_SS2S(Multiply, local_mulf)
DEFINE_VECTORMATH_SS2S(Max, local_fmaxf)
DEFINE_VECTORMATH_SS2S(Max, fmaxf)
// ---------- define vector math functions with 1 REAL4 scalar and 1 REAL4 vector inputs to 1 REAL4 vector output (sS2S) ----------
#define DEFINE_VECTORMATH_sS2S(NAME, GEN_OP) \
......
......@@ -2084,25 +2084,6 @@ require:
%swiglal_map_a(%swiglal_clear, TYPE, __VA_ARGS__);
%enddef
///
/// The <b>SWIGLAL(OWNS_THIS_STRING(...))</b> is a specialisation of the <b>SWIGLAL(OWNS_THIS_ARG(...))</b>
/// macro for strings, which must be handled differently.
///
%typemap(in, noblock=1, fragment="SWIG_AsLALcharPtrAndSize") char * SWIGLAL_OWNS_THIS_STRING (int res, char *str = NULL, int alloc = 0), const char * SWIGLAL_OWNS_THIS_STRING (int res, char *str = NULL, int alloc = 0) {
res = SWIG_AsLALcharPtr($input, &str, &alloc);
if (!SWIG_IsOK(res)) {
%argument_fail(res,"$type",$symname, $argnum);
}
$1 = %reinterpret_cast(str, $1_ltype);
}
%typemap(freearg, noblock=1, match="in") char *SWIGLAL_OWNS_THIS_STRING, const char *SWIGLAL_OWNS_THIS_STRING "";
%define %swiglal_public_OWNS_THIS_STRING(TYPE, ...)
%swiglal_map_ab(%swiglal_apply, TYPE SWIGLAL_OWNS_THIS_STRING, TYPE, __VA_ARGS__);
%enddef
%define %swiglal_public_clear_OWNS_THIS_STRING(TYPE, ...)
%swiglal_map_a(%swiglal_clear, TYPE, __VA_ARGS__);
%enddef
///
/// The <b>SWIGLAL(EXTERNAL_STRUCT(...))</b> macro can be used to support structs which are not
/// declared in LALSuite. It treats the struct as opaque, and attaches a destructor function to it.
......
## Some 'tough' tests for config-file reading routines
# comment line
[ section1]
[section1]
float1 = 1.0 ; ## semi-colons can be used to separate assignments, otherwise ignored
string1 = some text.\
......@@ -10,13 +10,13 @@ string1 = some text.\
int1 = 4 # whatever that means
# Comment before section
[ section2 ]
[section2]
# Comment after section
string2 = "this is also possible, and # here does nothing; and neither does semi-colon "; # but this is a comment
epochGPS = 987654321.123456789;
[section3 ]
[section3]
string3 = "how about #quotes\
AND line-continuation?" # yet another comment
testBool = False # use yes/no/0/1/true/false, case INsensitive
......
......@@ -43,14 +43,6 @@ int test_ParseREAL8Vector(void);
// ==================== function definitions ====================
int main(void)
{
// ---------- test XLAL_IDX2BIT()/XLAL_BIT2IDX() macros
for ( int i = 0; i < 64; ++i ) {
const unsigned long j = XLAL_IDX2BIT( i );
const int k = XLAL_BIT2IDX( j );
XLAL_CHECK_MAIN( i == k, XLAL_EFAILED, "XLAL_IDX2BIT()/XLAL_BIT2IDX() failed: %i -> %lu -> %i\n", i, j, k );
}
// ---------- test various string-value parser functions ----------
XLAL_CHECK_MAIN ( test_ParseStringValue() == XLAL_SUCCESS, XLAL_EFUNC );
......
......@@ -353,8 +353,8 @@ int WriteFrame(int argc,char *argv[],struct CommandLineArgsTag CLA)
/* Filters file checksum and cvs info (first 2 lines in filters file) */
{
char buffer[1280];
snprintf(buffer, sizeof(buffer), "Filters file checksum and header: %s\n%s",
char buffer[1024];
snprintf(buffer, sizeof buffer, "Filters file checksum and header: %s\n%s",
InputData.filter_chksum, InputData.filter_vc_info);
XLALFrameAddFrHistory(frame, __FILE__, buffer);
}
......
......@@ -3287,11 +3287,14 @@ void BankEfficiencyParseGetInt(
{
CHAR *tmp;
CHAR msg[2048];
CHAR *tmp1;
tmp1 = argv[*bank_index+1];
if ( argv[*bank_index+1] != NULL )
{
*data = strtol(argv[*bank_index+1], &tmp , 10);
if (*data==0 && argv[*bank_index+1][0] != '0')
if (*data==0 && tmp1[0] != '0')
{
sprintf(msg, "Expect a int after option %s (got %s)\n ",
argv[*bank_index],
......@@ -3302,8 +3305,9 @@ void BankEfficiencyParseGetInt(
}
else
{
sprintf(msg, "Expect a int after option %s (got NULL)\n ",
argv[*bank_index]);
sprintf(msg, "Expect a int after option %s (got %s)\n ",
argv[*bank_index],
argv[*bank_index+1]);
fprintf(stderr, "%s", msg);
exit( 1 );
}
......@@ -3334,11 +3338,13 @@ void BankEfficiencyParseGetDouble(
{
CHAR *tmp;
CHAR msg[2048];
CHAR *tmp2 ;
tmp2 = argv[*bank_index+1];
if (argv[*bank_index+1] != NULL)
{
*data = strtod(argv[*bank_index+1], &tmp );
if (*data == 0 && argv[*bank_index+1][0]!='0')
if (*data == 0 && tmp2[0]!='0')
{
sprintf(msg, "Expect a float after option %s (got %s)\n ",
argv[*bank_index],
......@@ -3348,8 +3354,9 @@ void BankEfficiencyParseGetDouble(
}
else
{
sprintf(msg, "Expect a float after option %s (got NULL)\n ",
argv[*bank_index]);
sprintf(msg, "Expect a float after option %s (got %s)\n ",
argv[*bank_index],
argv[*bank_index+1]);
fprintf(stderr, "%s", msg);
}
*bank_index =*bank_index + 1;
......@@ -3364,6 +3371,10 @@ void BankEfficiencyParseGetDouble2(
{
CHAR *tmp;
CHAR msg[2048];
CHAR *tmp2 , *tmp1;
tmp1 = argv[*bank_index+1];
tmp2= argv[*bank_index+2];
*data1 = 0 ;
*data2 = 0 ;
......@@ -3372,8 +3383,8 @@ void BankEfficiencyParseGetDouble2(
{
*data1 = strtod(argv[*bank_index+1], &tmp );
*data2 = strtod(argv[*bank_index+2], &tmp );
if ((!(*data1) && argv[*bank_index+1][0]!='0')
|| (!(*data2) && argv[*bank_index+2][0]!='0'))
if ((!(*data1) && tmp1[0]!='0')
|| (!(*data2) && tmp2[0]!='0'))
{
sprintf(msg, "Expect 2 floats after option %s (got %s and %s)\n ",
argv[*bank_index],
......@@ -3383,8 +3394,9 @@ void BankEfficiencyParseGetDouble2(
}
else
{
sprintf(msg, "Expect 2 floats after option %s (got NULL and/or NULL)\n ",
argv[*bank_index]);
sprintf(msg, "Expect 2 floats after option %s (got %s and %s)\n ",
argv[*bank_index],
argv[*bank_index+1],argv[*bank_index+2]);
fprintf(stderr, "%s", msg);
}
*bank_index = *bank_index +2 ;
......
......@@ -21,6 +21,7 @@ TRIGSCANSRC = trigscan.c
INSPFRINJSRC = inspfrinj.c
GWF2XMLSRC = gwf2xml.c
SPININJSRC = spininj.c
COINEXTSRC = coinext.c
RANDOMBANKSRC = randombank.c
NINJASRC = ninja.c
FRNINJASRC = fr_ninja.c
......@@ -46,6 +47,7 @@ LALMETAIO_PROGS = \
lalapps_trigbank \
lalapps_trigscan \
lalapps_spininj \
lalapps_coinext \
lalapps_randombank \
lalapps_ninja \
lalapps_fr_ninja \
......@@ -68,6 +70,7 @@ lalapps_trigscan_SOURCES = $(TRIGSCANSRC)
lalapps_spininj_SOURCES = $(SPININJSRC)
lalapps_inspfrinj_SOURCES = $(INSPFRINJSRC)
lalapps_gwf2xml_SOURCES = $(GWF2XMLSRC)
lalapps_coinext_SOURCES = $(COINEXTSRC)
lalapps_randombank_SOURCES = $(RANDOMBANKSRC)
lalapps_ninja_SOURCES = $(NINJASRC)
lalapps_fr_ninja_SOURCES = $(FRNINJASRC)
......
This diff is collapsed.
......@@ -15,8 +15,8 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
"""
This program constructs an NR waveform catalog in xml format by reading the relevant NR metadata from the HDF5 file.
It also holds the pointers to the NR data directories. Any catalog generated that way can directly be used by
This program constructs an NR waveform catalog in xml format by reading the relevant NR metadata from the HDF5 file.
It also holds the pointers to the NR data directories. Any catalog generated that way can directly be used by
lalapps_inspinj.
"""
......@@ -97,7 +97,7 @@ for count, inj in enumerate(inj_list):
curr_sim.simulation_id = ilwd.ilwdchar("sim_inspiral:simulation_id:%d"\