00001
00002
00003 #ifndef LikelihoodFunction_h
00004 #define LikelihoodFunction_h
00005
00006 #include <vector>
00007 #include <string>
00008
00009 #include "Tile.h"
00010 #include "Distribution.h"
00011 #include "BIEconfig.h"
00012
00013 #include "Serializable.h"
00014
00015
00016 namespace BIE {
00017
00018
00025 class LikelihoodFunction: public Serializable
00026 {
00027 public:
00028
00030 static double threshval;
00031
00033 virtual double LikeProb(std::vector<double> &z, SampleDistribution* sd,
00034 double norm, Tile *t, State *s, int indx) = 0;
00035
00037 virtual string ParameterDescription(int i) { return ""; }
00038
00039
00040 protected:
00041 LikelihoodFunction() {}
00042 private:
00043 friend class boost::serialization::access;
00044 template<class Archive>
00045 void serialize(Archive & ar, const unsigned int version) {
00046 this->pre_serialize(ar, version);
00047 try {
00048 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Serializable);
00049 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00050 }
00051 try {
00052 ar & BOOST_SERIALIZATION_NVP(threshval);
00053 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00054 }
00055 this->post_serialize(ar, version);
00056 }
00057
00058 };
00059
00060 }
00061 BIE_CLASS_EXPORT_KEY(BIE::LikelihoodFunction)
00062 #endif