jeudi 18 novembre 2021

Armadillo Sparse Matrix Size in Bytes

I would like to assess how large Armadillo sparse matrices are. The question is related to this answer regarding dense matrices.

Consider the following example:

void some_function(unsigned int matrix_size) {
  arma::sp_mat x(matrix_size, matrix_size);

  // Steps entering some non-zero values

  std::cout << sizeof(x) << std::endl;
}

Unfortunately, sizeof does, as in the dense matrix case, not return the size of the matrix itself, but rather the size of a pointer or some other small object. The size of the sparse matrix should not simply be the number of non-zero elements times the data type's size. Armadillo stores sparse matrices in a compressed format. And on top of the cell values, there should also be a matrix or vectors storing the cell indices. And I guess that the matrix also has a header storing information about the object.

Aucun commentaire:

Enregistrer un commentaire