For an algorithm I need to get all positive eigenvalues and their corresponding eigenvectors for given real, symmetric matrices frequently (and as fast as possible). ?syevr allows to skip calculating all the negative ones (set vl=0), which decreases calculation time drastically. However for ?syevd I couldn't find the option in the arguments, which means that right now I am calculating many unnecessary eigenvectors and eigenvalues (it is still faster than ?syevr though). Is there a workaround for this?
The divide and conquer method, ?syevd, does not offer a range choice.
I suppose you saw this note:
Note that for most cases of real symmetric eigenvalue problems the default choice should be syevr function as its underlying algorithm is faster and uses less workspace. ?syevd requires more workspace but is faster in some cases, especially for large matrices.