00001 #define __cplusplus__ 00002 #ifndef __POSSPOTTSMRF__ 00003 #define __POSSPOTTSMRF__ 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 <Possibility_MRF.hpp> 00014 00015 using namespace std; 00016 00027 class Possibility_Potts : public Possibility_MRF { 00029 double Beta ; 00030 00032 vector<double> S_mf; 00034 bool precomputed_smf; 00035 00036 void Precompute_Smf( ); 00037 00038 public : 00040 Possibility_Potts(); 00042 Possibility_Potts(Neighborhood_System *nhs, vector<uint> const& subk); 00044 Possibility_Potts(Neighborhood_System *nhs, vector<uint> const& subk, double bet, vector<uint> const & y ); 00046 ~Possibility_Potts(); 00047 00049 void DeleteAll(); 00050 00052 double Get_Beta(); 00053 00055 void Set_Beta(double beta); 00056 00058 void Gradient(vector<double> const & tik, vector<double> & Q); 00059 00061 double H(uint i, uint k, vector<uint> const & Z); 00063 double Hmf(uint i, uint k); 00064 00066 void ReadFromFile(string filename); 00068 void WriteToFile(string filename); 00069 00071 void Read_Params(istream & is); 00073 void Write_Params(ostream & os); 00074 00076 uint Degrees_Of_Freedom(); 00077 00079 void Info(); 00080 00081 }; 00082 00083 #endif