IMP logo

IMP::SingletonContainer Class Reference


Detailed Description

A shared container for particles.

Stores a searchable shared collection of particles.

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

Inheritance graph
[legend]

Public Member Functions

def __disown__
virtual void apply (const SingletonModifier *sm, DerivativeAccumulator &da)=0
 Apply a SingletonModifier to the contents.
virtual void apply (const SingletonModifier *sm)=0
 Apply a SingletonModifier to the contents.
virtual double evaluate (const SingletonScore *s, DerivativeAccumulator *da) const =0
 Avaluate a score on the contents.
virtual bool get_contains_particle (Particle *v) const =0
virtual unsigned int get_number_of_particles () const =0
 return the number of particles in the container
virtual Particleget_particle (unsigned int i) const =0
ParticlesTemp get_particles () const
ParticleIterator particles_begin () const
 begin iterating through the particles
ParticleIterator particles_end () const
 iterate through the particles
 SingletonContainer (std::string name="SingletonContainer %1%")
Incremental Scoring
When incremental scoring is used, the container keeps track of changes to it since the last Model::evaluate() call.
Warning: ParticleContainer::get_removed_singletons_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 SingletonScore *o, DerivativeAccumulator *da) const =0
virtual double evaluate_prechange (const SingletonScore *o, DerivativeAccumulator *da) const =0
SingletonContainerget_added_singletons_container () const
SingletonContainerget_removed_singletons_container () const

Protected Member Functions

void set_added_and_removed_containers (SingletonContainer *added, SingletonContainer *removed)

Friends

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

Member Function Documentation

virtual double IMP::SingletonContainer::evaluate_change ( const SingletonScore 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::SingletonContainer::evaluate_prechange ( const SingletonScore o,
DerivativeAccumulator da 
) const [pure virtual]

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

virtual bool IMP::SingletonContainer::get_contains_particle ( Particle v  )  const [pure virtual]

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

virtual unsigned int IMP::SingletonContainer::get_number_of_particles (  )  const [pure virtual]

return the number of particles in the container

Note:
this isn't always constant time

void IMP::SingletonContainer::set_added_and_removed_containers ( SingletonContainer added,
SingletonContainer 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 SingletonContainer.

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:45 2010 for IMP by doxygen 1.5.8