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

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

00001 #define __cplusplus__
00002 #ifndef __GAUSSHDMIX__
00003 #define __GAUSSHDMIX__
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 <NormalHD.hpp>
00016 #include <IID_Mixture.hpp>
00017 
00028 class GaussHD_Mix : public IID_Mixture{
00029 
00030   vector<NormalHD *> Gaussians;
00031 
00032   
00033 public :
00034   
00036   GaussHD_Mix();
00037 
00039   GaussHD_Mix(uint k, uint dim);
00040 
00042   GaussHD_Mix(uint k, vector<Normal *> const &  gauss);
00043 
00045   ~GaussHD_Mix();
00046 
00048   void DeleteAll();
00049 
00050     
00052   uint Get_D();
00053 
00054   uint Degrees_Of_Freedom();
00055 
00056   void Init(Spatial_Data *spatd);
00057   void Init_Mclachlan(Spatial_Data *spatd);
00058 
00060   void Simulate(uint N, Data *dat);
00061 
00063   double Density(vector<double> const &  X, uint k);
00064 
00065   
00067   void Update_Gaussians(Spatial_Data *spatd, vector<double>  const &  tik);
00068 
00069   // I/O Functions
00071   void ReadFromFile(string filename); 
00073   void WriteToFile(string filename); 
00074 
00076   void Info();
00077 
00079   void EM_E(Spatial_Data *spatd, vector<double> & tik);
00081   void EM_M(Spatial_Data *spatd, vector<double>  const &  tik);
00082   
00083   
00085   void NEM_E(Spatial_Data *spatd, vector<double> const &  beta, vector<double> & tik);
00087   void NEM_M(Spatial_Data *spatd, vector<double>  const &  tik);
00088 
00089 };
00090 
00091 
00092 #endif

Generated on Tue Oct 25 12:50:11 2005 for NEM by doxygen1.2.18