MB04OX

Rank-one update of a Cholesky factorization

[Specification] [Arguments] [Method] [References] [Comments] [Example]

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
  None
Example

Program Text

  None
Program Data
  None
Program Results
  None

Return to Supporting Routines index