IMP
2.3.1
The Integrative Modeling Platform
IMP Mainpage
Modules
Applications
Related Pages
Groups
Classes
Files
Examples
Indexes
File List
File Members
Score.h
Go to the documentation of this file.
1
/**
2
* \file IMP/score_functor/Score.h
3
* \brief A Score on the distance between a pair of particles.
4
*
5
* Copyright 2007-2014 IMP Inventors. All rights reserved.
6
*/
7
8
#ifndef IMPSCORE_FUNCTOR_SCORE_H
9
#define IMPSCORE_FUNCTOR_SCORE_H
10
11
#include <IMP/score_functor/score_functor_config.h>
12
#include <
IMP/base_types.h
>
13
#include <
IMP/particle_index.h
>
14
#include <
IMP/base/warning_macros.h
>
15
#include <
IMP/Particle.h
>
16
#include <limits>
17
18
IMPSCOREFUNCTOR_BEGIN_NAMESPACE
19
//! A functor for computing a distance based score for two particles.
20
struct
Score
{
21
// swig gets confused otherwise
22
Score
() {}
23
#ifdef IMP_DOXYGEN
24
//! Return the score at the passed feature size (eg distance).
25
/** The involved particle indexes are passed along.
26
27
\pre get_is_trivially_zero() or get_maximum_range() has been called
28
and get_is_trivially_zero() is false.
29
*/
30
template
<
unsigned
int
D>
31
double
get_score(
kernel::Model
*m,
32
const
base::Array<D, kernel::ParticleIndex>
&p,
33
double
distance)
const
;
34
//! Return the score and derivative at the passed feature size (eg distance).
35
/** The derivative is for the feature decreasing.
36
37
\pre get_is_trivially_zero() or get_maximum_range() has been called
38
and get_is_trivially_zero() is false.
39
*/
40
template
<
unsigned
int
D>
41
DerivativePair
get_score_and_derivative(
42
kernel::Model
*m,
const
base::Array<D, kernel::ParticleIndex>
&p,
43
double
distance)
const
;
44
#endif
45
/** Return true if the function can be easily determined to be zero at the
46
passed squared distance. The default implementation provided here
47
returns false.
48
49
\note That it is squared distance, not distance.
50
*/
51
template
<
unsigned
int
D>
52
bool
get_is_trivially_zero
(
kernel::Model
*m,
53
const
base::Array<D, kernel::ParticleIndex>
&p,
54
double
squared_distance)
const
{
55
IMP_UNUSED
(m);
56
IMP_UNUSED
(p);
57
IMP_UNUSED
(squared_distance);
58
return
false
;
59
}
60
/** Return an upper bound on the distance at which the score can be
61
non-zero. The default implementation provided here returns infinity.*/
62
template
<
unsigned
int
D>
63
double
get_maximum_range
(
64
kernel::Model
*m,
const
base::Array<D, kernel::ParticleIndex>
&p)
const
{
65
IMP_UNUSED
(m);
66
IMP_UNUSED
(p);
67
return
std::numeric_limits<double>::infinity();
68
}
69
/** Return the set of particles read when particle p is part of the passed
70
tuples. The default implementation provided here just returns the list
71
containing p.*/
72
kernel::ModelObjectsTemp
get_inputs
(
73
kernel::Model
*m,
const
kernel::ParticleIndexes
&pis)
const
{
74
return
IMP::get_particles
(m, pis);
75
}
76
void
show
(std::ostream &)
const
{}
77
};
78
79
IMPSCOREFUNCTOR_END_NAMESPACE
80
81
#endif
/* IMPSCORE_FUNCTOR_SCORE_H */
base_types.h
Import IMP/kernel/base_types.h in the namespace.
particle_index.h
Import IMP/kernel/particle_index.h in the namespace.
IMP::kernel::get_particles
ParticlesTemp get_particles(kernel::Model *m, const ParticleIndexes &ps)
IMP::score_functor::Score::get_is_trivially_zero
bool get_is_trivially_zero(kernel::Model *m, const base::Array< D, kernel::ParticleIndex > &p, double squared_distance) const
Definition:
Score.h:52
IMP::base::Vector
Definition:
Vector.h:37
IMP::score_functor::Score::get_inputs
kernel::ModelObjectsTemp get_inputs(kernel::Model *m, const kernel::ParticleIndexes &pis) const
Definition:
Score.h:72
IMP::base::Array
A class to store an fixed array of same-typed values.
Definition:
Array.h:33
warning_macros.h
Various general useful macros for IMP.
IMP_UNUSED
#define IMP_UNUSED(variable)
Definition:
warning_macros.h:25
IMP::DerivativePair
std::pair< double, double > DerivativePair
A pair representing a function value with its first derivative.
Definition:
types.h:23
Particle.h
Import IMP/kernel/Particle.h in the namespace.
IMP::score_functor::Score::get_maximum_range
double get_maximum_range(kernel::Model *m, const base::Array< D, kernel::ParticleIndex > &p) const
Definition:
Score.h:63
IMP::atom::show
void show(Hierarchy h, std::ostream &out=std::cout)
Print out a molecular hierarchy.
Definition:
atom/Hierarchy.h:450
IMP::score_functor::Score
A functor for computing a distance based score for two particles.
Definition:
Score.h:20
IMP::kernel::Model
Class for storing model, its restraints, constraints, and particles.
Definition:
kernel/Model.h:73