50 #define PRINTFTSERIESTESTC_ENOM 0
51 #define PRINTFTSERIESTESTC_EFUN 1
56 #define PRINTFTSERIESTESTC_MSGENOM "Nominal exit"
57 #define PRINTFTSERIESTESTC_MSGEFUN "Error from LAL function"
61 #include <lal/Units.h>
62 #include <lal/PrintFTSeries.h>
64 #include <lal/LALStdlib.h>
65 #include <lal/AVFactories.h>
101 t00.
gpsSeconds = 3600 * 24 * (15 * 365 + 5 * 366);
104 t10.
gpsSeconds = 3600 * 24 * (22 * 365 + 8 * 366);
107 fprintf(stderr,
"Printing COMPLEX16TimeSeries to zTS.dat\n");
112 if (
status.statusCode != 0)
114 fprintf(stderr,
"[%i]: %s [PrintFTSeriesTest:%s]\n",
status.statusCode,
115 status.statusDescription, PRINTFTSERIESTESTC_MSGEFUN);
118 for ( n=zSequence->
length, z=zSequence->
data; n > 0 ; --n, ++z ) {
119 *z = sinh(90.0*(4-n));
120 *z += - I / (1e-300 + creal(*z));
124 zTimeSeries.
deltaT = 1e-3;
126 zTimeSeries.
epoch = t80;
127 zTimeSeries.
data = zSequence;
130 if (
status.statusCode != 0)
132 fprintf(stderr,
"[%i]: %s [PrintFTSeriesTest:%s]\n",
status.statusCode,
133 status.statusDescription, PRINTFTSERIESTESTC_MSGEFUN);
137 fprintf(stderr,
"Printing COMPLEX16FrequencySeries to zFS.dat\n");
141 zFrequencySeries.
deltaF = 1;
142 zFrequencySeries.
epoch = t80;
143 zFrequencySeries.
f0 = 0;
144 zFrequencySeries.
data = zSequence;
147 if (
status.statusCode != 0)
149 fprintf(stderr,
"[%i]: %s [PrintFTSeriesTest:%s]\n",
status.statusCode,
150 status.statusDescription, PRINTFTSERIESTESTC_MSGEFUN);
155 if (
status.statusCode != 0)
157 fprintf(stderr,
"[%i]: %s [PrintFTSeriesTest:%s]\n",
status.statusCode,
158 status.statusDescription, PRINTFTSERIESTESTC_MSGEFUN);
164 fprintf(stderr,
"Printing COMPLEX8TimeSeries to cTS.dat\n");
167 if (
status.statusCode != 0)
169 fprintf(stderr,
"[%i]: %s [PrintFTSeriesTest:%s]\n",
status.statusCode,
170 status.statusDescription, PRINTFTSERIESTESTC_MSGEFUN);
173 for ( n=cSequence->
length, c=cSequence->
data; n > 0 ; --n, ++c ) {
174 *c = sinh(9.0*(4-n));
175 *c += - I / (1e-30 + creal(*c));
179 cTimeSeries.
deltaT = 1.0/1024.0;
181 cTimeSeries.
epoch = t00;
182 cTimeSeries.
data = cSequence;
185 if (
status.statusCode != 0)
187 fprintf(stderr,
"[%i]: %s [PrintFTSeriesTest:%s]\n",
status.statusCode,
188 status.statusDescription, PRINTFTSERIESTESTC_MSGEFUN);
192 fprintf(stderr,
"Printing COMPLEX8FrequencySeries to cFS.dat\n");
196 cFrequencySeries.
deltaF = 1;
197 cFrequencySeries.
epoch = t80;
198 cFrequencySeries.
f0 = 0;
199 cFrequencySeries.
data = cSequence;
202 if (
status.statusCode != 0)
204 fprintf(stderr,
"[%i]: %s [PrintFTSeriesTest:%s]\n",
status.statusCode,
205 status.statusDescription, PRINTFTSERIESTESTC_MSGEFUN);
209 fprintf(stderr,
"Printing REAL8TimeSeries to dTS.dat\n");
214 if (
status.statusCode != 0)
216 fprintf(stderr,
"[%i]: %s [PrintFTSeriesTest:%s]\n",
status.statusCode,
217 status.statusDescription, PRINTFTSERIESTESTC_MSGEFUN);
220 for ( n=dSequence->
length, d=dSequence->
data; n > 0 ; --n, ++d ) {
221 *d = sinh(90.0*(4-n));
226 dTimeSeries.
deltaT = 1.0/1024.0;
227 dTimeSeries.
epoch = t00;
228 dTimeSeries.
data = dSequence;
231 if (
status.statusCode != 0)
233 fprintf(stderr,
"[%i]: %s [PrintFTSeriesTest:%s]\n",
status.statusCode,
234 status.statusDescription, PRINTFTSERIESTESTC_MSGEFUN);
238 fprintf(stderr,
"Printing REAL8FrequencySeries to dFS.dat\n");
243 for ( n=dSequence->
length, d=dSequence->
data; n > 0 ; --n, ++d ) {
244 *d = 1 / (1e-300 + *d);
248 dFrequencySeries.
f0 = 0 ;
249 dFrequencySeries.
deltaF = 128;
250 dFrequencySeries.
epoch = t00;
251 dFrequencySeries.
data = dSequence;
253 if (
status.statusCode != 0)
255 fprintf(stderr,
"[%i]: %s [PrintFTSeriesTest:%s]\n",
status.statusCode,
256 status.statusDescription, PRINTFTSERIESTESTC_MSGEFUN);
261 if (
status.statusCode != 0)
263 fprintf(stderr,
"[%i]: %s [PrintFTSeriesTest:%s]\n",
status.statusCode,
264 status.statusDescription, PRINTFTSERIESTESTC_MSGEFUN);
268 fprintf(stderr,
"Printing REAL4TimeSeries to sFS.dat\n");
273 if (
status.statusCode != 0)
275 fprintf(stderr,
"[%i]: %s [PrintFTSeriesTest:%s]\n",
status.statusCode,
276 status.statusDescription, PRINTFTSERIESTESTC_MSGEFUN);
279 for ( n=sSequence->
length, s=sSequence->
data; n > 0 ; --n, ++s ) {
280 *s = sinh(9.0*(4-n));
284 sTimeSeries.
deltaT = 1.0/1024.0;
286 sTimeSeries.
epoch = t10;
287 sTimeSeries.
data = sSequence;
289 if (
status.statusCode != 0)
291 fprintf(stderr,
"[%i]: %s [PrintFTSeriesTest:%s]\n",
status.statusCode,
292 status.statusDescription, PRINTFTSERIESTESTC_MSGEFUN);
296 fprintf(stderr,
"Printing REAL4FrequencySeries to sFS.dat\n");
298 for ( n=sSequence->
length, s=sSequence->
data; n > 0 ; --n, ++s ) {
299 *s = 1 / (1e-30 + *s);
303 sFrequencySeries.
f0 = 0;
304 sFrequencySeries.
deltaF = 128;
305 sFrequencySeries.
epoch = t10;
306 sFrequencySeries.
data = sSequence;
308 if (
status.statusCode != 0)
310 fprintf(stderr,
"[%i]: %s [PrintFTSeriesTest:%s]\n",
status.statusCode,
311 status.statusDescription, PRINTFTSERIESTESTC_MSGEFUN);
316 if (
status.statusCode != 0)
318 fprintf(stderr,
"[%i]: %s [PrintFTSeriesTest:%s]\n",
status.statusCode,
319 status.statusDescription, PRINTFTSERIESTESTC_MSGEFUN);
323 fprintf(stderr,
"Printing heterodyned REAL8FrequencySeries to hFSe.dat\n");
327 cFrequencySeries.
f0 = 500.0;
328 cFrequencySeries.
deltaF = 50.0;
329 cFrequencySeries.
epoch = t00;
330 cFrequencySeries.
data = cSequence;
332 for (i=0; i<cSequence->
length; ++i) {
333 cSequence->
data[i] = 1.0*i;
334 cSequence->
data[i] += I * (cFrequencySeries.
f0 + cFrequencySeries.
deltaF * i);
338 if (
status.statusCode != 0)
340 fprintf(stderr,
"[%i]: %s [PrintFTSeriesTest:%s]\n",
status.statusCode,
341 status.statusDescription, PRINTFTSERIESTESTC_MSGEFUN);
346 if (
status.statusCode != 0)
348 fprintf(stderr,
"[%i]: %s [PrintFTSeriesTest:%s]\n",
status.statusCode,
349 status.statusDescription, PRINTFTSERIESTESTC_MSGEFUN);
353 fprintf(stderr,
"Printing heterodyned REAL8FrequencySeries to hFSo.dat\n");
356 if (
status.statusCode != 0)
358 fprintf(stderr,
"[%i]: %s [PrintFTSeriesTest:%s]\n",
status.statusCode,
359 status.statusDescription, PRINTFTSERIESTESTC_MSGEFUN);
364 cFrequencySeries.
f0 = 500.0;
365 cFrequencySeries.
deltaF = 50.0;
366 cFrequencySeries.
epoch = t00;
367 cFrequencySeries.
data = cSequence;
369 for (i=0; i<cSequence->
length; ++i) {
370 cSequence->
data[i] = 1.0*i;
371 cSequence->
data[i] += I * (cFrequencySeries.
f0 + cFrequencySeries.
deltaF*i);
375 if (
status.statusCode != 0)
377 fprintf(stderr,
"[%i]: %s [PrintFTSeriesTest:%s]\n",
status.statusCode,
378 status.statusDescription, PRINTFTSERIESTESTC_MSGEFUN);
382 if (
status.statusCode != 0)
384 fprintf(stderr,
"[%i]: %s [PrintFTSeriesTest:%s]\n",
status.statusCode,
385 status.statusDescription, PRINTFTSERIESTESTC_MSGEFUN);
void LALCheckMemoryLeaks(void)
#define PRINTFTSERIESTESTC_EFUN
Error from LAL function.
int main(int argc, char *argv[])
double complex COMPLEX16
Double-precision floating-point complex number (16 bytes total)
double REAL8
Double precision real floating-point number (8 bytes).
int16_t INT2
Two-byte signed integer.
uint32_t UINT4
Four-byte unsigned integer.
float complex COMPLEX8
Single-precision floating-point complex number (8 bytes total)
float REAL4
Single precision real floating-point number (4 bytes).
void LALCPrintFrequencySeries(COMPLEX8FrequencySeries *series, const CHAR *filename)
void LALSPrintFrequencySeries(REAL4FrequencySeries *series, const CHAR *filename)
void LALZPrintFrequencySeries(COMPLEX16FrequencySeries *series, const CHAR *filename)
void LALDPrintFrequencySeries(REAL8FrequencySeries *series, const CHAR *filename)
void LALZPrintTimeSeries(COMPLEX16TimeSeries *series, const CHAR *filename)
void LALDPrintTimeSeries(REAL8TimeSeries *series, const CHAR *filename)
void LALCPrintTimeSeries(COMPLEX8TimeSeries *series, const CHAR *filename)
void LALSPrintTimeSeries(REAL4TimeSeries *series, const CHAR *filename)
const LALUnit lalDimensionlessUnit
dimensionless units
void LALCCreateVector(LALStatus *, COMPLEX8Vector **, UINT4)
void LALZDestroyVector(LALStatus *, COMPLEX16Vector **)
void LALDCreateVector(LALStatus *, REAL8Vector **, UINT4)
void LALCDestroyVector(LALStatus *, COMPLEX8Vector **)
void LALDDestroyVector(LALStatus *, REAL8Vector **)
void LALSDestroyVector(LALStatus *, REAL4Vector **)
void LALZCreateVector(LALStatus *, COMPLEX16Vector **, UINT4)
void LALSCreateVector(LALStatus *, REAL4Vector **, UINT4)
See DATATYPE-FrequencySeries types for documentation.
Time series of COMPLEX16 data, see DATATYPE-TimeSeries types for more details.
REAL8 f0
The heterodyning frequency, in Hertz (zero if not heterodyned).
COMPLEX16Sequence * data
The sequence of sampled data.
LALUnit sampleUnits
The physical units of the quantity being sampled.
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 series in seconds.
Vector of type COMPLEX16, see DATATYPE-Vector types for more details.
UINT4 length
Number of elements in array.
COMPLEX16 * data
Pointer to the data array.
See DATATYPE-FrequencySeries types for documentation.
Time series of COMPLEX8 data, see DATATYPE-TimeSeries types for more details.
CHAR name[LALNameLength]
The name of the time series.
LALUnit sampleUnits
The physical units of the quantity being sampled.
REAL8 f0
The heterodyning frequency, in Hertz (zero if not heterodyned).
REAL8 deltaT
The time step between samples of the time series in seconds.
LIGOTimeGPS epoch
The start time of the time series.
COMPLEX8Sequence * data
The sequence of sampled data.
Vector of type COMPLEX8, see DATATYPE-Vector types for more details.
UINT4 length
Number of elements in array.
COMPLEX8 * data
Pointer to the data array.
LAL status structure, see The LALStatus structure for more details.
Epoch relative to GPS epoch, see LIGOTimeGPS type for more details.
INT4 gpsSeconds
Seconds since 0h UTC 6 Jan 1980.
INT4 gpsNanoSeconds
Residual nanoseconds.
See DATATYPE-FrequencySeries types for documentation.
Time series of REAL4 data, see DATATYPE-TimeSeries types for more details.
REAL4Sequence * data
The sequence of sampled data.
LALUnit sampleUnits
The physical units of the quantity being sampled.
REAL8 deltaT
The time step between samples of the time series in seconds.
LIGOTimeGPS epoch
The start time of the time series.
REAL8 f0
The heterodyning frequency, in Hertz (zero if not heterodyned).
Vector of type REAL4, see DATATYPE-Vector types for more details.
REAL4 * data
Pointer to the data array.
UINT4 length
Number of elements in array.
See DATATYPE-FrequencySeries types for documentation.
Time series of REAL8 data, see DATATYPE-TimeSeries types for more details.
REAL8Sequence * data
The sequence of sampled data.
LALUnit sampleUnits
The physical units of the quantity being sampled.
REAL8 f0
The heterodyning frequency, in Hertz (zero if not heterodyned).
REAL8 deltaT
The time step between samples of the time series in seconds.
LIGOTimeGPS epoch
The start time of the time series.
CHAR name[LALNameLength]
The name of the time series.
Vector of type REAL8, see DATATYPE-Vector types for more details.
REAL8 * data
Pointer to the data array.
UINT4 length
Number of elements in array.