2017-05-16 3 views
0

J'essaie de comprendre l'utilisation de la mémoire de mon programme qui utilise EIGEN, et il y a une partie liée à EIGEN que je ne comprends pas.Eigen vide utilisation de la mémoire de matrice vide

Je crée un SparseMatrix<short,RowMajor>(2,3), vide, et le coût de ce est 12 octets. Les index interne et externe sont int.

Je m'attendais à 8 octets et je ne comprends pas pourquoi je suis 1 entier inférieur au coût effectif. Voici mon calcul:

Cost of non zeroes values = 0 bytes 
Cost of inner index = 0 bytes 
Cost of outer index = 2 rows * 4 bytes = 8 bytes 
Total cost = 8 bytes 

Je suppose que mon erreur est sur le coût de l'indice interne, mais je ne comprends pas pourquoi? La matrice entière est vide donc le tableau interne devrait être vide aussi?

Merci d'avance.

Répondre

0

Regardez there, les tampons d'index externes ont une entrée supplémentaire pour stocker la position de fin de la dernière ligne.