{Y} = {Z} - [A]{X}, IACCUM = -1,
{Y} = [A]{X}, IACCUM = 0, (default)
{Y} = {Z} + [A]{X}, IACCUM = +1,
CALL RSDMVM (LUA, LUX, LUY, NUMVEC, LUZ)
CALL RNDMVM (LUA, LUX, LUY, NUMVEC, LUZ)
CALL CHDMVM (LUA, LUX, LUY, NUMVEC, LUZ)
CALL CSDMVM (LUA, LUX, LUY, NUMVEC, LUZ)
CALL CNDMVM (LUA, LUX, LUY, NUMVEC, LUZ)
| Parameter | Description |
|---|---|
| IACCUM | Product accumulation flag
= -1, {Y} = {Z} - {X}T[F],
= 0, {Y} = {X}T[F], (default)
= +1, {Y} = {Z} - {X}T[F],
|
| IPRMV | Matrix-vectors multiply print code |
The calculation proceeds in two steps. First, the {X} vectors are scaled by the diagonals on file LUA(2) to obtain the following:
{Y} = [D]{X}
For symmetric problems, the second step consists of computing the following:
{Y} = {Y} + [AL]{X} + [AL] T {X}
while for nonsymmetric problems the following two calculations are performed:
{Y} = {Y} + [AL]{X}
{Y} = {Y} + [AU]{X}
The matrix-vectors calculation can be used to check the solution of the system of equations
[A]{X} = {B}
or as the first step in projecting a matrix [A] into a subspace [A*],
[A*] = {X} T [A]{X}
The data structures used are designed to obtain maximum performance when several {X} vectors are processed in parallel.