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