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

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

00001 #define __cplusplus__
00002 #ifndef __POSSMRF__
00003 #define __POSSMRF__
00004 
00005 #include<iostream>
00006 #include<istream>
00007 #include<fstream>
00008 #include<string>
00009 #include<vector>
00010 #include<sstream>
00011 #include <cmath>
00012 
00013 #include <Neighborhood_System.hpp>
00014 
00015 using namespace std;
00016 
00027 class Conditional_MRF{
00028 
00029 protected :
00031   Neighborhood_System *NHS;
00033   vector<uint> subK;
00034 
00036   vector<double> Z_mf;
00037 
00038 
00039 public :
00040 
00042   virtual ~Conditional_MRF();
00043 
00045   void Get_subK(vector<uint> &subk);
00047   uint Get_K();
00049   uint Get_L();
00051   uint Get_N();
00052 
00054   void Set_Y(vector<uint> const &y);
00055 
00056   bool is_subclass(uint k, uint l);
00057   uint upper_class(uint k);
00058   void Get_index(uint l, vector<uint> & ind);
00059 
00061   void Simulate(vector<double> const & PG_Y, vector<uint> & Z);
00063   void Simulate(uint nbiter, vector<double> const & PG_Y, vector<uint> & Z);
00065   void Simulate(uint nbiter, vector<uint> const & Y, vector<uint> & Z);
00066 
00068   virtual double H(uint i, uint l, uint k, vector<uint>  const &  Z);
00070   virtual double Hmf(uint i, uint l, uint k);
00071 
00073   void Compute_PG(uint i, vector<double> const & PG_Yi, vector<uint> const &  Z, vector<double> & PG);
00075   void Compute_PG_cond(uint i, uint l, vector<uint>  const &  Z, vector<double> &  PG);
00076 
00078   void Compute_PGmf(vector<double> const &PG_Y,vector<double> & P_G);
00080   void Compute_PGmf_cond(uint i, uint l, vector<double> & PG);
00081 
00083   void Set_Zmf( vector<double> const &  z );
00085   void Set_Zmf( vector<double> const &  z , uint i);
00087   void Get_Zmf( vector<double> & z );
00088 
00090   void Set_Z( vector<uint> const &  z );
00091 
00093   virtual void Read_Params(istream & is);
00095   virtual void Write_Params(ostream & os);
00096 
00098   virtual uint Degrees_Of_Freedom();
00099 
00101   virtual void Info();
00102 };
00103 
00104 #endif

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