8 #ifndef IMPISD_F_STUDENT_T_H
9 #define IMPISD_F_STUDENT_T_H
11 #include <IMP/isd/isd_config.h>
14 IMPISD_BEGIN_NAMESPACE
63 virtual void do_update_sufficient_statistics(
Floats FXs)
override;
64 virtual void do_update_sufficient_statistics(
Floats FXs,
Floats JXs);
65 virtual Floats do_get_sufficient_statistics()
const override;
66 virtual double do_evaluate()
const override;
80 std::string name =
"FStudentT %1%");
92 FStudentT(
double sumFX,
double sumFX2,
unsigned N,
double LogJX,
93 double FM,
double sigma,
double nu,
94 std::string name =
"FStudentT %1%");
98 do_update_sufficient_statistics(FXs, JXs);
105 virtual double evaluate_derivative_Fx(
double Fx)
const;
114 virtual double evaluate_derivative_LogJX()
const;
117 virtual double evaluate_derivative_FM()
const;
120 virtual double evaluate_derivative_sigma()
const;
123 virtual double evaluate_derivative_nu()
const;
130 void update_cached_values()
const;
132 void set_sumFX(
double v) { sumFX_ = v; }
133 void set_sumFX2(
double v) { sumFX2_ = v; }
134 void set_N(
unsigned v) { N_ = v; }
135 void set_LogJX(
double v) { LogJX_ = v; }
136 void set_FM(
double v) { FM_ = v; }
137 void set_sigma(
double v) { sigma_ = v; }
138 void set_nu(
double v) { nu_ = v; }
142 double get_sumFX2() {
return sumFX2_; }
143 unsigned get_N() {
return N_; }
144 double get_LogJX() {
return LogJX_; }
145 double get_FM() {
return FM_; }
146 double get_sigma() {
return sigma_; }
147 double get_nu() {
return nu_; }
152 double sumFX_, sumFX2_, LogJX_, FM_, sigma_, nu_;
Base class for single-variate distributions that cache sufficient statistics.
Joint Student's t-distribution of Function.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
void update_sufficient_statistics(Floats FXs, Floats JXs)
Update sufficient statistics with values and derivatives.
double get_sumFX()
Get sufficient statistic for passed values.
Base class for probability distributions.
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing lists of object pointers.