GoR has several implementations:
Since it is so well documented, the implementations are generally the same. However, there are some small differences, and a few extensions:
EGF.pm bases this on the rating of the weaker player adjusted by the handicap. The other implementations base it just on the rating, which seems to be the intention of the GoR documentation.
Most implementations use the tables presented in the GoR documentation. The documentation is also clear that ratings are bounded to the range 100 through 2700. The implementations differ slightly in the bounding.
The GCSL implementation uses formulas to compute these values instead:
The 'a' formula produces the same values as the table. The 'con' formula is with ±2 of the table value.
None of the computation sections actually bound the computed ranks to within 100 to 2700. The GCSL implementation explicitly uses ranks as low as -900 (30k), which it gives to new players.
GoR specifies that the likelihood of the stronger player winning is adjusted downward by 0.014 to compensate for deflation that would otherwise occur due to weaker players getting stronger. DGS has the odd code that explicitly doesn't apply this factor in case of a jigo.
davos: How do we know that 0.014 is the correct value to prevent deflation or inflation from now until eternity? How do we know that the EGF rating hasn't been deflating by 2 points per year for the past 20 years?
Herman: Because it's only been used for 13 years? :-)
But other than that, good point. There is no guarantee that 0.014 is correct.
isd I don't think 0.014 was correct. It's 0.016 now anyway. :)
GoR doesn't specify how to handle board sizes other than 19x19. DGS and GCSL both support including other board sizes in the rating system.