47 size_t dimension = Mu.
GetRows();
51 for (
size_t v = 0; v < n; v++)
56 for (
size_t c = 0; c < dimension; c++)
58 M.
At(v, c) = Y.
At(c, 0);
87 for (
size_t r = 0; r < n; r++)
92 for (
size_t c = 0; c < dimension; c++)
93 Patterns.
At(r, c) = Y.
At(c, 0);
107 for (
size_t r = 0; r < n; r++)
109 double Yr = M.
At(r, 0);
111 for (
size_t c = 0; c <= r; c++)
112 Yr += L.
At(r, c) * X.
At(c, 0);
149 for (
size_t k = 0; k < nbPDF; k++)
153 CumulWeights.
At(k, 0) = Mass;
156 CumulWeights *= 1.0 / Mass;
160 for (
size_t k = 0; k < n; k++)
162 double d = IndexeSample.
At(k, 0);
163 bool Continue =
true;
168 if ((CumulWeights.
At(Id, 0) >= d) || (Id == nbPDF - 1))
183 size_t PatternIndex = 0;
185 for (
size_t p = 0; p < nbPDF; p++)
187 size_t SubSamplePop = Pop.
At(p, 0);
191 for (
size_t r = 0; r < SubSamplePop; r++)
193 for (
size_t c = 0; c < dim; c++)
194 Patterns.
At(PatternIndex, c) = SubSample.
At(r, c);
size_t GetRows() const noexcept
Returns the number of rows.
Multivariate gaussian mixture.
const SquareMatrixDouble & GetVariance() const
Returns the variance of a given density function.
size_t GetNbMembers() const noexcept
Returns the number of density functions.
double GetWeight(size_t k) const
Returns the weight of a given density function.
size_t GetDimension() const noexcept
Returns the number of features.
size_t GetDimension() const noexcept
Returns the number of features.
MultivariateGaussianPDF GetMember(size_t k) const
Returns a given density function.
const T & At(size_t pos) const noexcept
Square double matrix class.
Multivariate Gaussian distribution.
SquareMatrixDouble MakeCholesky() const
Get the lower triangular factor in Cholesky decomposition.
void IncreaseElement(size_t r, size_t c, const T &delta)
Increases the value of an element.
const MatrixDouble & GetMean() const
Returns the mean of a given density function.