00001 #define __cplusplus__ 00002 #ifndef __SEGMOD__ 00003 #define __SEGMOD__ 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 <Spatial_Data.hpp> 00015 #include <Distribution.hpp> 00016 00017 00028 using namespace std; 00029 00030 class Seg_Model{ 00031 00032 protected: 00033 00035 vector <Distribution*> Distrib; 00036 00037 00038 public : 00040 virtual ~Seg_Model(); 00041 00043 uint Get_D(); 00045 uint Get_K(); 00046 00048 virtual double LogLikelihood(Spatial_Data *spatd); 00050 virtual double Completed_LogLikelihood(Spatial_Data *spatd, vector<double> tik); 00052 virtual double BIC(Spatial_Data *spatd ); 00054 virtual double ICL(Spatial_Data *spatd ); 00055 00057 double LogDensity(vector<double> const & X, uint k); 00059 double Density(vector<double> const & X, uint k); 00060 00062 void Estimate_Distributions(Spatial_Data *spatd, vector<double> const & tik); 00063 00065 virtual uint Degrees_Of_Freedom(); 00067 virtual void Info(); 00069 virtual void Estimate(Spatial_Data *spatd, vector<double> const & tik); 00070 }; 00071 00072 00073 #endif