| 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 | 
 ,
, ,
, are the complex conjugates of 
 xij,ujk,yj , respectively.
  
are the complex conjugates of 
 xij,ujk,yj , respectively.
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:
