Totally positive skew-symmetric matrices
In this page, we provide Macaulay2
code to compute the objects appearing in the main results of the paper. We also explain how to use the functions and recreate some of the examples from the article.
In order to run our code you should download the file PositiveSkewSymmetricMatrices.m2
. After loading this file you will have access to the following main functions.
positivityTest
returns the minors of a skew-symmetric matrix as in our positivity test from Definition 1.2.isTotallyPositive
returns whether a skew-symmetric matrix with rational entries is totally positive.totallyPositiveSkewMatrix
given \(n\) , returns a generic totally positive skew-symmetric \(n \times n\) matrix.nonNegativityTest
given a skew-symmetric matrix, it returns the leading terms in the nonnegativity test from Section 4.1.isTotallyNonNegative
returns whether a skew-symmetric matrix with rational entries is totally nonnegative.totallyNonNegativeSkewMatrix
given an integer \(n\) and \(v,w\) two words in the Weyl group of type \(D_n\), it returns a generic totally nonnegative skew-symmetric matrix in \(\mathcal{R}_{v,w}\).nonNegativeRichardsonCell
given a totally nonnegative skew-symmetric matrix \(A\) , it returns the permutations \(v,w\) such that \(A \in \mathcal{R}_{v,w}\).Pfaffians
returns all the Pfaffians of a skew-symmetric matrix.
We now illustrate how to use some of these functions to recreate the examples in the paper.
Minors in positivity test
To compute the minors in our positivity test for \(n=4\) as in Example 1.3 you can use the following code.
R = QQ[a12,a13,a14,a23,a24,a34]
M = genericSkewMatrix(R,4)
positivityTest(M)
The output is a list where each minor is given together with its corresponding rows and columns. For example, the first element of the list is outputed \((\{1,2,4\},\{1,2,3\}),a_{12}a_{14}a_{23}-a_{12}a_{13}a_{24}+a_{12}^2a_{34}\).
Generic TP skew matrix
We can recreate Example 2.3 to obtain a generic totally positive skew-symmetric matrix for \(n=4\) and its corresponding \(M_{j,k}\) minors.
A = totallyPositiveSkewMatrix(4)
positivityTest(A)
Matrices from the pinning
The code file provided here also includes a function to compute the pinning of \({\rm SO}(2n)\) from Section 2 of the paper. The following code computes the matrices is Example 2.5
R = QQ[t]
x1 = phi(4,1,1,t,0,1)
x2 = phi(4,2,1,t,0,1)
x3 = phi(4,3,1,t,0,1)
x4 = phi(4,4,1,t,0,1)
Nonnegative skew matrices and Richardson cells
To obtain the results in Examples 4.2 and 5.6 we ran the following snippet of code.
M1=matrix{{0,0,0,2},{0,0,0,0},{0,0,0,-2},{-2,0,2,0}}
isTotallyNonNegative(M1)
M2=matrix{{0,0,0,2},{0,0,1,0},{0,-1,0,2},{-2,0,-2,0}}
isTotallyNonNegative(M2)
In these cases as the nonnegativity test fails the output is the boolean value “false” together with the leading term of the minor for which the test failed with its corresponding rows and columns. For example, for \(M_1\) it outputs (false, \((\{3,4\},\{1,2\}),-16\)).
—
Now, a small modification of the first matrix will help us illustrate how to compute the Richardson cell of a nonnegative skew-symmetric matrix as mentioned in Example 4.26.
M=matrix{{0,0,0,2},{0,0,0,0},{0,0,0,2},{-2,0,-2,0}}
isTotallyNonNegative(M)
nonNegativeRichardsonCell(M)
The output of this computation is the pair of permutations \(v=2134, w=2385\) given in one line notation such that \(M \in \mathcal{R}_{v,w}\).
Project page created: 18/12/2024
Project contributors: Jonathan Boretsky, Veronica Calvo Cortes, and Yassine El Maazouz
Corresponding author of this page: Veronica Calvo Cortes, veronica.calvo@mis.mpg.de.
Software used: Macaulay2 (v1.24.11)
System setup used: MacBook Pro with macOS Sequoia 15.1.1, Processor Apple M3 Pro, Memory 18GB.
License for code of this project page: MIT License (https://spdx.org/licenses/MIT.html)
Last updated: 18/12/2024.