Structural Bioinformatics Library
Template C++ / Python API for developping structural bioinformatics applications.
T_ANN_metric_space_LAESA< GetDistance, ExcludedPivots > Class Template Reference

Nearest neighbor engine designed for metric spaces. More...

#include <ANN_metric_space_LAESA.hpp>

Public Types

enum  ANN_query_type { ANN_BY_K , ANN_BY_RANGE }
 
typedef T_ANN_metric_space_LAESA< GetDistance, ExcludedPivots > Self
 
typedef GetDistance Get_distance
 
typedef GetDistance::Point Point
 
typedef GetDistance::FT FT
 
typedef boost::transform_iterator< Get_point_from_index, Indices_iterator > Pivots_iterator
 
typedef Point_vector::const_iterator Points_iterator
 

Public Member Functions

 T_ANN_metric_space_LAESA (unsigned number_of_pivots=1)
 
 T_ANN_metric_space_LAESA (GetDistance &distance, unsigned number_of_pivots=1)
 
template<class InputIterator >
 T_ANN_metric_space_LAESA (InputIterator begin, InputIterator end, unsigned n=1)
 
template<class InputIterator >
 T_ANN_metric_space_LAESA (InputIterator begin, InputIterator end, GetDistance &distance, unsigned n=1)
 
 ~T_ANN_metric_space_LAESA (void)
 
int get_nearest_neighbor (const Point &query, bool self_allowed)
 
const Pointoperator() (const Point &query, bool self_allowed)
 
template<class OutputIterator >
OutputIterator operator() (const Point &query, bool self_allowed, OutputIterator out)
 
template<class OutputIterator >
OutputIterator operator() (const Point &query, unsigned k, bool self_allowed, OutputIterator out)
 
template<class OutputIterator >
OutputIterator operator() (const Point &query, const FT &range, bool self_allowed, OutputIterator out)
 
unsigned get_number_of_pivots (void) const
 
unsigned get_number_of_points (void) const
 
const Pointget_point (unsigned i) const
 
unsigned get_number_of_neighbors (void) const
 
const FTget_range (void) const
 
bool is_empty (void) const
 
bool is_pivot (unsigned i) const
 
const GetDistance & get_distance_function (void) const
 
GetDistance & get_distance_function (void)
 
FT get_distance (const Point &p, const Point &q) const
 
const Pointoperator[] (unsigned i) const
 
const FTget_looseness (void) const
 
void set_query_type (ANN_query_type query_type)
 
void set_number_of_neighbors (unsigned k)
 
void set_range (const FT &range)
 
unsigned add_new_point (const Point &query)
 
unsigned insert (const Point &query)
 
template<class InputIterator >
void insert (InputIterator begin, InputIterator end)
 
void clear (void)
 
void set_looseness (const FT &looseness)
 
void reset (void)
 
void reset (unsigned n)
 
Points_iterator points_begin (void) const
 
Points_iterator points_end (void) const
 
Pivots_iterator pivots_begin (void) const
 
Pivots_iterator pivots_end (void) const
 
template<class InputIterator >
void build (InputIterator begin, InputIterator end)
 
template<class InputIterator >
void build (InputIterator begin, InputIterator end, unsigned n)
 

Detailed Description

template<class GetDistance, bool ExcludedPivots = false>
class SBL::GT::T_ANN_metric_space_LAESA< GetDistance, ExcludedPivots >

Nearest neighbor engine designed for metric spaces.

...

Member Typedef Documentation

◆ FT

typedef GetDistance::FT FT

◆ Get_distance

typedef GetDistance Get_distance

◆ Pivots_iterator

typedef boost::transform_iterator<Get_point_from_index, Indices_iterator> Pivots_iterator

◆ Point

typedef GetDistance::Point Point

◆ Points_iterator

typedef Point_vector::const_iterator Points_iterator

◆ Self

typedef T_ANN_metric_space_LAESA<GetDistance, ExcludedPivots> Self

Member Enumeration Documentation

◆ ANN_query_type

Enumerator
ANN_BY_K 
ANN_BY_RANGE 

Constructor & Destructor Documentation

◆ T_ANN_metric_space_LAESA() [1/4]

T_ANN_metric_space_LAESA ( unsigned  number_of_pivots = 1)
inline

◆ T_ANN_metric_space_LAESA() [2/4]

