|
Ublas : |
From: Matthias Troyer (troyer_at_[hidden])
Date: 2006-07-23 05:13:35
There is a serious bug in the mapped_vector_of_mapped_vector spare
matrix type. Rows containing only zero elements are not treated
correctly in prod(). The following code should give a vector that
contains only 1 in the last element. Instead prod() gives a vector
containing 1 in each element. In debug mode this bug is found by the
checks:
Check failed in file boost/boost/numeric/ublas/detail/
vector_assign.hpp at line 371:
detail::expression_type_check (v, cv)
Aborted
The bug appears in Boost 1.33 as well as in the CVS version
Best regards
Matthias
#include <boost/numeric/ublas/matrix_sparse.hpp>
#include <boost/numeric/ublas/vector.hpp>
int main()
{
boost::numeric::ublas::mapped_vector_of_mapped_vector<double> m
(64,64);
boost::numeric::ublas::vector<double> v(64);
boost::numeric::ublas::vector<double> w(64);
v[63] = 1.;
m(63,63) = 1.;
w = boost::numeric::ublas::prod(m,v);
}