00001 #define __cplusplus__ 00002 #ifndef __DIAGNORMAL__ 00003 #define __DIAGNORMAL__ 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 #include <Distribution.hpp> 00016 00017 using namespace std; 00018 00019 00027 class Diag_Normal: public Distribution { 00029 vector<double> Mu; 00031 vector<double> Sigma; 00032 00033 public : 00034 Diag_Normal(); 00036 Diag_Normal(uint dim); 00038 Diag_Normal(uint dim, vector<double> const & mu, vector<double> const & sigma); 00039 00040 ~Diag_Normal(); 00041 00043 void DeleteAll(); 00044 00046 void Simulate(vector<double> & X); 00047 00049 double LogDensity(vector<double> const & X); 00050 00051 00053 void Set_Mu(vector<double> const & m); 00055 void Set_Sigma(vector<double> const & sig); 00057 void Get_Mu(vector<double> &mu); 00059 void Get_Sigma(vector<double> &sigma); 00060 00062 void Estimate_Mu(Spatial_Data *spatd, vector<double> const & freqs); 00064 void Estimate_Sigma(Spatial_Data *spatd, vector<double> const & freqs); 00065 00067 void Estimate(Spatial_Data *spatd, vector<double> const & freqs); 00068 00070 void Estimate(Spatial_Data *spatd); 00071 00073 void Read_Params(istream & is); 00075 void Write_Params(ostream & os); 00077 void Info(); 00078 00080 uint Degrees_Of_Freedom(); 00081 }; 00082 00083 00084 #endif