12 #ifndef IMPCORE_TRIPLET_PREDICATES_H
13 #define IMPCORE_TRIPLET_PREDICATES_H
15 #include <IMP/core/core_config.h>
18 #include <boost/random.hpp>
19 #include "internal/container_helpers.h"
21 IMPCORE_BEGIN_NAMESPACE
30 std::string name =
"ConstTripletPredicate%1%");
50 "UnorderedTypeTripletPredicate%1%");
52 return internal::get_type_hash(m, pi);
70 "OrderedTypeTripletPredicate%1%");
75 return internal::get_ordered_type_hash(types);
78 return internal::get_ordered_type_hash(m, pi);
95 return internal::get_all_same(m, pi);
108 mutable boost::uniform_real<double> rng_;
112 "CoinFlipTripletPredicate%1%");
127 IMPCORE_END_NAMESPACE
virtual kernel::ModelObjectsTemp do_get_inputs(kernel::Model *, const kernel::ParticleIndexes &) const
virtual kernel::ModelObjectsTemp do_get_inputs(kernel::Model *m, const kernel::ParticleIndexes &pis) const
virtual kernel::ModelObjectsTemp do_get_inputs(kernel::Model *m, const kernel::ParticleIndexes &pis) const
IMP::base::Vector< IMP::base::WeakPointer< kernel::ModelObject > > ModelObjectsTemp
RandomNumberGenerator random_number_generator
A shared random number generator.
Import IMP/kernel/triplet_macros.h in the namespace.
Import IMP/kernel/TripletPredicate.h in the namespace.
ParticlesTemp get_particles(kernel::Model *m, const ParticleIndexes &ps)
virtual kernel::ModelObjectsTemp do_get_inputs(kernel::Model *, const kernel::ParticleIndexes &) const
virtual int get_value_index(kernel::Model *m, const ParticleIndexTriplet &vt) const
Compute the predicate and the derivative if needed.
Abstract predicate function.
virtual kernel::ModelObjectsTemp do_get_inputs(kernel::Model *, const kernel::ParticleIndexes &) const
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
#define IMP_TRIPLET_PREDICATE_METHODS(Name)
Define extra the functions needed for a TripletPredicate.
virtual int get_value(const ParticleTriplet &vt) const
Class for storing model, its restraints, constraints, and particles.