-
Notifications
You must be signed in to change notification settings - Fork 135
Description
Hello Spectra developers,
First, thank you for this excellent library. It is very useful for solving large-scale eigenvalue problems.
I am currently using Spectra to compute the eigenvectors of the Laplacian matrix of a large sparse graph for Graph Fourier Transform (GFT). In GFT, we require the complete set of eigenvectors to transform a graph signal from the vertex domain to the frequency domain. However, I found that Spectra is limited to computing at most n-1 eigenvectors (where n is the matrix dimension) when using the SymEigsSolver for symmetric matrices.
This limitation is a critical issue for my application because the GFT requires the entire set of eigenvectors to have a complete representation of the graph signal in the frequency domain. Without the full set, the transformation is incomplete and cannot be inverted properly.
I understand that for very large matrices, computing the full set of eigenvectors might be prohibitively expensive in terms of memory and time. However, for matrices that are sparse and of moderate size (e.g., up to a few tens of thousands), it is feasible and often required. Even for larger matrices, there are use cases (like mine) where the full set is necessary.
I would like to request one of the following features:
Remove the limitation and allow the user to request up to n eigenvectors (the full set) at their own risk (knowing that it might be expensive).
Alternatively, provide a way to compute the full set of eigenvectors by switching to a dense solver when the requested number is n, or by providing a different solver that can handle the full spectrum.
Or, at least, throw an exception with a clear message when the requested number is n, and suggest an alternative method (like using a dense solver) if the matrix is small enough.
This feature would be extremely helpful for applications in graph signal processing and other fields that require the full spectral decomposition.
Thank you for considering this request.