Home || Architecture || Video Search || Visual Search || Scripts || Applications || Important Messages || OGL || Src

template<class ArrayT, class SimFuncT>
void Impala::Core::Vector::Similarity ( Real64 *  dst,
typename VectorSet< ArrayT >::VectorT  example,
VectorSet< ArrayT > *  src,
bool *  filter,
int  subSetSize,
SimFuncT  simFunc 
) [inline]

Compute similarity of example vector to each subset of src unless a filter is given indicating which subsets should be skipped.

Similarity is defined by simFunc on two VectorSet<ArrayT>::VectorT. Number of elements in filter as well as dst should be src->Size()/subSetSize.

Definition at line 37 of file Similarity.h.

References Impala::Core::Vector::VectorSet< ArrayT >::GetVector(), and Impala::Core::Vector::VectorSet< ArrayT >::Size().

00039 {
00040     int nrSubSets = src->Size() / subSetSize;
00041     for (int s=0 ; s<nrSubSets ; s++)
00042     {
00043         if (filter && (!filter[s]))
00044             continue;
00045         Real64 maxScore = -1;
00046         int srcIdx = s * subSetSize;
00047         for (int i=0 ; i<subSetSize ; i++)
00048         {
00049             typename VectorSet<ArrayT>::VectorT temp(src->GetVector(srcIdx + i, true));
00050             Real64 score = simFunc(example, temp);
00051             if (score > maxScore)
00052                 maxScore = score;
00053         }
00054         dst[s] = maxScore;
00055     }
00056 }

Here is the call graph for this function:


Generated on Fri Mar 19 11:27:21 2010 for ImpalaSrc by  doxygen 1.5.1