LAL  7.5.0.1-b72065a
PrintFTSeries.h
Go to the documentation of this file.
1 /*
2 * Copyright (C) 2007 Jolien Creighton, John Whelan
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with with program; see the file COPYING. If not, write to the
16 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17 * MA 02110-1301 USA
18 */
19 
20 #ifndef _PRINTFTSERIES_H
21 #define _PRINTFTSERIES_H
22 
23 #include <lal/LALStdlib.h>
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
29 
30 /**
31  * \defgroup PrintFTSeries_h Header PrintFTSeries.h
32  * \ingroup lal_support
33  * \author J. T. Whelan <jtwhelan@loyno.edu>
34  *
35  * \brief This is a simple utility to print time and frequency series into a file.
36  *
37  * ### Synopsis ###
38  *
39  * \code
40  * #include <lal/PrintFTSeries.h>
41  * \endcode
42  *
43  * Provides prototype information for the routines in \ref PrintTimeSeries_c and \ref PrintFrequencySeries_c.
44  *
45  */
46 
47 /**
48  * \defgroup PrintTimeSeries_c Module PrintTimeSeries.c
49  * \ingroup PrintFTSeries_h
50  *
51  * Print a <datatype>TimeSeries object into a
52  * file. For use in non-production and test code only.
53  *
54  * ### Description ###
55  *
56  * Each member of this family of functions prints the elements of
57  * \f$\langle\mbox{datatype}\rangle\f$\c TimeSeries into a file. Note:
58  * the file name is specified using a character string. This function is
59  * for debugging use only: its arguments do not conform to LAL standards
60  * so it should not be used in any real analysis codes.
61  *
62  * ### Notes ###
63  *
64  * This function's arguments do not conform to the LAL spec. For this
65  * reason it should only be used for debugging purposes in test
66  * functions, not in any production code.
67  *
68  * Additionally, since printf cannot handle INT8 as integers, the
69  * functions <tt>LALI8PrintTimeSeries()</tt> and
70  * <tt>LALU8PrintTimeSeries()</tt> use a typecast to REAL8 and are thus
71  * only valid for numbers between around \f$-10^{15}\f$ and \f$10^{15}\f$.
72  *
73  * The first five lines of the file are a header containing:
74  * <ol>
75  * <li> the name of the series</li>
76  * <li> the starting epoch </li>
77  * <li> the units expressed in terms of the basic SI units</li>
78  * <li> column labels</li>
79  * </ol>
80  * after which come the data, one per line.
81  *
82  * The output format is two or three tab-separated columns: the first
83  * column is the time corresponding to the row in question, in seconds
84  * after the series' starting epoch; for real and integer time
85  * series, the second column is the value of the series; for complex time
86  * series, the second column is the real part and the third the imaginary
87  * part of the value.
88  */
89 /** @{ */
101 /** @} */
102 
103 
104 /**
105  * \defgroup PrintFrequencySeries_c Module PrintFrequencySeries.c
106  * \ingroup PrintFTSeries_h
107  *
108  * Print a <datatype>FrequencySeries object into a
109  * file. For use in non-production and test code only.
110  *
111  * ### Description ###
112  *
113  * Each member of this family of functions prints the elements of
114  * <datatype>FrequencySeries into a file.
115  * Note: the file name is specified using a character string. This
116  * function is for debugging use only: its arguments do not conform to
117  * LAL standards so it should not be used in any real analysis codes.
118  *
119  * ### Notes ###
120  *
121  * This function's arguments do not conform to the LAL spec. For this
122  * reason it should only be used for debugging purposes in test
123  * functions, not in any production code.
124  *
125  * Additionally, since printf cannot handle INT8 as integers, the
126  * functions <tt>LALI8PrintFrequencySeries()</tt> and
127  * <tt>LALU8PrintFrequencySeries()</tt> use a typecast to REAL8 and are
128  * thus only valid for numbers between around \f$-10^{15}\f$ and \f$10^{15}\f$.
129  *
130  * The first four lines of the file are a header containing:
131  * <ol>
132  * <li> the name of the series</li>
133  * <li> heterodyning information, if any</li>
134  * <li> the starting epoch, relative to the GPS reference epoch (1980 January 6)</li>
135  * <li> the units expressed in terms of the basic SI units</li>
136  * <li> column labels</li>
137  * </ol>
138  * after which come the data, one per line.
139  *
140  * The output format is two or three tab-separated columns: the first
141  * column is the frequency in hertz corresponding to the row in question;
142  * for real and integer frequency series, the second column is the value
143  * of the series; for complex frequency series, the second column is the
144  * real part and the third the imaginary part of the value.
145  *
146  * Note that the frequency given is the physical frequency. In the case
147  * of a heterodyned frequency series, this is the heterodyning frequency
148  * plus the frequency offset. A frequency series of length \f$[N]\f$ is
149  * assumed to be packed so that the 0th element corresponds to zero
150  * frequency offset, elements 1 through \f$[N/2]\f$ to positive frequency
151  * offsets (in ascending order), and elements \f$N-[N/2]\f$ to \f$N-1\f$ to
152  * negative frequency offsets (also in ascending order, so that the
153  * frequency corresponding to the \f$N-1\f$st element is just below that of
154  * the 0th element). If \f$N\f$ is even, the element in position \f$N/2\f$ is
155  * assumed to correspond both the maximum poitive and negative frequency
156  * offset.
157  */
158 /** @{ */
170 /** @} */
171 
172 #ifdef __cplusplus
173 }
174 #endif
175 
176 #endif /* _PRINTFTSERIES_H */
char CHAR
One-byte signed integer, see Headers LAL(Atomic)Datatypes.h for more details.
void LALI4PrintFrequencySeries(INT4FrequencySeries *series, const CHAR *filename)
void LALI8PrintFrequencySeries(INT8FrequencySeries *series, const CHAR *filename)
void LALCPrintFrequencySeries(COMPLEX8FrequencySeries *series, const CHAR *filename)
void LALU4PrintFrequencySeries(UINT4FrequencySeries *series, const CHAR *filename)
void LALU2PrintFrequencySeries(UINT2FrequencySeries *series, const CHAR *filename)
void LALSPrintFrequencySeries(REAL4FrequencySeries *series, const CHAR *filename)
void LALZPrintFrequencySeries(COMPLEX16FrequencySeries *series, const CHAR *filename)
void LALU8PrintFrequencySeries(UINT8FrequencySeries *series, const CHAR *filename)
void LALI2PrintFrequencySeries(INT2FrequencySeries *series, const CHAR *filename)
void LALPrintFrequencySeries(REAL4FrequencySeries *series, const CHAR *filename)
void LALDPrintFrequencySeries(REAL8FrequencySeries *series, const CHAR *filename)
void LALI2PrintTimeSeries(INT2TimeSeries *series, const CHAR *filename)
void LALPrintTimeSeries(REAL4TimeSeries *series, const CHAR *filename)
void LALU8PrintTimeSeries(UINT8TimeSeries *series, const CHAR *filename)
void LALU2PrintTimeSeries(UINT2TimeSeries *series, const CHAR *filename)
void LALZPrintTimeSeries(COMPLEX16TimeSeries *series, const CHAR *filename)
void LALI8PrintTimeSeries(INT8TimeSeries *series, const CHAR *filename)
void LALU4PrintTimeSeries(UINT4TimeSeries *series, const CHAR *filename)
void LALI4PrintTimeSeries(INT4TimeSeries *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)
See DATATYPE-FrequencySeries types for documentation.
Definition: LALDatatypes.h:909
Time series of COMPLEX16 data, see DATATYPE-TimeSeries types for more details.
Definition: LALDatatypes.h:600
See DATATYPE-FrequencySeries types for documentation.
Definition: LALDatatypes.h:899
Time series of COMPLEX8 data, see DATATYPE-TimeSeries types for more details.
Definition: LALDatatypes.h:590
See DATATYPE-FrequencySeries types for documentation.
Definition: LALDatatypes.h:819
Time series of INT2 data, see DATATYPE-TimeSeries types for more details.
Definition: LALDatatypes.h:511
See DATATYPE-FrequencySeries types for documentation.
Definition: LALDatatypes.h:839
Time series of INT4 data, see DATATYPE-TimeSeries types for more details.
Definition: LALDatatypes.h:530
See DATATYPE-FrequencySeries types for documentation.
Definition: LALDatatypes.h:859
Time series of INT8 data, see DATATYPE-TimeSeries types for more details.
Definition: LALDatatypes.h:550
See DATATYPE-FrequencySeries types for documentation.
Definition: LALDatatypes.h:879
Time series of REAL4 data, see DATATYPE-TimeSeries types for more details.
Definition: LALDatatypes.h:570
See DATATYPE-FrequencySeries types for documentation.
Definition: LALDatatypes.h:889
Time series of REAL8 data, see DATATYPE-TimeSeries types for more details.
Definition: LALDatatypes.h:580
See DATATYPE-FrequencySeries types for documentation.
Definition: LALDatatypes.h:829
Time series of UINT2 data, see DATATYPE-TimeSeries types for more details.
Definition: LALDatatypes.h:521
See DATATYPE-FrequencySeries types for documentation.
Definition: LALDatatypes.h:849
Time series of UINT4 data, see DATATYPE-TimeSeries types for more details.
Definition: LALDatatypes.h:540
See DATATYPE-FrequencySeries types for documentation.
Definition: LALDatatypes.h:869
Time series of UINT8 data, see DATATYPE-TimeSeries types for more details.
Definition: LALDatatypes.h:560