sget22.f - Man Page

TESTING/EIG/sget22.f

Synopsis

Functions/Subroutines

subroutine sget22 (transa, transe, transw, n, a, lda, e, lde, wr, wi, work, result)
SGET22

Function/Subroutine Documentation

subroutine sget22 (character transa, character transe, character transw, integer n, real, dimension( lda, * ) a, integer lda, real, dimension( lde, * ) e, integer lde, real, dimension( * ) wr, real, dimension( * ) wi, real, dimension( * ) work, real, dimension( 2 ) result)

SGET22

Purpose:

 SGET22 does an eigenvector check.

 The basic test is:

    RESULT(1) = | A E  -  E W | / ( |A| |E| ulp )

 using the 1-norm.  It also tests the normalization of E:

    RESULT(2) = max | m-norm(E(j)) - 1 | / ( n ulp )
                 j

 where E(j) is the j-th eigenvector, and m-norm is the max-norm of a
 vector.  If an eigenvector is complex, as determined from WI(j)
 nonzero, then the max-norm of the vector ( er + i*ei ) is the maximum
 of
    |er(1)| + |ei(1)|, ... , |er(n)| + |ei(n)|

 W is a block diagonal matrix, with a 1 by 1 block for each real
 eigenvalue and a 2 by 2 block for each complex conjugate pair.
 If eigenvalues j and j+1 are a complex conjugate pair, so that
 WR(j) = WR(j+1) = wr and WI(j) = - WI(j+1) = wi, then the 2 by 2
 block corresponding to the pair will be:

    (  wr  wi  )
    ( -wi  wr  )

 Such a block multiplying an n by 2 matrix ( ur ui ) on the right
 will be the same as multiplying  ur + i*ui  by  wr + i*wi.

 To handle various schemes for storage of left eigenvectors, there are
 options to use A-transpose instead of A, E-transpose instead of E,
 and/or W-transpose instead of W.
Parameters

TRANSA

          TRANSA is CHARACTER*1
          Specifies whether or not A is transposed.
          = 'N':  No transpose
          = 'T':  Transpose
          = 'C':  Conjugate transpose (= Transpose)

TRANSE

          TRANSE is CHARACTER*1
          Specifies whether or not E is transposed.
          = 'N':  No transpose, eigenvectors are in columns of E
          = 'T':  Transpose, eigenvectors are in rows of E
          = 'C':  Conjugate transpose (= Transpose)

TRANSW

          TRANSW is CHARACTER*1
          Specifies whether or not W is transposed.
          = 'N':  No transpose
          = 'T':  Transpose, use -WI(j) instead of WI(j)
          = 'C':  Conjugate transpose, use -WI(j) instead of WI(j)

N

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

A

          A is REAL array, dimension (LDA,N)
          The matrix whose eigenvectors are in E.

LDA

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

E

          E is REAL array, dimension (LDE,N)
          The matrix of eigenvectors. If TRANSE = 'N', the eigenvectors
          are stored in the columns of E, if TRANSE = 'T' or 'C', the
          eigenvectors are stored in the rows of E.

LDE

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

WR

          WR is REAL array, dimension (N)

WI

          WI is REAL array, dimension (N)

          The real and imaginary parts of the eigenvalues of A.
          Purely real eigenvalues are indicated by WI(j) = 0.
          Complex conjugate pairs are indicated by WR(j)=WR(j+1) and
          WI(j) = - WI(j+1) non-zero; the real part is assumed to be
          stored in the j-th row/column and the imaginary part in
          the (j+1)-th row/column.

WORK

          WORK is REAL array, dimension (N*(N+1))

RESULT

          RESULT is REAL array, dimension (2)
          RESULT(1) = | A E  -  E W | / ( |A| |E| ulp )
          RESULT(2) = max | m-norm(E(j)) - 1 | / ( n ulp )
                       j
Author

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line 166 of file sget22.f.

Author

Generated automatically by Doxygen for LAPACK from the source code.

Referenced By

The man page sget22(3) is an alias of sget22.f(3).

Tue Nov 28 2023 12:08:42 Version 3.12.0 LAPACK