Skip to content

MatrixPermanent ​

The permanent: the sum over the permutations s of the product of a(i, s(i)).

✓ checked against that system · ! checked, with disagreements (hover a chip)FindStatSt001260via AlternatingSignMatrix✓
MatrixPermanent(tableau)The permanent: the sum over the permutations s of the product of a(i, s(i)).
Typed signatures
TypePackageApplies
(alternating_sign_matrix) -> numbercombinatoricsalways

Domain: Alternating sign matrix statistics

Details
  • Defined over AlternatingSignMatrix as an expression in _x, evaluated by compute-engine — the definition IS the implementation.
  • Takes a AlternatingSignMatrix and nothing else — it reads values against their positions, or walks the orbits, so it needs the bijection. Applying it to a bare list is a type error, not a wrong answer.
  • FindStat's St001260. Ryser's formula: (-1)^n times the sum over the sets S of columns of (-1)^|S| times the product over the rows of the row's sum over S. The sets are the numbers 0 .. 2^n - 1 read in binary.

Definition

Epsil, as the implementation runs it.

on AlternatingSignMatrix, over _x

0 if Length(_x) < 1 else Apply((cells: list<integer>) => Apply((side: integer) => Sum(Map(Function((-1) ^
                                                                                                   (side +
                                                                                                    Sum(Map(Function((m -
                                                                                                                      m %
                                                                                                                      2 ^
                                                                                                                      (j - 1)) /
                                                                                                                     2 ^
                                                                                                                     (j - 1) %
                                                                                                                     2, j), Range(1, Length(_x))))) *
                                                                                                   Product(Map(
                                                                                                                Function(Sum(Map(Function((m -
                                                                                                                                           m %
                                                                                                                                           2 ^
                                                                                                                                           (j - 1)) /
                                                                                                                                          2 ^
                                                                                                                                          (j - 1) %
                                                                                                                                          2 *
                                                                                                                                          cells[(i - 1) *
                                                                                                                                                side +
                                                                                                                                                j], j), Range(1, Length(_x)))), i),
                                                                                                                Range(1, Length(_x)),
                                                                                                              )), m), Range(0, 2 ^ side -
                                                                                                                  1))), Length(_x)), Flatten(_x))

Examples

Basic #

the alternating sign matrix [[0,1,0],[1,−1,1],[0,1,0]][[0,1,0],[1,-1,1],[0,1,0]]

live ↗
InMatrixPermanent(AlternatingSignMatrix⁡([[0,1,0],[1,−1,1],[0,1,0]]))\mathrm{MatrixPermanent}({\operatorname{AlternatingSignMatrix}}([[0, 1, 0], [1, -1, 1], [0, 1, 0]]))Out00
Properties #

FindStat's value for [[1]]

live ↗
InCombinatorialStat(AlternatingSignMatrix⁡([[1]]),MatrixPermanent)\mathrm{CombinatorialStat}({\operatorname{AlternatingSignMatrix}}([[1]]), \text{MatrixPermanent})Out11

Known value · FindStat St001260

FindStat's value for [[0,1],[1,0]]

live ↗
InCombinatorialStat(AlternatingSignMatrix⁡([[0,1],[1,0]]),MatrixPermanent)\mathrm{CombinatorialStat}({\operatorname{AlternatingSignMatrix}}([[0, 1], [1, 0]]), \text{MatrixPermanent})Out11

Known value · FindStat St001260

FindStat's value for [[1,0],[0,1]]

live ↗
InCombinatorialStat(AlternatingSignMatrix⁡([[1,0],[0,1]]),MatrixPermanent)\mathrm{CombinatorialStat}({\operatorname{AlternatingSignMatrix}}([[1, 0], [0, 1]]), \text{MatrixPermanent})Out11

Known value · FindStat St001260

About
Examples4
CrosswalkFindStat