20 virtual void GradientImpl(
unsigned int const outputDimWrt,
21 unsigned int const inputDimWrt,
23 Eigen::VectorXd
const& sensitivity)
override;
25 virtual void JacobianImpl(
unsigned int const outputDimWrt,
26 unsigned int const inputDimWrt,
30 unsigned int const inputDimWrt,
32 Eigen::VectorXd
const& vec)
override;
35 unsigned int const inWrt1,
36 unsigned int const inWrt2,
38 Eigen::VectorXd
const& sens,
39 Eigen::VectorXd
const& vec)
override;
47 Density(std::shared_ptr<Distribution> distIn);
55 std::shared_ptr<Distribution>
dist;
63 unsigned int const inWrt2,
65 Eigen::VectorXd
const& vec)
override;
69 static Eigen::VectorXi
GetInputSizes(std::shared_ptr<Distribution> distIn);
virtual void JacobianImpl(unsigned int const outputDimWrt, unsigned int const inputDimWrt, ref_vector< Eigen::VectorXd > const &input) override
virtual void ApplyJacobianImpl(unsigned int const outputDimWrt, unsigned int const inputDimWrt, ref_vector< Eigen::VectorXd > const &input, Eigen::VectorXd const &vec) override
virtual void ApplyHessianImpl(unsigned int const outWrt, unsigned int const inWrt1, unsigned int const inWrt2, ref_vector< Eigen::VectorXd > const &input, Eigen::VectorXd const &sens, Eigen::VectorXd const &vec) override
virtual void GradientImpl(unsigned int const outputDimWrt, unsigned int const inputDimWrt, ref_vector< Eigen::VectorXd > const &input, Eigen::VectorXd const &sensitivity) override
DensityBase(Eigen::VectorXi const &inputSizes)
virtual void EvaluateImpl(ref_vector< Eigen::VectorXd > const &inputs) override
virtual ~DensityBase()=default
static Eigen::VectorXi GetInputSizes(std::shared_ptr< Distribution > distIn)
virtual std::shared_ptr< Distribution > GetDistribution()
virtual Eigen::VectorXd GradLogDensityImpl(unsigned int wrt, ref_vector< Eigen::VectorXd > const &inputs) override
virtual ~Density()=default
virtual Eigen::VectorXd SampleImpl(ref_vector< Eigen::VectorXd > const &inputs) override
Sample the distribution.
std::shared_ptr< Distribution > dist
virtual double LogDensityImpl(ref_vector< Eigen::VectorXd > const &inputs) override
Implement the log-density.
virtual Eigen::VectorXd ApplyLogDensityHessianImpl(unsigned int const inWrt1, unsigned int const inWrt2, ref_vector< Eigen::VectorXd > const &input, Eigen::VectorXd const &vec) override
Provides an abstract interface for defining vector-valued model components.
const Eigen::VectorXi inputSizes
std::vector< std::reference_wrapper< const T > > ref_vector
A vector of references to something ...