IMP logo
IMP Reference Guide  2.5.0
The Integrative Modeling Platform
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()(Model *m, const 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 ModelObjectsTemp do_get_inputs (Model *m, const 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 ParticleIndexPairs get_close_pairs (Model *m, const ParticleIndexes &pc) const
 
virtual ParticleIndexPairs get_close_pairs (Model *m, const ParticleIndexes &pca, const ParticleIndexes &pcb) const
 
virtual std::string get_type_name () const
 
virtual ::IMP::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)
 
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::ParticleInputs
ModelObjectsTemp get_inputs (Model *m, const ParticleIndexes &pis) const
 
- Public Member Functions inherited from IMP::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::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 ModelObjectsTemp IMP::misc::MetricClosePairsFinder< LowerBound, UpperBound >::do_get_inputs ( Model m,
const ParticleIndexes pis 
) const
virtual

Overload this method to specify the inputs.

Implements IMP::ParticleInputs.

Definition at line 178 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 151 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 156 of file MetricClosePairsFinder.h.

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

Get information about the module and version of the object.

Reimplemented from IMP::Object.

Definition at line 184 of file MetricClosePairsFinder.h.


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