LALPulsar  6.1.0.1-89842e6
ComputeFstat.c File Reference

Prototypes

int XLALSetupFstatDemod (void **method_data, FstatCommon *common, FstatMethodFuncs *funcs, MultiSFTVector *multiSFTs, const FstatOptionalArgs *optArgs)
 
int XLALGetFstatTiming_Demod (const void *method_data, FstatTimingGeneric *timingGeneric, FstatTimingModel *timingModel)
 
void * XLALFstatInputTimeslice_Demod (const void *method_data, const UINT4 iStart[PULSAR_MAX_DETECTORS], const UINT4 iEnd[PULSAR_MAX_DETECTORS])
 
void XLALDestroyFstatInputTimeslice_Demod (void *method_data)
 Free all memory not needed by the orginal FstatInput structure. More...
 
int XLALSetupFstatResampGeneric (void **method_data, FstatCommon *common, FstatMethodFuncs *funcs, MultiSFTVector *multiSFTs, const FstatOptionalArgs *optArgs)
 
int XLALExtractResampledTimeseries_ResampGeneric (MultiCOMPLEX8TimeSeries **multiTimeSeries_SRC_a, MultiCOMPLEX8TimeSeries **multiTimeSeries_SRC_b, void *method_data)
 
int XLALGetFstatTiming_ResampGeneric (const void *method_data, FstatTimingGeneric *timingGeneric, FstatTimingModel *timingModel)
 
static int XLALSelectBestFstatMethod (FstatMethodType *method)
 If user asks for a 'best' FstatMethodType, find and select it. More...
 
static void XLALDestroyFstatInputTimeslice_common (FstatCommon *common)
 
REAL8 XLALFstatMaximumSFTLength (const REAL8 maxFreq, const REAL8 binaryMaxAsini, const REAL8 binaryMinPeriod, const REAL8 mu_SFT)
 Compute the maximum SFT length that can safely be used as input to XLALComputeFstat(), given the desired range limits in search parameters. More...
 
int XLALFstatCheckSFTLengthMismatch (const REAL8 Tsft, const REAL8 maxFreq, const REAL8 binaryMaxAsini, const REAL8 binaryMinPeriod, const REAL8 allowedMismatch)
 Check that the SFT length \( T_{\textrm{SFT}} \) does not exceed the result of XLALFstatMaximumSFTLength(), in which case a large unexpected mismatch would be produced. More...
 
FstatInputVectorXLALCreateFstatInputVector (const UINT4 length)
 Create a FstatInputVector of the given length, for example for setting up F-stat searches over several segments. More...
 
void XLALDestroyFstatInputVector (FstatInputVector *inputs)
 Free all memory associated with a FstatInputVector structure. More...
 
FstatAtomVectorXLALCreateFstatAtomVector (const UINT4 length)
 Create a FstatAtomVector of the given length. More...
 
void XLALDestroyFstatAtomVector (FstatAtomVector *atoms)
 Free all memory associated with a FstatAtomVector structure. More...
 
MultiFstatAtomVectorXLALCreateMultiFstatAtomVector (const UINT4 length)
 Create a MultiFstatAtomVector of the given length. More...
 
void XLALDestroyMultiFstatAtomVector (MultiFstatAtomVector *multiAtoms)
 Free all memory associated with a MultiFstatAtomVector structure. More...
 
FstatInput * XLALCreateFstatInput (const SFTCatalog *SFTcatalog, const REAL8 minCoverFreq, const REAL8 maxCoverFreq, const REAL8 dFreq, const EphemerisData *ephemerides, const FstatOptionalArgs *optionalArgs)
 Create a fully-setup FstatInput structure for computing the \( \mathcal{F} \) -statistic using XLALComputeFstat(). More...
 
int XLALGetFstatInputSFTBand (const FstatInput *input, REAL8 *minFreqFull, REAL8 *maxFreqFull)
 Returns the frequency band loaded from input SFTs. More...
 
const CHARXLALGetFstatInputMethodName (const FstatInput *input)
 Returns the human-readable name of the \( \mathcal{F} \) -statistic method being used by a FstatInput structure. More...
 
const MultiLALDetectorXLALGetFstatInputDetectors (const FstatInput *input)
 Returns the detector information stored in a FstatInput structure. More...
 
const MultiLIGOTimeGPSVectorXLALGetFstatInputTimestamps (const FstatInput *input)
 Returns the SFT timestamps stored in a FstatInput structure. More...
 
MultiNoiseWeightsXLALGetFstatInputNoiseWeights (const FstatInput *input)
 Returns the multi-detector noise weights stored in a FstatInput structure. More...
 
const MultiDetectorStateSeriesXLALGetFstatInputDetectorStates (const FstatInput *input)
 Returns the multi-detector state series stored in a FstatInput structure. More...
 
int XLALComputeFstat (FstatResults **Fstats, FstatInput *input, const PulsarDopplerParams *doppler, const UINT4 numFreqBins, const FstatQuantities whatToCompute)
 Compute the \( \mathcal{F} \) -statistic over a band of frequencies. More...
 
void XLALDestroyFstatInput (FstatInput *input)
 Free all memory associated with a FstatInput structure. More...
 
void XLALDestroyFstatResults (FstatResults *Fstats)
 Free all memory associated with a FstatResults structure. More...
 
REAL4 XLALComputeFstatFromFaFb (COMPLEX8 Fa, COMPLEX8 Fb, REAL4 A, REAL4 B, REAL4 C, REAL4 E, REAL4 Dinv)
 Compute the \( \mathcal{F} \) -statistic from the complex \( F_a \) and \( F_b \) components and the antenna pattern matrix. More...
 
