Source code for geomfum.numerics.eig
import geomstats.backend as gs
import scipy
import geomfum.backend as xgs
[docs]
class ScipyEigsh:
def __init__(
self,
spectrum_size=6,
sigma=None,
which="LM",
):
self.spectrum_size = spectrum_size
self.sigma = sigma
self.which = which
def __call__(self, A, M=None):
vals, vecs = scipy.sparse.linalg.eigsh(
xgs.sparse.to_scipy_csc(A),
k=self.spectrum_size,
M=xgs.sparse.to_scipy_dia(M),
sigma=self.sigma,
which=self.which,
)
return gs.from_numpy(vals), gs.from_numpy(vecs)