T_ANN_metric_space_LAESA ( GetDistance &  distance,
unsigned  number_of_pivots = 1 
)
inline

◆ T_ANN_metric_space_LAESA() [3/4]

T_ANN_metric_space_LAESA ( InputIterator  begin,
InputIterator  end,
unsigned  n = 1 
)
inline

◆ T_ANN_metric_space_LAESA() [4/4]

T_ANN_metric_space_LAESA ( InputIterator  begin,
InputIterator  end,
GetDistance &  distance,
unsigned  n = 1 
)
inline

◆ ~T_ANN_metric_space_LAESA()

~T_ANN_metric_space_LAESA ( void  )
inline

Member Function Documentation

◆ add_new_point()

unsigned add_new_point ( const Point query)
inline

◆ build() [1/2]

void build ( InputIterator  begin,
InputIterator  end 
)
inline

◆ build() [2/2]

void build ( InputIterator  begin,
InputIterator  end,
unsigned  n 
)
inline

◆ clear()

void clear ( void  )
inline

◆ get_distance()

T_ANN_metric_space_LAESA< GetDistance, ExcludedPivots >::FT get_distance ( const Point p,
const Point q 
) const
inline

◆ get_distance_function() [1/2]

GetDistance & get_distance_function ( void  )
inline

◆ get_distance_function() [2/2]

const GetDistance & get_distance_function ( void  ) const
inline

◆ get_looseness()

const T_ANN_metric_space_LAESA< GetDistance, ExcludedPivots >::FT & get_looseness ( void  ) const
inline

◆ get_nearest_neighbor()

int get_nearest_neighbor ( const Point query,
bool  self_allowed 
)
inline

◆ get_number_of_neighbors()

unsigned get_number_of_neighbors ( void  ) const
inline

◆ get_number_of_pivots()

unsigned get_number_of_pivots ( void  ) const
inline

◆ get_number_of_points()

unsigned get_number_of_points ( void  ) const
inline

◆ get_point()

const T_ANN_metric_space_LAESA< GetDistance, ExcludedPivots >::Point & get_point ( unsigned  i) const
inline

◆ get_range()

const T_ANN_metric_space_LAESA< GetDistance, ExcludedPivots >::FT & get_range ( void  ) const
inline

◆ insert() [1/2]

unsigned insert ( const Point query)
inline

◆ insert() [2/2]

void insert ( InputIterator  begin,
InputIterator  end 
)
inline

◆ is_empty()

bool is_empty ( void  ) const
inline

◆ is_pivot()

bool is_pivot ( unsigned  i) const
inline

◆ operator()() [1/4]

const GetDistance::Point & operator() ( const Point query,
bool  self_allowed 
)
inline

◆ operator()() [2/4]

OutputIterator operator() ( const Point query,
bool  self_allowed,
OutputIterator  out 
)
inline

◆ operator()() [3/4]

OutputIterator operator() ( const Point query,
const FT range,
bool  self_allowed,
OutputIterator  out 
)
inline

◆ operator()() [4/4]

OutputIterator operator() ( const Point query,
unsigned  k,
bool  self_allowed,
OutputIterator  out 
)
inline

◆ operator[]()

const GetDistance::Point & operator[] ( unsigned  i) const
inline

◆ pivots_begin()

T_ANN_metric_space_LAESA< GetDistance, ExcludedPivots >::Pivots_iterator pivots_begin ( void  ) const
inline

◆ pivots_end()

T_ANN_metric_space_LAESA< GetDistance, ExcludedPivots >::Pivots_iterator pivots_end ( void  ) const
inline

◆ points_begin()

T_ANN_metric_space_LAESA< GetDistance, ExcludedPivots >::Points_iterator points_begin ( void  ) const
inline

◆ points_end()

T_ANN_metric_space_LAESA< GetDistance, ExcludedPivots >::Points_iterator points_end ( void  ) const
inline

◆ reset() [1/2]

void reset ( unsigned  n)

◆ reset() [2/2]

void reset ( void  )

◆ set_looseness()

void set_looseness ( const FT looseness)
inline

◆ set_number_of_neighbors()

void set_number_of_neighbors ( unsigned  k)
inline

◆ set_query_type()

void set_query_type ( ANN_query_type  query_type)
inline

◆ set_range()

void set_range ( const FT range)
inline