Class AdaptiveImportanceSampler

Inheritance Relationships

Base Type

Class Documentation

class AdaptiveImportanceSampler : public lsst::meas::modelfit::Sampler

Sampler class that performs Monte Carlo sampling, while iteratively updating the analytic distribution from which points are drawn.

Between the iterations defined in the control object, the prior is applied to the samples, and the mixture distribution is updated using expectation-maximization to match the samples.

Public Functions

lsst::meas::modelfit::AdaptiveImportanceSampler::AdaptiveImportanceSampler(afw::table::Schema & sampleSchema, PTR( afw::math::Random ) rng, std::map< int, ImportanceSamplerControl > const & ctrls, bool doSaveIterations = false)

Construct a new sampler.

Parameters
  • [inout] sampleSchema: Schema for the catalog of samples filled by the Sampler; will be modified to include sampler-specific fields.

  • [in] rng: Random number generator to use to generate samples.

  • [in] ctrls: Vector of control objects that define the iterations.

  • [in] doSaveIterations: Whether to save intermediate SampleSets and associated proposal distributions.

void lsst::meas::modelfit::AdaptiveImportanceSampler::run(SamplingObjective const & objective, PTR( Mixture ) proposal, afw::table::BaseCatalog & samples) const
double computeNormalizedPerplexity(afw::table::BaseCatalog const &samples) const
double computeEffectiveSampleSizeFraction(afw::table::BaseCatalog const &samples) const