zlasr(3S)

ZLASR - perform the transformation A := P*A, when SIDE = 'L' or 'l' ( Left-hand side ) A := A*P', when SIDE = 'R' or 'r' ( Right-hand side ) where A is an m by n complex matrix and P is an orthogonal matrix,

As shipped in IRIX 6.5.15. Added in IRIX 6.5.15.

NAME
     ZLASR - perform the transformation  A := P*A, when SIDE = 'L' or 'l' (
     Left-hand side )  A := A*P', when SIDE = 'R' or 'r' ( Right-hand side )
     where A is an m by n complex matrix and P is an orthogonal matrix,

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

         CHARACTER     DIRECT, PIVOT, SIDE

         INTEGER       LDA, M, N

         DOUBLE        PRECISION C( * ), S( * )

         COMPLEX*16    A( LDA, * )

IMPLEMENTATION
     These routines are part of the SCSL Scientific Library and can be loaded
     using either the -lscs or the -lscs_mp option.  The -lscs_mp option
     directs the linker to use the multi-processor version of the library.

     When linking to SCSL with -lscs or -lscs_mp, the default integer size is
     4 bytes (32 bits). Another version of SCSL is available in which integers
     are 8 bytes (64 bits).  This version allows the user access to larger
     memory sizes and helps when porting legacy Cray codes.  It can be loaded
     by using the -lscs_i8 option or the -lscs_i8_mp option. A program may use
     only one of the two versions; 4-byte integer and 8-byte integer library
     calls cannot be mixed.

PURPOSE
     ZLASR performs the transformation A := P*A, when SIDE = 'L' or 'l' (
     Left-hand side ) A := A*P', when SIDE = 'R' or 'r' ( Right-hand side )
     where A is an m by n complex matrix and P is an orthogonal matrix,
     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) DOUBLE PRECISION 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*16 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).

SEE ALSO
     INTRO_LAPACK(3S), INTRO_SCSL(3S)

     This man page is available only online.