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.