Boost logo

Ublas :

From: Preben Hagh Strunge Holm (preben_at_[hidden])
Date: 2007-03-08 15:11:58

> the maximal size of index2_data_ is size1_*size2_ so the number is ok. You can
> check all these values via
> a.nnz(), a.filled1() (should be 1+size1), a.filled2() (should be ==a.nnz())
> and a.nnz_capacity() should be the size of index2_data_ and value_data_
> about the assignement problem:
> can you try to explicitly use the copy constructor syntax?
> vector dg( prod( ... ) );

Same result as written before.

> (Hoever this should be equivalent for the compiler)
> and try to split the creation and the assignement
> vector dg( prod_size );
> noalias(dg) = prod(...);

Hmm... I already tried that... but it didn't work either..

The strange thing is that I can do this without trouble:
std::cout << prod(dG,v) << std::endl;

and it actually works without trouble.

But the assignment really "blocks" everything. I have no trouble with it
some places, but this particular spot in the source code messes things
up using -O2 optimization together with my qt-application!

BUT... I don't know what have happened... I've upgraded my compiler to
gcc 4.1.2 and it didn't work two hours ago - even after the upgrade.

Now after having rebooted the computer and started again - it seems to
work... everything!
I'll try to dig deeper and try shifting back to gcc 4.1.1-r3 (gentoo) to
see what have happened.