## 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