REAL4 XLALComputeFstatFromAtoms (const MultiFstatAtomVector *multiFstatAtoms, const INT4 X)
 Compute single-or multi-IFO Fstat '2F' from multi-IFO 'atoms'. More...
 
int XLALFstatMethodIsAvailable (FstatMethodType method)
 Return true if given FstatMethodType corresponds to a valid and available Fstat method, false otherwise. More...
 
const CHARXLALFstatMethodName (FstatMethodType method)
 Return pointer to a static string giving the name of the FstatMethodType method. More...
 
const UserChoicesXLALFstatMethodChoices (void)
 Return pointer to a static array of all (available) FstatMethodType choices. More...
 
int XLALGetFstatTiming (const FstatInput *input, FstatTimingGeneric *timingGeneric, FstatTimingModel *timingModel)
 Return measured values and details about generic F-statistic timing and method-specific timing model,. More...
 
int XLALAppendFstatTiming2File (const FstatInput *input, FILE *fp, BOOLEAN printHeader)
 
int XLALExtractResampledTimeseries (MultiCOMPLEX8TimeSeries **multiTimeSeries_SRC_a, MultiCOMPLEX8TimeSeries **multiTimeSeries_SRC_b, FstatInput *input)
 Extracts the resampled timeseries from a given FstatInput structure (must have been initialized previously by XLALCreateFstatInput() and a call to XLALComputeFstat()). More...
 
int XLALFstatInputTimeslice (FstatInput **slice, const FstatInput *input, const LIGOTimeGPS *minStartGPS, const LIGOTimeGPS *maxStartGPS)
 Create and return an FstatInput 'timeslice' for given input FstatInput object [must be using LALDemod Fstat method!] which covers only the time interval ['minStartGPS','maxStartGPS'), using conventions of XLALCWGPSinRange(). More...
 

Go to the source code of this file.

Data Structures

struct  FstatInput
 XLALComputeFstat() input data structure. More...
 

Variables

static const char *const FstatMethodNames [FMETHOD_END]
 
const FstatOptionalArgs FstatOptionalArgsDefaults
 Global initializer for setting FstatOptionalArgs to default values. More...
 
static const char FstatTimingGenericHelp []
 

Variable Documentation

◆ FstatMethodNames

const char* const FstatMethodNames[FMETHOD_END]
static
Initial value:
= {
[FMETHOD_DEMOD_GENERIC] = "DemodGeneric",
[FMETHOD_DEMOD_OPTC] = "DemodOptC",
[FMETHOD_DEMOD_ALTIVEC] = "DemodAltivec",
[FMETHOD_DEMOD_SSE] = "DemodSSE",
[FMETHOD_DEMOD_BEST] = "DemodBest",
[FMETHOD_RESAMP_GENERIC] = "ResampGeneric",
[FMETHOD_RESAMP_CUDA] = "ResampCUDA",
[FMETHOD_RESAMP_BEST] = "ResampBest",
}
@ FMETHOD_RESAMP_GENERIC
Resamp: generic implementation
Definition: ComputeFstat.h:122
@ FMETHOD_DEMOD_SSE
Demod: SSE hotloop with precalc divisors, uses fixed
Definition: ComputeFstat.h:119
@ FMETHOD_DEMOD_OPTC
Demod: gptimized C hotloop using Akos' algorithm, only works for
Definition: ComputeFstat.h:117
@ FMETHOD_DEMOD_BEST
Demod: best guess of the fastest available hotloop
Definition: ComputeFstat.h:120
@ FMETHOD_RESAMP_BEST
Resamp: best guess of the fastest available implementation
Definition: ComputeFstat.h:124
@ FMETHOD_DEMOD_GENERIC
Demod: generic C hotloop, works for any number of Dirichlet kernel terms
Definition: ComputeFstat.h:116
@ FMETHOD_RESAMP_CUDA
Resamp: CUDA resampling
Definition: ComputeFstat.h:123
@ FMETHOD_DEMOD_ALTIVEC
Demod: Altivec hotloop variant, uses fixed
Definition: ComputeFstat.h:118

Definition at line 78 of file ComputeFstat.c.

◆ FstatTimingGenericHelp

const char FstatTimingGenericHelp[]
static
Initial value:
=
"%%%% ----- Generic F-stat timing model (all times in seconds) [see https://dcc.ligo.org/LIGO-T1600531-v4 for details] -----\n"
"%%%% tauF_eff: effective total time per F-stat call to XLALComputeFstat() per detector per output frequency bin\n"
"%%%% tauF_core: core time per output frequency bin per detector, excluding time to compute the buffer\n"
"%%%% tauF_buffer: time per detector per frequency bin to re-compute all buffered quantities once\n"
"%%%% NFbin: (average over F-stat calls) number of F-stat output frequency bins\n"
"%%%% Ndet: number of detectors\n"
"%%%%\n"
"%%%% => generic F-stat timing:\n"
"%%%% tauF_eff = tauF_core + b * tauF_buffer\n"
"%%%% where 'b' denotes the fraction of times per call to XLALComputeFstat() the buffer needed to be recomputed\n"
"%%%%\n"
"%%%% NCalls: number of F-stat calls we average over\n"
"%%%% NBufferMisses: number of times the buffer needed to be recomputed\n"
"%%%% ==> b = NBufferMisses / NCalls\n"
"%%%% All timing numbers are averaged over repeated calls to XLALComputeFstat(for fixed-setup).\n"
""

Definition at line 104 of file ComputeFstat.c.