Boost logo

Boost Users :

From: Thomas Lemaire (thomas.lemaire_at_[hidden])
Date: 2004-12-08 04:28:32


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

-- 
thomas

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net