IMP logo

IMP::TripletContainer Class Reference


Detailed Description

A shared container for particle_triplets.

Stores a searchable shared collection of particle_triplets.

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

Inheritance graph
[legend]

Public Member Functions

virtual void apply (const TripletModifier *sm, DerivativeAccumulator &da)=0
 Apply a SingletonModifier to the contents.
virtual void apply (const TripletModifier *sm)=0
 Apply a SingletonModifier to the contents.
virtual double evaluate (const TripletScore *s, DerivativeAccumulator *da) const =0
 Avaluate a score on the contents.
virtual bool get_contains_particle_triplet (const ParticleTriplet &v) const =0
virtual unsigned int get_number_of_particle_triplets () const =0
 return the number of particle_triplets in the container
virtual ParticleTriplet get_particle_triplet (unsigned int i) const =0
ParticleTripletsTemp get_particle_triplets () const
ParticleTripletIterator particle_triplets_begin () const
 begin iterating through the particle_triplets
ParticleTripletIterator particle_triplets_end () const
 iterate through the particle_triplets
 TripletContainer (std::string name="TripletContainer %1%")
Incremental Scoring
When incremental scoring is used, the container keeps track of changes to it since the last Model::evaluate() call.
Warning: ParticleTripletContainer::get_removed_triplets_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 TripletScore *o, DerivativeAccumulator *da) const =0
virtual double evaluate_prechange (const TripletScore *o, DerivativeAccumulator *da) const =0
TripletContainerget_added_triplets_container () const
TripletContainerget_removed_triplets_container () const

Protected Member Functions

void set_added_and_removed_containers (TripletContainer *added, TripletContainer *removed)

Friends

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

Member Function Documentation

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

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

virtual bool IMP::TripletContainer::get_contains_particle_triplet ( const ParticleTriplet &  v  )  const [pure virtual]

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

virtual unsigned int IMP::TripletContainer::get_number_of_particle_triplets (  )  const [pure virtual]

return the number of particle_triplets in the container

Note:
this isn't always constant time

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

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