00001 #ifndef Impala_Core_Vector_RadiusSimilarity_h
00002 #define Impala_Core_Vector_RadiusSimilarity_h
00003
00004 #include "Core/Vector/VectorSet.h"
00005
00006 namespace Impala
00007 {
00008 namespace Core
00009 {
00010 namespace Vector
00011 {
00012
00013
00018 template <class ArrayT, class SimFtorT>
00019 inline Real64
00020 RadiusSimilarity(typename VectorSet<ArrayT>::VectorT example,
00021 VectorSet<ArrayT>* src, Real64 radius, int end,
00022 SimFtorT simFunc)
00023 {
00024 Real64 count = 0;
00025 for (int i=0 ; i<end ; i++)
00026 {
00027 Real64 sim = simFunc.DoIt(example, src->GetVector(i, true));
00028 if (sim >= radius)
00029 count += 1.0;
00030 }
00031 return count;
00032 }
00033
00034 }
00035 }
00036 }
00037
00038 #endif