25 #ifndef UQ_INFO_THEORY_H
26 #define UQ_INFO_THEORY_H
28 #include <queso/Defines.h>
33 #include <gsl/gsl_sf_psi.h>
36 #define UQ_INFTH_ANN_NO_SMP 10000
37 #define UQ_INFTH_ANN_EPS 0.0
38 #define UQ_INFTH_ANN_KNN 6
42 void distANN_XY(
const ANNpointArray dataX,
const ANNpointArray dataY,
44 unsigned int dimX,
unsigned int dimY,
45 unsigned int xN,
unsigned int yN,
46 unsigned int k,
double eps );
48 void normalizeANN_XY( ANNpointArray dataXY,
unsigned int dimXY,
49 ANNpointArray dataX,
unsigned int dimX,
50 ANNpointArray dataY,
unsigned int dimY,
53 void whiteningANN_X_Y( ANNpointArray dataX1, ANNpointArray dataX2,
54 unsigned int dimX,
unsigned int N1,
unsigned int N2 );
56 double computeMI_ANN( ANNpointArray dataXY,
57 unsigned int dimX,
unsigned int dimY,
58 unsigned int k,
unsigned int N,
double eps );
64 template<
template <
class P_V,
class P_M>
class RV,
class P_V,
class P_M>
65 double estimateMI_ANN(
const RV<P_V,P_M>& jointRV,
66 const unsigned int xDimSel[],
unsigned int dimX,
67 const unsigned int yDimSel[],
unsigned int dimY,
68 unsigned int k,
unsigned int N,
double eps );
74 template<
class P_V,
class P_M,
75 template <
class P_V,
class P_M>
class RV_1,
76 template <
class P_V,
class P_M>
class RV_2>
77 double estimateMI_ANN(
const RV_1<P_V,P_M>& xRV,
78 const RV_2<P_V,P_M>& yRV,
79 const unsigned int xDimSel[],
unsigned int dimX,
80 const unsigned int yDimSel[],
unsigned int dimY,
81 unsigned int k,
unsigned int N,
double eps );
87 template <
class P_V,
class P_M,
88 template <
class P_V,
class P_M>
class RV_1,
89 template <
class P_V,
class P_M>
class RV_2>
90 double estimateKL_ANN( RV_1<P_V,P_M>& xRV,
92 unsigned int xDimSel[],
unsigned int dimX,
93 unsigned int yDimSel[],
unsigned int dimY,
94 unsigned int xN,
unsigned int yN,
95 unsigned int k,
double eps );
101 template <
class P_V,
class P_M,
102 template <
class P_V,
class P_M>
class RV_1,
103 template <
class P_V,
class P_M>
class RV_2>
104 double estimateCE_ANN( RV_1<P_V,P_M>& xRV,
106 unsigned int xDimSel[],
unsigned int dimX,
107 unsigned int yDimSel[],
unsigned int dimY,
108 unsigned int xN,
unsigned int yN,
109 unsigned int k,
double eps );
113 #endif // QUESO_HAS_ANN
115 #endif // UQ_INFO_THEORY_H