LALInference  4.1.6.1-89842e6
LALInferenceProposal.h
Go to the documentation of this file.
1 /*
2  * LALInferenceProposal.h: Bayesian Followup, jump proposals.
3  *
4  * Copyright (C) 2011 Ilya Mandel, Vivien Raymond, Christian Roever,
5  * Marc van der Sluys, John Veitch, Will M. Farr
6  *
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with with program; see the file COPYING. If not, write to the
20  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
21  * MA 02110-1301 USA
22  */
23 #ifndef LALInferenceProposal_h
24 #define LALInferenceProposal_h
25 
26 #include <lal/LALInference.h>
27 #include <lal/LALInferenceClusteredKDE.h>
28 
29 
30 /**
31  * \defgroup LALInferenceProposal_h Header LALInferenceProposal.h
32  * \ingroup lalinference_general
33  *
34  * \author Ilya Mandel, Vivien Raymond, Christian Roever, Marc van der Sluys, John Veitch, and Will M. Farr.
35  * \date 2011
36  *
37  * \brief Jump proposals for exploring the GW signal parameter space.
38  *
39  * For exploring the parameter space of GW signals, it is convenient
40  * to use many different types of jumps. For example, we supply in
41  * this module proposals that change one parameter at a time, based on
42  * a gaussian distribution centered at the current value with a fixed
43  * width; proposals that change a combination of parameters along a
44  * one-dimensional curve in parameter space; proposals that change a
45  * combination of parameters along a sub-manifold of parameter space;
46  * and proposals that change all parameters at once, attempting to
47  * generate a jump along the directions in parameter space
48  * corresponding to eigenvectors of the covariance matrix; etc.
49  *
50  * Good jump proposals involve a combination of moves, or
51  * sub-proposals, chosen with various weights. Having such a combined
52  * jump proposal can cause difficulties with standard Metropolis
53  * sampling in an MCMC, depending on how the combined proposal is
54  * implemented. The reason involves the ratio of forward to backward
55  * jump probabilities that is used in the acceptance probability for a
56  * jump in Metropolis sampling. Many proposals are symmetric, having
57  * equal forward and backward jump probabilities, but not all.
58  *
59  * If the combined proposal is implemented as a random choice among a
60  * list of sub-proposals, then the proper jump probability is a
61  * combination of the jump probabilities from all sub-propsals. That
62  * is, to properly compute the jump probability for such a combined
63  * proposal, every sub-proposal---whether it individually is symmetric
64  * or not---must be queried after each jump for its individual jump
65  * probability, and these must be combined into the correct jump
66  * probability for the overall proposal. The situation becomes even
67  * more complex when the sub-proposals act on sub-manifolds of
68  * parameter space of differing dimensions, because then the
69  * individual proposal jump probabilities involve varying numbers of
70  * delta-functions that act to restrict the support of the jump
71  * probability to the proper sub-manifold. Ugh.
72  *
73  * We avoid this problem by implementing our combined proposal as a
74  * cyclic sequence of sub-proposals. At each MCMC step, only one of
75  * the sub-proposals is used, and therefore only this proposal's jump
76  * probability is relevant to the computation of the forward and
77  * backward jump probabilities. At the next step, the next proposal
78  * in the cycle is called, etc. The LALInferenceCyclicProposal()
79  * function implements this procedure. To add a number of copies of a
80  * proposal function to the end of the cycle, use
81  * LALInferenceAddProposalToCycle(); once all desired sub-proposals
82  * are added to the cycle, call LALInferenceRandomizeProposalCycle()
83  * in order to ensure that the ordering of the sub-proposals is
84  * random.
85  */
86 /** @{ */
87 
88 #define MAX_STRLEN 512
89 #define ADAPTSUFFIX "adapt_sigma"
90 #define ACCEPTSUFFIX "accepted"
91 #define PROPOSEDSUFFIX "proposed"
92 
93 extern const char *const cycleArrayName;
94 extern const char *const cycleArrayLengthName;
95 extern const char *const cycleArrayCounterName;
96 
97 
98 /* Proposal Names */
99 extern const char *const nullProposalName;
100 extern const char *const singleAdaptProposalName;
101 extern const char *const singleProposalName;
102 extern const char *const orbitalPhaseJumpName;
103 extern const char *const covarianceEigenvectorJumpName;
104 extern const char *const skyLocWanderJumpName;
105 extern const char *const differentialEvolutionFullName;
106 extern const char *const differentialEvolutionIntrinsicName;
107 extern const char *const differentialEvolutionExtrinsicName;
108 extern const char *const ensembleStretchFullName;
109 extern const char *const ensembleStretchIntrinsicName;
110 extern const char *const ensembleStretchExtrinsicName;
111 extern const char *const drawApproxPriorName;
112 extern const char *const drawFlatPriorName;
113 extern const char *const skyReflectDetPlaneName;
114 extern const char *const skyRingProposalName;
115 extern const char *const PSDFitJumpName;
116 extern const char *const polarizationPhaseJumpName;
117 extern const char *const polarizationCorrPhaseJumpName;
118 extern const char *const extrinsicParamProposalName;
119 extern const char *const frequencyBinJumpName;
120 extern const char *const GlitchMorletJumpName;
121 extern const char *const GlitchMorletReverseJumpName;
122 extern const char *const ensembleWalkFullName;
123 extern const char *const ensembleWalkIntrinsicName;
124 extern const char *const ensembleWalkExtrinsicName;
125 extern const char *const clusteredKDEProposalName;
126 
127 /** Creates a new proposal object from the given func pointer and name
128  */
129 
131 
132 
133 /** Use a default flag and a check of the command-line to set proposal flags in proposal args */
134 void LALInferenceRegisterProposal(LALInferenceVariables *propArgs, const char *name, INT4 *flag, ProcessParamsTable *command_line);
135 
136 /**
137  * Adds \a weight copies of the proposal \a prop to the end of the
138  * proposal cycle.
139  *
140  * After adding all desired sub-proposals, call
141  * LALInferenceRandomizeProposalCycle() to randomize the order of
142  * sub-proposal application.
143  */
145 
146 /** Randomizes the order of the proposals in the proposal cycle. */
148 
149 /** Create a new proposal cycle */
151 
152 /** Go through all logic for deciding proposals to use */
154 
155 /** Proposes a jump from the next proposal in the proposal cycle.*/
158  LALInferenceVariables *proposedParams);
159 
160 /** Completely remove the current proposal cycle, freeing the associated memory. */
162 
163 /**
164  * A reasonable default proposal. Uses adaptation if the --adapt
165  * command-line flag active.
166  */
168 
169 /**
170  * Non-adaptive, sigle-variable update proposal with reasonable
171  * widths in each dimension.
172  */
174 
175 /**
176  * Like LALInferenceSingleProposal() but will use adaptation if the
177  * --adapt command-line flag given.
178  */
180 
181 /** Polarization-phase exact degeneracy. */
183 
184 /** Polarization-phase correlation jump */
186 
187 /** Choose a random covariance matrix eigenvector to jump along. */
189 
190 /** Jump around by 0.01 radians in angle on the sky */
192 
193 /** Differential evolution, on all non-fixed, non-output parameters. */
195 
196 /**
197  * Perform differential evolution on the parameters of the given
198  * names (the names array should be terminated by a NULL pointer).
199  * If names == NULL, then perform a
200  * LALInferenceDifferentialEvolutionFull() step.
201  */
203 
204 /** Perform differential evolution on only the intrinsic parameters. */
206 
207 /**
208  * Perform a differential evolution step on only the extrinsic
209  * parameters.
210  */
212 
213 /**
214  * Draws from an approximation to the true prior. Flat in all
215  * variables except for: Mc^(-11/6), flat in cos(co-latitudes), flat
216  * in sin(dec), dist^2.
217  * WARNING: This seems to break detailed balance for the LALInferenceProposalTest
218  */
220 
221 
222 /**
223  * Draws from a flat prior for all variables where are flat prior is specified. Variables
224  * that do not have a flat prior are not moved.
225  */
227 
228 /**
229  * Reflects the sky location through the plane formed by three
230  * detectors. Should only be used when there are exactly three
231  * different locations for detectors.
232  */
234 
236 
237 /* Noise model proposals. */
241 
242 /**
243  * Proposal for the extrinsic parameters. Uses the sky reflection for 3
244  * independent detector locations, then computes the corresponding values
245  * of polarisation, inclination and distance for the proposed sky location.
246  * See Vivien's thesis for the details of the equations implemented.
247  */
249 
250 /**
251  * Proposal to jump in frequency by one frequency bin. The frequency bin size \c df must be
252  * given as a (fixed) variable in the \c proposedParams. The frequency parameter is
253  * presumed to have the variable name \c f0.
254  */
256 
257 /** Proposal which draws a sample from the distance likelihood function
258  * Requires the currentParams to have optimal_snr and matched_filter_snr.
259  */
261 
262 /* Zero out proposal statistics */
264 
265 /** Function for updating proposal acceptance rates if tracking. */
267 
268 /** Helper function to update the adaptive steps after each jump. Set accepted=1 if accepted, 0 otherwise */
269 void LALInferenceUpdateAdaptiveJumps(LALInferenceThreadState *thread, REAL8 targetAcceptance);
270 
271 /** Struct to hold clustered-KDE estimates */
272 typedef struct
273 tagLALInferenceClusteredKDEProposal
274 {
280  struct tagLALInferenceClusteredKDEProposal *next;
282 
283 /* Setup all clustered-KDE proposals with samples read from file. */
284 //void LALInferenceSetupClusteredKDEProposalsFromFile(LALInferenceThreadState *thread);
285 
286 /* Setup all clustered-KDE proposals with samples read from file. */
287 void LALInferenceSetupClusteredKDEProposalsFromASCII(LALInferenceThreadState *thread, FILE *input, INT4 burnin, REAL8 weight, INT4 ptmcmc);
288 
289 /* Add a KDE proposal to the KDE proposal set. */
291 
292 /* Destroy an existing clustered-KDE proposal. */
294 
295 /* Setup a clustered-KDE proposal from the differential evolution buffer. */
297 
298 /* Setup a clustered-KDE proposal from the parameters in a run. */
300 
301 /* A proposal based on the clustered kernal density estimate of a set of samples. */
304 
305 /* Initialize a clustered-KDE proposal. */
306 void LALInferenceInitClusteredKDEProposal(LALInferenceThreadState *thread, LALInferenceClusteredKDE *kde, REAL8 *array, INT4 nSamps, LALInferenceVariables *params, const char *name, REAL8 weight, LALInferenceKmeans* (*cluster_method)(gsl_matrix*, INT4, gsl_rng*), INT4 cyclic_reflective, INT4 ntrials);
307 
308 /* Dump clustered KDE information to file. */
309 void LALInferenceDumpClusteredKDE(LALInferenceClusteredKDE *kde, char *outp_name, REAL8 *array);
310 
311 /* Dump draws from a KDE to file. */
312 void LALInferenceDumpClusteredKDEDraws(LALInferenceClusteredKDE *kde, char *outp_name, INT4 nSamps);
313 
314 /* Compute the maximum ACL from the differential evolution buffer. */
316 
317 /* Compute the maximum single-parameter autocorrelation length. */
318 REAL8 LALInferenceComputeMaxAutoCorrLen(REAL8 *array, INT4 nPoints, INT4 nPar);
319 
320 /* Update the estimatate of the autocorrelation length. */
322 
323 /* Determine the effective sample size based on the DE buffer. */
325 
326 /** Helper function to setup the adaptive step proposals before the run */
328 
329 /** Setup glitch-related stuff */
331 
332 /** Output proposal tracking header to file *fp */
334 
335 /** Output proposal tracking information to file *fp */
336 void LALInferencePrintProposalTracking(FILE *fp, LALInferenceProposalCycle *cycle, LALInferenceVariables *theta, LALInferenceVariables *theta_prime, REAL8 logPropRatio, INT4 accepted);
337 
338 /** Ensemble stretch moves - see http://dx.doi.org/10.2140/camcos.2010.5.65 */
343 
344 
349 
350 /** Proposes jumps in the spline calibration parameters, if present. */
352 /** @} */
353 
354 #endif
LALInferenceVariables currentParams
const char *const name
double REAL8
int32_t INT4
#define VARNAME_MAX
Definition: LALInference.h:50
REAL8(* LALInferenceProposalFunction)(struct tagLALInferenceThreadState *thread, LALInferenceVariables *currentParams, LALInferenceVariables *proposedParams)
Jump proposal distribution Computes proposedParams based on currentParams and additional variables st...
Definition: LALInference.h:391
REAL8 LALInferenceEnsembleWalkNames(LALInferenceThreadState *thread, LALInferenceVariables *cpi, LALInferenceVariables *ppi, const char **names)
REAL8 LALInferenceEnsembleStretchFull(LALInferenceThreadState *thread, LALInferenceVariables *cp, LALInferenceVariables *proposedParams)
Ensemble stretch moves - see http://dx.doi.org/10.2140/camcos.2010.5.65.
const char *const singleAdaptProposalName
void LALInferenceDumpClusteredKDEDraws(LALInferenceClusteredKDE *kde, char *outp_name, INT4 nSamps)
Dump clustered KDE information to file.
const char *const polarizationPhaseJumpName
REAL8 LALInferenceSkyRingProposal(LALInferenceThreadState *thread, LALInferenceVariables *currentParams, LALInferenceVariables *proposedParams)
const char *const GlitchMorletJumpName
void LALInferenceDestroyClusteredKDEProposal(LALInferenceClusteredKDE *proposal)
Destroy an existing clustered-KDE proposal.
REAL8 LALInferenceSkyLocWanderJump(LALInferenceThreadState *thread, LALInferenceVariables *currentParams, LALInferenceVariables *proposedParams)
Jump around by 0.01 radians in angle on the sky.
const char *const frequencyBinJumpName
REAL8 LALInferenceEnsembleStretchIntrinsic(LALInferenceThreadState *thread, LALInferenceVariables *cp, LALInferenceVariables *pp)
const char *const ensembleWalkIntrinsicName
const char *const singleProposalName
REAL8 LALInferenceDifferentialEvolutionNames(LALInferenceThreadState *thread, LALInferenceVariables *currentParams, LALInferenceVariables *proposedParams, const char *names[])
Perform differential evolution on the parameters of the given names (the names array should be termin...
void LALInferenceSetupAdaptiveProposals(LALInferenceVariables *propArgs, LALInferenceVariables *params)
Helper function to setup the adaptive step proposals before the run.
const char *const extrinsicParamProposalName
const char *const covarianceEigenvectorJumpName
const char *const ensembleStretchExtrinsicName
REAL8 LALInferenceEnsembleWalkFull(LALInferenceThreadState *thread, LALInferenceVariables *cp, LALInferenceVariables *proposedParams)
REAL8 LALInferenceCovarianceEigenvectorJump(LALInferenceThreadState *thread, LALInferenceVariables *currentParams, LALInferenceVariables *proposedParams)
Choose a random covariance matrix eigenvector to jump along.
const char *const cycleArrayName
void LALInferenceUpdateMaxAutoCorrLen(LALInferenceThreadState *thread)
Update the estimatate of the autocorrelation length.
REAL8 LALInferenceGlitchMorletProposal(LALInferenceThreadState *thread, LALInferenceVariables *currentParams, LALInferenceVariables *proposedParams)
REAL8 LALInferenceExtrinsicParamProposal(LALInferenceThreadState *thread, LALInferenceVariables *currentParams, LALInferenceVariables *proposedParams)
Proposal for the extrinsic parameters.
const char *const drawFlatPriorName
REAL8 LALInferenceGlitchMorletReverseJump(LALInferenceThreadState *thread, LALInferenceVariables *currentParams, LALInferenceVariables *proposedParams)
const char *const differentialEvolutionExtrinsicName
const char *const GlitchMorletReverseJumpName
REAL8 LALInferenceSplineCalibrationProposal(LALInferenceThreadState *thread, LALInferenceVariables *cp, LALInferenceVariables *pp)
Proposes jumps in the spline calibration parameters, if present.
REAL8 LALInferenceSingleAdaptProposal(LALInferenceThreadState *thread, LALInferenceVariables *currentParams, LALInferenceVariables *proposedParams)
Like LALInferenceSingleProposal() but will use adaptation if the –adapt command-line flag given.
const char *const cycleArrayCounterName
const char *const ensembleStretchIntrinsicName
REAL8 LALInferenceComputeMaxAutoCorrLen(REAL8 *array, INT4 nPoints, INT4 nPar)
Compute the maximum single-parameter autocorrelation length.
LALInferenceProposalCycle * LALInferenceInitProposalCycle(void)
Create a new proposal cycle.
const char *const PSDFitJumpName
REAL8 LALInferenceEnsembleWalkIntrinsic(LALInferenceThreadState *thread, LALInferenceVariables *cp, LALInferenceVariables *pp)
REAL8 LALInferenceDifferentialEvolutionExtrinsic(LALInferenceThreadState *thread, LALInferenceVariables *currentParams, LALInferenceVariables *proposedParams)
Perform a differential evolution step on only the extrinsic parameters.
REAL8 LALInferenceStoredClusteredKDEProposal(LALInferenceThreadState *thread, LALInferenceVariables *currentParams, LALInferenceVariables *proposedParams, REAL8 *propDensity)
An interface to the KDE proposal that avoids a KDE evaluation if possible.
const char *const skyRingProposalName
const char *const ensembleWalkExtrinsicName
const char *const clusteredKDEProposalName
REAL8 LALInferenceSingleProposal(LALInferenceThreadState *thread, LALInferenceVariables *currentParams, LALInferenceVariables *proposedParams)
Non-adaptive, sigle-variable update proposal with reasonable widths in each dimension.
void LALInferenceInitClusteredKDEProposal(LALInferenceThreadState *thread, LALInferenceClusteredKDE *kde, REAL8 *array, INT4 nSamps, LALInferenceVariables *params, const char *name, REAL8 weight, LALInferenceKmeans *(*cluster_method)(gsl_matrix *, INT4, gsl_rng *), INT4 cyclic_reflective, INT4 ntrials)
Initialize a clustered-KDE proposal.
LALInferenceVariables * LALInferenceParseProposalArgs(LALInferenceRunState *runState)
Go through all logic for deciding proposals to use.
REAL8 LALInferenceEnsembleStretchExtrinsic(LALInferenceThreadState *thread, LALInferenceVariables *cp, LALInferenceVariables *pp)
REAL8 LALInferenceDistanceLikelihoodProposal(LALInferenceThreadState *thread, LALInferenceVariables *currentParams, LALInferenceVariables *proposedParams)
Proposal which draws a sample from the distance likelihood function Requires the currentParams to hav...
void LALInferenceUpdateAdaptiveJumps(LALInferenceThreadState *thread, REAL8 targetAcceptance)
Helper function to update the adaptive steps after each jump.
LALInferenceProposalCycle * LALInferenceSetupDefaultInspiralProposalCycle(LALInferenceVariables *propArgs)
A reasonable default proposal.
void LALInferenceAddProposalToCycle(LALInferenceProposalCycle *cycle, LALInferenceProposal *prop, INT4 weight)
Adds weight copies of the proposal prop to the end of the proposal cycle.
const char *const drawApproxPriorName
int LALInferencePrintProposalTrackingHeader(FILE *fp, LALInferenceVariables *params)
Output proposal tracking header to file *fp.
void LALInferenceDeleteProposalCycle(LALInferenceProposalCycle *cycle)
Completely remove the current proposal cycle, freeing the associated memory.
const char *const polarizationCorrPhaseJumpName
void LALInferenceComputeMaxAutoCorrLenFromDE(LALInferenceThreadState *thread, INT4 *maxACL)
A wrapper for the KDE proposal that doesn't store KDE evaluations.
void LALInferenceTrackProposalAcceptance(LALInferenceThreadState *thread)
Function for updating proposal acceptance rates if tracking.
LALInferenceProposal * LALInferenceInitProposal(LALInferenceProposalFunction func, const char *name)
Creates a new proposal object from the given func pointer and name.
void LALInferenceSetupClusteredKDEProposalFromDEBuffer(LALInferenceThreadState *thread)
Setup a clustered-KDE proposal from the differential evolution buffer.
void LALInferencePrintProposalTracking(FILE *fp, LALInferenceProposalCycle *cycle, LALInferenceVariables *theta, LALInferenceVariables *theta_prime, REAL8 logPropRatio, INT4 accepted)
Output proposal tracking information to file *fp.
void LALInferenceDumpClusteredKDE(LALInferenceClusteredKDE *kde, char *outp_name, REAL8 *array)
Dump draws from a KDE to file.
void LALInferenceZeroProposalStats(LALInferenceProposalCycle *cycle)
INT4 LALInferenceComputeEffectiveSampleSize(LALInferenceThreadState *thread)
Determine the effective sample size based on the DE buffer.
void LALInferenceRegisterProposal(LALInferenceVariables *propArgs, const char *name, INT4 *flag, ProcessParamsTable *command_line)
Use a default flag and a check of the command-line to set proposal flags in proposal args.
void LALInferenceSetupClusteredKDEProposalsFromASCII(LALInferenceThreadState *thread, FILE *input, INT4 burnin, REAL8 weight, INT4 ptmcmc)
Setup all clustered-KDE proposals with samples read from file.
const char *const orbitalPhaseJumpName
REAL8 LALInferenceCorrPolarizationPhaseJump(LALInferenceThreadState *thread, LALInferenceVariables *currentParams, LALInferenceVariables *proposedParams)
Polarization-phase correlation jump.
const char *const skyReflectDetPlaneName
const char *const skyLocWanderJumpName
const char *const ensembleWalkFullName
void LALInferenceAddClusteredKDEProposalToSet(LALInferenceVariables *propArgs, LALInferenceClusteredKDE *kde)
Add a KDE proposal to the KDE proposal set.
void LALInferenceRandomizeProposalCycle(LALInferenceProposalCycle *cycle, gsl_rng *rng)
Randomizes the order of the proposals in the proposal cycle.
REAL8 LALInferenceEnsembleStretchNames(LALInferenceThreadState *thread, LALInferenceVariables *cpi, LALInferenceVariables *ppi, const char **names)
REAL8 LALInferenceDifferentialEvolutionFull(LALInferenceThreadState *thread, LALInferenceVariables *currentParams, LALInferenceVariables *proposedParams)
Differential evolution, on all non-fixed, non-output parameters.
REAL8 LALInferenceDifferentialEvolutionIntrinsic(LALInferenceThreadState *thread, LALInferenceVariables *currentParams, LALInferenceVariables *proposedParams)
Perform differential evolution on only the intrinsic parameters.
REAL8 LALInferenceDrawFlatPrior(LALInferenceThreadState *thread, LALInferenceVariables *currentParams, LALInferenceVariables *proposedParams)
Draws from a flat prior for all variables where are flat prior is specified.
const char *const differentialEvolutionIntrinsicName
REAL8 LALInferenceCyclicProposal(LALInferenceThreadState *thread, LALInferenceVariables *currentParams, LALInferenceVariables *proposedParams)
Proposes a jump from the next proposal in the proposal cycle.
REAL8 LALInferencePolarizationPhaseJump(LALInferenceThreadState *thread, LALInferenceVariables *currentParams, LALInferenceVariables *proposedParams)
Polarization-phase exact degeneracy.
void LALInferenceSetupGlitchProposal(LALInferenceIFOData *data, LALInferenceVariables *propArgs)
Setup glitch-related stuff.
const char *const cycleArrayLengthName
const char *const ensembleStretchFullName
void LALInferenceSetupClusteredKDEProposalFromRun(LALInferenceThreadState *thread, REAL8 *samples, INT4 size, INT4 cyclic_reflective, INT4 ntrials)
Setup a clustered-KDE proposal from the parameters in a run.
REAL8 LALInferenceDrawApproxPrior(LALInferenceThreadState *thread, LALInferenceVariables *currentParams, LALInferenceVariables *proposedParams)
Draws from an approximation to the true prior.
REAL8 LALInferencePSDFitJump(LALInferenceThreadState *thread, LALInferenceVariables *currentParams, LALInferenceVariables *proposedParams)
REAL8 LALInferenceSkyReflectDetPlane(LALInferenceThreadState *thread, LALInferenceVariables *currentParams, LALInferenceVariables *proposedParams)
Reflects the sky location through the plane formed by three detectors.
REAL8 LALInferenceEnsembleWalkExtrinsic(LALInferenceThreadState *thread, LALInferenceVariables *cp, LALInferenceVariables *pp)
REAL8 LALInferenceClusteredKDEProposal(LALInferenceThreadState *thread, LALInferenceVariables *currentParams, LALInferenceVariables *proposedParams)
A proposal based on the clustered kernal density estimate of a set of samples.
REAL8 LALInferenceFrequencyBinJump(LALInferenceThreadState *thread, LALInferenceVariables *currentParams, LALInferenceVariables *proposedParams)
Proposal to jump in frequency by one frequency bin.
const char *const differentialEvolutionFullName
const char *const nullProposalName
Struct to hold clustered-KDE estimates.
LALInferenceKmeans * kmeans
struct tagLALInferenceClusteredKDEProposal * next
LALInferenceVariables * params
Structure to contain IFO data.
Definition: LALInference.h:625
Structure for performing the kmeans clustering algorithm on a set of samples.
Structure for holding a proposal cycle.
Definition: LALInference.h:526
Structure for holding a LALInference proposal, along with name and stats.
Definition: LALInference.h:512
Structure containing inference run state This includes pointers to the function types required to run...
Definition: LALInference.h:592
Structure containing chain-specific variables.
Definition: LALInference.h:541
The LALInferenceVariables structure to contain a set of parameters Implemented as a linked list of LA...
Definition: LALInference.h:170