EOF
}
+sub get_covariance_matrix {
+ my ($dbh, @players) = @_;
+
+ my $player_sql = '{' . join(',', @players ) . '}';
+ my $q = $dbh->prepare('SELECT * FROM covariance WHERE player1=ANY(?::smallint[]) AND player2=ANY(?::smallint[])', { pg_prepare_now => 0 });
+ $q->execute($player_sql, $player_sql);
+
+ my $cov = {};
+ while (my $ref = $q->fetchrow_hashref) {
+ $cov->{$ref->{'player1'}}{$ref->{'player2'}} = $ref->{'cov'};
+ }
+
+ return $cov;
+}
+
sub make_table {
my ($lowest_division, $used_ratings, $used_cov) = @_;
}
$q->finish;
-# Pick up covariance matrix
-my $player_sql = '{' . join(',', keys %players ) . '}';
-my $q = $dbh->prepare('SELECT * FROM covariance WHERE player1=ANY(?::smallint[]) AND player2=ANY(?::smallint[])', { pg_prepare_now => 0 });
-$q->execute($player_sql, $player_sql);
-
-my $cov = {};
-while (my $ref = $q->fetchrow_hashref) {
- $cov->{$ref->{'player1'}}{$ref->{'player2'}} = $ref->{'cov'};
-}
+my $cov = get_covariance_matrix($dbh, keys %players);
my $max_division = $divisions[$#divisions];
my $lowest_division = ($division == $max_division);