41 srand((
unsigned int)time(
nullptr));
43 std::vector<double> sample(n);
45 for (
size_t k = 0; k < n; ++k)
46 sample[k] = ((
double)(rand())) / ((double)(RAND_MAX));
68 srand((
unsigned int)time(
nullptr));
70 std::vector<double> G(n);
72 for (
size_t k = 0; k < n; ++k)
78 for (
size_t i = 0; i < m; ++i)
79 s += ((
double)(rand())) / ((double)(RAND_MAX));
84 s *= sigma * sqrt(12.0 /
double(m));
107 std::vector<double> Patterns(n);
108 std::vector<double> CumulWeights(nbPDF);
110 std::vector<int> Pop(nbPDF, 0);
116 for (
size_t k = 0; k < nbPDF; ++k)
120 CumulWeights[k] = Mass;
123 for (
size_t k = 0; k < nbPDF; ++k)
124 CumulWeights[k] /= Mass;
128 for (
size_t k = 0; k < n; ++k)
130 double d = IndexeSample[k];
131 bool Continue =
true;
136 if ((CumulWeights[Id] >= d) || (Id == nbPDF - 1))
147 size_t PatternIndex = 0;
149 for (
size_t p = 0; p < nbPDF; ++p)
151 int SubSamplePop = Pop[p];
155 for (
int r = 0; r < SubSamplePop; ++r)
157 Patterns[PatternIndex] = SubSample[r];
double GetDeviation() const
Returns the standard deviation of a given density function.
double GetWeight(size_t k) const
Returns the weight of a given density function.
UnivariateGaussianPDF GetMember(size_t k) const
Returns a given density function.
size_t GetNbMembers() const noexcept
Returns the number of density functions.
double GetMean() const noexcept
Returns the mean of a given density function.
Univariate Gaussian mixture.