Sub Ex_Dspgv()
Const N = 3
Dim Ap(N * (N + 1) / 2) As Double, Bp(N * (N + 1) / 2) As Double
Dim W(N - 1) As Double, Z(N - 1, N - 1) As Double
Dim Info As Long
Ap(0) = 0.54
Ap(1) = -0.9: Ap(3) = 0.7
Ap(2) = -0.94: Ap(4) = 1.04: Ap(5) = 1.65
Bp(0) = 1.18
Bp(1) = 0.54: Bp(3) = 0.6
Bp(2) = -1.22: Bp(4) = -0.71: Bp(5) = 1.66
Call Dspgv(1, "V", "L", N, Ap(), Bp(), W(), Z(), Info)
Debug.Print "Eigenvalues =", W(0), W(1), W(2)
Debug.Print "Eigenvectors ="
Debug.Print Z(0, 0), Z(0, 1), Z(0, 2)
Debug.Print Z(1, 0), Z(1, 1), Z(1, 2)
Debug.Print Z(2, 0), Z(2, 1), Z(2, 2)
Debug.Print "Info =", Info
End Sub