Boost logo

Ublas :

From: Michael Stevens (mail_at_[hidden])
Date: 2005-10-06 13:20:32

On Thursday 06 Oct 2005 16:26, Neal Becker wrote:
> I noticed that creating a zero_vector with some size, and then iterating
> over it produced strange results. Then I noticed this:
> const_iterator begin () const {
> return const_iterator (*this);
> }
> const_iterator end () const {
> return const_iterator (*this);
> }

Funny coincidence, I was looking at the same code today.

> Excuse me? Doesn't this mean begin() == end() and effectively size is
> always zero?

The iterators in zero_vector work fine. They do this by defining themselves as
Sparse Bidirectional Iterators.

This allows uBLAS to choose more effecient algorithms when zero_matrix is
assigned to a target. The target will be simply 'clear'ed and then nothing

identiy_vector uses the same mechanism. It iterates over the single element
which is 1.


Michael Stevens Systems Engineering
34128 Kassel, Germany
Phone/Fax: +49 561 5218038
Navigation Systems, Estimation  and
                 Bayesian Filtering