Contents


NAME

     daxpyi - Compute y := alpha * x + y

SYNOPSIS

      SUBROUTINE DAXPYI(NZ, A, X, INDX, Y)

      DOUBLE PRECISION A
      DOUBLE PRECISION X(*), Y(*)
      INTEGER NZ
      INTEGER INDX(*)

      SUBROUTINE DAXPYI_64(NZ, A, X, INDX, Y)

      DOUBLE PRECISION A
      DOUBLE PRECISION X(*), Y(*)
      INTEGER*8 NZ
      INTEGER*8 INDX(*)

     F95 INTERFACE
      SUBROUTINE AXPYI([NZ], [A], X, INDX, Y)

      REAL(8) :: A
      REAL(8), DIMENSION(:) :: X, Y
      INTEGER :: NZ
      INTEGER, DIMENSION(:) :: INDX

      SUBROUTINE AXPYI_64([NZ], [A], X, INDX, Y)

      REAL(8) :: A
      REAL(8), DIMENSION(:) :: X, Y
      INTEGER(8) :: NZ
      INTEGER(8), DIMENSION(:) :: INDX

PURPOSE

     DAXPYI Compute y := alpha * x + y where alpha is a scalar, x
     is a sparse vector, and y is a vector in full storage form

      do i = 1, n
        y(indx(i)) = alpha * x(i) + y(indx(i))
      enddo

ARGUMENTS

     NZ (input) - INTEGER
             Number of elements in the compressed form.
             Unchanged on exit.

     A (input)
             On entry, A(LPHA) specifies the scaling value.
             Unchanged on exit.  A is defaulted to 1.0D0 for F95
             INTERFACE.
     X (input)
             Vector containing the values of the compressed form.
             Unchanged on exit.

     INDX (input) - INTEGER
             Vector containing the indices of the compressed
             form.  It is assumed that the elements in INDX are
             distinct and greater than zero.  Unchanged on exit.

     Y (output)
             Vector on input which contains the vector Y in full
             storage form.  On exit, only the elements
             corresponding to the indices in INDX have been
             modified.