70 sigma =
new float[nDimension];
77 s =
new float*[nParticles];
78 for (i = 0; i < nParticles; i++)
79 s[i] =
new float[nDimension];
81 s_temp =
new float*[nParticles];
82 for (i = 0; i < nParticles; i++)
83 s_temp[i] =
new float[nDimension];
85 c =
new double[nParticles];
86 pi =
new double[nParticles];
88 temp =
new float[nDimension];
90 for (i = 0; i < nParticles; i++)
129 int nConfigurations = 0, i;
132 pBestConfiguration[i] = 0;
137 mean /= m_nParticles * double(fMeanFactor);
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];
191 while (high > (low + 1))
193 int middle = (high + low) >> 1;
195 if (choice >
c[middle])
231 const double factor = 1.0 /
c_total;
269 s[0][i] = pConfiguration[i];
virtual void GetConfiguration(float *pBestConfiguration, float fMeanFactor)
double ParticleFilter(float *pResultMeanConfiguration, float fSigmaFactor=1.0f)
~CParticleFilterFrameworkFloat()
float * last_configuration
CParticleFilterFrameworkFloat(int nParticles, int nDimension)
double CalculateProbabilityForConfiguration(const float *pConfiguration)
virtual void PredictNewBases(float fSigmaFactor)=0
virtual void GetPredictedConfiguration(float *pPredictedConfiguration)
virtual double CalculateProbability(bool bSeparateCall=true)=0
float * mean_configuration
virtual void CalculateFinalProbabilities()
virtual void GetBestConfiguration(float *pBestConfiguration)
virtual void GetMeanConfiguration(float *pMeanConfiguration)
virtual void UpdateModel(int nParticle)=0