CXML

CLASR (3lapack)


SYNOPSIS

  SUBROUTINE CLASR( SIDE, PIVOT, DIRECT, M, N, C, S, A, LDA )

      CHARACTER     DIRECT, PIVOT, SIDE

      INTEGER       LDA, M, N

      REAL          C( * ), S( * )

      COMPLEX       A( LDA, * )

PURPOSE

  CLASR   performs the transformation consisting of a sequence of plane
  rotations determined by the parameters PIVOT and DIRECT as follows ( z = m
  when SIDE = 'L' or 'l' and z = n when SIDE = 'R' or 'r' ):

  When  DIRECT = 'F' or 'f'  ( Forward sequence ) then

     P = P( z - 1 )*...*P( 2 )*P( 1 ),

  and when DIRECT = 'B' or 'b'  ( Backward sequence ) then

     P = P( 1 )*P( 2 )*...*P( z - 1 ),

  where  P( k ) is a plane rotation matrix for the following planes:

     when  PIVOT = 'V' or 'v'  ( Variable pivot ),
        the plane ( k, k + 1 )

     when  PIVOT = 'T' or 't'  ( Top pivot ),
        the plane ( 1, k + 1 )

     when  PIVOT = 'B' or 'b'  ( Bottom pivot ),
        the plane ( k, z )

  c( k ) and s( k )  must contain the  cosine and sine that define the matrix
  P( k ).  The two by two plane rotation part of the matrix P( k ), R( k ),
  is assumed to be of the form

     R( k ) = (  c( k )  s( k ) ).
              ( -s( k )  c( k ) )

ARGUMENTS

  SIDE    (input) CHARACTER*1
          Specifies whether the plane rotation matrix P is applied to A on
          the left or the right.  = 'L':  Left, compute A := P*A
          = 'R':  Right, compute A:= A*P'

  DIRECT  (input) CHARACTER*1
          Specifies whether P is a forward or backward sequence of plane
          rotations.  = 'F':  Forward, P = P( z - 1 )*...*P( 2 )*P( 1 )
          = 'B':  Backward, P = P( 1 )*P( 2 )*...*P( z - 1 )

  PIVOT   (input) CHARACTER*1
          Specifies the plane for which P(k) is a plane rotation matrix.  =
          'V':  Variable pivot, the plane (k,k+1)
          = 'T':  Top pivot, the plane (1,k+1)
          = 'B':  Bottom pivot, the plane (k,z)

  M       (input) INTEGER
          The number of rows of the matrix A.  If m <= 1, an immediate return
          is effected.

  N       (input) INTEGER
          The number of columns of the matrix A.  If n <= 1, an immediate
          return is effected.

          C, S    (input) REAL arrays, dimension (M-1) if SIDE = 'L' (N-1) if
          SIDE = 'R' c(k) and s(k) contain the cosine and sine that define
          the matrix P(k).  The two by two plane rotation part of the matrix
          P(k), R(k), is assumed to be of the form R( k ) = (  c( k )  s( k )
          ).  ( -s( k )  c( k ) )

  A       (input/output) COMPLEX array, dimension (LDA,N)
          The m by n matrix A.  On exit, A is overwritten by P*A if SIDE =
          'R' or by A*P' if SIDE = 'L'.

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

CXML Home Page

Index of CXML Routines