9 #ifndef IMPKERNEL_GENERIC_H
10 #define IMPKERNEL_GENERIC_H
12 #include <IMP/kernel/kernel_config.h>
13 #include "internal/scoring_functions.h"
14 #include "internal/ContainerRestraint.h"
15 #include "internal/TupleRestraint.h"
16 #include "internal/TupleConstraint.h"
18 IMPKERNEL_BEGIN_NAMESPACE
22 template <
class Restra
intType>
35 template <
class Score>
36 inline Restraint *create_restraint(Score *s,
const typename Score::Argument &t,
37 std::string name = std::string()) {
38 return internal::create_tuple_restraint(
39 s, IMP::kernel::internal::get_model(t),
43 template <
class Score>
44 inline Restraint *create_restraint(
const Score *s,
45 const typename Score::Argument &t,
46 std::string name = std::string()) {
47 return internal::create_tuple_restraint(
48 const_cast<Score *>(s), IMP::kernel::internal::get_model(t),
52 template <
class Score,
class Container>
54 std::string name = std::string()) {
55 return internal::create_container_restraint(const_cast<Score *>(s), t, name);
62 template <
class Before,
class After>
64 const typename Before::Argument &t,
65 std::string name = std::string()) {
66 return internal::create_tuple_constraint(b, a, t, name);
69 IMPKERNEL_END_NAMESPACE
const double NO_MAX
Use this value when you want to turn off maximum for restraint evaluation.
Ints get_index(const kernel::ParticlesTemp &particles, const Subset &subset, const Subsets &excluded)
Represents a scoring function on the model.
ScoringFunction * create_scoring_function(RestraintType *rs, double weight=1.0, double max=NO_MAX, std::string name=std::string())
IMP::kernel::Container Container
A restraint is a term in an IMP ScoringFunction.
Constraint * create_constraint(Before *b, After *a, const typename Before::Argument &t, std::string name=std::string())
Implement a constraint on the Model.
IMP::kernel::Restraint Restraint