Contents


NAME

     ddoti - Compute the indexed dot product.

SYNOPSIS

      DOUBLE PRECISION FUNCTION DDOTI(NZ, X, INDX, Y)

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

      DOUBLE PRECISION FUNCTION DDOTI_64(NZ, X, INDX, Y)

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

     F95 INTERFACE
      DOUBLE PRECISION FUNCTION DOTI([NZ], X, INDX, Y)

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

      DOUBLE PRECISION FUNCTION DOTI_64([NZ], X, INDX, Y)

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

PURPOSE

     DDOTI Compute the indexed dot product of a real sparse
     vector x stored in compressed form with a real vector y in
     full storage form.

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

ARGUMENTS

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

     X (input)
             Vector in compressed form.  Unchanged on exit.

     INDX (input)
             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 (input)
             Vector in full storage form.  Only the elements
             corresponding to the indices in INDX will be
             accessed.