0

I have an university project that involves the diagonalization of large sparse matrices, I decided to use Fortran and I'm using ifx intel fortran compiler with mkl lapack interface. The project requires to use Lanczos or similar algorithms, so I'm using mkl_sparse_d_ev, where the input variable pm is set to use Krylov-Schur method.

What is not clear is how to set the first vector for generating the Krylov subspace, it looks like the implementation always use a random one, I cannot find that information anywhere, but is essential in the algorithm that I'm implementing, can someone help me? Or at least suggest other routines suited for the problem?

  • Hmm, maybe ask over at math.stackexchange.com or cs.stackexchange.com. Another library to look at is ARPACK; I think a web search will find it. Sorry I can't be more helpful, good luck. – Robert Dodier May 13 '23 at 16:57
  • Welcome, I highly suggest to take the [tour]. [ask] might also be beneficial. It is good to show the relevant part of the interface here. Questions here should be self suffiecient, not so much dependent on an external link. – Vladimir F Героям слава May 13 '23 at 18:26
  • Do you have a particular reason to believe you are supposed to set the initial vector yourself? The input parameters in your link do not appear to include that. – Vladimir F Героям слава May 13 '23 at 18:35
  • @VladimirFГероямслава thtat's the point, the Krylov-Schur method requires a starting vector, usually it can be chosen at random, the implementation they did of the method looks like is not possible to select it from outside, something I have to do, for this reason I'm asking this question, to see if somebody knows something that is not written on the documentation (sometimes it happens) – VINCENZO BISOGNO May 14 '23 at 08:31
  • 1
    my point is that you have no reason to assume you are supposed to set it yourself. If it is not among the input arguments, the routine should sort it by its own means. – Vladimir F Героям слава May 14 '23 at 13:15
  • @VladimirFГероямслава I don't know if you are familiar with the algorithm (with this term I mean the theoretical and mathematical one), but as I already explained, the Krylov subspaces needs a starting vector. The Arpack implementation for example gives the choice to select the starting vector, or (by default) it generates a random one by itself. I'm asking if in the mkl implementation is possible to select one or it has to be generated necessarily at random. From the documentation it appears is not possible, but I'm asking for confirmation since it is not explicit written. – VINCENZO BISOGNO May 14 '23 at 17:08

0 Answers0