Armadillo About ha scritto:Various matrix decompositions are provided through integration with LAPACK, or one of its high performance drop-in replacements (eg. multi-threaded Intel MKL, or AMD ACML, or OpenBLAS)
Cosi non sarebbe più divertente, se avessi la necessità di fattorizzare matrici; userei matlab, mathematica o armadillo. Ma essendo un gioco...
Io penso, che molto si possa ottenere ottimizzando dal punto di vista dell'architettura di memoria. Per esempio sul mio sandy bridge a tre livelli di cache.
Per fattorizzare una matrice di ordine 10k, se implemento la matrice in un unico vettore di memoria è necessario circa un decimo del tempo di un'implementazione come vettore di vettori.
Il classico
contro
per intenderci.
Questo perche i dati sono molto più localizzati nel primo caso, quindi diminuiscono i cache miss.