Hello everyone,

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

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;

  sal.assign(al);

  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?


Thanks,
-David