HP MLIB User's Guide Vol. 1 7th Ed.
Chapter 2 Basic Vector Operations 87
Dot product SDOT/DDOT/CDOTC/CDOTU/ZDOTC/ZDOTU
Fortran
Equivalent
REAL*4 FUNCTION SDOT (N, X,INCX, Y,INCY)
REAL*4 X(*),Y(*)
SDOT = 0.0
IF ( N .LE. 0 ) RETURN
IX = 1
IY = 1
IF ( INCX .LT. 0 ) IX = 1 - (N-1) * INCX
IF ( INCY .LT. 0 ) IY = 1 - (N-1) * INCY
DO 10 I = 1, N
SDOT = SDOT + X(IX) * Y(IY)
IX = IX + INCX
IY = IY + INCY
10 CONTINUE
RETURN
END
Example 1 Compute the REAL*8 dot product
where x and y are vectors 10 elements long stored in one-dimensional arrays X
and Y of dimension 20.
INTEGER*4 N,INCX,INCY
REAL*8 S,DDOT,X(20),Y(20)
N = 10
INCX = 1
INCY = 1
S = DDOT (N,X,INCX,Y,INCY)
Example 2 Compute the REAL*8 dot product
where x is the 4th row of a 10-by-10 matrix stored in a two-dimensional array X
of dimension 20-by-21, and y is a vector 10 elements long stored in
one-dimensional array Y of dimension 20.
INTEGER*4 N
REAL*8 S,DDOT,X(20,21),Y(20)
N = 10
S = DDOT (N,X(4,1),20,Y,1)
sx
i
y
i
i 1=
10
∑
=
sx
i
y
i
i 1=
10
∑
=