Loading...
Searching...
No Matches

## dorbdb5()

subroutine dorbdb5 | ( | integer | m1,
|  | integer | m2,
|  | integer | n,
|  | double precision, dimension(*) | x1,
|  | integer | incx1,
|  | double precision, dimension(*) | x2,
|  | integer | incx2,
|  | double precision, dimension(ldq1,*) | q1,
|  | integer | ldq1,
|  | double precision, dimension(ldq2,*) | q2,
|  | integer | ldq2,
|  | double precision, dimension(*) | work,
|  | integer | lwork,
|  | integer | info )

DORBDB5

Download DORBDB5 + dependencies [TGZ] [ZIP] [TXT]

Purpose:

      !>
      !> DORBDB5 orthogonalizes the column vector
      !>      X = [ X1 ]
      !>          [ X2 ]
      !> with respect to the columns of
      !>      Q = [ Q1 ] .
      !>          [ Q2 ]
      !> The columns of Q must be orthonormal.
      !>
      !> If the projection is zero according to Kahan's
      !> criterion, then some other vector from the orthogonal complement
      !> is returned. This vector is chosen in an arbitrary but deterministic
      !> way.
      !>
      !>

Parameters

  [in]

  M1

      !>          M1 is INTEGER
      !>           The dimension of X1 and the number of rows in Q1. 0 <= M1.
      !>

  [in]

  M2

      !>          M2 is INTEGER
      !>           The dimension of X2 and the number of rows in Q2. 0 <= M2.
      !>

  [in]

  N

      !>          N is INTEGER
      !>           The number of columns in Q1 and Q2. 0 <= N.
      !>

  [in,out]

  X1

      !>          X1 is DOUBLE PRECISION array, dimension (M1)
      !>           On entry, the top part of the vector to be orthogonalized.
      !>           On exit, the top part of the projected vector.
      !>

  [in]

  INCX1

      !>          INCX1 is INTEGER
      !>           Increment for entries of X1.
      !>

  [in,out]

  X2

      !>          X2 is DOUBLE PRECISION array, dimension (M2)
      !>           On entry, the bottom part of the vector to be
      !>           orthogonalized. On exit, the bottom part of the projected
      !>           vector.
      !>

  [in]

  INCX2

      !>          INCX2 is INTEGER
      !>           Increment for entries of X2.
      !>

  [in]

  Q1

      !>          Q1 is DOUBLE PRECISION array, dimension (LDQ1, N)
      !>           The top part of the orthonormal basis matrix.
      !>

  [in]

  LDQ1

      !>          LDQ1 is INTEGER
      !>           The leading dimension of Q1. LDQ1 >= M1.
      !>

  [in]

  Q2

      !>          Q2 is DOUBLE PRECISION array, dimension (LDQ2, N)
      !>           The bottom part of the orthonormal basis matrix.
      !>

  [in]

  LDQ2

      !>          LDQ2 is INTEGER
      !>           The leading dimension of Q2. LDQ2 >= M2.
      !>

  [out]

  WORK

      !>          WORK is DOUBLE PRECISION array, dimension (LWORK)
      !>

  [in]

  LWORK

      !>          LWORK is INTEGER
      !>           The dimension of the array WORK. LWORK >= N.
      !>

  [out]

  INFO

      !>          INFO is INTEGER
      !>           = 0:  successful exit.
      !>           < 0:  if INFO = -i, the i-th argument had an illegal value.
      !>

Author
  Univ. of Tennessee
  Univ. of California Berkeley
  Univ. of Colorado Denver
  NAG Ltd.