Hi all,

I've been using boost 1.34 ublas library, especially the compressed_matrix class for sparse matrices in

compressed row storage form. But I noticed that simply accessing an element of the matrix (to assign

it a value, for example) slows my application down to unusable levels, for problems of the order of just

80,000 unknowns. I've identified the program is there and yes, I am allocating the memory as I should

be for the matrix, - for example here is a snippet (of important lines):

************************************************************************************

matrix_A = compressed_matrix(nelem_a(), nelem_a(), nonzeros()); // allocation

matrix_A(uic1, uic1) += -trans; // assignment

matrix_A(uic2, uic2) += -trans; // assignment

************************************************************************************

where all variables (and/or functions), e.g. uic1, uic2, trans, neleme_a(), nonzeros(), etc.. are all well-defined

(this is all been checked thoroughly). Commenting out the two assignment statements for example reduced

my overall run time from 110 seconds to 0 (practically zero), for 80000 runs. Has anyone encountered this

problem and know of a solution? I've heard a lot of stories about how boost::ublas is just not up there in

performance and I certainly hope I am missing something trivial. Do later versions of boost address this

better?

Greatly appreciate any help.

Thanks,

Sunil.