IMP
2.3.1
The Integrative Modeling Platform
IMP Mainpage
Modules
Applications
Related Pages
Groups
Classes
Files
Examples
Indexes
File List
File Members
IMP
Modules
Applications
All IMP Applications
Argument Index
Class Examples
Factory Index
Function Examples
Design example
Developer Guide
Installation
Introduction
Publications
ChangeLog
Tools
Dependencies
PMI changelog
Deprecated List
Groups
Classes
Files
File List
File Members
Examples
Indexes
kernel/PairPredicate.h
Go to the documentation of this file.
1
/**
2
* \file IMP/kernel/PairPredicate.h
3
* \brief Define PairPredicate.
4
*
5
* WARNING This file was generated from PairPredicate.h
6
* in /tmp/nightly-build-29065/imp-2.3.1/tools/build/container_templates/kernel
7
* by tools/build/make_containers.py.
8
*
9
* Copyright 2007-2014 IMP Inventors. All rights reserved.
10
*/
11
12
#ifndef IMPKERNEL_PAIR_PREDICATE_H
13
#define IMPKERNEL_PAIR_PREDICATE_H
14
15
#include <IMP/kernel/kernel_config.h>
16
#include "
base_types.h
"
17
#include "
ParticleTuple.h
"
18
#include "
DerivativeAccumulator.h
"
19
#include "internal/container_helpers.h"
20
#include "
model_object_helpers.h
"
21
22
IMPKERNEL_BEGIN_NAMESPACE
23
24
//! Abstract predicate function
25
/** A predicate is a function which returns one of a discrete set of
26
values (eg -1, 0, 1 depending on whether a value is negative, zero
27
or positive). PairPredicates will evaluate the predicate for the passed
28
particles.
29
30
Implementers should check out IMP_PAIR_PREDICATE().
31
*/
32
class
IMPKERNELEXPORT
PairPredicate
:
public
ParticleInputs
,
33
public
base::Object
{
34
public
:
35
typedef
kernel::ParticlePair
Argument
;
36
typedef
kernel::ParticleIndexPair
IndexArgument
;
37
PairPredicate
(std::string name =
"PairPredicate %1%"
);
38
/** \deprecated_at{2.1} Use the index based version.*/
39
IMPKERNEL_DEPRECATED_METHOD_DECL(2.1)
40
virtual
int
get_value(
const
kernel::ParticlePair
& vt)
const
;
41
42
/** \deprecated_at{2.1} Use the index based version.*/
43
IMPKERNEL_DEPRECATED_METHOD_DECL(2.1)
44
virtual
Ints
get_value(
const
kernel::ParticlePairsTemp
&o)
const
;
45
46
#if !defined(IMP_DOXYGEN) && !defined(SWIG)
47
virtual
void
remove_if_equal(
kernel::Model
*m,
kernel::ParticleIndexPairs
&ps,
48
int
v)
const
;
49
virtual
void
remove_if_not_equal(
kernel::Model
*m,
kernel::ParticleIndexPairs
&ps,
50
int
v)
const
;
51
#endif
52
53
//! Compute the predicate and the derivative if needed.
54
virtual
int
get_value_index(
kernel::Model
*m,
const
kernel::ParticleIndexPair
& vt)
const
;
55
56
//! Enable them to be use as functors
57
/** But beware of slicing.
58
*/
59
int
operator()
(
kernel::Model
*m,
const
kernel::ParticleIndexPair
& vt)
const
{
60
return
get_value_index(m, vt);
61
}
62
63
virtual
Ints
get_value_index(
kernel::Model
*m,
64
const
kernel::ParticleIndexPairs
&o)
const
{
65
Ints
ret(o.size());
66
for
(
unsigned
int
i = 0; i < o.size(); ++i) {
67
ret[i] += get_value_index(m, o[i]);
68
}
69
return
ret;
70
}
71
72
IMP_REF_COUNTED_DESTRUCTOR
(
PairPredicate
);
73
};
74
75
IMPKERNEL_END_NAMESPACE
76
77
#endif
/* IMPKERNEL_PAIR_PREDICATE_H */
DerivativeAccumulator.h
Class for adding derivatives from restraints to the model.
base_types.h
Basic types used by IMP.
IMP_REF_COUNTED_DESTRUCTOR
#define IMP_REF_COUNTED_DESTRUCTOR(Name)
Ref counted objects should have private destructors.
Definition:
ref_counted_macros.h:60
IMP::base::Vector< Int >
model_object_helpers.h
Single variable function.
IMP::base::Array
A class to store an fixed array of same-typed values.
Definition:
Array.h:33
IMP::kernel::PairPredicate
Abstract predicate function.
Definition:
kernel/PairPredicate.h:32
IMP::kernel::ParticleInputs
Definition:
kernel/model_object_helpers.h:18
IMP::base::Object
Common base class for heavy weight IMP objects.
Definition:
Object.h:106
ParticleTuple.h
Classes to handle individual model particles.
IMP::PairPredicate
IMP::kernel::PairPredicate PairPredicate
Definition:
kernel/doxygen.h:94
IMP::kernel::PairPredicate::operator()
int operator()(kernel::Model *m, const kernel::ParticleIndexPair &vt) const
Enable them to be use as functors.
Definition:
kernel/PairPredicate.h:59
IMP::kernel::Model
Class for storing model, its restraints, constraints, and particles.
Definition:
kernel/Model.h:73