[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-gsl] hermitian matrices eigenvalues and eigenvectors
From: |
Patrick Alken |
Subject: |
Re: [Help-gsl] hermitian matrices eigenvalues and eigenvectors |
Date: |
Mon, 22 Sep 2008 10:25:07 -0600 |
User-agent: |
Mutt/1.5.17+20080114 (2008-01-14) |
I believe the hermitian eigenvalue algorithm is the one used
in Golub and Van Loan and was selected due to its simplicity.
There are much faster (and far more sophisticated) eigenvalue
algorithms that are not really suited for GSL due to their
complexity to code. LAPACK contains these types of algorithms
and it is encouraged to use that library if one needs the
fastest available algorithms.
Patrick
On Mon, Sep 22, 2008 at 04:21:54PM +0200, Emanuele Passera wrote:
> Hi all,
>
> I'm new to GSL but I have a good experience in scientific programming and
> algorithm testing. In the specific I'm interested in eigenvalues and
> eigenvectors extraction from hermitian matrices.
>
> I have been using gsl_eigen_hermv() function, and even results are good
> enough, I have been wondering if it wasn't possible to fasten the procedure.
>
> There are approaches to the problem as the one in the last page of this
> document
>
> http://www.nio.res.in/monographs/aa_fernandes/AA_Fernandes_chap3.pdf
>
> that reconduce the problem of eigenvalues and eigenvectors extraction from an
> nXn hermitian matrix to the problem of eigenvalues and eigenvectors
> extraction from a real symmetric 2nX2n matrix. In fact this is quite a common
> approach.
>
> In this way it would be possible to use gsl_eigen_symmv() and not perform
> operation between complex number but between real number.
>
> Actually this fasten things a lot: I did a test generating hermitian matrices
> of different sizes and extracting eigenvalues and eigenvectors with the
> gsl_eigen_hermv() 10^5 times for each one. Then I converted the same matrices
> to the float format that I mentioned before and extracted eigenvalues and
> eigenvectors with a function that I have written myself the same number of
> time. My function was faster than GSL's.
> Then I repeated the same test with real simmetric matrices, I generated the
> matrices of different sizes and then extracted eigenvalues and eigenvectors
> 10^5 times for each one with the gsl_eigen_symmv() function and with a
> function that I have written myself (the same as the previous one, except it
> works with float). Performance were the same between GSl and my function.
>
> So this make me think that this approach is intrinsecally faster and
> differences in performance do not depend on different implementation, but in
> the use of complex math instead of real number math.
>
> Could this approach (conversion in a float matrix + eigenvalues of float
> matrix) be added to GSL or am I missing something?
>
> Thank you in advance
>
>
>
>
> --
> ------------------------------------------------------------
> Emanuele Passera
>
> Tele-Rilevamento Europa - T.R.E. s.r.l.
> a POLIMI spin-off company
> Via Vittoria Colonna, 7
> 20149 Milano - Italia
> tel.: +39.02.4343.121
> fax: +39.02.4343.1230
> e-mail: address@hidden
> web: www.treuropa.com
> -------------------------------------------------------------
>
>
>
> _______________________________________________
> Help-gsl mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/help-gsl