[F] = [F] - {X}T{Y}, IACCUM = -1,
[F] = {X}T{Y}, IACCUM = 0, (default)
[F] = [F] + {X}T{Y}, IACCUM = +1,
CALL RSDVVM (LUX, LUY, F, NUMXY)
CALL RNDVVM (LUX, LUY, F, NUMX, NUMY)
CALL CHDVVM (LUX, LUY, F, NUMXY)
CALL CSDVVM (LUX, LUY, F, NUMXY)
CALL CNDVVM (LUX, LUY, F, NUMX, NUMY)
| Parameter | Description |
|---|---|
| IACCUM | Product accumulation flag
= -1, [F] = [F] - {X}T{Y},
= 0, [F] = {X}T{Y}, (default)
= +1, [F] = [F] + {X}T{Y},
|
| IPRVV | Vectors-vectors multiply print code |
For symmetric problems, only the lower triangle is computed. Data is stored in a packed triangular format similar to submatrix type 4 described in the call to FMSOS. The calculation performed is equivalent of the following FORTRAN statements:
L = 0
DO I = 1,NUMXY
DO J = l,I
L = L + 1
F(L) = 0.
DO K = 1,NUMEQ
F(L) = F(L) + X(K,I)*Y(K,J)
END DO
END DO
END DO
In general, the inner products of {X} and
{Y} vectors do not produce a symmetric
matrix [F]. However, if the
{Y} vectors were obtained from the matrix-
vectors multiply operation {Y}=[A]{X} and
[A] is a symmetric matrix, then
[F] is symmetric.
For nonsymmetric problems, [F] may have nonsymmetric values as well as a different number of rows and columns. The storage used for [F] is the standard FORTRAN storage for F(NUMX, NUMY). The calculation performed is equivalent to the following FORTRAN statements:
DO I = 1,NUMX
DO J = 1,NUMY
F(I,J) = 0 .
DO K = 1,NUMEQ
F(I,J) = F(I,J) + X(K,I)*Y(K,J)
END DO
END DO
END DO
This vectors-vectors multiply calculation is frequently used
with the matrix-vectors multiply calculation for computing
quadratic forms and projecting the matrix
[A] into a subspace. The data structure
used provides the maximum speed when several
{X} and {Y} vectors are
processed in parallel.
The array [F] must be aligned on a natural address boundary.