IMP logo

IMP::PairContainer Class Reference


Detailed Description

A shared container for particle_pairs.

Stores a searchable shared collection of particle_pairs.

Implementors
Developers who wish to implement a PairContainer should inherit from this class and use the IMP_PAIR_CONTAINER() macro to help define the needed functions. Lamentably, we do not provide an example.
Inheritance diagram for IMP::PairContainer:

Inheritance graph
[legend]

Public Member Functions

def __disown__
virtual void apply (const PairModifier *sm, DerivativeAccumulator &da)=0
 Apply a SingletonModifier to the contents.
virtual void apply (const PairModifier *sm)=0
 Apply a SingletonModifier to the contents.
virtual double evaluate (const PairScore *s, DerivativeAccumulator *da) const =0
 Avaluate a score on the contents.
virtual bool get_contains_particle_pair (const ParticlePair &v) const =0
virtual unsigned int get_number_of_particle_pairs () const =0
 return the number of particle_pairs in the container
virtual ParticlePair get_particle_pair (unsigned int i) const =0
ParticlePairsTemp get_particle_pairs () const
 PairContainer (std::string name="PairContainer %1%")
ParticlePairIterator particle_pairs_begin () const
 begin iterating through the particle_pairs
ParticlePairIterator particle_pairs_end () const
 iterate through the particle_pairs
Incremental Scoring
When incremental scoring is used, the container keeps track of changes to it since the last Model::evaluate() call.
Warning: ParticlePairContainer::get_removed_pairs_container() has not been stabilized and is likely to change without notice.
The address of the objects returned should not change over the lifetime of this container (but, of course, their contents will).


virtual double evaluate_change (const PairScore *o, DerivativeAccumulator *da) const =0
virtual double evaluate_prechange (const PairScore *o, DerivativeAccumulator *da) const =0
PairContainerget_added_pairs_container () const
PairContainerget_removed_pairs_container () const

Protected Member Functions

void set_added_and_removed_containers (PairContainer *added, PairContainer *removed)

Friends

template<class T >
void IMP::internal::unref (T *)

Member Function Documentation

virtual double IMP::PairContainer::evaluate_change ( const PairScore o,
DerivativeAccumulator da 
) const [pure virtual]

Return the change in score (and derivatives) since the last evaluate of the current contents of the container.

virtual double IMP::PairContainer::evaluate_prechange ( const PairScore o,
DerivativeAccumulator da 
) const [pure virtual]

Return the score of the last evaluate for the current contents of the container.

virtual bool IMP::PairContainer::get_contains_particle_pair ( const ParticlePair &  v  )  const [pure virtual]

Note:
This function may be linear. Be aware of the complexity bounds of your particular container.

virtual unsigned int IMP::PairContainer::get_number_of_particle_pairs (  )  const [pure virtual]

return the number of particle_pairs in the container

Note:
this isn't always constant time

void IMP::PairContainer::set_added_and_removed_containers ( PairContainer added,
PairContainer removed 
) [protected]

Containers must have containers that keep track of the particles which have been added or since the last step. These containers must be registered with the parent PairContainer.

Containers which are themselves returned by the get_added/removed functions do not have to register such containers.


The documentation for this class was generated from the following files:

Generated on Mon Mar 8 23:08:42 2010 for IMP by doxygen 1.5.8