[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Almost fully working version of eigs
From: |
David Bateman |
Subject: |
Almost fully working version of eigs |
Date: |
Mon, 25 Sep 2006 01:50:05 +0200 |
User-agent: |
Thunderbird 1.5.0.5 (X11/20060817) |
Dear All,
After I've addressed my issue with ATLAS, please find attached an almost
fully working version of eigs. There are a couple of issues and one
missing feature still with this file and I'd appreciate help if anyone
is interested. However, even given these I consider this code to already
be very useful.
Firstly I have one missing feature in that if you use the flag
opts.cholB and pass the cholesky factorization of a matrix B rather than
B itself, then you'll find the missing feature. Its probably not all
that hard to add this, but I've run out of steam.
The gotcha's are that I can generate a seg-fault for real non-symmetric
matrices. Valgrind and gdb give me information that doesn't seem to make
any sense to me. The matrix that is causing me pain is
n = 20;
A =
sparse([3:n,1:n,1:(n-2)],[1:(n-2),1:n,3:n],[ones(1,n-2),4*ones(1,n),-ones(1,n-2)]);
In any case I can only generate the seg-fault with "sr" option, and the
case it happens in is rare due to random starting vectors. I can also
get incorrect result for "si" and much more rarely for "sm" with the
above matrix. The reason its much more rare for "sm" is that for "sm" I
changed the ARPACK mode to shift-invert with a sigma of zero, which
seems much more stable, There doesn't seem to be much I can do for "si"
however. I'll have to heck this against what matlab gets to see if they
do any better. If they don't then I'll probably ignore this issue.
Finally, I haven't check that the order of the eigenvalue and
eigenvectors are the same as those given by matlab for all case, though
I have for the real positive definite cases. So if you see an ordering
problem please report it.
Apart from that it seems that this function performs very well. I'd
appreciate feedback, and help particularly on the seg-fault issue before
the inclusion of this code in octave. Also it seems to me it shouldn't
be too hard to write an svds function based on this code if someone
wants to try.
Regards
David
eigs.cc.bz2
Description: BZip2 compressed data
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Almost fully working version of eigs,
David Bateman <=