MUQ  0.4.3
DensityProduct.cpp
Go to the documentation of this file.
3 
4 
5 using namespace muq::Modeling;
6 using namespace muq::Utilities;
7 
8 DensityProduct::DensityProduct(int numPiecesIn) : DensityBase(Eigen::VectorXi::Ones(numPiecesIn))
9 {
10  numInputs = numPiecesIn;
11 }
12 
13 
15 {
16  double sum = 0.0;
17  for(int i=0; i<inputs.size(); ++i)
18  sum += inputs.at(i).get()(0);
19 
20  return sum;
21 }
22 
23 Eigen::VectorXd DensityProduct::GradLogDensityImpl(unsigned int wrt,
24  ref_vector<Eigen::VectorXd> const& inputs)
25 {
26  return Eigen::VectorXd::Ones(1,1);
27 }
28 
29 Eigen::VectorXd DensityProduct::ApplyLogDensityHessianImpl(unsigned int const inWrt1,
30  unsigned int const inWrt2,
31  ref_vector<Eigen::VectorXd> const& input,
32  Eigen::VectorXd const& vec)
33 {
34  return Eigen::VectorXd::Zero(1);
35 }
virtual double LogDensityImpl(ref_vector< Eigen::VectorXd > const &inputs) override
Implement the log-density.
virtual Eigen::VectorXd GradLogDensityImpl(unsigned int wrt, ref_vector< Eigen::VectorXd > const &inputs) override
virtual Eigen::VectorXd ApplyLogDensityHessianImpl(unsigned int const inWrt1, unsigned int const inWrt2, ref_vector< Eigen::VectorXd > const &input, Eigen::VectorXd const &vec) override
int numInputs
The number of inputs.
Definition: WorkPiece.h:501
std::vector< std::reference_wrapper< const T > > ref_vector
A vector of references to something ...
Definition: WorkPiece.h:37