8 #ifndef IMPISD_DISTRIBUTION_H
9 #define IMPISD_DISTRIBUTION_H
11 #include <IMP/isd/isd_config.h>
15 IMPISD_BEGIN_NAMESPACE
38 virtual double do_evaluate(
double v)
const = 0;
39 virtual double do_get_density(
double v)
const;
45 std::string name =
"OneDimensionalDistribution %1%"):
Distribution(name) {
49 double evaluate(
double v)
const {
return do_evaluate(v); }
55 double get_density(
double v)
const {
return do_get_density(v); }
81 virtual void do_update_sufficient_statistics(
Floats vs) = 0;
82 virtual Floats do_get_sufficient_statistics()
const = 0;
83 virtual double do_evaluate()
const = 0;
84 virtual double do_get_density()
const;
89 std::string name =
"OneDimensionalSufficientDistribution %1%")
94 do_update_sufficient_statistics(vs);
97 Floats get_sufficient_statistics()
const {
98 return do_get_sufficient_statistics();
Base class for single-variate distributions that cache sufficient statistics.
OneDimensionalSufficientDistribution(std::string name="OneDimensionalSufficientDistribution %1%")
Constructor.
Floats evaluate(const Floats &vs) const
Get negative log-densities for passed variable values.
double get_density() const
Get probability density using cached sufficient statistics.
double get_density(double v) const
Get probability density for passed variable value.
double evaluate(double v) const
Get negative log-density for passed variable value.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Storage of a model, its restraints, constraints and particles.
double evaluate() const
Get negative log-density using cached sufficient statistics.
Various general useful macros for IMP.
A more IMP-like version of the std::vector.
Common base class for heavy weight IMP objects.
Base class for distributions that are passed a single random variable.
Floats get_density(const Floats &vs) const
Get probability densities for passed variable values.
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing lists of object pointers.
Base class for all distributions, provided for common inheritance.
Object(std::string name)
Construct an object with the given name.
void update_sufficient_statistics(Floats vs)
Update cached sufficient statistics from data.