]> git.sesse.net Git - wloh/blobdiff - www/index.pl
Add a hidden option to show the covariance matrix.
[wloh] / www / index.pl
index 23dbe6c0494005cb762df45c286e32b684ae05bc..9bf692ce288ef7f0461f82d4d5e69edfe3d9f7d4 100755 (executable)
@@ -303,6 +303,36 @@ EOF
 EOF
 }
 
+sub make_cov_table {
+       my ($cov) = @_;
+       my @players = (sort { $players{$a} cmp $players{$b} } keys %players);
+
+       print <<"EOF";
+    <table class="probmatrix">
+      <tr>
+        <th></th>
+EOF
+
+       for my $player (@players) {
+               printf "        <th>%s</th>\n", $players{$player};
+       }
+       print "      </tr>\n";
+
+       my $pnum = 0;
+       for my $player (@players) {
+               ++$pnum;
+               print "      <tr>\n";
+               printf "        <th>%s</th>\n", $players{$player};
+
+               for my $player2 (@players) {
+                       printf "        <td class=\"num\">%.3f</td>\n", $cov->{$player}{$player2};
+               }
+               print "      </tr>\n";
+       }
+
+       print "    </table>\n";
+}
+
 sub find_avg_rating {
        my ($ratings) = shift;
 
@@ -359,7 +389,6 @@ get_players_and_ratings($dbh, $locale, $season, $division, $subdivision);
 my $cov = get_covariance_matrix($dbh, keys %players);
 
 print_header($cgi, 'WLoH-plasseringsannsynlighetsberegning');
-wloh_common::print_navbar($cgi, $dbh, $locale);
 
 if (defined($match_player) && defined($match_position)) {
        my $tmpnam = write_parms_to_file($aux_parms, $match_stddev, \%ratings, $cov);
@@ -395,6 +424,7 @@ if (defined($match_player) && defined($match_position)) {
        }
 } else {
        POSIX::setlocale(&POSIX::LC_ALL, 'nb_NO.UTF-8');
+       wloh_common::print_navbar($cgi, $dbh, $locale);
        printf <<"EOF", $match_stddev;
     <h1>WLoH-plasseringsannsynlighetsberegning</h1>
 
@@ -426,6 +456,10 @@ EOF
        my $avg_rating = find_avg_rating(\%ratings);
        printf "    <p style=\"clear: both; padding-top: 1em;\">Gjennomsnittlig rating i denne avdelingen er <strong>%.1f</strong>.</p>\n", $avg_rating;
 
+       if (defined($cgi->param('showcov'))) {
+               make_cov_table($cov);
+       }
+
        wloh_common::output_last_sync($dbh);
 }