Classes | Public Member Functions

ANNmin_k Class Reference

#include <pr_queue_k.h>

Collaboration diagram for ANNmin_k:
Collaboration graph
[legend]

List of all members.

Classes

struct  mk_node

Public Member Functions

 ANNmin_k (int max)
 ~ANNmin_k ()
PQKkey ANNmin_key ()
PQKkey max_key ()
PQKkey ith_smallest_key (int i)
PQKinfo ith_smallest_info (int i)
void insert (PQKkey kv, PQKinfo inf)

Detailed Description

Definition at line 66 of file pr_queue_k.h.


Constructor & Destructor Documentation

ANNmin_k::ANNmin_k ( int  max ) [inline]

Definition at line 77 of file pr_queue_k.h.

References QuadProgPP::max().

                {
                        n = 0;                                          // initially no items
                        k = max;                                        // maximum number of items
                        mk = new mk_node[max+1];        // sorted array of keys
                }
ANNmin_k::~ANNmin_k (  ) [inline]

Definition at line 84 of file pr_queue_k.h.

                { delete [] mk; }

Member Function Documentation

PQKkey ANNmin_k::ANNmin_key (  ) [inline]

Definition at line 87 of file pr_queue_k.h.

References PQ_NULL_KEY.

                { return (n > 0 ? mk[0].key : PQ_NULL_KEY); }
void ANNmin_k::insert ( PQKkey  kv,
PQKinfo  inf 
) [inline]

Definition at line 99 of file pr_queue_k.h.

References ANN_FLOP.

Referenced by ANNkd_leaf::ann_FR_search(), ANNkd_leaf::ann_pri_search(), ANNkd_leaf::ann_search(), ANNbruteForce::annkFRSearch(), and ANNbruteForce::annkSearch().

                {
                        register int i;
                                                                                // slide larger values up
                        for (i = n; i > 0; i--) {
                                if (mk[i-1].key > kv)
                                        mk[i] = mk[i-1];
                                else
                                        break;
                        }
                        mk[i].key = kv;                         // store element here
                        mk[i].info = inf;
                        if (n < k) n++;                         // increment number of items
                        ANN_FLOP(k-i+1)                         // increment floating ops
                }
PQKinfo ANNmin_k::ith_smallest_info ( int  i ) [inline]
PQKkey ANNmin_k::ith_smallest_key ( int  i ) [inline]
PQKkey ANNmin_k::max_key (  ) [inline]

Definition at line 90 of file pr_queue_k.h.

References PQ_NULL_KEY.

Referenced by ANNkd_leaf::ann_pri_search(), ANNkd_leaf::ann_search(), and ANNkd_tree::annkPriSearch().

                { return (n == k ? mk[k-1].key : PQ_NULL_KEY); }

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines