Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

/home/mistis/jblanche/DEV/NEM/include/Diag_Normal_Mix.hpp

00001 #define __cplusplus__
00002 #ifndef __DIAGGAUSSMIX__
00003 #define __DIAGGAUSSMIX__
00004 
00005 #include<iostream>
00006 #include<istream>
00007 #include<fstream>
00008 #include<string>
00009 #include<vector>
00010 #include<sstream>
00011 #include <cmath>
00012 
00013 using namespace std;
00014 
00015 #include <Diag_Normal.hpp>
00016 #include <IID_Mixture.hpp>
00017 
00028 class Diag_Normal_Mix : public IID_Mixture{
00029 
00030   vector<Diag_Normal *> Gaussians;
00031   
00032 public :
00033   
00035   Diag_Normal_Mix();
00036 
00038   Diag_Normal_Mix(uint k, uint dim);
00039 
00041   Diag_Normal_Mix(uint k, vector<Diag_Normal *> const &  gauss);
00042 
00044   ~Diag_Normal_Mix();
00045 
00047   void DeleteAll();
00048 
00049     
00051   uint Get_D();
00052 
00053   uint Degrees_Of_Freedom();
00054 
00055   void Init(Spatial_Data *spatd);
00056   void Init_Mclachlan(Spatial_Data *spatd);
00057 
00059   void Simulate(uint N, Data *dat);
00060 
00062   double Density(vector<double> const &  X, uint k);
00063 
00064   
00066   void Update_Gaussians(Spatial_Data *spatd, vector<double>  const &  tik);
00067 
00068   // I/O Functions
00070   void ReadFromFile(string filename); 
00072   void WriteToFile(string filename); 
00073 
00075   void Info();
00076 
00078   void EM_E(Spatial_Data *spatd, vector<double> & tik);
00080   void EM_M(Spatial_Data *spatd, vector<double> const &   tik);
00081   
00082   
00084   void NEM_E(Spatial_Data *spatd, vector<double> const &  beta, vector<double> & tik);
00086   void NEM_M(Spatial_Data *spatd, vector<double>  const &  tik);
00087 
00088 };
00089 
00090 
00091 #endif

Generated on Tue Nov 8 14:55:43 2005 for NEM by doxygen1.2.18