2021-01-05 19:47:07 +11:00
<!--
pyRCV2: Preferential vote counting
Copyright © 2020–2021 Lee Yingtong Li (RunasSudo)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see < https: / / www . gnu . org / licenses / > .
-->
2020-10-18 18:58:24 +11:00
<!DOCTYPE html>
< html >
< head >
< meta charset = "utf-8" >
< title > pyRCV2< / title >
2021-01-05 19:47:07 +11:00
< link rel = "stylesheet" type = "text/css" href = "https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css" integrity = "sha512-NhSC1YmyruXifcj/KFRWoC561YpHpc5Jtzgvbuzx5VozKpWvQ+4nXhPdFgmx8xqexRcpAglTj9sIBWINXa8x5w==" crossorigin = "anonymous" / >
< link rel = "stylesheet" type = "text/css" href = "main.css?v=GITVERSION" >
2020-10-18 18:58:24 +11:00
< / head >
2021-01-10 18:31:59 +11:00
< body class = "interactive" >
2021-01-05 01:59:24 +11:00
< div class = "menudiv" >
2020-10-18 18:58:24 +11:00
< input type = "file" id = "bltFile" >
< button onclick = "clickCount()" > Count< / button >
< label >
Preset:
< select id = "selPreset" onchange = "changePreset()" >
< option value = "scottish" selected > Scottish STV< / option >
2021-01-04 02:45:24 +11:00
<!-- <option value="stvc">pyRCV STV - C</option> -->
2020-12-30 02:33:09 +11:00
< option value = "senate" > Australian Senate STV< / option >
2021-01-08 19:16:56 +11:00
< option value = "meek" > Meek STV< / option >
2020-10-18 21:47:59 +11:00
< option value = "wright" > Wright STV< / option >
2020-12-27 21:25:40 +11:00
< option value = "prsa77" > PRSA 1977< / option >
2021-01-01 22:26:57 +11:00
< option value = "ers97" > ERS97< / option >
2020-10-18 18:58:24 +11:00
< / select >
< / label >
< button id = "btnAdvancedOptions" onclick = "clickAdvancedOptions()" > Show advanced options< / button >
2020-12-27 21:25:40 +11:00
<!-- GITREV -->
2020-12-24 21:33:09 +11:00
< a href = "https://yingtongli.me/blog/2020/12/24/pyrcv2.html" > Information and instructions< / a >
2020-10-18 18:58:24 +11:00
< / div >
2021-01-06 02:33:41 +11:00
< div id = "divAdvancedOptions" class = "menudiv cols-12 cols-sm-6" style = "display: none;" >
2021-01-06 01:38:23 +11:00
< div class = "col-6" style = "align-self: start;" >
2021-01-06 02:33:41 +11:00
< div class = "subheading" >
Method specification:
2021-01-06 01:38:23 +11:00
< / div >
< div >
< label >
Quota:
< select id = "selQuotaCriterion" >
< option value = "geq" selected > > =< / option >
< option value = "gt" > > < / option >
< / select >
< / label >
< label >
< select id = "selQuota" >
< option value = "droop" selected > Droop< / option >
< option value = "droop_exact" > Droop (exact)< / option >
< option value = "hare" > Hare< / option >
< option value = "hare_exact" > Hare (exact)< / option >
< / select >
< / label >
< label >
< select id = "selQuotaMode" >
< option value = "static" selected > Static quota< / option >
< option value = "progressive" > Progressive quota< / option >
< option value = "ers97" > Static with ERS97 rules< / option >
< / select >
< / label >
< / div >
< div >
< label >
Surplus order:
< select id = "selSurplus" >
< option value = "size" selected > By size< / option >
< option value = "order" > By order< / option >
< / select >
< / label >
< label >
Method:
< select id = "selTransfers" >
< option value = "wig" selected > Weighted inclusive Gregory< / option >
< option value = "uig" > Unweighted inclusive Gregory< / option >
< option value = "eg" > Exclusive Gregory (last bundle)< / option >
2021-01-08 19:16:56 +11:00
< option value = "meek" > Meek method< / option >
2021-01-06 01:38:23 +11:00
< / select >
< / label >
< label >
< select id = "selPapers" >
< option value = "both" selected > Include non-transferable papers< / option >
< option value = "transferable" > Use transferable papers only< / option >
< / select >
< / label >
< / div >
< div >
< label >
Exclusion:
< select id = "selExclusion" >
< option value = "one_round" selected > Exclude in one round< / option >
< option value = "parcels_by_order" > Exclude by parcel (by order)< / option >
<!-- <option value="parcels_by_value">Exclude by parcel (by value)</option> -->
< option value = "by_value" > Exclude by value< / option >
< option value = "wright" > Wright method (re-iterate)< / option >
< / select >
< / label >
< / div >
2021-01-06 02:33:41 +11:00
< div class = "subheading" >
Tie-breaking:
< / div >
2021-01-06 01:38:23 +11:00
< div >
< label >
Ties:
< select id = "selTies" >
< option value = "backwards_random" selected > Backwards then random< / option >
< option value = "forwards_random" > Forwards then random< / option >
< option value = "random" > Random< / option >
< option value = "prompt" > Prompt< / option >
< / select >
< / label >
< label >
Random seed:
< input type = "text" id = "txtSeed" value = "" >
< / label >
< / div >
2021-01-05 21:07:40 +11:00
< / div >
2021-01-06 01:38:23 +11:00
< div class = "col-6 cols-12" style = "align-self: start;" >
2021-01-06 02:33:41 +11:00
< div class = "col-12 subheading" >
Numeric representation:
< / div >
< div class = "col-12" >
< label >
Numbers:
< select id = "selNumbers" >
< option value = "native" > Native< / option >
< option value = "rational" > Rational< / option >
< option value = "fixed" selected > Fixed< / option >
2021-01-14 22:31:24 +11:00
< option value = "gfixed" > Fixed (guarded)< / option >
2021-01-06 02:33:41 +11:00
< / select >
< / label >
< label >
Decimal places (if Numbers = Fixed):
2021-01-07 03:45:12 +11:00
< input type = "number" id = "txtDP" value = "5" min = "0" style = "width: 3em;" >
< / label >
< / div >
< div class = "col-12" >
< label >
Display up to
< input type = "number" id = "txtPPDP" value = "2" min = "0" style = "width: 3em;" >
d.p.
2021-01-06 02:33:41 +11:00
< / label >
< / div >
< div class = "col-12 subheading" >
Count optimisations:
< / div >
2021-01-06 01:38:23 +11:00
< label class = "col-6" >
< input type = "checkbox" id = "chkBulkElection" checked >
Bulk election
< / label >
< label class = "col-6" >
< input type = "checkbox" id = "chkBulkExclusion" >
Bulk exclusion
< / label >
< label class = "col-12" >
< input type = "checkbox" id = "chkDeferSurpluses" >
Defer surpluses
< / label >
2021-01-06 02:33:41 +11:00
< div class = "col-12 subheading" >
Rounding:
< / div >
2021-01-06 01:38:23 +11:00
< div class = "col-6" >
< label >
< input type = "checkbox" id = "chkRoundQuota" checked >
2021-01-06 02:33:41 +11:00
Quota:
2021-01-06 01:38:23 +11:00
< / label >
< label >
< input type = "number" id = "txtRoundQuota" value = "0" min = "0" style = "width: 3em;" >
d.p.
< / label >
< / div >
< div class = "col-6" >
< label >
< input type = "checkbox" id = "chkRoundVotes" >
2021-01-06 02:33:41 +11:00
Votes:
2021-01-06 01:38:23 +11:00
< / label >
< label >
< input type = "number" id = "txtRoundVotes" value = "0" min = "0" style = "width: 3em;" >
d.p.
< / label >
< / div >
< div class = "col-6" >
< label >
< input type = "checkbox" id = "chkRoundTVs" >
2021-01-06 02:33:41 +11:00
Transfer values:
2021-01-06 01:38:23 +11:00
< / label >
< label >
< input type = "number" id = "txtRoundTVs" value = "0" min = "0" style = "width: 3em;" >
d.p.
< / label >
< / div >
< div class = "col-6" >
< label >
< input type = "checkbox" id = "chkRoundWeights" >
2021-01-06 02:33:41 +11:00
Ballot weights:
2021-01-06 01:38:23 +11:00
< / label >
< label >
< input type = "number" id = "txtRoundWeights" value = "0" min = "0" style = "width: 3em;" >
d.p.
< / label >
< / div >
2021-01-05 21:07:40 +11:00
< / div >
2020-10-18 18:58:24 +11:00
< / div >
2021-01-10 18:31:59 +11:00
< div id = "resultLogs1" > < / div >
2020-10-18 18:58:24 +11:00
< table id = "result" > < / table >
2021-01-10 18:31:59 +11:00
< div id = "resultLogs2" > < / div >
< div id = "printPane" style = "display: none;" >
< button onclick = "printResult()" > Print result< / button >
< label >
Paper size:
< select id = "selPaperSize" >
< option value = "A4" selected > A4< / option >
< option value = "A3" > A3< / option >
< option value = "letter" > US Letter< / option >
< / select >
< / label >
< / div >
< div id = "printWarning" style = "display: none;" > Printing directly from this page is not supported. Use the ‘Print result’ button to generate a printer-friendly report.< / div >
2021-01-09 04:33:13 +11:00
2021-01-09 23:58:25 +11:00
< script >
var pyRCV2version = 'GITVERSION';
< / script >
2020-12-24 20:23:55 +11:00
< script src = "vendor/BigInt_BigRat-a5f89e2.min.js" > < / script >
2020-12-31 16:44:17 +11:00
< script src = "vendor/big-6.0.0.min.js" > < / script >
< script src = "vendor/sjcl-1.0.8.min.js" > < / script >
2021-01-05 19:47:07 +11:00
< script src = "bundle.js?v=GITVERSION" > < / script >
< script src = "index.js?v=GITVERSION" > < / script >
2020-10-18 18:58:24 +11:00
< / body >
< / html >