70 sigma =
new double[nDimension];
77 s =
new double*[nParticles];
78 for (i = 0; i < nParticles; i++)
79 s[i] =
new double[nDimension];
81 s_temp =
new double*[nParticles];
82 for (i = 0; i < nParticles; i++)
83 s_temp[i] =
new double[nDimension];
85 c =
new double[nParticles];
86 pi =
new double[nParticles];
88 temp =
new double[nDimension];
90 for (i = 0; i < nParticles; i++)
129 int nConfigurations = 0, i;
132 pBestConfiguration[i] = 0;
137 mean /= m_nParticles * dMeanFactor;
143 pBestConfiguration[j] +=
s[i][j];
148 if (nConfigurations > 0)
151 pBestConfiguration[i] /= nConfigurations;
157 double max = -DBL_MAX;
169 pBestConfiguration[i] =
s[best_i][i];
192 while (high > (low + 1))
194 int middle = (high + low) / 2;
196 if (choice >
c[middle])
232 const double factor = 1 /
c_total;
271 s[0][i] = pConfiguration[i];
double * last_configuration
CParticleFilterFramework(int nParticles, int nDimension)
double ParticleFilter(double *pResultMeanConfiguration, double dSigmaFactor=1)
virtual double CalculateProbability(bool bSeparateCall=true)=0
virtual void CalculateFinalProbabilities()
virtual void PredictNewBases(double dSigmaFactor)=0
virtual void GetConfiguration(double *pBestConfiguration, double dMeanFactor)
virtual void UpdateModel(int nParticle)=0
virtual void GetMeanConfiguration(double *pMeanConfiguration)
virtual void GetPredictedConfiguration(double *pPredictedConfiguration)
~CParticleFilterFramework()
virtual void GetBestConfiguration(double *pBestConfiguration)
double * mean_configuration
double CalculateProbabilityForConfiguration(const double *pConfiguration)