23 #include <lal/Units.h>
24 #include <lal/AVFactories.h>
25 #include <lal/TimeFreqFFT.h>
26 #include <lal/LALConstants.h>
27 #include <lal/RngMedBias.h>
41 const REAL4FFTPlan *plan
46 if ( ! freq || ! time || ! plan )
77 const REAL4FFTPlan *plan
82 if ( ! freq || ! time || ! plan )
120 const REAL8FFTPlan *plan
125 if ( ! freq || ! time || ! plan )
127 if ( time->
deltaT <= 0.0 )
140 XLALPrintWarning(
"XLAL Warning - frequency series may have incorrect f0" );
156 const REAL8FFTPlan *plan
161 if ( ! freq || ! time || ! plan )
163 if ( freq->
deltaF <= 0.0 )
209 const COMPLEX8FFTPlan *plan
215 if ( ! freq || ! time || ! plan )
217 if ( time->
deltaT <= 0.0 )
219 if ( plan->sign != -1 )
238 for ( k = 0; k < time->
data->
length / 2; ++k )
240 for ( k = time->
data->
length / 2; k < time->data->length; ++k )
264 const COMPLEX8FFTPlan *plan
270 if ( ! freq || ! time || ! plan )
272 if ( freq->
deltaF <= 0.0 )
274 if ( plan->sign != 1 )
283 for ( k = 0; k < freq->
data->
length / 2; ++k )
285 for ( k = freq->
data->
length / 2; k < freq->data->length; ++k )
336 const COMPLEX16FFTPlan *plan
342 if ( ! freq || ! time || ! plan )
344 if ( time->
deltaT <= 0.0 )
346 if ( plan->sign != -1 )
365 for ( k = 0; k < time->
data->
length / 2; ++k )
367 for ( k = time->
data->
length / 2; k < time->data->length; ++k )
391 const COMPLEX16FFTPlan *plan
397 if ( ! freq || ! time || ! plan )
399 if ( freq->
deltaF <= 0.0 )
401 if ( plan->sign != 1 )
410 for ( k = 0; k < freq->
data->
length / 2; ++k )
412 for ( k = freq->
data->
length / 2; k < freq->data->length; ++k )
int XLALPrintWarning(const char *fmt,...)
int XLALCOMPLEX8VectorFFT(COMPLEX8Vector *_LAL_RESTRICT_ output, const COMPLEX8Vector *_LAL_RESTRICT_ input, const COMPLEX8FFTPlan *plan)
Perform a COMPLEX8Vector to COMPLEX8Vector FFT.
int XLALCOMPLEX16VectorFFT(COMPLEX16Vector *_LAL_RESTRICT_ output, const COMPLEX16Vector *_LAL_RESTRICT_ input, const COMPLEX16FFTPlan *plan)
Perform a COMPLEX16Vector to COMPLEX16Vector FFT.
uint32_t UINT4
Four-byte unsigned integer.
int32_t INT4
Four-byte signed integer.
int XLALREAL8ForwardFFT(COMPLEX16Vector *output, const REAL8Vector *input, const REAL8FFTPlan *plan)
Performs a forward FFT of REAL8 data.
int XLALREAL8ReverseFFT(REAL8Vector *output, const COMPLEX16Vector *input, const REAL8FFTPlan *plan)
Performs a reverse FFT of REAL8 data.
int XLALREAL4ReverseFFT(REAL4Vector *output, const COMPLEX8Vector *input, const REAL4FFTPlan *plan)
Performs a reverse FFT of REAL4 data.
int XLALREAL4ForwardFFT(COMPLEX8Vector *output, const REAL4Vector *input, const REAL4FFTPlan *plan)
Performs a forward FFT of REAL4 data.
int XLALCOMPLEX16FreqTimeFFT(COMPLEX16TimeSeries *time, const COMPLEX16FrequencySeries *freq, const COMPLEX16FFTPlan *plan)
int XLALREAL8TimeFreqFFT(COMPLEX16FrequencySeries *freq, const REAL8TimeSeries *time, const REAL8FFTPlan *plan)
int XLALCOMPLEX8FreqTimeFFT(COMPLEX8TimeSeries *time, const COMPLEX8FrequencySeries *freq, const COMPLEX8FFTPlan *plan)
int XLALCOMPLEX16TimeFreqFFT(COMPLEX16FrequencySeries *freq, const COMPLEX16TimeSeries *time, const COMPLEX16FFTPlan *plan)
int XLALREAL4FreqTimeFFT(REAL4TimeSeries *time, const COMPLEX8FrequencySeries *freq, const REAL4FFTPlan *plan)
int XLALREAL8FreqTimeFFT(REAL8TimeSeries *time, const COMPLEX16FrequencySeries *freq, const REAL8FFTPlan *plan)
int XLALCOMPLEX8TimeFreqFFT(COMPLEX8FrequencySeries *freq, const COMPLEX8TimeSeries *time, const COMPLEX8FFTPlan *plan)
int XLALREAL4TimeFreqFFT(COMPLEX8FrequencySeries *freq, const REAL4TimeSeries *time, const REAL4FFTPlan *plan)
const LALUnit lalSecondUnit
second [s]
const LALUnit lalHertzUnit
Hertz [Hz].
LALUnit * XLALUnitMultiply(LALUnit *output, const LALUnit *unit1, const LALUnit *unit2)
This function multiplies together the LALUnit structures *(input->unitOne) and *(input->unitTwo),...
COMPLEX16Vector * XLALCreateCOMPLEX16Vector(UINT4 length)
void XLALDestroyCOMPLEX16Vector(COMPLEX16Vector *vector)
COMPLEX8Vector * XLALCreateCOMPLEX8Vector(UINT4 length)
void XLALDestroyCOMPLEX8Vector(COMPLEX8Vector *vector)
#define xlalErrno
Modifiable lvalue containing the XLAL error number.
#define XLAL_ERROR(...)
Macro to invoke a failure from a XLAL routine returning an integer.
@ XLAL_EFAULT
Invalid pointer.
@ XLAL_EFUNC
Internal function call failed bit: "or" this with existing error number.
@ XLAL_EINVAL
Invalid argument.
@ XLAL_FAILURE
Failure return value (not an error number)
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.
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.
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.
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).
REAL4 * data
Pointer to the data array.
UINT4 length
Number of elements in array.
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.
REAL8 * data
Pointer to the data array.
UINT4 length
Number of elements in array.
Plan to perform an FFT of COMPLEX16 data.
INT4 sign
sign in transform exponential, -1 for forward, +1 for reverse
UINT4 size
length of the complex data vector for this plan
Plan to perform an FFT of COMPLEX8 data.
UINT4 size
length of the complex data vector for this plan
INT4 sign
sign in transform exponential, -1 for forward, +1 for reverse