Boost logo

Ublas :

From: Michael Stevens (mail_at_[hidden])
Date: 2005-12-18 11:21:13


On Sunday, 18. December 2005 12:09, eeitan_at_[hidden] wrote:
> hello, i am using the boost files:
> and typedef's
> typedef boost::numeric::ublas::matrix<double,
> boost::numeric::ublas::row_major> Matrix;
> typedef boost::numeric::ublas::symmetric_matrix<double,
> boost::numeric::ublas::lower, boost::numeric::ublas::row_major>
> SymetricMatrix;
> typedef boost::numeric::ublas::compressed_matrix<double,
> boost::numeric::ublas::row_major> SparseMatrix;
> typedef boost::numeric::ublas::vector<double> Vector;
> typedef std::vector<Vector> Base;

That is an awful lot of code. Maybe you could isolate what is failing to a
small test case.

> working with boost 1.32 is o.k. but with 1.33 i get the assertion error:
> Assertion failed in file
> /usr/local/include/boost-1_33/boost/numeric/ublas/matrix.hpp at line 2556:
> it_ < (*this) ().size_common_
> EXCEPTION: bad index

> what could be the problem ????

Hmmm. Interesting.

The test at this line is in 'class identity_matrix' in
    const_iterator2 function operator ++

Looks like you are assigning from a identity matrix somewhere in you code..
Can it be that this identity matrix is not square? This assertion in question
is comparing the index to the 'size_common_'. This looks wrong I think this
should be the 'size2'.

Looks like a bug was introduced into the handing of non square indentity
matrices somewhere before 1.33.0


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