CXML

SLAEV2 (3lapack)


SYNOPSIS

  SUBROUTINE SLAEV2( A, B, C, RT1, RT2, CS1, SN1 )

      REAL           A, B, C, CS1, RT1, RT2, SN1

PURPOSE

  SLAEV2 computes the eigendecomposition of a 2-by-2 symmetric matrix
     [  A   B  ]
     [  B   C  ].  On return, RT1 is the eigenvalue of larger absolute value,
  RT2 is the eigenvalue of smaller absolute value, and (CS1,SN1) is the unit
  right eigenvector for RT1, giving the decomposition

     [ CS1  SN1 ] [  A   B  ] [ CS1 -SN1 ]  =  [ RT1  0  ]
     [-SN1  CS1 ] [  B   C  ] [ SN1  CS1 ]     [  0  RT2 ].

ARGUMENTS

  A       (input) REAL
          The (1,1) element of the 2-by-2 matrix.

  B       (input) REAL
          The (1,2) element and the conjugate of the (2,1) element of the 2-
          by-2 matrix.

  C       (input) REAL
          The (2,2) element of the 2-by-2 matrix.

  RT1     (output) REAL
          The eigenvalue of larger absolute value.

  RT2     (output) REAL
          The eigenvalue of smaller absolute value.

  CS1     (output) REAL
          SN1     (output) REAL The vector (CS1, SN1) is a unit right
          eigenvector for RT1.

FURTHER DETAILS

  RT1 is accurate to a few ulps barring over/underflow.

  RT2 may be inaccurate if there is massive cancellation in the determinant
  A*C-B*B; higher precision or correctly rounded or correctly truncated
  arithmetic would be needed to compute RT2 accurately in all cases.

  CS1 and SN1 are accurate to a few ulps barring over/underflow.

  Overflow is possible only if RT1 is within a factor of 5 of overflow.
  Underflow is harmless if the input data is 0 or exceeds
     underflow_threshold / macheps.

CXML Home Page

Index of CXML Routines