MUQ  0.4.3
MIComponentFactory.h
Go to the documentation of this file.
1 #ifndef MICOMPONENTFACTORY_H
2 #define MICOMPONENTFACTORY_H
3 
9 
10 using namespace muq::Utilities;
11 
12 namespace muq {
13  namespace SamplingAlgorithms {
14 
24  public:
25  virtual ~MIComponentFactory() = default;
26  virtual std::shared_ptr<MCMCProposal> Proposal (std::shared_ptr<MultiIndex> const& index, std::shared_ptr<AbstractSamplingProblem> const& samplingProblem) = 0;
27  virtual std::shared_ptr<MCMCProposal> CoarseProposal (std::shared_ptr<MultiIndex> const& fineIndex,
28  std::shared_ptr<MultiIndex> const& coarseIndex,
29  std::shared_ptr<AbstractSamplingProblem> const& coarseProblem,
30  std::shared_ptr<SingleChainMCMC> const& coarseChain) = 0;
31  virtual std::shared_ptr<AbstractSamplingProblem> SamplingProblem (std::shared_ptr<MultiIndex> const& index) = 0;
32  virtual std::shared_ptr<MIInterpolation> Interpolation (std::shared_ptr<MultiIndex> const& index) = 0;
33  virtual Eigen::VectorXd StartingPoint (std::shared_ptr<MultiIndex> const& index) = 0;
34  virtual std::shared_ptr<MultiIndex> FinestIndex() = 0;
35  virtual bool IsInverseProblem() { return true; }
36 
37  };
38 
39  }
40 }
41 
42 #endif
Interface defining models on a multiindex structure.
virtual Eigen::VectorXd StartingPoint(std::shared_ptr< MultiIndex > const &index)=0
virtual std::shared_ptr< MCMCProposal > Proposal(std::shared_ptr< MultiIndex > const &index, std::shared_ptr< AbstractSamplingProblem > const &samplingProblem)=0
virtual std::shared_ptr< MIInterpolation > Interpolation(std::shared_ptr< MultiIndex > const &index)=0
virtual std::shared_ptr< MultiIndex > FinestIndex()=0
virtual std::shared_ptr< MCMCProposal > CoarseProposal(std::shared_ptr< MultiIndex > const &fineIndex, std::shared_ptr< MultiIndex > const &coarseIndex, std::shared_ptr< AbstractSamplingProblem > const &coarseProblem, std::shared_ptr< SingleChainMCMC > const &coarseChain)=0
virtual std::shared_ptr< AbstractSamplingProblem > SamplingProblem(std::shared_ptr< MultiIndex > const &index)=0