IMP  2.4.0
The Integrative Modeling Platform
Public Member Functions | List of all members
IMP::misc::MetricClosePairsFinder< LowerBound, UpperBound > Class Template Reference

#include <IMP/misc/MetricClosePairsFinder.h>

+ Inheritance diagram for IMP::misc::MetricClosePairsFinder< LowerBound, UpperBound >:

Detailed Description

template<class LowerBound, class UpperBound>
class IMP::misc::MetricClosePairsFinder< LowerBound, UpperBound >

A close pairs finder that only depends on metrics on the underlying particles. As a result, it should be usable with weird metrics (eg ones that include symmetry).

The LowerBound and UpperBound templates should be functors that bound the distance between two particles. For example the LowerBound distance between two balls is the center distance minus the radii, and the UpperBound distance is the center distance plus the radii. The signature should be double operator()(kernel::Model *m, const kernel::ParticleIndexPair &pip) const

The algorithm works by building an index using sqrt(n) of the n input particles, assigning each particle to a bucket based on the closest index particle, and then checking for close pairs in buckets such that they can be close enough.

If we need something more involved, we can try this paper

Definition at line 42 of file MetricClosePairsFinder.h.

Public Member Functions

 MetricClosePairsFinder (LowerBound lb, UpperBound ub, std::string name="MetricClosePairsFinder%1%")
 
virtual kernel::ModelObjectsTemp do_get_inputs (kernel::Model *m, const kernel::ParticleIndexes &pis) const
 
virtual IntPairs get_close_pairs (const algebra::BoundingBox3Ds &) const
 
virtual IntPairs get_close_pairs (const algebra::BoundingBox3Ds &, const algebra::BoundingBox3Ds &) const
 
virtual kernel::ParticleIndexPairs get_close_pairs (kernel::Model *m, const kernel::ParticleIndexes &pc) const
 
virtual kernel::ParticleIndexPairs get_close_pairs (kernel::Model *m, const kernel::ParticleIndexes &pca, const kernel::ParticleIndexes &pcb) const
 
virtual std::string get_type_name () const
 
virtual ::IMP::base::VersionInfo get_version_info () const
 Get information about the module and version of the object. More...
 
- Public Member Functions inherited from IMP::core::ClosePairsFinder
 ClosePairsFinder (std::string name)
 
kernel::ParticlePairsTemp get_close_pairs (const kernel::ParticlesTemp &pc) const
 
kernel::ParticlePairsTemp get_close_pairs (const kernel::ParticlesTemp &pca, const kernel::ParticlesTemp &pcb) const
 
virtual void set_distance (double d)
 
double get_distance () const
 
void remove_pair_filter (PairPredicate *d)
 
void remove_pair_filters (const PairPredicates &d)
 
void set_pair_filters (const PairPredicates &ps)
 
void set_pair_filters_order (const PairPredicates &objs)
 
unsigned int add_pair_filter (PairPredicate *obj)
 
void add_pair_filters (const PairPredicates &objs)
 
void clear_pair_filters ()
 
unsigned int get_number_of_pair_filters () const
 
bool get_has_pair_filters ()
 
PairPredicateget_pair_filter (unsigned int i) const
 
PairPredicates get_pair_filters () const
 
void reserve_pair_filters (unsigned int sz)
 
- Public Member Functions inherited from IMP::kernel::ParticleInputs
virtual ContainersTemp get_input_containers (Particle *p) const
 
virtual ParticlesTemp get_input_particles (Particle *p) const
 
ModelObjectsTemp get_inputs (kernel::Model *m, const ParticleIndexes &pis) const
 
- Public Member Functions inherited from IMP::base::Object
virtual void clear_caches ()
 
CheckLevel get_check_level () const
 
LogLevel get_log_level () const
 
void set_check_level (CheckLevel l)
 
void set_log_level (LogLevel l)
 Set the logging level used in this object. More...
 
void set_was_used (bool tf) const
 
void show (std::ostream &out=std::cout) const
 
const std::string & get_name () const
 
void set_name (std::string name)
 

Additional Inherited Members

- Protected Member Functions inherited from IMP::base::Object
 Object (std::string name)
 Construct an object with the given name. More...
 
virtual void do_destroy ()
 

Member Function Documentation

template<class LowerBound, class UpperBound>
virtual kernel::ModelObjectsTemp IMP::misc::MetricClosePairsFinder< LowerBound, UpperBound >::do_get_inputs ( kernel::Model m,
const kernel::ParticleIndexes pis 
) const
virtual

Overload this method to specify the inputs.

Reimplemented from IMP::kernel::ParticleInputs.

Definition at line 186 of file MetricClosePairsFinder.h.

+ Here is the call graph for this function:

template<class LowerBound, class UpperBound>
virtual IntPairs IMP::misc::MetricClosePairsFinder< LowerBound, UpperBound >::get_close_pairs ( const algebra::BoundingBox3Ds ) const
virtual

Not supported.

Implements IMP::core::ClosePairsFinder.

Definition at line 159 of file MetricClosePairsFinder.h.

template<class LowerBound, class UpperBound>
virtual IntPairs IMP::misc::MetricClosePairsFinder< LowerBound, UpperBound >::get_close_pairs ( const algebra::BoundingBox3Ds ,
const algebra::BoundingBox3Ds  
) const
virtual

Not supported.

Implements IMP::core::ClosePairsFinder.

Definition at line 164 of file MetricClosePairsFinder.h.

template<class LowerBound, class UpperBound>
virtual ::IMP::base::VersionInfo IMP::misc::MetricClosePairsFinder< LowerBound, UpperBound >::get_version_info ( ) const
virtual

Get information about the module and version of the object.

Reimplemented from IMP::base::Object.

Definition at line 192 of file MetricClosePairsFinder.h.


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