Sto ottimizzando il codice che fa molto affidamento su una libreria Matrix fatta su misura (che non sarà esclusa dal progetto perché è ovunque.Non è bello, ma è un dato di fatto. ..) molti i calcoli sono fatti con matrici di 10-20 righe e colonne, molti calcoli includono una forma quadratica comeAlgoritmo per moltiplicazione di matrice di forme quadratiche con matrice sparsa
C = A*B*A'
mi sono reso conto che spesso una è scarsa e mi piacerebbe fare uso di questo fatto. Quindi sto cercando un algoritmo che gestisca questo caso. La stabilità numerica è importante. C'è qualcosa che posso usare? (Non ho scritto la nostra libreria quindi non so se ci sono delle insidie che dovrei prendere in considerazione?)
Come "il nostro" semplice metodo di moltiplicazione O (n^3) viene eseguito più velocemente di Eigen 3 in la piattaforma di destinazione, poiché ho bisogno di stabilità numerica e le matrici non sono molto grandi, suppongo che l'algoritmo di Strassen e l'algoritmo di Coppersmith-Winograd non siano ciò che sto cercando. Invece è solo la moltiplicazione della forma quadratica in un modo che mi permette di controllare facilmente gli zeri in A.
Grazie per qualsiasi suggerimento!
Mi chiedo solo che hanno votato questo per "vicino"? Trovo questa domanda perfettamente valida e correlata alla programmazione. – nacho4d
Non sono sicuro che otterrete molti benefici dallo sfruttamento della scarsità con matrici così piccole. –