Sub Ex_Zhegvd()
Const N = 3
Dim A(N - 1, N - 1) As Complex, B(N - 1, N - 1) As Complex, W(N - 1) As Double
Dim Info As Long
A(0, 0) = Cmplx(0.2, 0)
A(1, 0) = Cmplx(-0.11, -0.93): A(1, 1) = Cmplx(-0.32, 0)
A(2, 0) = Cmplx(0.81, 0.37): A(2, 1) = Cmplx(-0.8, -0.92): A(2, 2) = Cmplx(-0.29, 0)
B(0, 0) = Cmplx(2.2, 0)
B(1, 0) = Cmplx(-0.11, -0.93): B(1, 1) = Cmplx(2.32, 0)
B(2, 0) = Cmplx(0.81, 0.37): B(2, 1) = Cmplx(-0.8, -0.92): B(2, 2) = Cmplx(2.29, 0)
Call Zhegvd(1, "V", "L", N, A(), B(), W(), Info)
Debug.Print "Eigenvalues =", W(0), W(1), W(2)
Debug.Print "Eigenvectors ="
Debug.Print Creal(A(0, 0)), Cimag(A(0, 0)), Creal(A(0, 1)), Cimag(A(0, 1))
Debug.Print Creal(A(1, 0)), Cimag(A(1, 0)), Creal(A(1, 1)), Cimag(A(1, 1))
Debug.Print Creal(A(2, 0)), Cimag(A(2, 0)), Creal(A(2, 1)), Cimag(A(2, 1))
Debug.Print Creal(A(0, 2)), Cimag(A(0, 2))
Debug.Print Creal(A(1, 2)), Cimag(A(1, 2))
Debug.Print Creal(A(2, 2)), Cimag(A(2, 2))
Debug.Print "Info =", Info
End Sub