-/*
- * diff(logL, sigma1) = sigma1 (-sigma1² - sigma2² + (x - mu)²) / sigma_c²
- * maximizer for sigma1 is given by: sum_i[ (1/sigma_c_i)² sigma1 ((x - mu)² - (sigma1² + sigma2²) ] = 0
- * sum_i[ (x - mu)² - sigma1² - sigma2² ] = 0 |: sigma1 != 0, sigma2 != 0
- * sum_i[ (x - mu)² - sigma2² ] = sum[ sigma1² ]
- * sigma1 = sqrt( sum_i[ (x - mu)² - sigma2² ] / N )
- */
-void update_sigma(float *mu, float *sigma, int player_num, const vector<match> &matches)
-{
- if (matches.size() < 2) {
- return;
- }
-
- float sum = 0.0f;
- for (unsigned i = 0; i < matches.size(); ++i) {
- float mu1 = mu[player_num];
- float mu2 = mu[matches[i].other_player];
+ float mu1 = mu[m.player];
+ float mu2 = mu[m.other_player];
+ float sigma = global_sigma;