[EM] Election Methods Code Repository Proposal

Greg Nisbet gregory.nisbet at gmail.com
Sun Sep 11 21:15:05 PDT 2011


Description of methods on the wiki do not currently contain computer
programs so much as high-level algorithmic descriptions. These
descriptions, although well-written and accompanied by examples, do
not contain code. The addition of actual code would serve two
purposes,

1) it serves as an alternative, guaranteed unambiguous explanation of
the method itself, which may be more tractable to some readers than
English description

2) code, even if written in a slow language, is of practical value to
those conducting research

3) even new voting methods are seldom completely novel, a standard set
of primitives could allow for quicker and easier description of new
proposals.

I've come across a few instances of collections of voting method
implementations in various programming languages. I'm uncertain about
the use restrictions of these.

rangevoting.org/IEVS/IEVS.c

http://rubyforge.org/projects/rubyvote

https://github.com/bradbeattie/python-vote-core

etc.

This is just some old java code a friend and I wrote a long time ago
http://www.mediafire.com/?hcizfsw37wuaquy

Anyway, IEVS is in C, RubyVote and PythonVote are obviously in Python,
and my old code is in Java. If the community could settle on a single
language for reference implementations (speed being less important
here than clarity and familiarity) of various voting methods and maybe
a quick language such as C, C++, D, or Java when additional speed is
required, and possibly an efficiently parallelizable language (e.g.
Erlang, Haskell) to allow for distributed computation and greater
scalability.

The point being, a lot of people have spent time writing code and some
have reinvented the wheel in a slightly different form or in another
language. It'd be nice to have code all in one place and establish a
set of conventions for how new algorithms are to be represented.

Thanks.



More information about the Election-Methods mailing list