PURPOSE

Multiply a group of vectors {Y} by the transpose of a group of vectors {X} and store the results in matrix [F] according to the FMS Parameter IACCUM
[F] = [F] - {X}T{Y}, IACCUM = -1,
[F] =       {X}T{Y}, IACCUM =  0, (default)
[F] = [F] + {X}T{Y}, IACCUM = +1,

SYNOPSIS

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)

INPUT PARAMETERS

OUTPUT PARAMETERS:

FMS PARAMETERS:

The following FMS Parameters are especially important to this routine:
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

DESCRIPTION:

This subroutine forms a matrix Fij from the inner products of vectors {X}i and {Y}j . The vector groups {X} and {Y} are supplied on files LUX and LUY. The matrix [F] is formed and left in memory.

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 to 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.