I'm trying rewrite matlab eigs function as C++ wrapper of ARPACK because arpack++ (C++ wrapper for arpack) is very slow in regular mode, shift-invert mode doesn't work properly. But I'm in stuck and I need a kick. :)
LU Factorization
Matlab function:
function [L,U,pp,qq,dgAsB] = LUfactor
AsB = A;
[L,U,pp,qq,dgAsB] = lu(AsB);
end
Is it any library for c++ which return me output like code above? And I'd like ask what does mean qq and dgAsB. Meaning L and U is clear and pp too, I learned it at uni but I don't know what is meaning others.
Arpack OP
function [v] = AminusSigmaBsolve (u)
v = qq*(U \ (L \ (pp*(dgAsB \ u))));
end
Arpack OP for shift invert mode is defined (A - sigma*I )^-1*I*u. First I can't understand how matlab code is related to Arpack OP. And I'd like to ask if exists any library for C++ with which I can write efficiency code of AminusSigmaBsolve in C++.
Thank you for your answers because I'd like to use program as efficient as Matlab in C++.