# MatrixMajority¶

class `whalrus.``MatrixMajority`(*args, converter: whalrus.converters_ballot.converter_ballot.ConverterBallot = None, matrix_weighted_majority: whalrus.matrices.matrix.Matrix = None, greater: numbers.Number = 1, lower: numbers.Number = 0, equal: numbers.Number = Fraction(1, 2), diagonal: numbers.Number = Fraction(1, 2), **kwargs)[source]

The majority matrix.

Parameters: args – Cf. parent class. converter (ConverterBallot) – Default: `ConverterBallotToOrder`. matrix_weighted_majority (Matrix.) – Algorithm used to compute the weighted majority matrix W. Default: `MatrixWeightedMajority`. greater (Number) – Value used when W(c, d) > W(d, c). lower (Number) – Value used when W(c, d) < W(d, c). equal (Number) – Value used when W(c, d) = W(d, c) (except for diagonal coefficients). diagonal (Number) – Value used for the diagonal coefficients. kwargs – Cf. parent class.

Examples

First, we compute a matrix W with the algorithm given in the parameter `matrix_weighted_majority`. Then for each pair of candidates (c, d), the coefficient of the majority matrix is set to `greater`, `lower`, `equal` or `diagonal`, depending on the values of W(c, d) and W(d, c).

```>>> MatrixMajority(ballots=['a > b ~ c', 'b > a > c', 'c > a > b']).as_array_
array([[Fraction(1, 2), 1, 1],
[0, Fraction(1, 2), Fraction(1, 2)],
[0, Fraction(1, 2), Fraction(1, 2)]], dtype=object)
```

Using the options:

```>>> MatrixMajority(ballots=['a > b ~ c', 'b > a > c', 'c > a > b'], equal=0, diagonal=0).as_array_
array([[0, 1, 1],
[0, 0, 0],
[0, 0, 0]])
```
`as_array_`

The matrix, as a numpy array. Each row and each column corresponds to a candidate (in the order of `candidates_as_list_`).

Type: Array
`as_array_of_floats_`

The matrix, as a numpy array. It is the same as `as_array_`, but converted to floats.

Type: Array
`matrix_weighted_majority_`

The weighted majority matrix (upon which the computation of the majority matrix is based), once computed with the given profile.

Type: Matrix