Boost logo

Ublas :

From: Toon Knapen (toon.knapen_at_[hidden])
Date: 2004-12-14 04:11:00


Could you provide a _small_ testcase that triggers this behaviour ?

Thomas Lemaire wrote:
> Again, a mail I sent to boost-dev...
>
> dear list,
>
> I am using ublas from boost 1.32, gcc 3.3.3, solaris 9
>
> I need to copy some independant submatrix (matrix_range) of a symmetric
> matrix. I use the assign() method to do so. first, I compile without
> NDEBUG, and a postcondition check in assignment is not met...
>
> Assertion failed in file
> /usr/local/boost/include/boost/numeric/ublas/matrix_assign.hpp at line 797:
> equals (m, cm)
> E: src/slamEkf.cpp:325: std::exception
> ** std::exception: **
> external logic
>
> I checked that compiling with NDEBUG the assignement is not correct.
>
> If I copy the two submatrix using a stupid for loop, it works...
>
> I use the default version of symmetric_matric (lower), and I assign
> _upper_ part of the matrix. I tried to assign the _lower_ part of the
> matrix and it works !
>
> nothing in the doc tells that using the assign() functions is different
> with symmetric_matrix... this problem arises only when assigning a
> submatrix to another submatrix. When assigning an expression to a
> submatrix in the _upper_ part of the lower symmetric matrix it works fine.
>
> Is it a bug, or a feature ??