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