Yesterday, I programmed a little executable in one of the newest programming language... Fortran 95!
This tiny programme is very clumsy in the sense that it lacks of output format (for those who knows Fortran, I simply put write(*,*), where the first asterisk is for indicate the file to write (in this case the command prompt, but could be a Notepad, .dat files, etc., but I was so lazy to open a Notepad, put write(111,*) and close this Notepad; and the second asterisk is the format, which I think that * means default, but is really ugly). I apologize, because it is really odd, but at least it is understandable. I do not know anything about the format... I simply put * and that is enough for me.
Elo_uncertainties_calculator.rar (0.60 MB)
(The link will dead in few days, but you are free of doing mirrors of this freeware and open source, clumsy software, always linking to this topic and/or quoting this post).
Elo_uncertainties_calculator.exe should work only in Windows; the code is not portable to other Fortran editions (77, 90, ...) due to my definition of real(KIND=3) instead of real, but as I provide the source, it can be changed; if someone is interested in compile it with gfortran compiler from the command prompt, real variables must be changed in the way I said before, and must add -fimplicit-none flag (because I use implicit none at the start of my code), and then must copy libgfortran-3.dll in the same directory of the compiled executable, because it is dependent of it.
I directly compiled my source with Plato IDE (Portable Silverfrost FTN95), so salflibc.dll must be in the same directory of Elo_uncertainties_calculator programme, and my programme can be used even if it is compressed (I compress it with WinRAR). Once I said all this stuff, I want to remark two things:
a) I give the compiled programme, so in principle there is no need of compile by yourself... I only said that for the people that like to compile sources. Note that due to the presence of salflibc.dll, the programme is a little slow in the start (around six seconds in my computer), so please be patient.
b) I provide the source in .f95 and .txt extensions: with the Notepad, everybody can see the equations I used, and my horrible programming skills... it is true: I almost do not know programming, even in Fortran 90/95, which are the two languages I use more in the university.
Well, I have written a lot and I am sure that nobody knows how Elo_uncertainties_calculator.exe works: do double click in the executable (compressed or uncompressed, it should be the same) and the programme will ask the number of wins, loses and draws of a match between two engines. I remark this because it can not manage tournaments of more than two engines. As everyone can see, my programme is not very versatile. The input data must be write by hand; the strong point I see is when some testers provide results without PGN files (of course, my programme is not so smart to accept PGNs).
Once the number of wins, loses and draws are recognized by the programme, the calculations are done in one second as maximum or even less (at least I hope it). The given results of the output are from 1-sigma, 2-sigma and 3-sigma confidence (~ 68.27%, 95.45% and 99.73% confidence). The more common results of other softwares are for 95% confidence (~ 1.96-sigma confidence), so I strongly recommend to focus on 2-sigma confidence. Elo_uncertainties_calculator results should differ very little with other programmes, otherwise I am doing something really wrong. It is needless to say that my programme can not compete with BayesElo, EloStat, ... and it also was not my intention: I only want to share my programme.
@Moderation team: I do not know if this is the best subforum for this thread. Please feel free of move it if necessary.
I put an example:
https://github.com/mcostalba/Stockfish/pull/10
Gary Linscott is making an incredible effort to raise the Elo of Stockfish (thank you very much!). In his last pull request at GitHub, he has posted this results:
Code: Select all
+2153 -1952 =3895
Code: Select all
Elo_uncertainties_calculator, © 2012.
Calculation of Elo uncertainties in a match between two engines:
----------------------------------------------------------------
(The input and output data is referred to the first engine).
Please write down non-negative integers.
Write down the number of wins:
2153
Write down the number of loses:
1952
Write down the number of draws:
3895
***************************************
1-sigma confidence ~ 68.27% confidence.
2-sigma confidence ~ 95.45% confidence.
3-sigma confidence ~ 99.73% confidence.
***************************************
-----------------------------------------------------------------------
Confidence interval for 1-sigma:
Elo rating difference: 8.7311566219790740 Elo
Lower rating difference: 5.9490758985007990 Elo
Upper rating difference: 11.514357261062792 Elo
Lower bound uncertainty: -2.7820807234782751 Elo
Upper bound uncertainty: 2.7832006390837182 Elo
Average error: +- 2.7826406812809966 Elo
K = (average error)*[sqrt(n)] = 248.88694881202540
Elo interval: ] 5.9490758985007990 , 11.514357261062792 [
-----------------------------------------------------------------------
Confidence interval for 2-sigma:
Elo rating difference: 8.7311566219790740 Elo
Lower rating difference: 3.1677578124844177 Elo
Upper rating difference: 14.299035956673968 Elo
Lower bound uncertainty: -5.5633988094946563 Elo
Upper bound uncertainty: 5.5678793346948943 Elo
Average error: +- 5.5656390720947753 Elo
K = (average error)*[sqrt(n)] = 497.80589213731082
Elo interval: ] 3.1677578124844177 , 14.299035956673968 [
-----------------------------------------------------------------------
Confidence interval for 3-sigma:
Elo rating difference: 8.7311566219790740 Elo
Lower rating difference: 0.38684567272318727 Elo
Upper rating difference: 17.085551990018378 Elo
Lower bound uncertainty: -8.3443109492558867 Elo
Upper bound uncertainty: 8.3543953680393035 Elo
Average error: +- 8.3493531586475951 Elo
K = (average error)*[sqrt(n)] = 746.78884923554435
Elo interval: ] 0.38684567272318727 , 17.085551990018378 [
-----------------------------------------------------------------------
Number of games of the match: 8000
Score: 51.256250000000000 %
Elo rating difference: 8.7311566219790740 Elo
Draw ratio: 48.687500000000000 %
*****************************************************************
1-sigma: 0.40019281851650899 % of the points of the match.
2-sigma: 0.80038563703301798 % of the points of the match.
3-sigma: 1.2005784555495270 % of the points of the match.
*****************************************************************
End of the calculations.
Thanks for using Elo_uncertainties_calculator. Press Enter to exit.
Any feedback, comments, complaints... are welcome, although I think that I will not improved this programme. And, of course, I remember that even Nosferatu is nicer than the format of the output.
(Nosferatu, eine Symphonie des Grauens; by F.W. Murnau, 1922).
Regards from Spain.
Ajedrecista.