Boost logo

Ublas :

Subject: [ublas] symmetric_adaptor assign()
From: David Mebane (mebane_at_[hidden])
Date: 2011-12-19 17:22:27

Hello everyone,

Thanks again for the help with the previous questions I had on lapack

Now I have what I think is a more general question related to
symmetric_adaptor. Namely, the code

#include <boost/numeric/bindings/ublas/matrix.hpp>
#include <boost/numeric/bindings/ublas/symmetric.hpp>

namespace ublas = boost::numeric::ublas;

typedef float real_t;
typedef ublas::matrix<real_t, ublas::column_major> m_t;
typedef ublas::symmetric_adaptor<m_t, ublas::lower> symml_t;

int main()

  m_t al(5,5);
  symml_t sal;


  return 0;


does not compile, with boost/numeric/ublas/symmetric.hpp returning a 'no
matching function' error. I gather that this is a misuse of the method
symmetric_adaptor::assign(matrix_expression &), but I don't know why. I
suppose a matrix does not qualify as a matrix_expression? How does one
associate a matrix with a symmetric_adaptor after said symmetric_adaptor
has been constructed?