{S,D}DOT (n, x, incx, y, incy) DSDOT (n, x, incx, y, incy) {C,Z}DOT{C,U} (n, x, incx, y, incy)
dotpr: real*4 | real*8 | complex*8 | complex*16 The dot product of the two vectors x and y. For real vectors, if n <= 0 , dotpr returns the value 0.0. For complex vectors, if n <= 0 , dotpr returns (0.0, 0.0).
n integer*4 On entry, the number of elements in the vectors x and y. On exit, n is unchanged. X real*4 | real*8 | complex*8 | complex*16 On entry, a one-dimensional array X of length at least (1+(n-1)*|incx|), containing the elements of the vector x. On exit, x is unchanged. incx integer*4 On entry, the increment for the array X. If incx >= 0, vector x is stored forward in the array, so that x(i) is stored in location X(1+(i-1)*incx). If incx < 0, vector x is stored backward in the array, so that x(i) is stored in location X(1+(n-i)*|incx|). On exit, incx is unchanged. y real*4 | real*8 | complex*8 | complex*16 On entry, a one-dimensional array Y of length at least (1+(n-1)*|incx|), containing the elements of the vector y. On exit, y is unchanged. incy integer*4 On entry, the increment for the array Y. If incy >= 0, vector y is stored forward in the array, so that y(i) is stored in location Y(1+(i-1)*incy). If incy < 0, vector y is stored backward in the array, so that y(i) is stored in location Y(1+(n-i)*|incy|). On exit, incy is unchanged.
SDOT, DDOT, and DSDOT compute the dot product of two real vectors. CDOTC and ZDOTC compute the conjugated dot product of two complex vectors. CDOTU and ZDOTU compute the unconjugated dot product of two complex vectors. SDOT, DDOT, DSDOT are functions that compute the dot product of two n- element real vectors, x and y: x dot y = SUM(i=1...n,x(i)y(i)) = x(1)y(1) + x(2)y(2) + ... + x(n)y(n) The order of operations is different from the order in a sequential evaluation of the dot product. The final result can differ from the result of a sequential evaluation. The DSDOT functions returns the value in double-precision. CDOTC and ZDOTC are functions that compute the conjugated dot product of two complex vectors, x and y, that is, the complex conjugate of the first vector is used to compute the dot product. Each element x(j) of the vector x is a complex number and each element y(j) of the vector y is a complex number. The conjugated dot product of two complex vectors, x and y, is expressed as follows: conjugate(x) dot y = SUM(i=1...n,conjugate(x(i))y(i)) = = conjugate(x)(1)y(1) + conjugate(x)(2)y(2) + ... + conjugate(x)(n)y(n) For example, x and y each have two complex elements: x = (1 + i, 2 - i), y = (3 + i, 3 + 2i) The conjugate of vector x is conjugate(x) = (1 - i, 2 + i), and the dot product is conjugate(x) dot y = (1-i)(3+i) + (2+i)(3+2i) = (4-2i) + (4+7i) = (8+5i)) CDOTU and ZDOTU compute the unconjugated dot product of two complex vectors. The unconjugated dot product of two complex vectors, x and y, is expressed as follows: x dot y = SUM(i=1...n,x(i)y(i)) = x(1)y(1) + x(2)y(2) + ... + x(n)y(n) For example, for the same complex vectors x and y: x dot y = (1+i)(2+i) + (2-i)(3+2i) = (1+3i) + (8+i) = 9+4i
INTEGER*4 INCX, INCY REAL*4 X(20), Y(20), DOTPR INCX = 1 INCY = 1 N = 20 DOTPR = SDOT(N,X,INCX,Y,INCY) This FORTRAN code shows how to compute the dot product of two vectors, x and y, and return the result in dotpr. INTEGER*4 INCX, INCY COMPLEX*8 X(20), Y(20), DOTPR INCX = 1 INCY = 1 N = 20 DOTPR = CDOTU(N,X,INCX,Y,INCY) This FORTRAN code shows how to compute the unconjugated dot product of two complex vectors, x and y, and return the result in dotpr.