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) {
85 <<
", " << FM_ <<
", " << sigma_ <<std::endl, {});
88 double FA_,JA_,FM_,sigma_;