Members
(constant) usingIPython
Check if we are in a jupyter notebook.
Send any simData to votekitData variable in python.
- Source:
Methods
findGridX(voterGeom) → {types.typesGrid.gridX}
get x coordinates for grid
Parameters:
Name | Type | Description |
---|---|---|
voterGeom |
types.typesGeoms.voterGeom1D |
Returns:
- Type
- types.typesGrid.gridX
module:addSandboxes/addDoubleSandboxes()
Find all the divs of class "double_sandbox".
Add the double_sandbox as a neighbor under the same parent.
- Source:
module:addSandboxes/addSingleSandboxes()
Find all the divs of class "sandbox".
Add the sandbox as a neighbor under the same parent.
- Source:
module:addSandboxes/doubleSandbox(config, sandboxPath) → {HTMLElement}
Makes Two sandboxes and links their commands together.
Parameters:
Name | Type | Description |
---|---|---|
config |
Object | To pass to commander to set the initial configuration of the sim. |
sandboxPath |
String | String to add to the current url directory to get to the sandbox. |
- Source:
Returns:
- div containing the two sandboxes.
- Type
- HTMLElement
module:addSandboxes/sandbox(config)
Set up a user interface to run a simulation.
Parameters:
Name | Type | Description |
---|---|---|
config |
Object | An object containing commands. A command is a {name,value} pair. |
- Source:
module:compute/districtElection/districtElection()
An election with many districts.
Voters are from many groups.
Voter groups are centered around a point.
The point is moved by simplex noise to create distinct districts.
All the voter groups share the same voter basis.
module:compute/election/election(geometry, electionOptions, castOptions) → {*}
Here we are in the context of a single election.
Parameters:
Name | Type | Description |
---|---|---|
geometry |
* | |
electionOptions |
* | |
castOptions |
* |
- Source:
Returns:
- Type
- *
module:compute/electionPhase/calculatePolling(lastElectionResults) → {*}
Get polling information from election results.
Parameters:
Name | Type | Description |
---|---|---|
lastElectionResults |
* |
Returns:
- Type
- *
module:compute/electionPhase/electionCycle(geometry, electionOptions, optionsBag) → {*}
Here we are in the context of an election cycle with polls followed by a single election.
Parameters:
Name | Type | Description |
---|---|---|
geometry |
* | |
electionOptions |
* | |
optionsBag |
* |
Returns:
electionResults
- Type
- *
module:compute/electionPhase/electionPhase(geometry, electionOptions, optionsBag) → {*}
Here we are in the context of a single election phase.
Parameters:
Name | Type | Description |
---|---|---|
geometry |
* | |
electionOptions |
* | |
optionsBag |
* |
Returns:
electionResults
- Type
- *
module:compute/electionSequence/electionClosedPrimary(geometry, optionsBag) → {*}
Here we are in the context of an election sequence.
Run a primary election for each party, then a general election.
Parameters:
Name | Type | Description |
---|---|---|
geometry |
* | |
optionsBag |
* |
Returns:
sequenceResults
- Type
- *
module:compute/electionSequence/electionGeneral(geometry, optionsBag) → {*}
Here we are in the context of the simplest election sequence with one general election phase.
Parameters:
Name | Type | Description |
---|---|---|
geometry |
* | |
optionsBag |
* |
Returns:
sequenceResults
- Type
- *
module:compute/electionSequence/electionNonPartisanPrimary(geometry, optionsBag) → {*}
Here we are in the context of an election sequence with two phases, a non-partisan primary, and a general.
Parameters:
Name | Type | Description |
---|---|---|
geometry |
* | |
optionsBag |
* |
Returns:
sequenceResults
- Type
- *
module:compute/electionSequence/electionSequence(geometry, optionsBag) → {*}
Here we are in the context of an election sequence.
Parameters:
Name | Type | Description |
---|---|---|
geometry |
* | |
optionsBag |
* |
Returns:
sequenceResults
- Type
- *
module:compute/electionSequence/getElectionOptions(sequenceName, phaseName, optionsBag) → {*}
get election phase options from election options for a phase
Parameters:
Name | Type | Description |
---|---|---|
sequenceName |
* | |
phaseName |
string | |
optionsBag |
* |
Returns:
election phase options
- Type
- *
module:compute/electionSequence/getGeometryForPhase(phaseName, geometry) → {*}
Use phase description to get geometry. Geometry can differ by phase.
e.g. voter strategy, use of polls
Parameters:
Name | Type | Description |
---|---|---|
phaseName |
* | |
geometry |
* |
Returns:
geometry
- Type
- *
module:compute/makeGeography/lloydVoronoi(w, h, n, tolFraction)
Calculate a voronoi diagram with some degree of equal capacity between voronoi cells.
Uses Lloyd's method.
Parameters:
Name | Type | Description |
---|---|---|
w |
number | number of discrete points wide of space to divide |
h |
number | number of points high |
n |
number | number of voronoi cells |
tolFraction |
number | fractional tolerance for relaxation. Maybe .01 is good. |
Returns:
Centroids (list of points) and voronoi d3 object
module:compute/makeGeography/makeCensus() → {Array.<Array.<Array.<number>>>}
What fraction of each tract lives in each district?
Return an array indexed by district.
Each element contains an array of pairs.
The first of the pair is a tract's pair of coordinates.
The second of the pair is the fraction of the tract within that district.
Returns:
- an array of districts,
each with a list of census tract properties [x,y,overlap]
- Type
- Array.<Array.<Array.<number>>>
module:compute/makeGeography/makeDistrictMap(nd)
Makes and draws district boundaries for districts of equal number of voters.
Right now, just for a uniform square geography.
Each axis is from 0 to 1.
The total area is 1.
Define district lines and count voters.
Parameters:
Name | Type | Description |
---|---|---|
nd |
number | number of districts. |
module:compute/makeGeography/makeGeography()
Make tracts
module:compute/makeGeography/makeTractNoise(nx, ny)
Generate a noisy 2D map with two noise sources per pixel.
Parameters:
Name | Type | Description |
---|---|---|
nx |
number | Number of x pixels |
ny |
number | Number of y pixels |
module:compute/sampleElection/sampleCanDnGeom1D(canDnGeom) → {number}
Use this to sample a random candidate from a distribution.
Parameters:
Name | Type | Description |
---|---|---|
canDnGeom |
object |
Returns:
x coordinate
- Type
- number
module:compute/sampleElection/sampleCanDnGeom2D(canDnGeom) → {object}
Use this to sample a random candidate from a distribution.
Parameters:
Name | Type | Description |
---|---|---|
canDnGeom |
object |
Returns:
x,y coordinates
- Type
- object
module:compute/socialChoiceMethods/allocatedScore(votes, socialChoiceOptions) → {types.typesSocialChoice.socialChoiceResults}
This method has rounds.
Each round, the votes are weighted based on the previous round.
Weights start at 1.
Each round, the candidate with the highest weighted tally is selected.
Then the scores for the candidate are sorted.
The voters' weight is spent, starting from the top scores.
Weight is spent until the weight of voters included is equal to 1/seats, which is the quota.
Parameters:
Name | Type | Description |
---|---|---|
votes |
types.typesVotes.votes | The object for vote data. |
socialChoiceOptions |
types.typesSocialChoice.socialChoiceOptions | options to specify a social choice function. |
Returns:
- the results returned from a social choice function.
- Type
- types.typesSocialChoice.socialChoiceResults
module:compute/socialChoiceMethods/dHondt(votes, socialChoiceOptions) → {types.typesSocialChoice.socialChoiceResults}
Run the d'Hondt / Jefferson method of apportionment and return an allocation of seats.
Parameters:
Name | Type | Description |
---|---|---|
votes |
types.typesVotes.votes | The object for vote data. |
socialChoiceOptions |
types.typesSocialChoice.socialChoiceOptions | options to specify a social choice function. |
Returns:
- the results returned from a social choice function.
- Type
- types.typesSocialChoice.socialChoiceResults
module:compute/socialChoiceMethods/divisorGeneral(votes, socialChoiceOptions) → {types.typesSocialChoice.socialChoiceResults}
Run a general divisor method of apportionment and return an allocation of seats.
Parameters:
Name | Type | Description |
---|---|---|
votes |
types.typesVotes.votes | The object for vote data. |
socialChoiceOptions |
types.typesSocialChoice.socialChoiceOptions | options to specify a social choice function. |
Returns:
- the results returned from a social choice function.
- Type
- types.typesSocialChoice.socialChoiceResults
module:compute/socialChoiceMethods/huntingtonHill(votes, socialChoiceOptions) → {types.typesSocialChoice.socialChoiceResults}
Run the Huntington-Hill method of apportionment and return an allocation of seats.
Parameters:
Name | Type | Description |
---|---|---|
votes |
types.typesVotes.votes | The object for vote data. |
socialChoiceOptions |
types.typesSocialChoice.socialChoiceOptions | options to specify a social choice function. |
Returns:
- the results returned from a social choice function.
- Type
- types.typesSocialChoice.socialChoiceResults
module:compute/socialChoiceMethods/methodOfEqualShares(votes, socialChoiceOptions) → {types.typesSocialChoice.socialChoiceResults}
This method has rounds.
groupCost is 1/seats.
Add up scores.
Divide groupCost by total to get factor to multiply scores by.
For each voter, multiply scores by factor to get cost.
Subtract cost from budget.
If remaining budget is negative, add that amount to the deficit and set budget to 0.
Check deficit to see if there is more groupCost to spend.
Use this new groupCost like the old groupCost and do the steps above.
Do this 10 times. That should be enough, maybe.
If there is any deficit remaining, then subtract it from everybody.
Parameters:
Name | Type | Description |
---|---|---|
votes |
types.typesVotes.votes | The object for vote data. |
socialChoiceOptions |
types.typesSocialChoice.socialChoiceOptions | options to specify a social choice function. |
Returns:
- the results returned from a social choice function.
- Type
- types.typesSocialChoice.socialChoiceResults
module:compute/socialChoiceMethods/minimax(votes) → {types.typesSocialChoice.socialChoiceResults}
Disregard the weakest pairwise defeat until one candidate is unbeaten.
Parameters:
Name | Type | Description |
---|---|---|
votes |
types.typesVotes.votes | The object for vote data. |
Returns:
- the results returned from a social choice function.
- Type
- types.typesSocialChoice.socialChoiceResults
module:compute/socialChoiceMethods/olprA(votes, socialChoiceOptions) → {types.typesSocialChoice.socialChoiceResults}
Run an Open List Proportional Representation method. Call this variant by the name "A".
Return a list of winning candidates and a list of allocated seats to parties.
A voter votes for a candidate. Party lists help candidates pool their votes.
Party lists are allocated seats. The most popular candidates in a party are elected.
Parameters:
Name | Type | Description |
---|---|---|
votes |
types.typesVotes.votes | The object for vote data. |
socialChoiceOptions |
types.typesSocialChoice.socialChoiceOptions | options to specify a social choice function. |
Returns:
- the results returned from a social choice function.
- Type
- types.typesSocialChoice.socialChoiceResults
module:compute/socialChoiceMethods/plurality(votes) → {types.typesSocialChoice.socialChoiceResults}
the candidate with the highest tally wins
Parameters:
Name | Type | Description |
---|---|---|
votes |
types.typesVotes.votes | The object for vote data. |
Returns:
- the results returned from a social choice function.
- Type
- types.typesSocialChoice.socialChoiceResults
module:compute/socialChoiceMethods/randomCandidate(votes) → {types.typesSocialChoice.socialChoiceResults}
pick a random candidate as the winner
Parameters:
Name | Type | Description |
---|---|---|
votes |
types.typesVotes.votes | The object for vote data. |
Returns:
- the results returned from a social choice function.
- Type
- types.typesSocialChoice.socialChoiceResults
module:compute/socialChoiceMethods/randomVoter(votes) → {types.typesSocialChoice.socialChoiceResults}
pick a random voter to select the winner
Parameters:
Name | Type | Description |
---|---|---|
votes |
types.typesVotes.votes | The object for vote data. |
Returns:
- the results returned from a social choice function.
- Type
- types.typesSocialChoice.socialChoiceResults
module:compute/socialChoiceMethods/sainteLague(votes, socialChoiceOptions) → {types.typesSocialChoice.socialChoiceResults}
Run the Sainte-Lague / Webster method of apportionment and return an allocation of seats.
Parameters:
Name | Type | Description |
---|---|---|
votes |
types.typesVotes.votes | The object for vote data. |
socialChoiceOptions |
types.typesSocialChoice.socialChoiceOptions | options to specify a social choice function. |
Returns:
- the results returned from a social choice function.
- Type
- types.typesSocialChoice.socialChoiceResults
module:compute/socialChoiceMethods/score(votes) → {types.typesSocialChoice.socialChoiceResults}
the candidate with the highest tally wins
Parameters:
Name | Type | Description |
---|---|---|
votes |
types.typesVotes.votes | The object for vote data. |
Returns:
- the results returned from a social choice function.
- Type
- types.typesSocialChoice.socialChoiceResults
module:compute/socialChoiceMethods/sntv(votes, socialChoiceOptions) → {types.typesSocialChoice.socialChoiceResults}
Single Non-Transferable Vote
Parameters:
Name | Type | Description |
---|---|---|
votes |
types.typesVotes.votes | The object for vote data. |
socialChoiceOptions |
types.typesSocialChoice.socialChoiceOptions | options to specify a social choice function. |
Returns:
- the results returned from a social choice function.
- Type
- types.typesSocialChoice.socialChoiceResults
module:compute/socialChoiceMethods/stv(votes, socialChoiceOptions) → {types.typesSocialChoice.socialChoiceResults}
Single Transferable Vote
Parameters:
Name | Type | Description |
---|---|---|
votes |
types.typesVotes.votes | The object for vote data. |
socialChoiceOptions |
types.typesSocialChoice.socialChoiceOptions | options to specify a social choice function. |
Returns:
- the results returned from a social choice function.
- Type
- types.typesSocialChoice.socialChoiceResults
module:compute/voteCasters/pairwise/castPairwise(geometry, castOptions) → {types.typesVotes.votes}
Voters cast votes for candidates.
Parameters:
Name | Type | Description |
---|---|---|
geometry |
types.typesGeometry.geometry | geometry for casting votes |
castOptions |
types.typesCast.castOptions | options for how to cast votes. |
Returns:
votes
- Type
- types.typesVotes.votes
module:compute/voteCasters/pairwise/castPairwiseGrid()
Tally votes.
module:compute/voteCasters/pairwise/castPairwiseIntervals1D()
Sum density of voter distributions along splits.
module:compute/voteCasters/pairwise/castPairwisePlanes2D()
Sum area of voter distributions to tally the votes.
module:compute/voteCasters/pairwise/castPairwisePoint() → {types.typesVote.pairwiseVote}
Vote for the closest candidate.
Returns:
- Type
- types.typesVote.pairwiseVote
module:compute/voteCasters/plurality/castPlurality(geometry, castOptions) → {types.typesVotes.votes}
Vote for one.
Voters cast votes for candidates.
Parameters:
Name | Type | Description |
---|---|---|
geometry |
types.typesGeometry.geometry | geometry for casting votes |
castOptions |
types.typesCast.castOptions | options for how to cast votes. |
Returns:
votes
- Type
- types.typesVotes.votes
module:compute/voteCasters/plurality/castPluralityGrid() → {types.typesVotesForGeomGrid.votesForGeomGridPlurality}
Tally votes.
Returns:
- Type
- types.typesVotesForGeomGrid.votesForGeomGridPlurality
module:compute/voteCasters/plurality/castPluralityIntervals1D() → {types.typesVotesForGeom.votesForGeomPlurality}
Sum area under voter distributions to tally the votes.
Returns:
- Type
- types.typesVotesForGeom.votesForGeomPlurality
module:compute/voteCasters/plurality/castPluralityPoint() → {types.typesVote.pluralityVote}
Vote for the closest candidate.
Returns:
- Type
- types.typesVote.pluralityVote
module:compute/voteCasters/plurality/castPluralityQuadrature2D() → {types.typesVotesForGeom.votesForGeomPlurality}
Sum area of voter distributions to tally the votes.
Returns:
- Type
- types.typesVotesForGeom.votesForGeomPlurality
module:compute/voteCasters/ranking/castRanking(geometry, castOptions) → {types.typesVotes.votes}
Voters cast votes for candidates.
Parameters:
Name | Type | Description |
---|---|---|
geometry |
types.typesGeometry.geometry | geometry for casting votes |
castOptions |
types.typesCast.castOptions | options for how to cast votes. |
Returns:
votes
- Type
- types.typesVotes.votes
module:compute/voteCasters/ranking/castRankingFindPolygons(voterGeom, canPoints)
Make polygons for each group of voters that gives a unique ranking.
Divide a starting polygon into smaller polygons.
Use a dividing line for each pair of candidates.
Parameters:
Name | Type | Description |
---|---|---|
voterGeom |
object | |
canPoints |
Array.<Array.<number>> |
module:compute/voteCasters/ranking/castRankingGrid(voterGeom, geometry, castOptions) → {types.typesVotesForGeomGrid.votesForGeomGridRanking}
Cast and tally votes on a grid of points.
Parameters:
Name | Type | Description |
---|---|---|
voterGeom |
types.typesGeoms.voterGeom | |
geometry |
types.typesGeometry.geometry | |
castOptions |
types.typesCast.castOptions |
Returns:
votesForGeom
- Type
- types.typesVotesForGeomGrid.votesForGeomGridRanking
module:compute/voteCasters/ranking/castRankingIntervals1D()
Sum density of voter distributions within intervals to tally the votes.
module:compute/voteCasters/ranking/castRankingPoint() → {types.typesVote.rankingVote}
Vote for the closest candidate.
Returns:
- Type
- types.typesVote.rankingVote
module:compute/voteCasters/ranking/castRankingPolygons2D()
Sum area of voter distributions to tally the votes.
module:compute/voteCasters/ranking/makeRankingIntervals1D(canPoints)
Find the intervals over which voters share a ranking.
Parameters:
Name | Type | Description |
---|---|---|
canPoints |
Array.<number> |
module:compute/voteCasters/ranking/splitConvex(points, plane) → {Object}
Beware, points are references to old points, so make sure to make a copy afterward.
Parameters:
Name | Type | Description |
---|---|---|
points |
Array.<Array.<number>> | |
plane |
Array.<number> |
Returns:
- Object containing properties
positive and negative, each being a set of points
- Type
- Object
module:compute/voteCasters/score/castScore(geometry, castOptions) → {object}
Voters cast votes for candidates.
Parameters:
Name | Type | Description | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
geometry |
object | geometry for casting votes
Properties
|
||||||||||||||||||
castOptions |
object | options for how to cast votes. |
Returns:
votes
- Type
- object
module:compute/voteCasters/score/castScoreGrid()
Tally votes.
module:compute/voteCasters/score/castScorePoint()
Vote for the closest candidate.
module:compute/voteCasters/scoreFull/castScoreFull(geometry, castOptions) → {object}
Voters cast votes for candidates.
Parameters:
Name | Type | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
geometry |
object | geometry for casting votes
Properties
|
||||||||||||
castOptions |
object | options for how to cast votes. |
Returns:
votes
- Type
- object
module:compute/voteCasters/scoreFull/castScoreFullGrid()
Tally votes.
module:sim/entities/Entities(menu, changes, commander, layout)
Parameters:
Name | Type | Description |
---|---|---|
menu |
Menu | |
changes |
Changes | |
commander |
Commander | |
layout |
Layout |
- Source:
module:sim/modes/SimMode(screen, menu, changes, commander)
Simulation is the main task we're trying to accomplish in this program.
There are multiple states that the sim can be in.
Each state simulates something different.
Parameters:
Name | Type | Description |
---|---|---|
screen |
Screen | |
menu |
Menu | |
changes |
Changes | |
commander |
Commander |
- Source:
module:view/save/addLoadConfigText(layout, commander)
Add buttons to layout for undo and redo, and connect them to commander for functionality.
Parameters:
Name | Type | Description |
---|---|---|
layout |
Layout | |
commander |
Commander |
- Source:
module:view/save/addSaveConfigToLink(layout, commander)
Add buttons for saving the configuration to a link.
Parameters:
Name | Type | Description |
---|---|---|
layout |
Layout | |
commander |
Commander |
- Source:
module:view/save/addSaveConfigToShortLink(layout, commander)
Add buttons for saving the configuration to a link.
Parameters:
Name | Type | Description |
---|---|---|
layout |
Layout | |
commander |
Commander |
module:view/save/addSaveConfigToText(layout, commander)
Add buttons for saving the configuration to a textbox.
Parameters:
Name | Type | Description |
---|---|---|
layout |
Layout | |
commander |
Commander |
- Source:
module:view/save/addSaveData(layout)
Add buttons for saving the configuration to a textbox.
Parameters:
Name | Type | Description |
---|---|---|
layout |
Layout |
- Source:
module:view/save/checkURL()
Check if the URL is giving a configuration.
Three cases:
1. No config in url
2. Long config in url
3. Short code in url that requires a database lookup.
Then use a callback since we might have to wait for the database.
- Source:
module:view/screen/ScreenCanvas()
Make the canvas part of the screen.
- Source:
module:view/screen/ScreenDownload()
Make the download link part of the screen.
- Source:
module:view/screen/ScreenSvg()
Make the svg part of the screen.
- Source:
module:view/view/ViewMode()
Need to pass along the pub-sub pattern through view to specific viewModes.
The views attach to these view states.
- Source:
module:view/viewButtons/addUndo(layout, commander)
Add buttons to layout for undo and redo, and connect them to commander for functionality.
Parameters:
Name | Type | Description |
---|---|---|
layout |
Layout | |
commander |
Commander |
- Source:
module:view/viewButtons/candidateAddMakeButton(layout, canList)
Add button to layout for adding a candidate
Parameters:
Name | Type | Description |
---|---|---|
layout |
Layout | |
canList |
Sim |
module:view/viewButtons/candidateDnAddMakeButton(layout, commander)
Add button to layout for adding a candidate
Parameters:
Name | Type | Description |
---|---|---|
layout |
Layout | |
commander |
Commander |
module:view/viewButtons/voterShapeAddMakeButton(layout, voterShapeList)
Add buttons to layout for undo and redo, and connect them to commander for functionality.
Parameters:
Name | Type | Description |
---|---|---|
layout |
Layout | |
voterShapeList |
VoterShapeList |
module:view/viewScreens/ViewSettings(changes)
Parameters:
Name | Type | Description |
---|---|---|
changes |
Changes |
- Source:
module:view/viz/VoterRender1D(voterShape, screen)
Graphics Component for voterShapes in 1D
Parameters:
Name | Type | Description |
---|---|---|
voterShape |
VoterShape | |
screen |
Screen |
- Source:
module:view/viz/VoterRender2D(voterShape, screen)
Graphics Component for voterShapes in 2D
Parameters:
Name | Type | Description |
---|---|---|
voterShape |
VoterShape | |
screen |
Screen |
- Source:
module:view/viz/colorBlend(f, colors) → {String}
Blend colors in given proportions.
Parameters:
Name | Type | Description |
---|---|---|
f |
Array.<Number> | proportions of colors, as fraction of 1. |
colors |
Array.<String> | - |
- Source:
Returns:
- Color
- Type
- String
module:view/viz/colorBlender(f, colors) → {String}
Blend colors in given proportions.
Parameters:
Name | Type | Description |
---|---|---|
f |
Array.<Number> | proportions of colors, as fraction of 1. |
colors |
Array.<Array.<Number>> | list of lists. rgb colors. |
- Source:
Returns:
- Color
- Type
- String
module:view/viz/getAllocation(electionResults) → {Object}
When there is just one winner,
sometimes the allocation isn't included in the election results.
Parameters:
Name | Type | Description |
---|---|---|
electionResults |
Object |
- Source:
Returns:
allocation
- Type
- Object
module:view/viz/vizMESChartsCalcBudget(phaseResults)
Calculate data for charts of budget for MES
Parameters:
Name | Type | Description |
---|---|---|
phaseResults |
Object | MES methodResults plus a little extra |
- Source:
Returns:
budgetDataMES
module:view/viz/vizMESChartsCalcShape(sequenceResults, screen, budgetDataMES)
Calculate shape data for charts of budget for MES
Parameters:
Name | Type | Description |
---|---|---|
sequenceResults |
Object | MES methodResults plus a little extra candidate data |
screen |
Object | |
budgetDataMES |
Object |
- Source:
Returns:
chartDataMES
module:view/viz/vizMESChartsRender(screen, chartDataMES)
Render data for charts of budget for MES
Parameters:
Name | Type | Description |
---|---|---|
screen |
* | |
chartDataMES |
* | MES methodResults plus a little extra |
- Source:
module:view/vizCandidateDns/CandidateDnRendererList()
A simple list of candidateDnRenderer instances.
It really just passes along function calls to each member of the list.
It also checks if that member exists. Alternatively, it was deleted.
sortObjByKey()
https://stackoverflow.com/a/35810961
- Source:
Type Definitions
grid
data for points on a grid
Type:
- grid1D | grid2D
- Source:
point
Type:
- point1D | point2D
- Source:
points
For 2D, an array of objects: {x,y,w}. For 1D, an array of objects: {x,w,densityProfile}.
Type:
- Array.<point>
- Source:
votesForGeom
Type:
- typesVotesForGeomGrid.votesForGeomGrid | votesForGeomCells | votesForGeomIntervals | votesForGeomPlurality
- Source: