ggev( 'N', 'V', p_matrix, l_diag, l_eigval, l_tmp1, l_div, l_tmp2, l_eigvec, linalg::optimal_workspace() );
ublas::matrix<T, ublas::column_major> l_matrix(p_matrix);
ublas::matrix<T, ublas::column_major> l_diag(p_diag);
ublas::matrix<T, ublas::column_major> l_eigvec(l_matrix.size1(), l_matrix.size2());
ublas::vector<T> l_eigval(l_matrix.size1());
ublas::vector<T> l_div(l_matrix.size1());
ublas::vector<T> l_tmp1(l_eigval.size());
ublas::matrix<T, ublas::column_major> l_tmp2(l_matrix.size1(),l_matrix.size2());
Now I use the method with T = double and get these errors:
numeric_bindings/boost/numeric/bindings/lapack/driver/ggev.hpp:181: error: invalid application of 'sizeof' to incomplete type 'boost::STATIC_ASSERTION_FAILURE<false>'
numeric_bindings/boost/numeric/bindings/lapack/driver/ggev.hpp:265: instantiated from 'static ptrdiff_t boost::numeric::bindings::lapack::ggev_impl<Value, typename boost::enable_if<boost::numeric::bindings::is_real<T>, void>::type>::invoke(char, char, MatrixA&, MatrixB&, VectorALPHAR&, VectorALPHAI&, VectorBETA&, MatrixVL&, MatrixVR&, boost::numeric::bindings::lapack::optimal_workspace) [with MatrixA = const boost::numeric::ublas::matrix<double, boost::numeric::ublas::basic_row_major<size_t, ptrdiff_t>, boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >, MatrixB = boost::numeric::ublas::matrix<double, boost::numeric::ublas::basic_column_major<size_t, ptrdiff_t>, boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >, VectorALPHAR = boost::numeric::ublas::vector<double, boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >, VectorALPHAI = boost::numeric::ublas::vector<double, boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >, VectorBETA = boost::numeric::ublas::vector<double, boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >, MatrixVL = boost::numeric::ublas::matrix<double, boost::numeric::ublas::basic_column_major<size_t, ptrdiff_t>, boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >, MatrixVR = boost::numeric::ublas::matrix<double, boost::numeric::ublas::basic_column_major<size_t, ptrdiff_t>, boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >, Value = const double]'
numeric_bindings/boost/numeric/bindings/lapack/driver/ggev.hpp:452: instantiated from 'typename boost::enable_if<boost::numeric::bindings::lapack::detail::is_workspace<Workspace>, ptrdiff_t>::type boost::numeric::bindings::lapack::ggev(char, char, MatrixA&, MatrixB&, VectorALPHAR&, VectorALPHAI&, VectorBETA&, MatrixVL&, MatrixVR&, Workspace) [with MatrixA = const boost::numeric::ublas::matrix<double, boost::numeric::ublas::basic_row_major<size_t, ptrdiff_t>, boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >, MatrixB = boost::numeric::ublas::matrix<double, boost::numeric::ublas::basic_column_major<size_t, ptrdiff_t>, boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >, VectorALPHAR = boost::numeric::ublas::vector<double, boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >, VectorALPHAI = boost::numeric::ublas::vector<double, boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >, VectorBETA = boost::numeric::ublas::vector<double, boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >, MatrixVL = boost::numeric::ublas::matrix<double, boost::numeric::ublas::basic_column_major<size_t, ptrdiff_t>, boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >, MatrixVR = boost::numeric::ublas::matrix<double, boost::numeric::ublas::basic_column_major<size_t, ptrdiff_t>, boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >, Workspace = boost::numeric::bindings::lapack::optimal_workspace]'
What do I have wrong?
Thanks
Phil