SRC/ssysv_aa_2stage.f(3)

NAME
SRC/ssysv_aa_2stage.f

SYNOPSIS

  Functions/Subroutines
subroutine ssysv_aa_2stage (uplo, n, nrhs, a, lda, tb, ltb, ipiv, ipiv2, b, ldb, work, lwork, info)
SSYSV_AA_2STAGE computes the solution to system of linear equations A * X = B for SY matrices

Function/Subroutine Documentation

  subroutine ssysv_aa_2stage (character uplo, integer n, integer nrhs, real, dimension( lda, * ) a, integer lda, real, dimension( * ) tb, integer ltb, integer, dimension( * ) ipiv, integer, dimension( * ) ipiv2, real, dimension( ldb, * ) b, integer ldb, real, dimension( * ) work, integer lwork, integer info)

SSYSV_AA_2STAGE computes the solution to system of linear equations A * X = B for SY matrices

Purpose:

     SSYSV_AA_2STAGE computes the solution to a real system of
     linear equations
        A * X = B,
     where A is an N-by-N symmetric matrix and X and B are N-by-NRHS
     matrices.
     Aasen's 2-stage algorithm is used to factor A as
        A = U**T * T * U,  if UPLO = 'U', or
        A = L * T * L**T,  if UPLO = 'L',
     where U (or L) is a product of permutation and unit upper (lower)
     triangular matrices, and T is symmetric and band. The matrix T is
     then LU-factored with partial pivoting. The factored form of A
     is then used to solve the system of equations A * X = B.
     This is the blocked version of the algorithm, calling Level 3 BLAS.

Parameters
    UPLO

              UPLO is CHARACTER*1
              = 'U':  Upper triangle of A is stored;
              = 'L':  Lower triangle of A is stored.

    N

              N is INTEGER
              The order of the matrix A.  N >= 0.

    NRHS

              NRHS is INTEGER
              The number of right hand sides, i.e., the number of columns
              of the matrix B.  NRHS >= 0.

    A

              A is REAL array, dimension (LDA,N)
              On entry, the symmetric matrix A.  If UPLO = 'U', the leading
              N-by-N upper triangular part of A contains the upper
              triangular part of the matrix A, and the strictly lower
              triangular part of A is not referenced.  If UPLO = 'L', the
              leading N-by-N lower triangular part of A contains the lower
              triangular part of the matrix A, and the strictly upper
              triangular part of A is not referenced.
              On exit, L is stored below (or above) the subdiagonal blocks,
              when UPLO  is 'L' (or 'U').

    LDA

              LDA is INTEGER
              The leading dimension of the array A.  LDA >= max(1,N).

    TB

              TB is REAL array, dimension (LTB)
              On exit, details of the LU factorization of the band matrix.

    LTB

              LTB is INTEGER
              The size of the array TB. LTB >= 4*N, internally
              used to select NB such that LTB >= (3*NB+1)*N.
              If LTB = -1, then a workspace query is assumed; the
              routine only calculates the optimal size of LTB,
              returns this value as the first entry of TB, and
              no error message related to LTB is issued by XERBLA.

    IPIV

              IPIV is INTEGER array, dimension (N)
              On exit, it contains the details of the interchanges, i.e.,
              the row and column k of A were interchanged with the
              row and column IPIV(k).

    IPIV2

              IPIV2 is INTEGER array, dimension (N)
              On exit, it contains the details of the interchanges, i.e.,
              the row and column k of T were interchanged with the
              row and column IPIV(k).

    B

              B is REAL array, dimension (LDB,NRHS)
              On entry, the right hand side matrix B.
              On exit, the solution matrix X.

    LDB

              LDB is INTEGER
              The leading dimension of the array B.  LDB >= max(1,N).

    WORK

              WORK is REAL workspace of size LWORK

    LWORK

              LWORK is INTEGER
              The size of WORK. LWORK >= N, internally used to select NB
              such that LWORK >= N*NB.
              If LWORK = -1, then a workspace query is assumed; the
              routine only calculates the optimal size of the WORK array,
              returns this value as the first entry of the WORK array, and
              no error message related to LWORK is issued by XERBLA.

    INFO

              INFO is INTEGER
              = 0:  successful exit
              < 0:  if INFO = -i, the i-th argument had an illegal value.
              > 0:  if INFO = i, band LU factorization failed on i-th column

Author
    Univ. of Tennessee

    Univ. of California Berkeley

    Univ. of Colorado Denver

    NAG Ltd.

Definition at line 184 of file ssysv_aa_2stage.f.

Author

Generated automatically by Doxygen for LAPACK from the source code.