13 #ifndef IMPCONTAINER_PREDICATE_TRIPLETS_RESTRAINT_H
14 #define IMPCONTAINER_PREDICATE_TRIPLETS_RESTRAINT_H
16 #include <IMP/container/container_config.h>
17 #include <boost/unordered_map.hpp>
23 IMPCONTAINER_BEGIN_NAMESPACE
37 mutable boost::unordered_map<int, ParticleIndexTriplets> lists_;
38 boost::unordered_map<int, PointerMember<TripletScore> > scores_;
39 mutable std::size_t input_version_;
40 bool error_on_unknown_;
41 void update_lists_if_necessary()
const;
47 "PredicateTripletsRestraint %1%");
51 void set_score(
int predicate_value,
TripletScore *score);
64 return lists_.find(predicate_value)->second;
74 Restraints do_create_current_decomposition() const;
77 IMPCONTAINER_END_NAMESPACE
Applies a TripletScore to each Triplet in a list based on a predicate.
void set_is_complete(bool tf)
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
virtual void do_add_score_and_derivatives(ScoreAccumulator sa) const
A restraint should override this to compute the score and derivatives.
Abstract predicate function.
ParticleIndexTriplets get_indexes(int predicate_value) const
A smart pointer to a ref-counted Object that is a class member.
Class for adding up scores during ScoringFunction evaluation.
Abstract class for scoring object(s) of type ParticleIndexTriplet.
virtual ModelObjectsTemp do_get_inputs() const =0
#define IMP_OVERRIDE
Cause a compile error if this method does not override a parent method.
A restraint is a term in an IMP ScoringFunction.