Performance Rating Source Code

The system has two programs: rate calculates the ratings for the teams and standing calculates the conference standings. To get a copy of a file, display it and then use "Save As..." on the "File" menu. The programs are copyrighted, but may be freely used for noncommercial purposes. The input and output files are in the public domain. The source files are:

The programs are being updated regularly. You may want to get a new copy now and then. If you don't already have a C compiler, you'll need to buy one, such as Turbo C. The C compiler converts rate.c, standing.c and school.c to executable programs.

The input files are:

To construct your own names.txt file, enter the teams names, one per line, with a vertical bar (|) after each team name. If a team is referred to by two or more names, those names can be placed on the line with the official name first. The names should be seperated by vertical bars and the last one on the line should be followed by a vertical bar. The official name should not exceed 17 characters in length. The names.txt file can be empty and the program still works--you just must have a names.txt file.

In games.txt, dates are placed on a separate line in a mm/dd/yy format. The games results are listed one per line in free format. A line starting with ===== separates normal games from post-season games (which count double).

The output files are:

The first four are produced by rate; the last three by standing. In byrating.txt the ratings are rounded; in byname.txt they are given to five decimal places. For a PC, you will need to modify standing.c to write a standingn.htm file rather than a standingn.html file. The school program produces an analysis of a team's rating on the screen.

I have precompiled as a Microsoft Visual C++ Win32 Console project Rate.exe and Standing.exe for use on PCs. The source for this version is Rate.cpp and Standing.cpp.

To solve the equations, I gave up on using matrix inversion because of the inherent difficulty in getting an accurate inversion of a matrix that large. I use an iterative procedure instead.

<- Parent Directory

David Wilson /
Last update Tuesday, 14-Jan-2020 13:30:55 CST