00001 #define __cplusplus__ 00002 #ifndef __NORMALHD__ 00003 #define __NORMALHD__ 00004 00005 #include<iostream> 00006 #include<istream> 00007 #include<fstream> 00008 #include<string> 00009 #include<vector> 00010 #include<sstream> 00011 #include <cmath> 00012 00013 00014 #include <Spatial_Data.hpp> 00015 00016 using namespace std; 00017 00018 00026 class NormalHD{ 00027 00029 uint Dim; 00031 vector<double> Mu; 00033 uint Dim_red; 00035 double A; 00037 double B; 00039 vector<double> Q; 00040 00041 00042 public : 00044 NormalHD(); 00046 NormalHD(uint dim); 00048 NormalHD(uint dim, uint dim_red, double a, double b); 00050 NormalHD(uint dim, uint dim_red, double a, double b, vector<double> const & mu, vector<double> const & q); 00051 00053 ~NormalHD(); 00054 00056 void DeleteAll(); 00057 00059 uint Get_D(); 00060 00062 uint Get_Dred(); 00063 00065 void Get_Mu(vector<double> &mu); 00066 00068 double Get_A(); 00069 00071 double Get_B(); 00072 00074 void Get_Q(vector<double> &q); 00075 00077 void Get_Qc(vector<double> &qc); 00078 00080 void Set_Mu(vector<double> const & m); 00081 00083 void Set_A(double a); 00084 00086 void Set_B(double b); 00087 00089 void Set_Q(vector<double> const & q); 00090 00092 void Compute_Delta(vector<double> Delta); 00093 00095 void Compute_Sigma(vector<double> Sigma); 00096 00098 void Simulate(vector<double> & X); 00099 00101 void Proj(vector<double> const &X, vector<double> &pX); 00102 00104 double Density(vector<double> const & X); 00105 00107 void Compute_Empirical_Sigma(Spatial_Data *spatd, vector<double> const & freqs, vector<double> &Sigma); 00108 00110 void Estimate_Mu(Spatial_Data *spatd, vector<double> const & freqs); 00111 00113 void Estimate_dabQ(Spatial_Data *spatd, vector<double> const & freqs); 00114 00116 void Estimate(Spatial_Data *spatd, vector<double> const & freqs); 00117 00119 uint Degrees_Of_Freedom(); 00120 00122 void Read_Params(istream & is); 00123 00125 void Write_Params(ostream & os); 00126 00127 void test(vector<double> const & Sigma); 00128 }; 00129 00130 00131 #endif