1 #ifndef ABSTRACTSAMPLINGPROBLEM_H
2 #define ABSTRACTSAMPLINGPROBLEM_H
10 #include <boost/property_tree/ptree.hpp>
13 namespace SamplingAlgorithms{
34 Eigen::VectorXi
const& blockSizesQOIIn);
40 virtual double LogDensity(std::shared_ptr<SamplingState>
const& state) = 0;
42 virtual std::shared_ptr<AbstractSamplingProblem>
Clone()
const{assert(
false);
return nullptr;};
45 virtual Eigen::VectorXd
GradLogDensity(std::shared_ptr<SamplingState>
const& state,
46 unsigned const blockWrt);
49 virtual std::shared_ptr<SamplingState>
QOI();
56 virtual void AddOptions(boost::property_tree::ptree & pt)
const{};
Abstract base class for MCMC and Importance Sampling problems.
virtual std::shared_ptr< SamplingState > QOI()
virtual void AddOptions(boost::property_tree::ptree &pt) const
AbstractSamplingProblem(Eigen::VectorXi const &blockSizesIn, Eigen::VectorXi const &blockSizesQOIIn)
virtual ~AbstractSamplingProblem()=default
const Eigen::VectorXi blockSizesQOI
virtual double LogDensity(std::shared_ptr< SamplingState > const &state)=0
virtual std::shared_ptr< AbstractSamplingProblem > Clone() const
const Eigen::VectorXi blockSizes
virtual Eigen::VectorXd GradLogDensity(std::shared_ptr< SamplingState > const &state, unsigned const blockWrt)