Algorithm 923
Algorithm 923: efficient numerical computation of the Pfaffian for dense and banded skew-symmetric matrices. Computing the Pfaffian of a skew-symmetric matrix is a problem that arises in various fields of physics. Both computing the Pfaffian and a related problem, computing the canonical form of a skew-symmetric matrix under unitary congruence, can be solved easily once the skew-symmetric matrix has been reduced to skew-symmetric tridiagonal form. We develop efficient numerical methods for computing this tridiagonal form based on Gaussian elimination, using a skew-symmetric, blocked form of the Parlett-Reid algorithm, or based on unitary transformations, using block Householder transformations and Givens rotations, that are applicable to dense and banded matrices, respectively. We also give a complete and fully optimized implementation of these algorithms in Fortran (including a C interface), and also provide Python, Matlab and Mathematica implementations for convenience. Finally, we apply these methods to compute the topological charge of a class D nanowire, and show numerically the equivalence of definitions based on the Hamiltonian and the scattering matrix.
Keywords for this software
References in zbMATH (referenced in 6 articles )
Showing results 1 to 6 of 6.
Sorted by year (- Bär, Christian: The Faddeev-LeVerrier algorithm and the Pfaffian (2021)
- Bianchi, L.; Forini, V.; Leder, B.; Töpfer, P.; Vescovi, E.: New linearization and reweighting for simulations of string sigma-model on the lattice (2020)
- Chételat, Didier; Narayanan, Rajendran; Wells, Martin T.: On the domain of attraction of a Tracy-Widom law with applications to testing multiple largest roots (2018)
- Schaich, David; DeGrand, Thomas: Parallel software for lattice (\mathcalN= 4) supersymmetric Yang-Mills theory (2015)
- Loring, Terry A.: Computing a logarithm of a unitary matrix with general spectrum. (2014)
- Wimmer, M.: Algorithm 923: Efficient numerical computation of the Pfaffian for dense and banded skew-symmetric matrices (2012)