Working on eigs

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Working on eigs

Marco Caliari-4
Dear maintainers,

I started to work on eigs. I closed bugs #39573 and #50546 (changesets
already in stable). I have also a patch for #45153 and #47236 which you
can find on my Bitbucket repository

(eigs bookmark). I introduced the [L,U,P,Q,R] = lu (A) factorization for
the sparse case and [L,U,P] = lu(A) for the full case. I used this test

clear all
n = 50;
A = toeplitz ((n + 1) ^ 2 * [2, -1, zeros(1, n - 2)]);
%A = toeplitz (sparse ((n + 1) ^ 2 * [2, -1, zeros(1, n - 2)]));
A = kron (A, eye (n)) + kron (eye (n), A);
opts.v0 = (1:length (A))';
opts.disp = 2;
eigs (A, 10, 'sm', opts)
% new: 4.2 seconds
% old: 6.4 seconds
b = ones (length(A), 1);
[L, U, P] = lu (A);
U \ (L \ (P * b));

to show the effectiveness of [L,U,P] factorization. Matlab in this case is
much faster, but I think it depends on the underlying optimized linear
algebra (MKL), since the factorization itself and the solution of
triangular systems is faster in Matlab. I was working on #49523 but do not
know how to continue. Another thing surely missing is the 'single' version
of eigs. I think the main problems are fixed now, but please review my
patches and feel free to contact me for additional issues with eigs.