This repository contains routines for the eigenvalue decomposition of real normal matrices. It is associated with the paper :"Mataigne S., Gallivan K., The eigenvalue decomposition of normal matrices by the decomposition of the skew-symmetric part with applications to orthogonal matrices, (2024).
To use this repository, the user must have a Julia installation and have installed the following packages for computations: LinearAlgebra
, SkewLinearAlgebra
. And also the following packages to make the plots: Plots
, Colors
, LaTeXStrings
, Distributions
, BenchmarkTools
. These packages are easily obtained from the package installation environment as follows. In Julia REPL, press ]
to access the installation environment and for each package, do
(@v1.6) pkg> add Name_of_Package
- The folder
src
contains the files:-
normal_schur.jl
contains the main routines to compute the real Schur decomposition of a normal matrix, notablynrmschur(A::AbstractMatrix)
. -
skewlog.jl
contains the routinenrmskewlog(A::AbstractMatrix)
to compute the matrix logarithm of an orthogonal matrix with determinant 1. -
chase_zeros.jl
contains a routine to isolate the zero diagonal entries of an upper bidiagonal matrix, as described in the folderNote on zero chasing
. -
wxeigen.jl
contains routines to obtain the eigenvalue decomposition of a symmetric matrix$A = [W\ -X; X\ W]$ where$W$ is symmetric and$X$ is skew-symmetric.
-
- The folder
benchmark
contains files to perform all experiments presented in the paper. - The folder
figures
contains all figures produced by the files from thebenchmark
folder. - The folder
Note on zero chasing
briefly explains the routines fromchase_zeros.jl
.