2010-08-03 15 views
15

In boost::numeric::ublas, ci sono three sparse vector types.Quali sono le differenze tra i vari vettori sparse ublas sparse?

Vedo che il mapped_vector è essenzialmente un stl::map dall'indice al valore, che considera tutti i valori non trovati da 0 (o qualunque sia il valore comune).

Ma la documentazione è scarsa (ha ha) sulle informazioni su compressed_vector e coordinate_vector.

Qualcuno è in grado di chiarire? Sto cercando di capire la complessità algoritmica dell'aggiunta di elementi ai vari vettori e anche di prodotti di punti tra due di questi vettori.

Una risposta molto utile ha offerto che compressed_vector è molto simile a compressed_matrix. Ma sembra che, ad esempio, compressed row storage è solo per la memorizzazione di matrici - non solo vettori.

Vedo che unbounded_array è il tipo di archiviazione, ma non sono del tutto sicuro di quale sia la specifica anche per quello. Se creo un file compresso con dimensioni 200.000.000, ma con solo 5 posizioni diverse da zero, è meno efficiente in alcun modo rispetto alla creazione di un file compresso con dimensioni 10 e 5 posizioni diverse da zero?

Grazie mille!

risposta

4

sostituire matrice con il vettore e avere le risposte

http://www.guwi17.de/ublas/matrix_sparse_usage.html

+0

Molte grazie! Questo è proprio quello di cui avevo bisogno. –

+0

@mohawkjohn per il prodotto che probabilmente vuoi compresso_vettore – Anycorn

+0

Ok, quindi non risponde completamente alla mia domanda. Ad esempio, compressed_matrix viene memorizzata utilizzando l'archiviazione di righe compresse. Ma il file compressed_vector non può essere archiviato in quel modo, vero? –

Problemi correlati