]> git.sesse.net Git - foosball/commitdiff
Remove a double negative.
authorSteinar H. Gunderson <sesse@debian.org>
Mon, 8 Oct 2007 18:47:50 +0000 (20:47 +0200)
committerSteinar H. Gunderson <sesse@debian.org>
Mon, 8 Oct 2007 18:47:50 +0000 (20:47 +0200)
foosrank.cpp

index bfcea1121f73745a61c36d6eed1bfc0b38dc6ba1..f16618297c2cd3abdce54e141dca95b039a4bb74 100644 (file)
@@ -45,8 +45,8 @@ double prob_score(int k, double a, double rd)
 // is already divided by 455.
 double prob_score_real(int k, double a, double prodai, double kfac, double rd_norm)
 {
-       double nom = prodai * pow(2.0, -rd_norm * a); 
-       double denom = kfac * pow(1.0 + pow(2.0, -rd_norm), k+a);
+       double nom = prodai * pow(2.0, rd_norm * a); 
+       double denom = kfac * pow(1.0 + pow(2.0, rd_norm), k+a);
        return nom/denom;
 }
 
@@ -111,7 +111,7 @@ double opponent_rating_pdf(int k, double a, double r1, double mu2, double sigma2
 
 static inline double evaluate_int_point(int k, double a, double prodai_precompute, double kfac_precompute, double r1, double mu2, double sigma2, double winfac, double x)
 {
-       double probscore = prob_score_real(k, a, prodai_precompute, kfac_precompute, (r1 - x)*winfac);
+       double probscore = prob_score_real(k, a, prodai_precompute, kfac_precompute, (x - r1)*winfac);
        double z = (x - mu2)/sigma2;
        double gaussian = exp(-(z*z/2.0));
        return  probscore * gaussian;
@@ -401,14 +401,14 @@ int main(int argc, char **argv)
                        compute_new_rating(mu1, sigma1, mu2, sigma2, k, i, newmu1, newsigma1);
                        compute_new_rating(mu2, sigma2, mu1, sigma1, i, k, newmu2, newsigma2);
                        printf("%u-%u,%f,%+f,%+f\n",
-                               k, i, prob_score(k, i, mu1-mu2), newmu1-mu1, newmu2-mu2);
+                               k, i, prob_score(k, i, mu2-mu1), newmu1-mu1, newmu2-mu2);
                }
                for (int i = k; i --> 0; ) {
                        double newmu1, newmu2, newsigma1, newsigma2;
                        compute_new_rating(mu1, sigma1, mu2, sigma2, i, k, newmu1, newsigma1);
                        compute_new_rating(mu2, sigma2, mu1, sigma1, k, i, newmu2, newsigma2);
                        printf("%u-%u,%f,%+f,%+f\n",
-                               i, k, prob_score(k, i, mu2-mu1), newmu1-mu1, newmu2-mu2);
+                               i, k, prob_score(k, i, mu1-mu2), newmu1-mu1, newmu2-mu2);
                }
        }
 }