00001 #ifndef __LAPLACEPOTTS__
00002 #define __LAPLACEPOTTS__
00003
00004 #include<iostream>
00005 #include<istream>
00006 #include<fstream>
00007 #include<string>
00008 #include<vector>
00009 #include<sstream>
00010 #include <cmath>
00011
00012 #include <Laplace.hpp>
00013 #include <HMRF.hpp>
00014
00015 using namespace std;
00016
00017
00026 class Laplace_MRF : public HMRF{
00027
00029 vector< Laplace *> Laplacians;
00030
00031 public :
00032
00033
00035 Laplace_MRF();
00037 Laplace_MRF(Neighborhood_System *nhs );
00039 Laplace_MRF(uint k, uint dim, Neighborhood_System *nhs );
00041 Laplace_MRF(MRF *rf , vector<Laplace *> const & laplacians);
00042
00044 ~Laplace_MRF();
00045
00047 void DeleteAll();
00048
00050 uint Get_D();
00051
00053 void Simulate(Data *dat, uint gibbs_sampler_nbiter);
00054
00055 uint Degrees_Of_Freedom();
00056
00058 double Density(vector<double> const & X, uint k);
00059
00061 void Update_Laplacians(Spatial_Data *spatd, vector<double> const & tik);
00062
00063
00065
00067
00068
00070 void NREM_E(Spatial_Data *spatd, vector<double> & tik);
00072 void NREM_M(Spatial_Data *spatd, vector<double> const & tik);
00073
00074 void Info();
00075
00076 };
00077
00078
00079 #endif