IMP  2.0.1
The Integrative Modeling Platform
kernel/scoring_function_macros.h
Go to the documentation of this file.
1 /**
2  * \file IMP/kernel/scoring_function_macros.h
3  * \brief Various general useful macros for IMP.
4  *
5  * Copyright 2007-2013 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPKERNEL_SCORING_FUNCTION_MACROS_H
10 #define IMPKERNEL_SCORING_FUNCTION_MACROS_H
11 #include <IMP/kernel/kernel_config.h>
13 #include <IMP/base/object_macros.h>
14 #include "ScoringFunction.h"
15 
16 
17 /** Declare the methods needed for an IMP::ScoringFunction object. It
18  declares the following methods that you need to implement:
19  - IMP::ScoringFunction::do_add_score_and_derivatives()
20  - IMP::ScoringFunction::create_restraints()
21  - IMP::ScoringFunction::get_required_score_states()
22  in addition to the IMP_OBJECT() methods.*/
23 #define IMP_SCORING_FUNCTION(Name) \
24  void do_add_score_and_derivatives(IMP::kernel::ScoreAccumulator sa, \
25  const ScoreStatesTemp &ss) IMP_OVERRIDE; \
26  Restraints create_restraints() const IMP_OVERRIDE; \
27  ScoreStatesTemp get_required_score_states() const IMP_OVERRIDE; \
28  IMP_OBJECT_METHODS(Name)
29 
30 #endif /* IMPKERNEL_SCORING_FUNCTION_MACROS_H */