Implementation of delayed rejection for MR2T2.
bool accepted_delayed
Was the step we just accepted delayed?
void PrepareOutput()
override to add in rejection information to output
int max_rejections
How many rejections allowed?
bool ProbabilisticDelay() const
if delay has a chance of occurring
void StoreCurrentStep()
Store information about the current proposed step.
double delay_probability
Can delay with probability instead.
DelayedMR2T2(manager *const fitMan)
Constructor.
std::vector< double > start_step_scale
Stores the initial scale for all parameters.
double AcceptanceProbability() override
Step acceptance probability.
bool delay_on_oob_only
Delay only if we go out of bounds.
double MinLogLikelihood
Minimum (negative) log-likelihood of proposed steps.
void ResetSystScale()
Reset scale after delay process.
double decay_rate
How much to decrease the step scale each step.
void DoStep() override
The MCMC step proposal.
virtual ~DelayedMR2T2()=default
Destructor.
void ScaleSystematics(const double scale)
Set parameter scale to be original_scale* scale.
double initial_scale
Scale for (non-delayed) step is initial_scale * start_step_scale.
std::vector< std::vector< double > > current_step_vals
Store information about the current proposed step.
manager * fitMan
The manager.
MCMC algorithm implementing the Metropolis–Rosenbluth–Rosenbluth–Teller–Teller (MR T ) method.
The manager class is responsible for managing configurations and settings.