8 #ifndef IMPISD_PENALIZED_COMPLEXITY_PRIOR_H
9 #define IMPISD_PENALIZED_COMPLEXITY_PRIOR_H
11 #include <IMP/isd/isd_config.h>
14 IMPISD_BEGIN_NAMESPACE
54 virtual void do_update_sufficient_statistics(
Floats Dxis)
override;
55 virtual void do_update_sufficient_statistics(
Floats Dxis,
Floats Jxis);
56 virtual Floats do_get_sufficient_statistics()
const override;
57 virtual double do_evaluate()
const override;
67 std::string name =
"PenalizedComplexityPrior %1%");
71 do_update_sufficient_statistics(Dxis, Jxis);
75 double evaluate_derivative_Dxi()
const;
78 double evaluate_derivative_Jxi()
const;
81 double evaluate_derivative_alpha()
const;
86 double evaluate_derivative_xi(
double JJxi)
const;
89 void set_Dxi(
double v);
92 void set_Jxi(
double v);
95 void set_alpha(
double v);
98 double get_Dxi()
const;
101 double get_Jxi()
const;
104 double get_alpha()
const;
109 double sqrtDxi_, Jxi_, nloga_;
Base class for single-variate distributions that cache sufficient statistics.
void update_sufficient_statistics(Floats Dxis, Floats Jxis)
Update sufficient statistics with values and derivatives.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Penalized complexity prior.
Base class for probability distributions.
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing lists of object pointers.