gftool.matrix.decompose_hamiltonian

gftool.matrix.decompose_hamiltonian(hamilton) → gftool.matrix.Decomposition[source]

Decompose the Hamiltonian matrix into eigenvalues and eigenvectors.

The similarity transformation:

\[H = U h U^†, \quad h = diag(λ_l)\]
Parameters:
hamilton : (…, N, N) complex np.ndarray

Hermitian matrix to be decomposed

Returns:
Decomposition.rv : (…, N, N) complex np.ndarray

The right eigenvectors \(U\)

Decomposition.h : (…, N) float np.ndarray

The eigenvalues of hamilton

Decomposition.rv_inv : (…, N, N) complex np.ndarray

The inverse of the right eigenvectors \(U^†\). The Hamiltonian is hermitian, thus the decomposition is unitary \(U^† = U ^{-1}\)