Matricea rară este reprezentată prin 3 vectori ce conțin informații doar despre elementele sale nenule. A calcula transpusa unei matrice rare înseamnă a interschimba conținutul vectorilor pentru linii cu cel pentru coloane. Subprogramul este:
SUBROUTINE TRARAR(LIN,ICOL,K, IK)
INTEGER AUX
IK=0
IF((K.LE.0).OR.(K.GT.N)) GO TO 20
K1=0
DO 10 I=1,K
AUX=ICOL(I)
ICOL(I)=LIN(I)
LIN(I)= AUX
LIN1(K1)=LIN(I)
ICOL(K1)=ICOL(I)
VAL1(K1)=VAL1(I)
10 CONTINUE
IK=1
20 CONTINUE
RETURN
END
Variabila AUX de tip întreg ajută la efectuarea interschimbului. Aici nu este necesar apelul subprogramului de efectuare a interschimbului elementelor unui vector pentru că s-ar efectua un apel inutil de subprogram, ori așa, am încorporat secvența pur și simplu că nu este lungă și este simplă.
(05 ianuarie 2018)
No comments:
Post a Comment