}
$sorted{$_}{Cand} = $_ foreach keys %sorted;
foreach my $firstpref (sort keys %sorted) {
- $sorted{$firstpref}{Total} = 0; # recount
foreach my $vote (@{ $sorted{$firstpref}{Votes} }) {
votelog $vote, "counted $vote->{Weight} for $firstpref";
- $sorted{$firstpref}{Total} += $vote->{Weight};
}
}
my @sorted;
- my $sort_update = sub {
+ my $things_update = sub {
+ foreach my $s (@surpluses, values %sorted) {
+ $s->{Total} = sum0 map { $_->{Weight} } @{ $s->{Votes } };
+ }
@sorted = nsort_by { -$_->{Total} } values %sorted;
};
- $sort_update->();
+ $things_update->();
print DEBUG "SORTED\n", Dumper(\@sorted);
delete $sorted{ $s->{Cand} };
delete $continuing{ $s->{Cand} };
- $sort_update->();
+ $things_update->();
+ printf "%7s %10s %s\n", 'surplus', $s->{Cand}, pr $s->{Total};
+
$need_to_transfer_surplus = 0;
# before actually transferring a surplus, we will consider
# eliminating, and then reconsider with a lower quota
push @unsorted, @$votes;
}
- $sort_update->();
+ $things_update->();
$need_to_transfer_surplus = 0;
}