# ?dotui

Computes the dot product of a compressed sparse complex vector by a full-storage complex vector.

## Syntax

FORTRAN 77:

res = cdotui(nz, x, indx, y )

res = zdotui(n z, x, indx, y )

Fortran 95:

res = dotui(x, indx, y)

## Description

The ?dotui functions return the dot product of x and y defined as
`res = x(1)*y(indx(1)) + x(2)*y(indx(2)) +...+ x(nz)*y(indx(nz))`

where the triple (nz, x, indx) defines a sparse complex vector stored in compressed form, and y is a real vector in full storage form. The functions reference only the elements of y whose indices are listed in the array indx. The values in indx must be distinct.

## Input Parameters

nz

  INTEGER. The number of elements in x and indx .

x

  COMPLEX for cdotui

  DOUBLE COMPLEX for zdotui

  Array, DIMENSION at least nz.

indx

  INTEGER. Specifies the indices for the elements of x.

  Array, DIMENSION at least nz.

y

  COMPLEX for cdotui

  DOUBLE COMPLEX for zdotui

  Array, DIMENSION at least max(indx(i)).

## Output Parameters

res

  COMPLEX for cdotui

  DOUBLE COMPLEX for zdotui

  Contains the dot product of x and y, if nz is positive. Otherwise, res contains `0`.

## Fortran 95 Interface Notes

Routines in Fortran 95 interface have fewer arguments in the calling sequence than their FORTRAN 77 counterparts. For general conventions applied to skip redundant or reconstructible arguments, see Fortran 95 Interface Conventions.

Specific details for the routine dotui interface are the following:

x

  Holds the vector of length (nz).

indx

  Holds the vector of length (nz).

y

  Holds the vector of length (nz).

Parent topic: Sparse BLAS Level 1 Routines