Boost logo

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::unbounded_array<double, std::allocator<double> >

>&, boost::numeric::ublas::vector<std::complex<double>,


std::allocator<std::complex<double> > > >&, int, int,


I tried Y as 'row-major' - same result.


If you look into boost/numeric/bindings/lapack/geev.hpp, this is the


    // 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.