Concentriamoci sull'implementazione (k,i,j) per poi mostrare le
differenze tra le due; questa volta prendiamo però in esame i due
cicli più interni, quelli eseguiti su
e
; possiamo notare
che quello che andiamo a fare è
per un fissato
, per cui possiamo riscrivere
come
abbiamo così ottenuto un'altra definizione di prodotto matriciale:
costruiamo cioè la matrice
tramite correzioni di rango
.
Guardiamo adesso le differenze tra (k,i,j) e (k,j,i):
- (k,i,j): il ciclo più interno può essere scritto come
dove
è una costante e
e
sono
due vettori riga; dunque questo algoritmo accede alle matrici per riga;
- (k,j,i): in questo caso il ciclo interno si può scrivere
nella forma:
dove
è una costante ed i vettori
ed
sono due vettori colonna; dunque non facciamo altro
che eseguire delle axpy accedendo alle matrici
ed
per
colonna.
Morpheus
2004-01-04