Commit Graph

117 Commits

Author SHA1 Message Date
876be9c55a
Write more efficient implementation for CandidateMap which does not rely on hashing 2022-08-21 05:24:54 +10:00
4ad02c052c
Refactor HashMap for Candidates into dedicated struct (CandidateMap) 2022-08-21 03:57:37 +10:00
422a198cf5
Use NoHashHasher for Candidate HashMaps to improve performance 2022-08-20 23:25:16 +10:00
61b22b388d
Remove unnecessary usage of HashMap.contains_key 2022-08-20 22:43:57 +10:00
9a4af322ca
Avoid more allocations in fold 2022-08-20 22:33:48 +10:00
35104055d9
Avoid excess allocations during fold operations 2022-08-18 23:55:39 +10:00
e825ca1491
Update for Rust 1.62
Add Cargo profile for profiling
2022-08-18 00:15:33 +10:00
f187975601
--no-immediate-elect requires --surplus-order by_size 2022-07-02 23:46:02 +10:00
566cdeb185
Permit --surplus meek with --quota-mode static 2022-06-18 23:07:00 +10:00
82e90a0e10
Update documentation 2022-06-18 02:02:00 +10:00
384dde9c52
--subtract-nontransferable requires --surplus wig 2022-06-18 02:00:07 +10:00
2987eca0c3
Do not defer a surplus distribution if it exactly equals the difference between the 2 trailing candidates (as, depending on tie-breaking rules, this could change the order of exclusion) 2022-06-18 01:59:29 +10:00
8cc694e609
Cosmetic improvements
Hide transfers column in transposed report if no transfers
Report "Rollback complete" at end of stage when completed
2022-04-21 21:56:21 +10:00
c2621b2965
Improve messages for --constraint-mode repeat_count 2022-04-20 20:12:50 +10:00
f0e3b02051
Autodetect when to normalise ballots, remove explicit --normalise-ballots 2022-04-20 19:54:58 +10:00
03af86733e
Initial implementation of --constraint-mode repeat_count 2022-04-20 19:42:20 +10:00
df9223ebe6
Implement --round-subtransfers by_parcel for NSW Local Government rules 2022-03-27 21:33:55 +11:00
26d45cac50
Implement --subtract-nontransferable for NSW Local Government rules 2022-03-25 02:46:30 +11:00
8af0fa1178
Complete implementation and tests for NSW Local Government STV 2022-03-23 01:55:02 +11:00
c5d6b8d460
Refactor implementation of --sum-surplus-transfers -> --round-subtransfers in preparation for NSW Local Gov't STV 2022-03-23 00:35:00 +11:00
15614a4e8f
rust-clippy linting 2021-10-28 00:30:55 +11:00
5a53574366
Allow opting out of building default wasm bindings 2021-10-18 18:06:42 +11:00
047a53d0d9
Ignore --round-surplus-fractions with Hare method 2021-09-27 19:19:33 +10:00
93cb72c33a
Update terminology and remove "stratify (floor)" support
Cincinnati -> Inclusive Hare (previous usage was erroneous/nonstandard)
Every n-th ballot -> Cincinnati
Remove "stratify (floor)" as it is not in contemporary use
2021-09-27 19:02:30 +10:00
cf75943829
Fixes to edge cases in stratify (LR) sample method 2021-09-26 02:27:37 +10:00
3a4e53e1f0
Implement Dáil Éireann STV 2021-09-14 23:13:45 +10:00
a641b97d1f
More work on unit/integration tests 2021-09-14 02:27:35 +10:00
9817d6c199
Implement --transfers-detail 2021-09-11 18:42:15 +10:00
056242514d
Implement TransferTable for surpluses (WIP) 2021-09-11 02:43:11 +10:00
fbdc32ba30
Implement TransferTable for exclusions (WIP) 2021-09-11 01:19:38 +10:00
99dbbcd5d5
Hide votes required for election in Meek STV 2021-09-10 02:41:40 +10:00
c9b189fefe
Update quota/VRE in certain rare cases 2021-09-10 01:42:42 +10:00
de19324d2c
Report vote required for election in relation to early bulk election 2021-09-10 01:32:31 +10:00
ab3067566d
Fix bug attempting to defer surplus with 0 or 1 continuing candidates
Add regression test
2021-09-09 13:36:27 +10:00
260dee1bb5
Fix bugs
Fix bug excluding-by-value/source candidates with no votes
Fix bug electing too many candidates if more reach the quota than vacancies remain
Add regression test
2021-09-09 01:24:50 +10:00
e4bfe45f49
Display up to 5 names only in web UI header, separate with line breaks 2021-09-06 02:43:33 +10:00
18c974117e
(cont.) Take num_to_exclude into consideration for bulk exclusion 2021-09-05 23:13:37 +10:00
09c4a375a7
Better error messages when insufficient candidates to fill vacancies 2021-09-05 22:53:59 +10:00
90971e976a
Fix --round-votes being ignored in first stage 2021-09-04 23:54:28 +10:00
e3ca9fac47
Refactor stv::preprocess_election 2021-09-04 22:46:29 +10:00
b0f869bf02
Initial framework for equal rankings 2021-09-04 01:56:04 +10:00
94787e7677
Store vote values at the parcel level rather than the vote level
~50% increase in performance
2021-08-16 00:46:05 +10:00
eb3c7d0f53
Fix STVOptions::describe for --min-threshold 2021-08-09 23:27:58 +10:00
9f1476da63
Complete ERS76 implementation and add test case 2021-08-09 19:50:49 +10:00
764ebd98e6
Various tidyups
Use "Droop" as default quota (since same as "Droop (exact)" when quota not rounded)
Rename ers97.blt
Update documentation
2021-08-09 17:58:05 +10:00
ae0d1d8411
Implement dynamic quotas 2021-08-08 21:41:10 +10:00
ee1008b509
Prepare for dynamic quota: independent flag for completion of surplus transfers/exclusions 2021-08-08 21:35:03 +10:00
dc78692c72
Use new names for STVOptions::describe 2021-08-07 23:27:11 +10:00
b58922c57b
WIP: no immediate election? 2021-08-07 22:34:55 +10:00
429191dc81
With --sample-per-ballot, terminate immediately on electing the required number 2021-08-05 20:23:54 +10:00