9 #ifndef IMPCORE_INCREMENTAL_SCORING_FUNCTION_H
10 #define IMPCORE_INCREMENTAL_SCORING_FUNCTION_H
12 #include <IMP/core/core_config.h>
17 #include <boost/unordered_map.hpp>
19 IMPCORE_BEGIN_NAMESPACE
21 #if !defined(IMP_DOXYGEN) && !defined(SWIG)
52 struct ScoringFunctionsMap
53 :
public boost::unordered_map<ParticleIndex, Data> {
54 ~ScoringFunctionsMap();
56 ScoringFunctionsMap scoring_functions_;
61 Floats flattened_restraints_scores_;
65 struct Wrapper :
public Vector<internal::NBLScoring *> {
70 void create_scoring_functions();
71 void do_non_incremental_evaluate();
73 const boost::unordered_map<Restraint *, int> &all,
90 double weight = 1.0,
double max =
NO_MAX,
92 "IncrementalScoringFunction%1%");
97 void reset_moved_particles();
102 void add_close_pair_score(
PairScore *ps,
double distance,
105 void add_close_pair_score(
PairScore *ps,
double distance,
107 void clear_close_pair_scores();
117 IMPCORE_END_NAMESPACE
virtual void do_add_score_and_derivatives(ScoreAccumulator sa, const ScoreStatesTemp &ss)=0
Abstract class for scoring object(s) of type ParticleIndexPair.
const double NO_MAX
Use this value when you want to turn off maximum for restraint evaluation.
virtual Restraints create_restraints() const =0
Return a set of restraints equivalent to this scoring function.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
A smart pointer to a ref-counted Object that is a class member.
Class for adding up scores during ScoringFunction evaluation.
virtual void handle_set_has_required_score_states(bool)
A nullptr-initialized pointer to an IMP Object.
Represents a scoring function on the model.
Functions to search over vectors.
Score the model efficiently when a small number of particles are changed.
Storage of a model, its restraints, constraints and particles.
virtual ModelObjectsTemp do_get_inputs() const =0
#define IMP_OVERRIDE
Cause a compile error if this method does not override a parent method.