DOT_PRODUCT
— Dot product function ¶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
, REAL
or UNSIGNED
, 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)
. If one of VECTOR_A
or VECTOR_B is UNSIGNED
, the other one shall also be
UNSIGNED
.
Fortran 90 and later, extension for UNSIGNED
(see Unsigned integers)
Transformational function
RESULT = DOT_PRODUCT(VECTOR_A, VECTOR_B)
VECTOR_A | The type shall be numeric or LOGICAL , rank 1.
If VECTOR_B is UNSIGNED , VECTOR_A shall also be
unsigned. |
VECTOR_B | The type shall if VECTOR_A is of numeric type
or LOGICAL if VECTOR_A is of type LOGICAL . VECTOR_B
shall be a rank-one array. If VECTOR_A is UNSIGNED , VECTOR_B
shall also be unsigned. |
If the arguments are numeric, the return value is a scalar of numeric
type, INTEGER
, REAL
, COMPLEX
or UNSIGNED
.
If the arguments are LOGICAL
, the return value is .TRUE.
or .FALSE.
.
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