00001 #define __cplusplus__ 00002 #ifndef __LAPLACE__ 00003 #define __LAPLACE__ 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 <Spatial_Data.hpp> 00014 #include <Distribution.hpp> 00015 00016 using namespace std; 00017 00018 00027 class Laplace: public Distribution{ 00028 00030 vector<double> Mu; 00032 vector<double> Lambda; 00033 00034 public : 00036 Laplace(); 00038 Laplace(uint dim); 00040 Laplace(uint dim, vector<double> const & mu, vector<double> const & lambda); 00041 00043 ~Laplace(); 00044 00046 void DeleteAll(); 00047 00049 void Simulate(vector<double> & X); 00050 00052 double LogDensity(vector<double> const & X); 00053 00055 void Set_Mu(vector<double> const & m); 00057 void Set_Lambda(vector<double> const & lam); 00058 00060 void Estimate_Mu(Spatial_Data *spatd, vector<double> const & freqs); 00062 void Estimate_Lambda(Spatial_Data *spatd, vector<double> const & freqs); 00063 00065 void Estimate(Spatial_Data *spatd, vector<double> const & freqs); 00066 00068 void Init_at_random(Spatial_Data *spatd); 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 00084 00085 #endif