9 #ifndef IMPKERNEL_SCORE_ACCUMULATOR_H
10 #define IMPKERNEL_SCORE_ACCUMULATOR_H
12 #include <IMP/kernel_config.h>
13 #include "DerivativeAccumulator.h"
14 #include "constants.h"
24 IMPKERNEL_BEGIN_NAMESPACE
32 EvaluationState(
double oscore,
bool ogood) : score(oscore), good(ogood) {}
56 double global_max,
double local_max,
bool abort_on_bad)
59 global_max_(global_max),
60 local_max_(local_max),
62 abort_on_bad_(abort_on_bad) {}
75 local_max_ = std::min(local_max, o.local_max_);
81 double wscore = weight_.get_weight() * score;
83 score_->score += wscore;
84 if (score > local_max_) {
96 if (global_max_ ==
NO_MAX && !abort_on_bad_)
return false;
105 double score = score_->score;
106 return score > global_max_;
124 double get_maximum()
const {
return std::min(global_max_, local_max_); }
139 IMPKERNEL_END_NAMESPACE
Declare an efficient stl-compatible map.
const double NO_MAX
Use this value when you want to turn off maximum for restraint evaluation.
bool get_is_evaluate_if_below() const
#define IMP_SHOWABLE_INLINE(Name, how_to_show)
Declare the methods needed by an object that can be printed.
bool get_is_evaluate_if_good() const
void add_score(double score)
ScoreAccumulator(ScoreAccumulator o, double weight, double local_max)
#define IMP_LOG_VERBOSE(expr)
Various general useful macros for IMP.
Exception definitions and assertions.
Base for a simple primitive-like type.
#define IMP_VALUES(Name, PluralName)
Define the type for storing sets of values.
Provide a nullptr keyword analog.
Logging and error reporting support.
Class for adding up scores during ScoringFunction evaluation.
Represents a scoring function on the model.
double get_maximum() const
Various general useful macros for IMP.
#define IMP_OMP_PRAGMA(x)
bool get_abort_evaluation() const
Return if the score already exceeds the maximum.
const std::nullptr_t nullptr
Various general useful macros for IMP.
Class for adding derivatives from restraints to the model.
A restraint is a term in an IMP ScoringFunction.