12 #ifndef IMPCORE_QUAD_PREDICATES_H
13 #define IMPCORE_QUAD_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 =
"ConstQuadPredicate%1%");
52 "UnorderedTypeQuadPredicate%1%");
55 return internal::get_type_hash(m, pi);
73 "OrderedTypeQuadPredicate%1%");
78 return internal::get_ordered_type_hash(types);
82 return internal::get_ordered_type_hash(m, pi);
100 return internal::get_all_same(m, pi);
113 mutable boost::uniform_real<double> rng_;
117 "CoinFlipQuadPredicate%1%");
133 IMPCORE_END_NAMESPACE
virtual int get_value_index(Model *m, const ParticleIndexQuad &pi) const
Compute the predicate and the derivative if needed.
Abstract predicate function.
virtual int get_value(const ParticleQuad &vt) const
virtual int get_value_index(Model *, const ParticleIndexQuad &) const
Compute the predicate and the derivative if needed.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Macros for various classes.
ParticlesTemp get_particles(Model *m, const ParticleIndexes &ps)
virtual int get_value_index(Model *m, const ParticleIndexQuad &pi) const
Compute the predicate and the derivative if needed.
A more IMP-like version of the std::vector.
IMP::Vector< IMP::WeakPointer< ModelObject > > ModelObjectsTemp
Class for storing model, its restraints, constraints, and particles.
virtual ModelObjectsTemp do_get_inputs(Model *, const ParticleIndexes &) const
Overload this method to specify the inputs.
virtual int get_value_index(Model *m, const ParticleIndexQuad &pi) const
Compute the predicate and the derivative if needed.
virtual ModelObjectsTemp do_get_inputs(Model *, const ParticleIndexes &) const
Overload this method to specify the inputs.
virtual ModelObjectsTemp do_get_inputs(Model *m, const ParticleIndexes &pis) const
Overload this method to specify the inputs.
virtual ModelObjectsTemp do_get_inputs(Model *, const ParticleIndexes &) const
Overload this method to specify the inputs.
virtual int get_value_index(Model *, const ParticleIndexQuad &) const
Compute the predicate and the derivative if needed.
#define IMP_QUAD_PREDICATE_METHODS(Name)
Define extra the functions needed for a QuadPredicate.
virtual ModelObjectsTemp do_get_inputs(Model *m, const ParticleIndexes &pis) const
Overload this method to specify the inputs.
#define IMP_OVERRIDE
Cause a compile error if this method does not override a parent method.
RandomNumberGenerator random_number_generator
A shared non-GPU random number generator.