Next: , Previous: DIM, Up: Intrinsic Procedures

### 8.66 `DOT_PRODUCT` — Dot product function

Description:
`DOT_PRODUCT(VECTOR_A, VECTOR_B)` computes the dot product multiplication of two vectors VECTOR_A and VECTOR_B. The two vectors may be either numeric or logical and must be arrays of rank one and of equal size. If the vectors are `INTEGER` or `REAL`, the result is `SUM(VECTOR_A*VECTOR_B)`. If the vectors are `COMPLEX`, the result is `SUM(CONJG(VECTOR_A)*VECTOR_B)`. If the vectors are `LOGICAL`, the result is `ANY(VECTOR_A .AND. VECTOR_B)`.
Standard:
Fortran 95 and later
Class:
Transformational function
Syntax:
`RESULT = DOT_PRODUCT(VECTOR_A, VECTOR_B)`
Arguments:

 VECTOR_A The type shall be numeric or `LOGICAL`, rank 1. VECTOR_B The type shall be numeric if VECTOR_A is of numeric type or `LOGICAL` if VECTOR_A is of type `LOGICAL`. VECTOR_B shall be a rank-one array.

Return value:
If the arguments are numeric, the return value is a scalar of numeric type, `INTEGER`, `REAL`, or `COMPLEX`. If the arguments are `LOGICAL`, the return value is `.TRUE.` or `.FALSE.`.
Example:
```          program test_dot_prod
integer, dimension(3) :: a, b
a = (/ 1, 2, 3 /)
b = (/ 4, 5, 6 /)
print '(3i3)', a
print *
print '(3i3)', b
print *
print *, dot_product(a,b)
end program test_dot_prod
```