Next: , Previous: , Up: Intrinsic Procedures   [Contents][Index]

### 9.87 `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
```