brainbuz / vote-count Goto Github PK
View Code? Open in Web Editor NEWA toolkit for alternative voting methods. Initially to support Rankled and Range Ballots for IRV, Boorda, and Pairwise/Condorcet. Future support planned Multi-member methods.
A toolkit for alternative voting methods. Initially to support Rankled and Range Ballots for IRV, Boorda, and Pairwise/Condorcet. Future support planned Multi-member methods.
TopCount: precision rounding of totals on range ballots, add an attribute to override default of 3.
Approval: add support for Neutral Preference Indicators.
cpanm fails on Strawberry 5.30, due to
Your vendor has not defined Fcntl macro O_SYNC, used at lib/Test2/Harness/Util/File/Stream.pm line 70
Test2::Harness can be force installed and Vote::Count will install.
Installing Vote::Count was also observed to pull in an older release for Vote::Count::Range.
Many real world election rules call for Random as a Tie Breaker. Because this can cause the results to change between iterations Vote::Count will never support or implement Random as a Tie Breaker. To support rules that call for this method Vote::Count will allow them to pre-determine a tie-breaker precedence list. The highest choice on the list will win all ties, the bottom choice will lose all ties.
There are other libraries implementing these methods. They could be used as a working example of the logic or they could be wrapped up using FFI or XS. The downside is creating a dependency on an external language for non-C libraries. There are also a few libraries on CPAN that could be used as dependencies. VoteFair popularity ranking claims to be mathematically equivalent to Kemmeny Young, Voting::Condorcet::RankedPairs implements the Tiedemann Ranked Pairs Method, but this is less important as it hasn't been a popular method.
The volunteer working on this task will need to review the existing libraries, and either wrap/adapt them to work with Vote::Count or rewrite them as Methods in Vote::Count.
Modify the Floor Role provide a choice of conventional decimal rounding, round up and round down.
Modify TCA to allow a different threshold than 1/2.
The "About" section for brainbuz/Vote-Count says:
A toolkit for alternative voting methods. Initially to support Rankled and Range Ballots for IRV, Boorda, and Pairwise/Condorcet. Future support planned Multi-member methods.
Those are cute misspellings of "Borda" and "Ranked" if you're trying to make fun of those methods, but are bad for SEO. If you want people to find this library, you should probably spell the methods properly. There's also a spot where "Kemeny" is misspelled which should also be fixed.
Range -- Approval -- set neutral preference. Default less than 1/2 of max score ie on 0/1-10 less than 5 would not count for approval.
Condorcet Vs IRV measure the relative later harm between C and I winners.
Implement scoring methods for multi-member
Implement Surplus Transfer STV.
some of the pod links on metacpan are broken. For example in the main module page the link to the Catalog is not found.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.