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

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

00001 #define __cplusplus__
00002 #ifndef __DHMRF__
00003 #define __DHMRF__
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 <Seg_Model.hpp>
00015 #include <Spatial_Data.hpp>
00016 #include <Neighborhood_System.hpp>
00017 #include <MRF.hpp>
00018 
00019 using namespace std;
00020 
00021 
00031 class DHMRF  : public Seg_Model{
00032 
00033 protected :
00034 
00036   MRF *RF;
00037 
00038   
00039 public :
00040 
00042   virtual ~DHMRF();
00043 
00045   uint Get_K();
00047   uint Get_N();
00048 
00049 
00051   virtual double Density(vector<double> const &  X, uint k);
00052   
00054   double Likelihood(Spatial_Data *spatd);
00056   double BIC(Spatial_Data *spatd );
00058   double ICL(Spatial_Data *spatd );
00059 
00061   double H(uint i, uint k, vector<uint> const &  z);
00063   double Hmf(uint i, uint k);
00064 
00066   void Compute_P_ICM(vector<uint> const &  z , uint i, Spatial_Data *spatd, vector<double> & P_G);
00068   void Compute_P_Z_X(uint i, Spatial_Data *spatd, vector<double> & P );
00070   void Compute_PGmf(vector<double> & P_G);
00072   void Compute_tik(Spatial_Data *spatd, vector<double> & tik);
00073 
00075   void Set_Zmf( vector<double> const &  z );
00077   void Set_Zmf( vector<double> const &  z , uint i);
00079   void Get_Zmf( vector<double> & z );
00080 
00082   void SetGradient(double step, double tol, uint maxiter);
00083 
00084 
00086   void Estimate_MRF(Spatial_Data *spatd, vector<double>  const &  tik); 
00087 
00089   virtual void NREM_E(Spatial_Data *spatd, vector<double> & tik);
00091   virtual void NREM_M(Spatial_Data *spatd, vector<double>  const &  tik);
00092 
00093 
00095   void ICM(Spatial_Data *spatd, vector<uint> & Z_ICM);
00096 
00098   double Completed_Likelihood(Spatial_Data *spatd, vector<double> const & tik);
00099 
00101   double PLIC(Spatial_Data *spatd, vector<uint> const & Z_ICM);  
00102 
00103 };
00104 
00105 
00106 #endif

Generated on Thu Nov 3 12:18:01 2005 for NEM by doxygen1.2.18