Terry A. Loring

Document Type


Publication Date



We analyze an algorithm for computing a skew-Hermitian logarithm of a unitary matrix, and also skew-Hermitian approximate logarithms for nearly unitary matrices. This algorithm is very easy to implement using standard software and it works well even for unitary matrices with no spectral conditions assumed. Certain examples, with many eigenvalues near -1, lead to very non-Hermitian output for other basic methods of calculating matrix logarithms. Altering the output of these algorithms to force an Hermitian output creates accuracy issues which are avoided by the considered algorithm. A modification is introduced to deal properly with the J-skew symmetric unitary matrices. Applications to numerical studies of topological insulators in two symmetry classes are discussed.


The Matlab files stored here were used to create the test data in "Computing a logarithm of a unitary matrix with general spectrum" which is expected to be published, pending minor revision, by Numerical Linear Algebra with Application. These were run under Matlab R2103b. The files here are: testLogs.m testLogsDual.m PVL.m dual.m logTable.m logTableDual.m logTableEasy.m testEasyLogs.m Tables I and II were produced using logTable(1,'table1-2'). Table III was produced using logTable(2,'table3'). Table IV was produced using logTable(3,'table4'). Table V was produced using logTableEasy('table5'). Tables VI and VII were produced using logTableDual(1,'table6-7'). Table VIII was produced using logTableDual(2,'table8'). Table IX was produced using logTableDual(3,'table9').