8 #ifndef IMPISD_GAUSSIAN_PROCESS_INTERPOLATION_RESTRAINT_H
9 #define IMPISD_GAUSSIAN_PROCESS_INTERPOLATION_RESTRAINT_H
11 #include <IMP/isd/isd_config.h>
13 #include <boost/scoped_ptr.hpp>
18 #include <Eigen/Dense>
19 #include <Eigen/Cholesky>
24 IMPISD_BEGIN_NAMESPACE
26 using Eigen::MatrixXd;
27 using Eigen::VectorXd;
28 using Eigen::RowVectorXd;
31 class GaussianProcessInterpolationScoreState;
43 void update_mean_and_covariance();
50 void create_score_state();
63 double get_probability()
const
65 return mvn_->density();
74 void set_use_cg(
bool use,
double tol) {mvn_->set_use_cg(use,tol);}
77 double get_minus_log_normalization()
const;
78 double get_minus_exponent()
const;
81 Eigen::MatrixXd get_hessian()
const;
84 double get_logdet_hessian()
const;
99 friend class GaussianProcessInterpolationScoreState;
102 #if !defined(IMP_DOXYGEN) && !defined(SWIG)
103 class IMPISDEXPORT GaussianProcessInterpolationScoreState :
public ScoreState
109 GaussianProcessInterpolationScoreState(
112 "GaussianProcessInterpolationScoreState%1%"),
117 friend class GaussianProcessInterpolationRestraint;
118 virtual void do_before_evaluate() IMP_OVERRIDE;
Normal distribution of Function.
Class for adding derivatives from restraints to the model.
IMP::base::Vector< IMP::base::WeakPointer< kernel::ModelObject > > ModelObjectsTemp
A nullptr-initialized pointer to an IMP Object.
A smart pointer to a ref-counted Object that is a class memeber.
A smart pointer to a reference counted object.
Import IMP/kernel/macros.h in the namespace.
ScoreStates maintian invariants in the Model.
Normal distribution of Function.
Abstract base class for all restraints.
gaussian process restraint
A restraint is a term in an IMP ScoringFunction.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Import IMP/kernel/ScoreState.h in the namespace.
GaussianProcessInterpolation.
virtual void do_set_model(kernel::Model *)
virtual ModelObjectsTemp do_get_inputs() const =0
Class for storing model, its restraints, constraints, and particles.