1 #ifndef INFERENCEPROBLEM_H_
2 #define INFERENCEPROBLEM_H_
9 namespace SamplingAlgorithms {
34 std::shared_ptr<muq::Modeling::ModPiece>
const& priorIn,
35 double inverseTempIn=1.0);
44 std::shared_ptr<muq::Modeling::ModPiece>
const& priorIn,
45 std::shared_ptr<muq::Modeling::ModPiece>
const& qoiIn,
46 double inverseTempIn=1.0);
51 virtual double LogDensity(std::shared_ptr<SamplingState>
const& state)
override;
53 virtual Eigen::VectorXd
GradLogDensity(std::shared_ptr<SamplingState>
const& state,
54 unsigned const blockWrt)
override;
56 virtual std::shared_ptr<SamplingState>
QOI()
override;
59 std::shared_ptr<muq::Modeling::ModPiece>
const&
Prior()
const{
return prior;};
67 virtual std::shared_ptr<AbstractSamplingProblem>
Clone()
const override;
72 std::shared_ptr<muq::Modeling::ModPiece>
likely;
75 std::shared_ptr<muq::Modeling::ModPiece>
prior;
77 std::shared_ptr<muq::Modeling::ModPiece>
qoi;
Abstract base class for MCMC and Importance Sampling problems.
Class for sampling problems based on the product of a prior and likelihood, possibly with a tempering...
std::shared_ptr< muq::Modeling::ModPiece > likely
The log-likelihood function.
double GetInverseTemp() const
std::shared_ptr< muq::Modeling::ModPiece > qoi
virtual ~InferenceProblem()=default
std::shared_ptr< muq::Modeling::ModPiece > prior
The prior log-density.
virtual std::shared_ptr< AbstractSamplingProblem > Clone() const override
InferenceProblem(std::shared_ptr< muq::Modeling::ModPiece > const &likelyIn, std::shared_ptr< muq::Modeling::ModPiece > const &priorIn, double inverseTempIn=1.0)
virtual Eigen::VectorXd GradLogDensity(std::shared_ptr< SamplingState > const &state, unsigned const blockWrt) override
void SetInverseTemp(double newTemp)
virtual double LogDensity(std::shared_ptr< SamplingState > const &state) override
virtual std::shared_ptr< SamplingState > QOI() override
std::shared_ptr< muq::Modeling::ModPiece > const & Likelihood() const
std::shared_ptr< muq::Modeling::ModPiece > const & Prior() const
std::shared_ptr< SamplingState > lastState