7 #ifndef IMPISD_FNORMAL_H
8 #define IMPISD_FNORMAL_H
10 #include <IMP/isd/isd_config.h>
16 IMPISD_BEGIN_NAMESPACE
35 FNormal(
double FA,
double JA,
double FM,
double sigma):
43 virtual double evaluate()
const
45 return -log(JA_/sigma_) + 0.5*log(2*
IMP::PI)
46 + 1/(2*square(sigma_))*square(FA_-FM_);
50 virtual double evaluate_derivative_FA()
const
51 {
return (FA_-FM_)/square(sigma_); }
53 virtual double evaluate_derivative_JA()
const
57 virtual double evaluate_derivative_FM()
const
58 {
return (FM_-FA_)/square(sigma_); }
60 virtual double evaluate_derivative_sigma()
const
61 {
return 1/sigma_ - square(FA_-FM_)/pow(sigma_,3); }
64 virtual double density()
const
66 return JA_/(sqrt(2*
IMP::PI)*sigma_)*
67 exp(-square(FA_-FM_)/(2*square(sigma_)));
71 void set_FA(
double f) {
74 void set_JA(
double f) {
77 void set_FM(
double f) {
80 void set_sigma(
double f) {
89 double FA_,JA_,FM_,sigma_;
static const double PI
the constant pi
Import IMP/kernel/constants.h in the namespace.
Import IMP/kernel/macros.h in the namespace.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Storage of a model, its restraints, constraints and particles.
Common base class for heavy weight IMP objects.