Sub Ex_Zunmlq()
Const M = 3, N = 3, K = N
Dim A(M - 1, N - 1) As Complex, Tau(N - 1) As Complex, Info As Long
Dim L(M - 1, N - 1) As Complex, I As Long, J As Long
A(0, 0) = Cmplx(0.2, -0.11): A(0, 1) = Cmplx(-0.93, -0.32): A(0, 2) = Cmplx(0.81, 0.37)
A(1, 0) = Cmplx(-0.8, -0.92): A(1, 1) = Cmplx(-0.29, 0.86): A(1, 2) = Cmplx(0.64, 0.51)
A(2, 0) = Cmplx(0.71, 0.59): A(2, 1) = Cmplx(-0.15, 0.19): A(2, 2) = Cmplx(0.2, 0.94)
Call Zgelqf(M, N, A(), Tau(), Info)
For I = 0 To M - 1
For J = 0 To I
L(I, J) = A(I, J)
Next
Next
Debug.Print "L ="
Debug.Print Creal(L(0, 0)), Cimag(L(0, 0))
Debug.Print Creal(L(1, 0)), Cimag(L(1, 0)), Creal(L(1, 1)), Cimag(L(1, 1))
Debug.Print Creal(L(2, 0)), Cimag(L(2, 0)), Creal(L(2, 1)), Cimag(L(2, 1))
Debug.Print Creal(L(2, 2)), Cimag(L(2, 2))
Debug.Print "Info =", Info
Call Zunmlq("R", "N", M, N, K, A(), Tau(), L(), Info)
Debug.Print "L*Q ="
Debug.Print Creal(L(0, 0)), Cimag(L(0, 0)), Creal(L(0, 1)), Cimag(L(0, 1)), Creal(L(0, 2)), Cimag(L(0, 2))
Debug.Print Creal(L(1, 0)), Cimag(L(1, 0)), Creal(L(1, 1)), Cimag(L(1, 1)), Creal(L(1, 2)), Cimag(L(1, 2))
Debug.Print Creal(L(2, 0)), Cimag(L(2, 0)), Creal(L(2, 1)), Cimag(L(2, 1)), Creal(L(2, 2)), Cimag(L(2, 2))
Debug.Print "Info =", Info
End Sub