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.