00001 #ifndef INDII_ML_AUX_GAUSSIANMIXTUREPDF_HPP
00002 #define INDII_ML_AUX_GAUSSIANMIXTUREPDF_HPP
00003
00004 #include "StandardMixturePdf.hpp"
00005 #include "GaussianPdf.hpp"
00006 #include "DiracMixturePdf.hpp"
00007
00008 namespace indii {
00009 namespace ml {
00010 namespace aux {
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 class GaussianMixturePdf : public StandardMixturePdf<GaussianPdf> {
00022 public:
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 GaussianMixturePdf();
00033
00034
00035
00036
00037
00038
00039
00040 GaussianMixturePdf(const unsigned int N);
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053 GaussianMixturePdf(const unsigned int K, const DiracMixturePdf& p);
00054
00055
00056
00057
00058 virtual ~GaussianMixturePdf();
00059
00060 private:
00061
00062
00063
00064 template<class Archive>
00065 void serialize(Archive& ar, const unsigned int version);
00066
00067
00068
00069
00070 friend class boost::serialization::access;
00071
00072 };
00073
00074 }
00075 }
00076 }
00077
00078 #include "boost/serialization/base_object.hpp"
00079
00080 template <class Archive>
00081 void indii::ml::aux::GaussianMixturePdf::serialize(Archive& ar,
00082 const unsigned int version) {
00083 ar & boost::serialization::base_object<
00084 indii::ml::aux::StandardMixturePdf<indii::ml::aux::GaussianPdf> >(
00085 *this);
00086 }
00087
00088 #endif
00089