Sub Ex_Zunmqr()
Const M = 3, N = 3, K = N
Dim A(M - 1, N - 1) As Complex, Tau(N - 1) As Complex, Info As Long
Dim R(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 Zgeqrf(M, N, A(), Tau(), Info)
For I = 0 To M - 1
For J = I To N - 1
R(I, J) = A(I, J)
Next
Next
Debug.Print "R ="
Debug.Print Creal(R(0, 0)), Cimag(R(0, 0)), Creal(R(0, 1)), Cimag(R(0, 1))
Debug.Print Creal(R(0, 2)), Cimag(R(0, 2))
Debug.Print Creal(R(1, 1)), Cimag(R(1, 1)), Creal(R(1, 2)), Cimag(R(1, 2))
Debug.Print Creal(R(2, 2)), Cimag(R(2, 2))
Debug.Print "Info =", Info
Call Zunmqr("L", "N", M, N, K, A(), Tau(), R(), Info)
Debug.Print "Q*R ="
Debug.Print Creal(R(0, 0)), Cimag(R(0, 0)), Creal(R(0, 1)), Cimag(R(0, 1)), Creal(R(0, 2)), Cimag(R(0, 2))
Debug.Print Creal(R(1, 0)), Cimag(R(1, 0)), Creal(R(1, 1)), Cimag(R(1, 1)), Creal(R(1, 2)), Cimag(R(1, 2))
Debug.Print Creal(R(2, 0)), Cimag(R(2, 0)), Creal(R(2, 1)), Cimag(R(2, 1)), Creal(R(2, 2)), Cimag(R(2, 2))
Debug.Print "Info =", Info
End Sub