public inbox for gsl-discuss@sourceware.org
 help / color / mirror / Atom feed
From: Patrick Alken <patrick.alken@colorado.edu>
To: gsl-discuss@sourceware.org
Subject: Re: unsymmetric eigenvalue update
Date: Mon, 14 Aug 2006 16:10:00 -0000	[thread overview]
Message-ID: <20060814161039.GA10941@hippogriff.physics.drexel.edu> (raw)
In-Reply-To: <20060814145925.GA19848@hippogriff.physics.drexel.edu>

As promised, I made a new patch with some updates. I have
posted the patch and a test program at:

http://ucsu.colorado.edu/~alken

The patch is against the latest CVS.

Changes over the CVS version include:

* updates to linalg.texi and eigen.texi
* support for computing the full Schur form T and Schur vectors Z
  (this will be needed later for computing eigenvectors) Use the
  -z option in the test program to test this

Patrick Alken

On Mon, Aug 14, 2006 at 08:59:25AM -0600, Patrick Alken wrote:
> Thanks for the update. I have a new balance and hessenberg
> routine too that I fixed up a while back. Its no longer necessary
> to do any dynamic allocation for the hessenberg function.
> I also modified the francis routine a little more to
> work better on ill-conditioned matrices and reduce more roundoff
> error. Also, I modified linalg.texi and eigen.texi to give
> complete documentation on all the functions I've added.
> I will make a new patch against the latest CVS and post it as soon as
> I can.
> 
> An update regarding the high-performance eigensolver: I've
> been working on implementing the high-performance small bulge
> aggressive early deflation method, and currently have a completely
> working code. Unfortunately, the performance is currently about
> twice as slow as the fortran version which is going to be in the
> next lapack release. I already made gsl_matrix_{get,set} macros
> and disabled range checking which resulted in about a 30% speed
> improvement. I also made optimized versions of the householder
> transform routines specifically for 3-by-1 vectors, but it still
> does not match the speed of the fortran version. I am still
> investigating why.
> 
> Another issue here is that I had to port about 4 lapack routines
> over to GSL to get the high-performance eigensolver to work.
> Plus the code for the eigensolver is heavily based on the fortran
> code which will be in lapack. I know there have been discussions
> on this list in the past regarding lapack licensing issues and
> I confess I don't fully understand whether it is acceptable/legal for
> GSL to contain lapack ported code.
> 
> Due to the sheer amount of code needed to get the high-performance
> eigensolver to work (currently about 4500 lines) mainly due to
> the large lapack routines, I'm starting to wonder if its worth it.
> Most of this code is only useful in terms of the eigenvalue problem
> and won't be useful for more general linear algebra problems. So
> all this code is there for just solving one problem and it might
> be wiser to go with the simpler francis solver whose code would
> be easier to understand/maintain. The rest of GSL seems to have
> the goal of containing small and simple to understand algorithms
> and all of this lapack code might just "uglify" the library. Any
> comments on this?
> 
> Patrick Alken
> 
> On Mon, Aug 14, 2006 at 03:24:08PM +0100, Brian Gough wrote:
> > At Tue, 13 Jun 2006 09:56:20 -0600,
> > > I propose adding the double-shift method to gsl (assuming it
> > > passes any further tests needed) which would be a perfectly
> > > fine eigenvalue solver (EISPACK used it for a number of years)
> > > until I (or someone else) can find the time to implement method 3.
> > > 
> > > Attached is the latest (final? :)) patch.
> > 
> > The latest patch is in sources.redhat.com CVS with some extra
> > cleanups.  It works well.  I modified the balance() routine to return
> > the diagonal scaling elements D (for computing the eigenvectors later)
> > and moved the memory allocation up out of hessenberg() into the
> > workspace.
> > 
> > -- 
> > Brian Gough
> > 
> 

  reply	other threads:[~2006-08-14 16:10 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-14 16:31 Patrick Alken
2006-06-15  1:17 ` Brian Gough
2006-08-14 14:24 ` Brian Gough
2006-08-14 14:59   ` Patrick Alken
2006-08-14 16:10     ` Patrick Alken [this message]
2006-08-16 10:28     ` Brian Gough

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060814161039.GA10941@hippogriff.physics.drexel.edu \
    --to=patrick.alken@colorado.edu \
    --cc=gsl-discuss@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).