Previous: chpr Up: ../lapack-blas.html Next: csymm


chpr2


 NAME
      CHPR2 - perform the hermitian rank 2 operation   A :=
      alpha*x*conjg( y' ) + conjg( alpha )*y*conjg( x' ) + A,

 SYNOPSIS
      SUBROUTINE CHPR2 ( UPLO, N, ALPHA, X, INCX, Y, INCY, AP )

          COMPLEX      ALPHA

          INTEGER      INCX, INCY, N

          CHARACTER*1  UPLO

          COMPLEX      AP( * ), X( * ), Y( * )

 PURPOSE
      CHPR2  performs the hermitian rank 2 operation

      where alpha is a scalar, x and y are n element vectors and A
      is an n by n hermitian matrix, supplied in packed form.

 PARAMETERS
      UPLO   - CHARACTER*1.
             On entry, UPLO specifies whether the upper or lower
             triangular part of the matrix A is supplied in the
             packed array AP as follows:

             UPLO = 'U' or 'u'   The upper triangular part of A is
             supplied in AP.

             UPLO = 'L' or 'l'   The lower triangular part of A is
             supplied in AP.

             Unchanged on exit.

      N      - INTEGER.
             On entry, N specifies the order of the matrix A.  N
             must be at least zero.  Unchanged on exit.

      ALPHA  - COMPLEX         .
             On entry, ALPHA specifies the scalar alpha.
             Unchanged on exit.

      X      - COMPLEX          array of dimension at least
             ( 1 + ( n - 1 )*abs( INCX ) ).  Before entry, the
             incremented array X must contain the n element vector
             x.  Unchanged on exit.

      INCX   - INTEGER.
             On entry, INCX specifies the increment for the ele-
             ments of X. INCX must not be zero.  Unchanged on

             exit.

      Y      - COMPLEX          array of dimension at least
             ( 1 + ( n - 1 )*abs( INCY ) ).  Before entry, the
             incremented array Y must contain the n element vector
             y.  Unchanged on exit.

      INCY   - INTEGER.
             On entry, INCY specifies the increment for the ele-
             ments of Y. INCY must not be zero.  Unchanged on
             exit.

      AP     - COMPLEX          array of DIMENSION at least
             ( ( n*( n + 1 ) )/2 ).  Before entry with  UPLO = 'U'
             or 'u', the array AP must contain the upper triangu-
             lar part of the hermitian matrix packed sequentially,
             column by column, so that AP( 1 ) contains a( 1, 1 ),
             AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 )
             respectively, and so on. On exit, the array AP is
             overwritten by the upper triangular part of the
             updated matrix.  Before entry with UPLO = 'L' or 'l',
             the array AP must contain the lower triangular part
             of the hermitian matrix packed sequentially, column
             by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2
             ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respec-
             tively, and so on. On exit, the array AP is overwrit-
             ten by the lower triangular part of the updated
             matrix.  Note that the imaginary parts of the diago-
             nal elements need not be set, they are assumed to be
             zero, and on exit they are set to zero.

             Level 2 Blas routine.

             -- Written on 22-October-1986.  Jack Dongarra,
             Argonne National Lab.  Jeremy Du Croz, Nag Central
             Office.  Sven Hammarling, Nag Central Office.
             Richard Hanson, Sandia National Labs.
 NAME

 SYNOPSIS

 rou-
 tine
 cscal(n,ca,cx,incx)
 sub-
     c                          scales
                                a
                                vec-
                                tor
                                by
                                a
                                con-
                                stant.
     c                          jack
                                dongarra,
                                lin-
                                pack,
                                3/11/78.
     c                          modified
                                to
                                correct
                                prob-
                                lem
                                with
                                nega-
                                tive
                                incre-
                                ment,
                                8/21/90.
 plex
     com-                       ca,cx(1)
     integer                    i,incx,ix,n
     if(n.le.0)return
     if(incx.eq.1)go            to
                                20
     c                          code
                                for
                                incre-
                                ment
                                not
                                equal
                                to
                                1
     ix                         =
                                1
     if(incx.lt.0)ix            =
                                (-
                                n+1)*incx
                                +
                                1
     do                         10
                                i
                                =
                                1,n
     cx(ix)                     =
                                ca*cx(ix)
     ix                         =
                                ix
                                +
                                incx
     10                         con-
                                tinue
     return
     c                          code
                                for
                                incre-
                                ment
                                equal
                                to
                                1
     20                         do
                                30
                                i
                                =
                                1,n
     cx(i)                      =
                                ca*cx(i)
     30                         con-
                                tinue
     return
     end
 PUR-
 POSE