8 #ifndef IMPCORE_DIHEDRAL_QUAD_SCORE_H
9 #define IMPCORE_DIHEDRAL_QUAD_SCORE_H
11 #include <IMP/core/core_config.h>
17 #include <cereal/access.hpp>
18 #include <cereal/types/base_class.hpp>
20 IMPCORE_BEGIN_NAMESPACE
27 friend class cereal::access;
29 template<
class Archive>
void serialize(Archive &ar) {
30 ar(cereal::base_class<QuadScore>(
this), f_);
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Single variable function.
Macros for various classes.
A more IMP-like version of the std::vector.
Class for storing model, its restraints, constraints, and particles.
Abstract class for scoring object(s) of type ParticleIndexQuad.
Apply a function to the dihedral angle between four particles.
#define IMP_QUAD_SCORE_METHODS(Name)
#define IMP_OBJECT_SERIALIZE_DECL(Name)
Declare methods needed for serialization of Object pointers.
A smart pointer to a ref-counted Object that is a class member.
virtual ModelObjectsTemp do_get_inputs(Model *m, const ParticleIndexes &pis) const =0
Overload this method to specify the inputs.
virtual double evaluate_index(Model *m, const ParticleIndexQuad &vt, DerivativeAccumulator *da) const =0
Compute the score and the derivative if needed.
A nullptr-initialized pointer to an IMP Object.
Abstract single variable functor class for score functions.
Class for adding derivatives from restraints to the model.
Compile-time generic restraint and constraint support.