Sub Ex_Dormqr()
Const M = 3, N = 3, K = N
Dim A(M - 1, N - 1) As Double, Tau(N - 1) As Double, Info As Long
Dim R(M - 1, N - 1) As Double, I As Long, J As Long
A(0, 0) = 0.2: A(0, 1) = -0.11: A(0, 2) = -0.93
A(1, 0) = -0.32: A(1, 1) = 0.81: A(1, 2) = 0.37
A(2, 0) = -0.8: A(2, 1) = -0.92: A(2, 2) = -0.29
'-- Compute QR factorization of A
Call Dgeqrf(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 R(0, 0), R(0, 1), R(0, 2)
Debug.Print R(1, 0), R(1, 1), R(1, 2)
Debug.Print R(2, 0), R(2, 1), R(2, 2)
Debug.Print "Info =", Info
'-- Compute Q*R
Call Dormqr("L", "N", M, N, K, A(), Tau(), R(), Info)
Debug.Print "Q*R ="
Debug.Print R(0, 0), R(0, 1), R(0, 2)
Debug.Print R(1, 0), R(1, 1), R(1, 2)
Debug.Print R(2, 0), R(2, 1), R(2, 2)
Debug.Print "Info =", Info
End Sub