0

I'm writing a code that mostly consists of matrices manipulation and, in particular, diagonalization. I already have a code, both in python and in Fortran 90 that are able to solve my problem in a satisfactory way. I need, however, to calculate the eigenvalues and eigenvectors of my matrices in quadruple precision because the current step of my project requires extra "sensibility" in my calculations. I was looking for some kind of library (preferably in fortran, since it seems to be faster in doing these calculations) that would allow me to re-write my Fortran 90 code with the least significant alterations as possible. I have already seen that one of my options is to mess around with the source code of the standard LAPACK functions but, honestly, that seems kind of out of my reach given my computational skills, I saw also that there is a package, MPACK, that might be able to handle these calculations. The problem is that i haven't found any useful information about this other than some not so trustful hints and I don't really know how to implement it. So, long story short, I would be really grateful if someone would help me by indicating a useful Fortran 90 library that would be able to do complex matrix diagonalization in a way that I would not need to change the original code too radically, and thus saving me from having to change the source code for LAPACK libraries by myself, something that I'm not sure that i am capable of doing with my current knowledge. Thank you very much !

6
  • Please use tag fortran for Fortran questions. Always follow the instructions displayed when adding a tag. Note that the language is spelled Fortran (not FORTRAN) and that Fortran 90 is just one very old and obsolete revision of the standard that continues evolving even in the current decade. Commented Feb 3 at 23:14
  • Recommending or finding a library is explicitly off-topic at Stack Overflow. I suggest reading How to Ask and minimal reproducible example. Commented Feb 3 at 23:16
  • Probably the simplest solver for a complete set of eigenvalues and eigenvectors is Jacobi's method - it's not very efficient but not a disaster either, if your matrices are not big, say to pick a random number less than O(1000), and ease of writing code is your priority it might be the simplest way forward. Beyond that I don't think we can say much with the above. Commented Feb 4 at 10:51
  • The Fortran stdlib, which is a community project, includes modernized versions of many Lapack routines, and can be compiled with quadruple precision. Would be worth looking at... Commented Feb 4 at 21:36
  • @PierU At a quick look those seem to be limited to the same basic set of standard routines fpr single and double precision and are only templated for the integers. Commented Feb 5 at 7:12

0

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.