MUQ  0.4.3
PyDistribution.cpp
Go to the documentation of this file.
2 
3 using namespace muq::Modeling;
4 
5 PyDistribution::PyDistribution(unsigned int varSizeIn, Eigen::VectorXi const& hyperSizesIn) : Distribution(varSizeIn, hyperSizesIn) {}
6 
8  return SampleImpl(ToStdVec(inputs));
9 }
10 
12  return LogDensityImpl(ToStdVec(inputs));
13 }
14 
15 ref_vector<Eigen::VectorXd> PyDistribution::ToRefVec(std::vector<Eigen::VectorXd> const& input) {
16  ref_vector<Eigen::VectorXd> output(input.begin(),input.end());
17  return output;
18 }
19 
20 std::vector<Eigen::VectorXd> PyDistribution::ToStdVec(ref_vector<Eigen::VectorXd> const& input) {
21  std::vector<Eigen::VectorXd> newIns(input.size());
22 
23  for (int i=0; i<input.size(); ++i)
24  newIns.at(i) = input.at(i).get();
25 
26  return newIns;
27 }
static std::vector< Eigen::VectorXd > ToStdVec(ref_vector< Eigen::VectorXd > const &input)
static ref_vector< Eigen::VectorXd > ToRefVec(std::vector< Eigen::VectorXd > const &input)
virtual Eigen::VectorXd SampleImpl(std::vector< Eigen::VectorXd > const &inputs)=0
virtual double LogDensityImpl(ref_vector< Eigen::VectorXd > const &inputs) override
Implement the log-density.
PyDistribution(unsigned int varSizeIn, Eigen::VectorXi const &hyperSizesIn=Eigen::VectorXi())
std::vector< std::reference_wrapper< const T > > ref_vector
A vector of references to something ...
Definition: WorkPiece.h:37