24#ifndef LSST_MEAS_MODELFIT_Prior_h_INCLUDED
25#define LSST_MEAS_MODELFIT_Prior_h_INCLUDED
31namespace lsst {
namespace meas {
namespace modelfit {
48 ndarray::Array<Scalar const,1,1>
const & nonlinear,
49 ndarray::Array<Scalar const,1,1>
const &
amplitudes
68 ndarray::Array<Scalar const,1,1>
const & nonlinear,
69 ndarray::Array<Scalar const,1,1>
const &
amplitudes,
70 ndarray::Array<Scalar,1,1>
const & nonlinearGradient,
71 ndarray::Array<Scalar,1,1>
const & amplitudeGradient,
72 ndarray::Array<Scalar,2,1>
const & nonlinearHessian,
73 ndarray::Array<Scalar,2,1>
const & amplitudeHessian,
74 ndarray::Array<Scalar,2,1>
const & crossHessian
112 ndarray::Array<Scalar const,1,1>
const & nonlinear
129 ndarray::Array<Scalar const,1,1>
const & nonlinear,
154 ndarray::Array<Scalar const,1,1>
const & nonlinear,
156 ndarray::Array<Scalar,2,1>
const &
amplitudes,
157 ndarray::Array<Scalar,1,1>
const & weights,
158 bool multiplyWeights=
false
table::Key< table::Array< double > > amplitudes
A class that can be used to generate sequences of random numbers according to a number of different a...
Base class for Bayesian priors.
virtual Scalar marginalize(Vector const &gradient, Matrix const &hessian, ndarray::Array< Scalar const, 1, 1 > const &nonlinear) const =0
Return the -log amplitude integral of the prior*likelihood product.
virtual Scalar maximize(Vector const &gradient, Matrix const &hessian, ndarray::Array< Scalar const, 1, 1 > const &nonlinear, ndarray::Array< Scalar, 1, 1 > const &litudes) const =0
Compute the amplitude vector that maximizes the prior x likelihood product.
Prior & operator=(Prior &&)=delete
virtual Scalar evaluate(ndarray::Array< Scalar const, 1, 1 > const &nonlinear, ndarray::Array< Scalar const, 1, 1 > const &litudes) const =0
Evaluate the prior at the given point in nonlinear and amplitude space.
Prior & operator=(const Prior &)=delete
std::string const & getTag() const
virtual void drawAmplitudes(Vector const &gradient, Matrix const &hessian, ndarray::Array< Scalar const, 1, 1 > const &nonlinear, afw::math::Random &rng, ndarray::Array< Scalar, 2, 1 > const &litudes, ndarray::Array< Scalar, 1, 1 > const &weights, bool multiplyWeights=false) const =0
Draw a set of Monte Carlo amplitude vectors.
virtual void evaluateDerivatives(ndarray::Array< Scalar const, 1, 1 > const &nonlinear, ndarray::Array< Scalar const, 1, 1 > const &litudes, ndarray::Array< Scalar, 1, 1 > const &nonlinearGradient, ndarray::Array< Scalar, 1, 1 > const &litudeGradient, ndarray::Array< Scalar, 2, 1 > const &nonlinearHessian, ndarray::Array< Scalar, 2, 1 > const &litudeHessian, ndarray::Array< Scalar, 2, 1 > const &crossHessian) const =0
Evaluate the derivatives of the prior at the given point in nonlinear and amplitude space.
Prior(const Prior &)=delete
Prior(std::string const &tag="")
Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > Vector
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > Matrix
double Scalar
Typedefs to be used for probability and parameter values.