Purpose
To perform the QR factorization (U ) = Q*(R), (x') (0) where U and R are n-by-n upper triangular matrices, x is an n element vector and Q is an (n+1)-by-(n+1) orthogonal matrix. U must be supplied in the n-by-n upper triangular part of the array A and this is overwritten by R.Specification
SUBROUTINE MB04OX( N, A, LDA, X, INCX ) C .. Scalar Arguments .. INTEGER INCX, LDA, N C .. Array Arguments .. DOUBLE PRECISION A(LDA,*), X(*)Arguments
Input/Output Parameters
N (input) INTEGER The number of elements of X and the order of the square matrix A. N >= 0. A (input/output) DOUBLE PRECISION array, dimension (LDA,N) On entry, the leading N-by-N upper triangular part of this array must contain the upper triangular matrix U. On exit, the leading N-by-N upper triangular part of this array contains the upper triangular matrix R. The strict lower triangle of A is not referenced. LDA INTEGER The leading dimension of the array A. LDA >= max(1,N). X (input/output) DOUBLE PRECISION array, dimension (1+(N-1)*INCX) On entry, the incremented array X must contain the vector x. On exit, the content of X is changed. INCX (input) INTEGER. Specifies the increment for the elements of X. INCX > 0.Method
The matrix Q is formed as a sequence of plane rotations in planes (1, n+1), (2, n+1), ..., (n, n+1), the rotation in the (j, n+1)th plane, Q(j), being chosen to annihilate the jth element of x.Further Comments
NoneExample
Program Text
NoneProgram Data
NoneProgram Results
None