|
Ublas : |
From: Vadim von Brzeski (madvlad_at_[hidden])
Date: 2008-02-04 00:44:23
I am trying to call lapack::geev via lapack as follows:
#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/io.hpp>
#include <boost/numeric/bindings/lapack/geev.hpp>
#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
#include <boost/numeric/bindings/traits/ublas_vector.hpp>
#include <boost/numeric/ublas/matrix_proxy.hpp>
namespace ublas = boost::numeric::ublas;
namespace lapack = boost::numeric::bindings::lapack;
int main()
{
ublas::matrix<double, ublas::column_major> Y(3,3);
ublas::vector< std::complex<double> > evals(3);
// assign some vals to Y
//.....
lapack::geev(Y, evals, NULL, NULL, lapack::optimal_workspace());
}
But I get is this:
test.cpp:78: error: no matching function for call to `geev
(boost::numeric::ublas::matrix<double,
boost::numeric::ublas::column_major,
boost::numeric::ublas::unbounded_array<double, std::allocator<double> >
>&, boost::numeric::ublas::vector<std::complex<double>,
boost::numeric::ublas::unbounded_array<std::complex<double>,
std::allocator<std::complex<double> > > >&, int, int,
boost::numeric::bindings::lapack::optimal_workspace)'
I tried Y as 'row-major' - same result.
If you look into boost/numeric/bindings/lapack/geev.hpp, this is the
definition
// gateway / dispatch routine
template <typename A, typename W, typename V>
int geev(A& a, W& w, V* vl, V* vr, optimal_workspace)
{
.....
}
So I am confused. Can someone please provide some examples on how one would
call geev, and also what the vl and vr parameters should be?
Thank you.
Vadim v. B.