Boost logo

Ublas :

Subject: [ublas] LAPACK using GEEV
From: Kraus Philipp (philipp.kraus_at_[hidden])
Date: 2010-07-05 14:35:59


Hi,

thanks for the answers to my last posting, but I had a mistake. I
don't need the eigenvalues of a symmetric real matrix, otherwise I
need the values of a squared real matrix.

I have found the DGEEV in the LAPACk and try to translate it to the
Boost bindings with:

T is set to double.
ublas::matrix<T, ublas::column_major> l_matrix( size, size);
// filling

ublas::vector<T> l_eigval(l_matrix.size1());

ublas::vector<T> x(l_matrix.size1());
ublas::matrix<T, ublas::column_major>
y(l_matrix.size1(),l_matrix.size1());
ublas::matrix<T, ublas::column_major>
z(l_matrix.size1(),l_matrix.size1());

lapack::geev( 'U', 'L', l_matrix, l_eigval, x,y,z,
lapack::optimal_workspace() );

I've found a older thread http://old.nabble.com/lapack%3A%3Ageev%28%29-ts20459534.html
  and try to get working code. I can compile my code, but I get the
runtime error:
Parameter 1 to routine DGEEV was incorrect
Mac OS BLAS parameter error in DGEEV , parameter #0, (unavailable), is 0

I set the 5th, 6th and 7th parameter to 0 / NULL and run into
compiling error. I have read this http://www.calerga.com/doc/LME_lapk.htm
  list to connect the matlab "eig" call to the DEEGV call

Can anyone help me to solve the problem, so that I'll get the correct
values?

Thank

Phil