24 #ifndef LSST_MEAS_MODELFIT_Prior_h_INCLUDED 25 #define LSST_MEAS_MODELFIT_Prior_h_INCLUDED 31 namespace 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,
130 ndarray::Array<Scalar,1,1>
const & amplitudes
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 181 #endif // !LSST_MEAS_MODELFIT_Prior_h_INCLUDED 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...
double Scalar
Typedefs to be used for probability and parameter values.
Prior & operator=(const Prior &)=delete
table::Key< table::Array< double > > amplitudes
A base class for image defects.
std::string const & getTag() const
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > Matrix
Typedefs to be used for probability and parameter values.
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.
Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > Vector
Typedefs to be used for probability and parameter values.
Prior(std::string const &tag="")
Base class for Bayesian priors.
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.
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 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(const Prior &)=delete
A class that can be used to generate sequences of random numbers according to a number of different a...