C++ main module for mmsd Package  1.0
MMSD_GaussianCluster.h
Go to the documentation of this file.
1 #ifndef MMSD_GaussianCluster_H
2 #define MMSD_GaussianCluster_H
3 
4 
5 #include "MMSD_Cluster.h"
6 
8 
9 #include "MATH_ZeroEquation.h"
10 #include "MATH_NewtonEquation.h"
11 
25 class MMSD_GaussianCluster : public virtual MMSD_Cluster {
26  SP_OBJECT(MMSD_GaussianCluster);
27  // ATTRIBUTES
28 
29 private:
30 
31 
32 
33  // function for estimating freedom degrees
34  SP::MMSD_GaussianFDFunction mFunction;
35  // solver for estimating freedom degrees
36  SP::MATH_Equation mSolver;
37 
38 
39 protected:
40  // METHODS
41 
42  // CONSTRUCTORS
43 
46 
47 
48 
49  // DESTRUCTORS
50 
51 
54  virtual ~MMSD_GaussianCluster(void);
55 
56 
57 
58 public:
59  //----------------
60  // NEW constructors
61  // ---------------
62 
65  static inline SP::MMSD_GaussianCluster New() {
66  SP::MMSD_GaussianCluster p(new MMSD_GaussianCluster(),MMSD_GaussianCluster::Delete());
67  p->setThis(p);
68  return p;
69  };
70 
71 
72  // -----------------
73  // SET & GET Methods
74  // -----------------
75 
76 protected:
80  return *mSolver.get();
81  }
85  return *mFunction.get();
86  }
87 
88 protected:
108  virtual void computeMultivariateDensity(const MMSD_DoubleFullMatrix& YP, //size N x P
109  const MMSD_DoubleFullMatrix& P, // size P x P
110  const MMSD_DoubleVector& D, // size P
111  const MMSD_DoubleVector& mean, // size P
112  const MMSD_DoubleVector& nu, // size P
113  double *Pk) const;
114 
131  virtual void updateWeights(const MMSD_DoubleFullMatrix& YP, // N x P
132  const MMSD_DoubleFullMatrix& P, // P x P
133  const MMSD_DoubleVector& Diag, // P
134  const MMSD_DoubleVector& mean, // P
135  const MMSD_DoubleVector& nus, // P
136  const MMSD_DoubleVector& probs, // N
137  MMSD_DoubleFullMatrix& W) const;
138 
160  virtual void updateFreedomDegrees(const MMSD_DoubleFullMatrix& W,
161  const MMSD_DoubleVector& Probs,
162  const double& maxFD,
163  MMSD_DoubleVector& nu);
164 
165  // ----------------------
166  // String representation
167  // ----------------------
168 public:
171  virtual tString toString() const {
173  return ret;
174  }
175 
176 
177 };
178 
179 #endif
This class is a gaussian cluster which is a specialization of MMSD_Cluster.
Definition: MMSD_GaussianCluster.h:25
virtual void computeMultivariateDensity(const MMSD_DoubleFullMatrix &YP, const MMSD_DoubleFullMatrix &P, const MMSD_DoubleVector &D, const MMSD_DoubleVector &mean, const MMSD_DoubleVector &nu, double *Pk) const
compute the probabities of samples to be in cluster This from law, freedom degrees & weights ...
Definition: MMSD_GaussianCluster.cpp:26
virtual void updateWeights(const MMSD_DoubleFullMatrix &YP, const MMSD_DoubleFullMatrix &P, const MMSD_DoubleVector &Diag, const MMSD_DoubleVector &mean, const MMSD_DoubleVector &nus, const MMSD_DoubleVector &probs, MMSD_DoubleFullMatrix &W) const
compute the weights from law, freedom degrees & probabilites
Definition: MMSD_GaussianCluster.cpp:100
MATH_Equation & getSolver()
get the solver
Definition: MMSD_GaussianCluster.h:79
This class describes the FullMatrix class.
Definition: MMSD_DoubleFullMatrix.h:17
virtual tString toString() const
turn the class into string
Definition: MMSD_Cluster.h:351
MMSD_GaussianCluster(void)
create an object
Definition: MMSD_GaussianCluster.cpp:7
static SP::MMSD_GaussianCluster New()
create a new instance of cluster
Definition: MMSD_GaussianCluster.h:65
DEFINE_SPTR(MMSD_GaussianCluster)
DEFINE_SVPTR(MMSD_GaussianCluster)
Definition: MMSD_DoubleVector.h:16
This class solve the equation f(x)=0.
Definition: MATH_Equation.h:21
MMSD_GaussianFDFunction & getFunction()
get the function to find zero
Definition: MMSD_GaussianCluster.h:84
virtual tString toString() const
turn the class into string
Definition: MMSD_GaussianCluster.h:171
This class describes the function used in MMSD_GaussianCluster::updateFreedomDegrees() ...
Definition: MMSD_GaussianFDFunction.h:16
virtual ~MMSD_GaussianCluster(void)
destroy an object.
Definition: MMSD_GaussianCluster.cpp:22
#define tString
Definition: types.h:49
This class is a geneal MMSD Cluster.
Definition: MMSD_Cluster.h:36
virtual void updateFreedomDegrees(const MMSD_DoubleFullMatrix &W, const MMSD_DoubleVector &Probs, const double &maxFD, MMSD_DoubleVector &nu)
update the freedom degrees from weights & probabilities.
Definition: MMSD_GaussianCluster.cpp:199
class Free introduced for deleting a smart pointer
Definition: CORE_Object.h:106