Loading...
Searching...
No Matches

## claesy()

subroutine claesy | ( | complex | a,
|  | complex | b,
|  | complex | c,
|  | complex | rt1,
|  | complex | rt2,
|  | complex | evscal,
|  | complex | cs1,
|  | complex | sn1 )

CLAESY computes the eigenvalues and eigenvectors of a 2-by-2 complex symmetric matrix.

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

Purpose:

      !>
      !> CLAESY computes the eigendecomposition of a 2-by-2 symmetric matrix
      !>    ( ( A, B );( B, C ) )
      !> provided the norm of the matrix of eigenvectors is larger than
      !> some threshold value.
      !>
      !> RT1 is the eigenvalue of larger absolute value, and RT2 of
      !> smaller absolute value.  If the eigenvectors are computed, then
      !> on return ( CS1, SN1 ) is the unit eigenvector for RT1, hence
      !>
      !> [  CS1     SN1   ] . [ A  B ] . [ CS1    -SN1   ] = [ RT1  0  ]
      !> [ -SN1     CS1   ]   [ B  C ]   [ SN1     CS1   ]   [  0  RT2 ]
      !>

Parameters

  [in]

  A

      !>          A is COMPLEX
      !>          The ( 1, 1 ) element of input matrix.
      !>

  [in]

  B

      !>          B is COMPLEX
      !>          The ( 1, 2 ) element of input matrix.  The ( 2, 1 ) element
      !>          is also given by B, since the 2-by-2 matrix is symmetric.
      !>

  [in]

  C

      !>          C is COMPLEX
      !>          The ( 2, 2 ) element of input matrix.
      !>

  [out]

  RT1

      !>          RT1 is COMPLEX
      !>          The eigenvalue of larger modulus.
      !>

  [out]

  RT2

      !>          RT2 is COMPLEX
      !>          The eigenvalue of smaller modulus.
      !>

  [out]

  EVSCAL

      !>          EVSCAL is COMPLEX
      !>          The complex value by which the eigenvector matrix was scaled
      !>          to make it orthonormal.  If EVSCAL is zero, the eigenvectors
      !>          were not computed.  This means one of two things:  the 2-by-2
      !>          matrix could not be diagonalized, or the norm of the matrix
      !>          of eigenvectors before scaling was larger than the threshold
      !>          value THRESH (set below).
      !>

  [out]

  CS1

      !>          CS1 is COMPLEX
      !>

  [out]

  SN1

      !>          SN1 is COMPLEX
      !>          If EVSCAL .NE. 0,  ( CS1, SN1 ) is the unit right eigenvector
      !>          for RT1.
      !>

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