orocos-bayesian-filtering
orocos-bayesian-filtering copied to clipboard
Matrix * SymmetricMatrix not defined for boost matrix wrapper
migrated from Bugzilla #445 status NEW severity normal in component wrappers for 0.7.0 Reported in version trunk on platform All Assigned to: BFL mailinglist
On 2007-08-10 10:25:13 +0200, Tinne De Laet wrote:
While extending the matrixwrapper test I noticed that although the product of a matrix with a symmetric matrix is not implemented (as far as I can see), the call doesn't result in an error during compilation nor execution when using LTI The test I used is: Matrix Csm_test = Am * As; where Am is a Matrix and As a SymmetricMatrix. The error I got during compilation with BOOST is: _________________________________________________ /home/fiep/bfl/tests/matrixwrapper_test.cpp: In member function âvoid MatrixwrapperTest::testMatrixwrapperValue()â: /home/fiep/bfl/tests/matrixwrapper_test.cpp:406: error: ambiguous overload for âoperator*â in âAm * Asâ /usr/include/boost/numeric/ublas/matrix_expression.hpp:3228: note: candidates are: typename boost::numeric::ublas::matrix_binary_scalar2_traits(E1, const T2, boost::numeric::ublas::scalar_multiplies(typename E1::value_type, T2) )::result_type boost::numeric::ublas::operator*(const boost::numeric::ublas::matrix_expression(E)ampersand, const T2ampersand) [with E1 = boost::numeric::ublas::matrix(double, boost::numeric::ublas::basic_row_major(unsigned int, int), boost::numeric::ublas::unbounded_array(double, std::allocator(double) ) ), T2 = MatrixWrapper::SymmetricMatrix] /usr/include/boost/numeric/ublas/matrix_expression.hpp:2803: note: typename boost::numeric::ublas::matrix_binary_scalar1_traits(const T1, E2, boost::numeric::ublas::scalar_multiplies(T1, typename E2::value_type) )::result_type boost::numeric::ublas::operator*(const T1ampersand, const boost::numeric::ublas::matrix_expression(E2)ampersand) [with T1 = MatrixWrapper::Matrix, E2 = boost::numeric::ublas::symmetric_matrix(double, boost::numeric::ublas::basic_lower(unsigned int), boost::numeric::ublas::basic_row_major(unsigned int, int), boost::numeric::ublas::unbounded_array(double, std::allocator(double) ) )] make[2]: *** [tests/CMakeFiles/test_matrixwrapper.dir/matrixwrapper_test.o] Error 1 make[1]: *** [tests/CMakeFiles/test_matrixwrapper.dir/all] Error 2 make: *** [all] Error 2 _________________________________________________
Cannot reproduce this with eigen, so it seems to be boost specific