StatMech
Loading...
Searching...
No Matches
Distance Class Reference
Collaboration diagram for Distance:
Collaboration graph

Public Member Functions

 Distance ()
 
void calculate (std::vector< double > pdf, std::vector< double > gauss, double minFluc, double binwidth)
 

Public Attributes

double HistIntersection
 
double KLDivergence
 
double JSDivergence
 
double L1norm
 
double L2norm
 

Constructor & Destructor Documentation

◆ Distance()

Distance::Distance ( )
inline
double KLDivergence
Definition OpHistogram.cpp:27
double L1norm
Definition OpHistogram.cpp:29
double HistIntersection
Definition OpHistogram.cpp:26
double JSDivergence
Definition OpHistogram.cpp:28
double L2norm
Definition OpHistogram.cpp:30

Member Function Documentation

◆ calculate()

void Distance::calculate ( std::vector< double >  pdf,
std::vector< double >  gauss,
double  minFluc,
double  binwidth 
)
inline
34 {
36 KLDivergence = 0;
37 JSDivergence = 0;
38 L1norm = 0;
39 L2norm = 0;
40 //double Fluc;
41 for(int bin = 0;bin < pdf.size(); ++bin) {
42 // Fluc = (bin+0.5)*binwidth +minFluc;
43 if( isnan(pdf[bin]) ) {
44 std::cerr << " # Warning: ProbDensity[" << bin << " = " << pdf[bin] << std::endl;
45 continue;
46 }
47 HistIntersection += std::fmin(pdf[bin], gauss[bin]) * binwidth;
48 KLDivergence += binwidth * pdf[bin] *log(pdf[bin]/gauss[bin]);
49 JSDivergence += binwidth *gauss[bin] *log(gauss[bin]/pdf[bin]);
50 L1norm += binwidth *fabs( pdf[bin]-gauss[bin] );
51 L2norm += binwidth *( pdf[bin]-gauss[bin] )*( pdf[bin]-gauss[bin] );
52 }
54 L2norm = sqrt( L2norm );
55 };

Member Data Documentation

◆ HistIntersection

double Distance::HistIntersection

◆ JSDivergence

double Distance::JSDivergence

◆ KLDivergence

double Distance::KLDivergence

◆ L1norm

double Distance::L1norm

◆ L2norm

double Distance::L2norm

The documentation for this class was generated from the following file: