Author(s): H. Lipps | Library: KERNLIB |
Submitter: | Submitted: 18.12.1979 |
Language: Fortran or Assembler or COMPASS | Revised: 15.11.1995 |
These subprograms perform elementary matrix operations.
Structure:
SUBROUTINE and FUNCTION subprograms
User Entry Names:
RMADD, | RMBIL, | RMCPY, | RMDMP, | RMMNA, | RMMNS, | RMMPA, | RMMPS, |
RMMPY, | RMRAN, | RMSCL, | RMSET, | RMSUB, | RMUTL, | RUMNA, | RUMNS, |
RUMPA, | RUMPS, | RUMPY, | |||||
DMADD, | DMBIL, | DMCPY, | DMDMP, | DMMNA, | DMMNS, | DMMPA, | DMMPS, |
DMMPY, | DMRAN, | DMSCL, | DMSET, | DMSUB, | DMUTL, | DUMNA, | DUMNS, |
DUMPA, | DUMPS, | DUMPY, | |||||
CMADD, | CMBIL, | CMCPY, | CMDMP, | CMMNA, | CMMNS, | CMMPA, | CMMPS, |
CMMPY, | CMRAN, | CMSCL, | CMSET, | CMSUB, | CMUTL, | CUMNA, | CUMNS, |
CUMPA, | CUMPS, | CUMPY, | CMMPYC, | CCMMPY, | CUMPYC, | CCUMPY |
Usage:
For t = R (type REAL), t = D (type DOUBLE PRECISION), t = C (type COMPLEX):
CALL tMSET (M,N,S,Z11,Z12,Z21) | zij = s |
CALL tMRAN (M,N,A,B,Z11,Z12,Z21) | zij = random (see Note 2) |
CALL tMCPY (M,N,X11,X12,X21,Z11,Z12,Z21) | zij = xij |
CALL tMUTL (N,X11,X12,X21) | xjk = xkj (j > k) (see Note 3) |
CALL tMSCL (M,N,S,X11,X12,X21,Z11,Z12,Z21) | zij = sxij |
CALL tMDMP (M,N,D1,D2,X11,X12,X21,Z11,Z12,Z21) | zij = dixij |
CALL tMADD (M,N,X11,X12,X21,Y11,Y12,Y21,Z11,Z12,Z21) | zij = xij + yij |
CALL tMSUB (M,N,X11,X12,X21,Y11,Y12,Y21,Z11,Z12,Z21) | zij = xij - yij |
CALL tMMPY (M,N,X11,X12,X21,Y1,Y2,Z1,Z2) | zi = xi1y1 + + xinyn |
CALL tMMPA (M,N,X11,X12,X21,Y1,Y2,Z1,Z2) | zi = xi1y1 + + xinyn + zi |
CALL tMMPS (M,N,X11,X12,X21,Y1,Y2,Z1,Z2) | zi = xi1y1 + + xinyn - zi |
CALL tMMNA (M,N,X11,X12,X21,Y1,Y2,Z1,Z2) | zi = - xi1y1 - - xinyn + zi |
CALL tMMNS (M,N,X11,X12,X21,Y1,Y2,Z1,Z2) | zi = - xi1y1 - - xinyn - zi |
CALL tUMPY (N,U11,U12,U22,Y1,Y2,Z1,Z2) | zj = ujjyj + + ujnyn |
CALL tUMPA (N,U11,U12,U22,Y1,Y2,Z1,Z2) | zj = ujjyj + + ujnyn + zj |
CALL tUMPS (N,U11,U12,U22,Y1,Y2,Z1,Z2) | zj = ujjyj + + ujnyn - zj |
CALL tUMNA (N,U11,U12,U22,Y1,Y2,Z1,Z2) | zj = - ujjyj - - ujnyn + zj |
CALL tUMNS (N,U11,U12,U22,Y1,Y2,Z1,Z2) | zj = - ujjyj - - ujnyn - zj |
F = tMBIL (N,V1,V2,X11,X12,X21,Y1,Y2) | f = vkxkjyj |
CALL CMMPYC(M,N,X11,X12,X21,Y1,Y2,Z1,Z2) | zi = xi1 + + xin |
CALL CCMMPY(M,N,X11,X12,X21,Y1,Y2,Z1,Z2) | zi = yi + + yn |
CALL CUMPYC(N,U11,U12,U22,Y1,Y2,Z1,Z2) | zj = ujj + + ujn |
CALL CCUMPY(N,U11,U12,U22,Y1,Y2,Z1,Z2) | zj = yj + + yn |
Accuracy:
On computers with IBM 370 architecture, all routines that accumulate the inner product of type REAL or COMPLEX use double-precision arithmetic internally; the final result is then rounded to single precision.
Notes: