Trailing-Edge
-
PDP-10 Archives
-
decuslib20-02
-
decus/20-0026/tprd.ssp
There are 2 other files named tprd.ssp in the archive. Click here to see a list.
C TPRD 10
C ..................................................................TPRD 20
C TPRD 30
C SUBROUTINE TPRD TPRD 40
C TPRD 50
C PURPOSE TPRD 60
C TRANSPOSE A MATRIX AND POSTMULTIPLY BY ANOTHER TO FORM TPRD 70
C A RESULTANT MATRIX TPRD 80
C TPRD 90
C USAGE TPRD 100
C CALL TPRD(A,B,R,N,M,MSA,MSB,L) TPRD 110
C TPRD 120
C DESCRIPTION OF PARAMETERS TPRD 130
C A - NAME OF FIRST INPUT MATRIX TPRD 140
C B - NAME OF SECOND INPUT MATRIX TPRD 150
C R - NAME OF OUTPUT MATRIX TPRD 160
C N - NUMBER OF ROWS IN A AND B TPRD 170
C M - NUMBER OF COLUMNS IN A AND ROWS IN R TPRD 180
C MSA - ONE DIGIT NUMBER FOR STORAGE MODE OF MATRIX A TPRD 190
C 0 - GENERAL TPRD 200
C 1 - SYMMETRIC TPRD 210
C 2 - DIAGONAL TPRD 220
C MSB - SAME AS MSA EXCEPT FOR MATRIX B TPRD 230
C L - NUMBER OF COLUMNS IN B AND R TPRD 240
C TPRD 250
C REMARKS TPRD 260
C MATRIX R CANNOT BE IN THE SAME LOCATION AS MATRICES A OR B TPRD 270
C TPRD 280
C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED TPRD 290
C LOC TPRD 300
C TPRD 310
C METHOD TPRD 320
C MATRIX TRANSPOSE OF A IS NOT ACTUALLY CALCULATED. INSTEAD, TPRD 330
C ELEMENTS IN MATRIX A ARE TAKEN COLUMNWISE RATHER THAN TPRD 340
C ROWWISE FOR MULTIPLICATION BY MATRIX B. TPRD 350
C THE FOLLOWING TABLE SHOWS THE STORAGE MODE OF THE OUTPUT TPRD 360
C MATRIX FOR ALL COMBINATIONS OF INPUT MATRICES TPRD 370
C A B R TPRD 380
C GENERAL GENERAL GENERAL TPRD 390
C GENERAL SYMMETRIC GENERAL TPRD 400
C GENERAL DIAGONAL GENERAL TPRD 410
C SYMMETRIC GENERAL GENERAL TPRD 420
C SYMMETRIC SYMMETRIC GENERAL TPRD 430
C SYMMETRIC DIAGONAL GENERAL TPRD 440
C DIAGONAL GENERAL GENERAL TPRD 450
C DIAGONAL SYMMETRIC GENERAL TPRD 460
C DIAGONAL DIAGONAL DIAGONAL TPRD 470
C TPRD 480
C ..................................................................TPRD 490
C TPRD 500
SUBROUTINE TPRD(A,B,R,N,M,MSA,MSB,L) TPRD 510
DIMENSION A(1),B(1),R(1) TPRD 520
C TPRD 530
C SPECIAL CASE FOR DIAGONAL BY DIAGONAL TPRD 540
C TPRD 550
MS=MSA*10+MSB TPRD 560
IF(MS-22) 30,10,30 TPRD 570
10 DO 20 I=1,N TPRD 580
20 R(I)=A(I)*B(I) TPRD 590
RETURN TPRD 600
C TPRD 610
C MULTIPLY TRANSPOSE OF A BY B TPRD 620
C TPRD 630
30 IR=1 TPRD 640
DO 90 K=1,L TPRD 650
DO 90 J=1,M TPRD 660
R(IR)=0.0 TPRD 670
DO 80 I=1,N TPRD 680
IF(MS) 40,60,40 TPRD 690
40 CALL LOC(I,J,IA,N,M,MSA) TPRD 700
CALL LOC(I,K,IB,N,L,MSB) TPRD 710
IF(IA) 50,80,50 TPRD 720
50 IF(IB) 70,80,70 TPRD 730
60 IA=N*(J-1)+I TPRD 740
IB=N*(K-1)+I TPRD 750
70 R(IR)=R(IR)+A(IA)*B(IB) TPRD 760
80 CONTINUE TPRD 770
90 IR=IR+1 TPRD 780
RETURN TPRD 790
END TPRD 800