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

KullbackDivergence.h

Go to the documentation of this file.
00001 #ifndef Impala_Core_Vector_KullbackDivergence_h
00002 #define Impala_Core_Vector_KullbackDivergence_h
00003 
00004 #include "Core/Vector/VectorTem.h"
00005 
00006 namespace Impala
00007 {
00008 namespace Core
00009 {
00010 namespace Vector
00011 {
00012 
00014 template <class ElemT>
00015 inline ElemT
00016 KullbackDivergence(const VectorTem<ElemT>& v1, const VectorTem<ElemT>& v2)
00017 {
00018     ElemT score = 0;
00019     for (int i=0 ; i<v1.Size() ; i++)
00020         if((v2[i]!=0)&&(v1[i]!=0))
00021             score += v1[i]*log(v1[i]/v2[i]);
00022     return score;
00023 }
00024 
00026 template <class ElemT>
00027 class KullbackDivergenceFtor
00028 {
00029 public:
00030 
00031     ElemT
00032     DoIt(const VectorTem<ElemT>& v1, const VectorTem<ElemT>& v2)
00033     {
00034         ElemT score = 0;
00035         for (int i=0 ; i<v1.Size() ; i++)
00036             if((v2[i]!=0)&&(v1[i]!=0))
00037                 score += v1[i]*log(v1[i]/v2[i]);
00038         return score;
00039     }
00040 };
00041 
00042 
00043 } // namespace Vector
00044 } // namespace Core
00045 } // namespace Impala
00046 
00047 #endif

Generated on Fri Mar 19 09:31:28 2010 for ImpalaSrc by  doxygen 1.5.1