Boost logo

Ublas :

From: Thomas Lemaire (thomas.lemaire_at_[hidden])
Date: 2004-12-14 02:32:13

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 ??