1 #ifndef MICOMPONENTFACTORY_H
2 #define MICOMPONENTFACTORY_H
13 namespace SamplingAlgorithms {
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;
Interface defining models on a multiindex structure.
virtual ~MIComponentFactory()=default
virtual bool IsInverseProblem()
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