27 #include <lal/LALStdio.h>
29 #include <lal/XLALError.h>
30 #include <lal/LALDebugLevel.h>
31 #include <lal/LALMalloc.h>
32 #include <lal/LALConstants.h>
33 #include <lal/StringVector.h>
34 #include <lal/AVFactories.h>
35 #include <lal/UserInputPrint.h>
36 #include <lal/UserInputParse.h>
48 for (
int i = 0; i < 64; ++i ) {
76 const char *valString;
80 INT8 valINT8, valINT8Ref;
81 valString =
"9223372036854775807";
82 valINT8Ref = 9223372036854775807;
86 valString =
"4294967294";
87 valINT8Ref = 4294967294;
91 valString =
"-4294967294";
92 valINT8Ref = -4294967294;
97 valString =
"18446744073709551616";
99 XLAL_CHECK( errnum != 0,
XLAL_EFAILED,
"XLALParseStringValueAsINT8() failed to catch out-of-range conversion\n" );
102 INT4 valINT4, valINT4Ref;
103 valString =
"2147483647";
104 valINT4Ref = 2147483647;
106 XLAL_CHECK ( valINT4 == valINT4Ref,
XLAL_ETOL,
"XLALParseStringValueAsINT4(%s) failed, return = %d\n", valString, valINT4 );
108 valString =
"-1000000";
109 valINT4Ref = -1000000;
111 XLAL_CHECK ( valINT4 == valINT4Ref,
XLAL_ETOL,
"XLALParseStringValueAsINT4(%s) failed, return = %d\n", valString, valINT4 );
114 valString =
"4294967294";
116 XLAL_CHECK( errnum != 0,
XLAL_EFAILED,
"XLALParseStringValueAsINT4() failed to catch out-of-range conversion\n" );
119 UINT8 valUINT8, valUINT8Ref;
120 valString =
"18446744073709551615";
125 valString =
"4294967294";
126 valUINT8Ref = 4294967294;
131 valString =
"-4294967294";
133 XLAL_CHECK( errnum != 0,
XLAL_EFAILED,
"XLALParseStringValueAsUINT8() failed to catch out-of-range conversion\n" );
136 UINT4 valUINT4, valUINT4Ref;
137 valString =
"4294967295";
138 valUINT4Ref = 4294967295;
140 XLAL_CHECK ( valUINT4 == valUINT4Ref,
XLAL_ETOL,
"XLALParseStringValueAsUINT4(%s) failed, return = %d\n", valString, valUINT4 );
143 valString =
"-1000000";
145 XLAL_CHECK( errnum != 0,
XLAL_EFAILED,
"XLALParseStringValueAsUINT4() failed to catch out-of-range conversion\n" );
148 REAL8 valREAL8, valREAL8Ref;
149 valString =
"2147483647";
150 valREAL8Ref = 2147483647;
152 XLAL_CHECK ( valREAL8 == valREAL8Ref,
XLAL_ETOL,
"XLALParseStringValueAsREAL8(%s) failed, return = %.16g\n", valString, valREAL8 );
154 valString =
"-1.1234e10";
155 valREAL8Ref = -1.1234e10;
157 XLAL_CHECK ( fabs ( (valREAL8 - valREAL8Ref) / valREAL8Ref ) <=
LAL_REAL8_EPS,
XLAL_ETOL,
"XLALParseStringValueAsREAL8(%s) failed, return = %.16g\n", valString, valREAL8 );
160 REAL4 valREAL4, valREAL4Ref;
161 valString =
"2147483647";
162 valREAL4Ref = 2147483647.0;
164 XLAL_CHECK ( valREAL4 == valREAL4Ref,
XLAL_ETOL,
"XLALParseStringValueAsREAL4(%s) failed, return = %.16g\n", valString, valREAL4 );
166 valString =
"-1.1234e10";
167 valREAL4Ref = -1.1234e10;
169 XLAL_CHECK ( fabs ( (valREAL4 - valREAL4Ref) / valREAL4Ref ) <=
LAL_REAL4_EPS,
XLAL_ETOL,
"XLALParseStringValueAsREAL4(%s) failed, return = %.16g\n", valString, valREAL4 );
173 INT4 valINT, valINTRef;
174 REAL8 valFrac, valFracRef;
176 valString =
"123456789.12345678912345";
177 valINTRef = 123456789;
178 valFracRef = 0.12345678912345;
181 "XLALParseStringValueAsINT4PlusFrac(%s) failed, return = (%d, %.16g)\n", valString, valINT, valFrac );
183 valString =
"-123456789.12345678912345";
184 valINTRef = -123456789;
185 valFracRef = -0.12345678912345;
188 "XLALParseStringValueAsINT4PlusFrac(%s) failed, return = (%d, %.16g)\n", valString, valINT, valFrac );
191 LIGOTimeGPS valGPS, valGPSRef = {987654321, 123456789 };
193 valString =
"987654321.123456789";
201 valString =
"987654321.123456789GPS";
205 valString =
"55675.1848646696387616MJD";
209 valString =
"987654321.12345";
212 XLAL_CHECK (
XLALGPSCmp ( &valGPS, &valGPSRef ) == 0,
XLAL_ETOL,
"XLALParseStringValueAsGPS(%s) failed, return = {%d,%d}, correct = {%d,%d}\n",
219 int4RangeRef[0] = 100; int4RangeRef[1] = 100;
221 XLAL_CHECK( int4Range[0] == int4RangeRef[0] && int4Range[1] == int4RangeRef[1] && int4Range[0] <= int4Range[1],
222 XLAL_ETOL,
"XLALParseStringValueAsINT4Range(%s) failed, return = {%d,%d}\n", valString, int4Range[0], int4Range[1] );
225 int4RangeRef[0] = 150; int4RangeRef[1] = 155;
227 XLAL_CHECK( int4Range[0] == int4RangeRef[0] && int4Range[1] == int4RangeRef[1] && int4Range[0] <= int4Range[1],
228 XLAL_ETOL,
"XLALParseStringValueAsINT4Range(%s) failed, return = {%d,%d}\n", valString, int4Range[0], int4Range[1] );
230 valString =
"150/-5";
231 int4RangeRef[0] = 145; int4RangeRef[1] = 150;
233 XLAL_CHECK( int4Range[0] == int4RangeRef[0] && int4Range[1] == int4RangeRef[1] && int4Range[0] <= int4Range[1],
234 XLAL_ETOL,
"XLALParseStringValueAsINT4Range(%s) failed, return = {%d,%d}\n", valString, int4Range[0], int4Range[1] );
236 valString =
"200,201";
237 int4RangeRef[0] = 200; int4RangeRef[1] = 201;
239 XLAL_CHECK( int4Range[0] == int4RangeRef[0] && int4Range[1] == int4RangeRef[1] && int4Range[0] <= int4Range[1],
240 XLAL_ETOL,
"XLALParseStringValueAsINT4Range(%s) failed, return = {%d,%d}\n", valString, int4Range[0], int4Range[1] );
242 valString =
"203,202";
243 int4RangeRef[0] = 202; int4RangeRef[1] = 203;
245 XLAL_CHECK( int4Range[0] == int4RangeRef[0] && int4Range[1] == int4RangeRef[1] && int4Range[0] <= int4Range[1],
246 XLAL_ETOL,
"XLALParseStringValueAsINT4Range(%s) failed, return = {%d,%d}\n", valString, int4Range[0], int4Range[1] );
248 valString =
"-203,-202";
249 int4RangeRef[0] = -203; int4RangeRef[1] = -202;
251 XLAL_CHECK( int4Range[0] == int4RangeRef[0] && int4Range[1] == int4RangeRef[1] && int4Range[0] <= int4Range[1],
252 XLAL_ETOL,
"XLALParseStringValueAsINT4Range(%s) failed, return = {%d,%d}\n", valString, int4Range[0], int4Range[1] );
255 int4RangeRef[0] = 245; int4RangeRef[1] = 255;
257 XLAL_CHECK( int4Range[0] == int4RangeRef[0] && int4Range[1] == int4RangeRef[1] && int4Range[0] <= int4Range[1],
258 XLAL_ETOL,
"XLALParseStringValueAsINT4Range(%s) failed, return = {%d,%d}\n", valString, int4Range[0], int4Range[1] );
264 real8RangeRef[0] = 100; real8RangeRef[1] = 100;
266 XLAL_CHECK( fabs(real8Range[0] - real8RangeRef[0])/real8RangeRef[0] <=
LAL_REAL8_EPS && fabs(real8Range[1] - real8RangeRef[1])/real8RangeRef[1] <=
LAL_REAL8_EPS && real8Range[0] <= real8Range[1],
267 XLAL_ETOL,
"XLALParseStringValueAsREAL8Range(%s) failed, return = {%g,%g}\n", valString, real8Range[0], real8Range[1] );
269 valString =
"150/0.5";
270 real8RangeRef[0] = 150; real8RangeRef[1] = 150.5;
272 XLAL_CHECK( fabs(real8Range[0] - real8RangeRef[0])/real8RangeRef[0] <=
LAL_REAL8_EPS && fabs(real8Range[1] - real8RangeRef[1])/real8RangeRef[1] <=
LAL_REAL8_EPS && real8Range[0] <= real8Range[1],
273 XLAL_ETOL,
"XLALParseStringValueAsREAL8Range(%s) failed, return = {%g,%g}\n", valString, real8Range[0], real8Range[1] );
275 valString =
"150/-0.5";
276 real8RangeRef[0] = 149.5; real8RangeRef[1] = 150;
278 XLAL_CHECK( fabs(real8Range[0] - real8RangeRef[0])/real8RangeRef[0] <=
LAL_REAL8_EPS && fabs(real8Range[1] - real8RangeRef[1])/real8RangeRef[1] <=
LAL_REAL8_EPS && real8Range[0] <= real8Range[1],
279 XLAL_ETOL,
"XLALParseStringValueAsREAL8Range(%s) failed, return = {%g,%g}\n", valString, real8Range[0], real8Range[1] );
281 valString =
"200,201";
282 real8RangeRef[0] = 200; real8RangeRef[1] = 201;
284 XLAL_CHECK( fabs(real8Range[0] - real8RangeRef[0])/real8RangeRef[0] <=
LAL_REAL8_EPS && fabs(real8Range[1] - real8RangeRef[1])/real8RangeRef[1] <=
LAL_REAL8_EPS && real8Range[0] <= real8Range[1],
285 XLAL_ETOL,
"XLALParseStringValueAsREAL8Range(%s) failed, return = {%g,%g}\n", valString, real8Range[0], real8Range[1] );
287 valString =
"203,202";
288 real8RangeRef[0] = 202; real8RangeRef[1] = 203;
290 XLAL_CHECK( fabs(real8Range[0] - real8RangeRef[0])/real8RangeRef[0] <=
LAL_REAL8_EPS && fabs(real8Range[1] - real8RangeRef[1])/real8RangeRef[1] <=
LAL_REAL8_EPS && real8Range[0] <= real8Range[1],
291 XLAL_ETOL,
"XLALParseStringValueAsREAL8Range(%s) failed, return = {%g,%g}\n", valString, real8Range[0], real8Range[1] );
293 valString =
"-203,-202";
294 real8RangeRef[0] = -203; real8RangeRef[1] = -202;
296 XLAL_CHECK( fabs(real8Range[0] - real8RangeRef[0])/real8RangeRef[0] <=
LAL_REAL8_EPS && fabs(real8Range[1] - real8RangeRef[1])/real8RangeRef[1] <=
LAL_REAL8_EPS && real8Range[0] <= real8Range[1],
297 XLAL_ETOL,
"XLALParseStringValueAsREAL8Range(%s) failed, return = {%g,%g}\n", valString, real8Range[0], real8Range[1] );
300 real8RangeRef[0] = 245; real8RangeRef[1] = 255;
302 XLAL_CHECK( fabs(real8Range[0] - real8RangeRef[0])/real8RangeRef[0] <=
LAL_REAL8_EPS && fabs(real8Range[1] - real8RangeRef[1])/real8RangeRef[1] <=
LAL_REAL8_EPS && real8Range[0] <= real8Range[1],
303 XLAL_ETOL,
"XLALParseStringValueAsREAL8Range(%s) failed, return = {%g,%g}\n", valString, real8Range[0], real8Range[1] );
308 valString =
"100200300.4";
309 XLALGPSSet(&gpsRangeRef[0], 100200300, 400000000);
XLALGPSSet(&gpsRangeRef[1], 100200300, 400000000);
314 valString =
"100200300.4/800600400.2";
315 XLALGPSSet(&gpsRangeRef[0], 100200300, 400000000);
XLALGPSSet(&gpsRangeRef[1], 900800700, 600000000);
320 valString =
"100200300.4/-800600400.2";
321 XLALGPSSet(&gpsRangeRef[0], -700400099, -800000000);
XLALGPSSet(&gpsRangeRef[1], 100200300, 400000000);
326 valString =
"200300400.5,600700800.9";
327 XLALGPSSet(&gpsRangeRef[0], 200300400, 500000000);
XLALGPSSet(&gpsRangeRef[1], 600700800, 900000000);
332 valString =
"600700800.9,200300400.5";
333 XLALGPSSet(&gpsRangeRef[0], 200300400, 500000000);
XLALGPSSet(&gpsRangeRef[1], 600700800, 900000000);
338 valString =
"123456789~123456.789";
339 XLALGPSSet(&gpsRangeRef[0], 123333332, 211000000);
XLALGPSSet(&gpsRangeRef[1], 123580245, 789000000);
348 rajRangeRef[0] = 0.1; rajRangeRef[1] = 0.1;
350 XLAL_CHECK( fabs(rajRange[0] - rajRangeRef[0])/rajRangeRef[0] <=
LAL_REAL8_EPS && fabs(rajRange[1] - rajRangeRef[1])/rajRangeRef[1] <=
LAL_REAL8_EPS && rajRange[0] <= rajRange[1],
351 XLAL_ETOL,
"XLALParseStringValueAsRAJRange(%s) failed, return = {%g,%g}\n", valString, rajRange[0], rajRange[1] );
353 valString =
"10:20:30/0.5";
354 rajRangeRef[0] = 2.7074420021562036; rajRangeRef[1] = rajRangeRef[0] + 0.5;
356 XLAL_CHECK( fabs(rajRange[0] - rajRangeRef[0])/rajRangeRef[0] <=
LAL_REAL8_EPS && fabs(rajRange[1] - rajRangeRef[1])/rajRangeRef[1] <=
LAL_REAL8_EPS && rajRange[0] <= rajRange[1],
357 XLAL_ETOL,
"XLALParseStringValueAsRAJRange(%s) failed, return = {%g,%g}\n", valString, rajRange[0], rajRange[1] );
359 valString =
"10:20:30/-0.5";
360 rajRangeRef[0] = 2.7074420021562036 - 0.5; rajRangeRef[1] = rajRangeRef[0] + 0.5;
362 XLAL_CHECK( fabs(rajRange[0] - rajRangeRef[0])/rajRangeRef[0] <=
LAL_REAL8_EPS && fabs(rajRange[1] - rajRangeRef[1])/rajRangeRef[1] <=
LAL_REAL8_EPS && rajRange[0] <= rajRange[1],
363 XLAL_ETOL,
"XLALParseStringValueAsRAJRange(%s) failed, return = {%g,%g}\n", valString, rajRange[0], rajRange[1] );
365 valString =
"10:20:30,11:22:33";
366 rajRangeRef[0] = 2.7074420021562036; rajRangeRef[1] = 2.9781862023718242;
368 XLAL_CHECK( fabs(rajRange[0] - rajRangeRef[0])/rajRangeRef[0] <=
LAL_REAL8_EPS && fabs(rajRange[1] - rajRangeRef[1])/rajRangeRef[1] <=
LAL_REAL8_EPS && rajRange[0] <= rajRange[1],
369 XLAL_ETOL,
"XLALParseStringValueAsRAJRange(%s) failed, return = {%g,%g}\n", valString, rajRange[0], rajRange[1] );
371 valString =
"11:22:33,10:20:30";
372 rajRangeRef[0] = 2.7074420021562036; rajRangeRef[1] = 2.9781862023718242;
374 XLAL_CHECK( fabs(rajRange[0] - rajRangeRef[0])/rajRangeRef[0] <=
LAL_REAL8_EPS && fabs(rajRange[1] - rajRangeRef[1])/rajRangeRef[1] <=
LAL_REAL8_EPS && rajRange[0] <= rajRange[1],
375 XLAL_ETOL,
"XLALParseStringValueAsRAJRange(%s) failed, return = {%g,%g}\n", valString, rajRange[0], rajRange[1] );
377 valString =
"11:22:33~00:00:44.55";
378 rajRangeRef[0] = 2.9749464349478099; rajRangeRef[1] = 2.9814259697958385;
380 XLAL_CHECK( fabs(rajRange[0] - rajRangeRef[0])/rajRangeRef[0] <=
LAL_REAL8_EPS && fabs(rajRange[1] - rajRangeRef[1])/rajRangeRef[1] <=
LAL_REAL8_EPS && rajRange[0] <= rajRange[1],
381 XLAL_ETOL,
"XLALParseStringValueAsRAJRange(%s) failed, return = {%g,%g}\n", valString, rajRange[0], rajRange[1] );
387 decjRangeRef[0] = 0.1; decjRangeRef[1] = 0.1;
389 XLAL_CHECK( fabs(decjRange[0] - decjRangeRef[0])/decjRangeRef[0] <=
LAL_REAL8_EPS && fabs(decjRange[1] - decjRangeRef[1])/decjRangeRef[1] <=
LAL_REAL8_EPS && decjRange[0] <= decjRange[1],
390 XLAL_ETOL,
"XLALParseStringValueAsDECJRange(%s) failed, return = {%g,%g}\n", valString, decjRange[0], decjRange[1] );
392 valString =
"10:20:30/0.5";
393 decjRangeRef[0] = (2.7074420021562036/15); decjRangeRef[1] = decjRangeRef[0] + 0.5;
395 XLAL_CHECK( fabs(decjRange[0] - decjRangeRef[0])/decjRangeRef[0] <=
LAL_REAL8_EPS && fabs(decjRange[1] - decjRangeRef[1])/decjRangeRef[1] <=
LAL_REAL8_EPS && decjRange[0] <= decjRange[1],
396 XLAL_ETOL,
"XLALParseStringValueAsDECJRange(%s) failed, return = {%g,%g}\n", valString, decjRange[0], decjRange[1] );
398 valString =
"10:20:30/-0.5";
399 decjRangeRef[0] = (2.7074420021562036/15) - 0.5; decjRangeRef[1] = decjRangeRef[0] + 0.5;
401 XLAL_CHECK( fabs(decjRange[0] - decjRangeRef[0])/decjRangeRef[0] <=
LAL_REAL8_EPS && fabs(decjRange[1] - decjRangeRef[1])/decjRangeRef[1] <=
LAL_REAL8_EPS && decjRange[0] <= decjRange[1],
402 XLAL_ETOL,
"XLALParseStringValueAsDECJRange(%s) failed, return = {%g,%g}\n", valString, decjRange[0], decjRange[1] );
404 valString =
"10:20:30,11:22:33";
405 decjRangeRef[0] = (2.7074420021562036/15); decjRangeRef[1] = (2.9781862023718242/15);
407 XLAL_CHECK( fabs(decjRange[0] - decjRangeRef[0])/decjRangeRef[0] <=
LAL_REAL8_EPS && fabs(decjRange[1] - decjRangeRef[1])/decjRangeRef[1] <=
LAL_REAL8_EPS && decjRange[0] <= decjRange[1],
408 XLAL_ETOL,
"XLALParseStringValueAsDECJRange(%s) failed, return = {%g,%g}\n", valString, decjRange[0], decjRange[1] );
410 valString =
"11:22:33,10:20:30";
411 decjRangeRef[0] = (2.7074420021562036/15); decjRangeRef[1] = (2.9781862023718242/15);
413 XLAL_CHECK( fabs(decjRange[0] - decjRangeRef[0])/decjRangeRef[0] <=
LAL_REAL8_EPS && fabs(decjRange[1] - decjRangeRef[1])/decjRangeRef[1] <=
LAL_REAL8_EPS && decjRange[0] <= decjRange[1],
414 XLAL_ETOL,
"XLALParseStringValueAsDECJRange(%s) failed, return = {%g,%g}\n", valString, decjRange[0], decjRange[1] );
416 valString =
"11:22:33~00:00:44.55";
417 decjRangeRef[0] = (2.9749464349478099/15); decjRangeRef[1] = (2.9814259697958385/15);
419 XLAL_CHECK( fabs(decjRange[0] - decjRangeRef[0])/decjRangeRef[0] <=
LAL_REAL8_EPS && fabs(decjRange[1] - decjRangeRef[1])/decjRangeRef[1] <=
LAL_REAL8_EPS && decjRange[0] <= decjRange[1],
420 XLAL_ETOL,
"XLALParseStringValueAsDECJRange(%s) failed, return = {%g,%g}\n", valString, decjRange[0], decjRange[1] );
424 const UserChoices enumData = { { -1,
"noenum" }, { 1,
"enum1" }, { 2,
"enum2" }, { 2,
"enumB" }, { 0,
"enum0" } };
426 valString =
"noenum";
428 XLAL_CHECK( errnum != 0,
XLAL_EFAILED,
"XLALParseStringValueAsUserEnum() failed to catch invalid enumeration value\n" );
432 XLAL_CHECK( valEnum == 0,
XLAL_ETOL,
"XLALParseStringValueAsUserEnum(%s), failed, return = %i", valString, valEnum );
436 XLAL_CHECK( valEnum == 1,
XLAL_ETOL,
"XLALParseStringValueAsUserEnum(%s), failed, return = %i", valString, valEnum );
440 XLAL_CHECK( valEnum == 2,
XLAL_ETOL,
"XLALParseStringValueAsUserEnum(%s), failed, return = %i", valString, valEnum );
444 XLAL_CHECK( valEnum == 2,
XLAL_ETOL,
"XLALParseStringValueAsUserEnum(%s), failed, return = %i", valString, valEnum );
448 const UserChoices flagData = { { 0,
"none" }, { -1,
"noflag" }, { 1,
"flagA" }, { 2,
"flagB" }, { 4,
"flagC" }, { 5,
"flagAC" } };
452 XLAL_CHECK( valFlag == 0,
XLAL_ETOL,
"XLALParseStringValueAsUserFlag(%s), failed, return = %i", valString, valFlag );
454 valString =
"noflag";
456 XLAL_CHECK( errnum != 0,
XLAL_EFAILED,
"XLALParseStringValueAsUserFlag() failed to catch invalid bitflag value\n" );
458 valString =
"none,flagA";
460 XLAL_CHECK( errnum != 0,
XLAL_EFAILED,
"XLALParseStringValueAsUserFlag() failed to catch invalid bitflag value\n" );
464 XLAL_CHECK( valFlag == 1,
XLAL_ETOL,
"XLALParseStringValueAsUserFlag(%s), failed, return = %i", valString, valFlag );
468 XLAL_CHECK( valFlag == 2,
XLAL_ETOL,
"XLALParseStringValueAsUserFlag(%s), failed, return = %i", valString, valFlag );
470 valString =
"flagA,flagC";
472 XLAL_CHECK( valFlag == 5,
XLAL_ETOL,
"XLALParseStringValueAsUserFlag(%s), failed, return = %i", valString, valFlag );
474 valString =
"flagAC";
476 XLAL_CHECK( valFlag == 5,
XLAL_ETOL,
"XLALParseStringValueAsUserFlag(%s), failed, return = %i", valString, valFlag );
478 valString =
"flagB,flagA,flagC,flagA";
480 XLAL_CHECK( valFlag == 7,
XLAL_ETOL,
"XLALParseStringValueAsUserFlag(%s), failed, return = %i", valString, valFlag );
489 #define STR1 "Hello, world!"
490 #define STR2 "xyda 3!#4134"
491 #define STR3 "&\\//.. :: some junk"
502 CHAR *strValue1 = NULL;
505 XLALPrintInfo (
"String value of initial string-vector: %s\n", strValue1 );
508 CHAR *strValue2 = NULL;
510 XLALPrintInfo (
"String value of re-parsed string-vector: %s\n", strValue2 );
514 XLAL_CHECK ( strcmp ( strValue1, strValue2 ) == 0,
XLAL_EFAILED,
"String values differ:\nstrValue1 = %s\nstrValue2 = %s\n", strValue1, strValue2 );
519 XLAL_CHECK ( len1 == len2,
XLAL_EFAILED,
"String vectors vect1 and vect2 have different lengths (%d != %d )\n", len1, len2 );
521 for (
UINT4 i = 0; i < len1; i++ )
523 if ( strcmp ( strVect1->
data[i], strVect2->
data[i] ) != 0 )
525 for (
UINT4 j=0; j < len1; j ++ ) {
549 const char *csvIn =
"0.1,5,-5.1e+99,1.23456789e-99,inf,nan";
550 REAL8 vals[] = {0.1, 5, -5.1e+99, 1.23456789e-99 };
559 XLAL_CHECK ( strcmp ( csvIn, csvOut ) == 0,
XLAL_EFAILED,
"csvIn != csvOut:\ncsvIn = %s\ncsvOut = %s\n", csvIn, csvOut );
562 for (
UINT4 i = 0; i < 4; i ++ ) {
void LALCheckMemoryLeaks(void)
int XLALPrintInfo(const char *fmt,...)
int XLALPrintError(const char *fmt,...)
#define LAL_REAL8_EPS
Difference between 1 and the next resolvable REAL8 2^-52.
#define LAL_REAL4_EPS
Difference between 1 and the next resolvable REAL4 2^-23.
uint64_t UINT8
Eight-byte unsigned integer; on some platforms this is equivalent to unsigned long int instead.
double REAL8
Double precision real floating-point number (8 bytes).
int64_t INT8
Eight-byte signed integer; on some platforms this is equivalent to long int instead.
#define LAL_UINT8_C(c)
Macro for use in defining v as an UINT8 constant.
char CHAR
One-byte signed integer, see Headers LAL(Atomic)Datatypes.h for more details.
uint32_t UINT4
Four-byte unsigned integer.
int32_t INT4
Four-byte signed integer.
float REAL4
Single precision real floating-point number (4 bytes).
LALStringVector * XLALAppendString2Vector(LALStringVector *vect, const CHAR *string)
Append the given string to the string-vector (XLAL interface), return pointer to the resulting string...
void XLALDestroyStringVector(LALStringVector *vect)
XLAL-interface: Free a string-vector ;)
LALStringVector * XLALCreateStringVector(const CHAR *str1,...)
Create a StringVector from the list of strings passed as arguments.
void XLALDestroyREAL8Vector(REAL8Vector *vector)
#define XLAL_TRY_SILENT(statement, errnum)
Performs the same actions as XLAL_TRY(), but additionally silences any error/warning/etc.
#define XLAL_ERROR(...)
Macro to invoke a failure from a XLAL routine returning an integer.
#define XLAL_CHECK(assertion,...)
Macro to test an assertion and invoke a failure if it is not true in a function that returns an integ...
#define XLAL_CHECK_MAIN(assertion,...)
Macro to test an assertion and invoke a failure if it is not true in a C main() routine.
@ XLAL_SUCCESS
Success return value (not an error number)
@ XLAL_EFUNC
Internal function call failed bit: "or" this with existing error number.
@ XLAL_ETOL
Failed to reach specified tolerance.
@ XLAL_EFAILED
Generic failure.
int XLALGPSCmp(const LIGOTimeGPS *t0, const LIGOTimeGPS *t1)
Compares two GPS times.
LIGOTimeGPS * XLALGPSSet(LIGOTimeGPS *epoch, INT4 gpssec, INT8 gpsnan)
Sets GPS time given GPS integer seconds and residual nanoseconds.
Vector of type CHAR*, ie 'strings', see DATATYPE-Vector types for more details.
UINT4 length
Number of elements in array.
CHAR ** data
Pointer to the data array.
Epoch relative to GPS epoch, see LIGOTimeGPS type for more details.
INT4 gpsSeconds
Seconds since 0h UTC 6 Jan 1980.
INT4 gpsNanoSeconds
Residual nanoseconds.
Vector of type REAL8, see DATATYPE-Vector types for more details.
REAL8 * data
Pointer to the data array.
Possible choices the user may select for an enumeration or bitflag.