On 01/12/2011 03:01 PM, Ralf Denzer wrote:
some guesses (not checked with your code!!)
There are two values for the number of nonzeros in ublas
m.nnz() and m.nnz_capacity().
1. m.nnz_capacity() gives you the size of the array m.value_data().
2. m.nnz() gives you the size of the actually used number of nonzeros.
Thanks for the reply, indeed the nnz_capacity returns 8 for the nnz
count. Explains why I get 8 values in the vectors instead...
But I still did not understand the reasoning in the codes of ublas
where (it seems) there is not a check for the completion of the fill of
the elements of a matrix...
The problem is that I have an assembled stiffness matrix in a FE
application and I wrote a matrix market interface to export matrices to
MATLAB however I iterate over the nonzeros now, which is pretty fast,
however I guess If I understand you right now, I can allocate the
arrays in my code with number of nnz and then assign to them somehow,
not tested though, but many thanks for the explanation. I guess the
best bet is to continue in this direction...