Truncated eigendecomposition¶
- linalg.custom_eig.truncated_eig_arnoldi(M, chi, v0=None, dtype=None, device=None, abs_tol=1e-14, rel_tol=None, keep_multiplets=False, eps_multiplet=1e-12, verbosity=0)[source]¶
- Parameters:
M (torch.Tensor or scipy.sparse.linalg.LinearOperator) – matrix of dimensions \(N \times N\) or numpy LinearOperator
chi (int) – desired maximal rank \(\chi\)
v0 (torch.Tensor) – initial vector
abs_tol (float) – absolute tolerance on minimal(in magnitude) eigenvalue
rel_tol (float) – relative tolerance on minimal(in magnitude) eigenvalue
keep_multiplets (bool) – truncate spectrum down to last complete multiplet
eps_multiplet (float) – allowed splitting within multiplet
verbosity (int) – logging verbosity
- Returns:
leading \(\chi\) eigenvalues D and eigenvectors U
- Return type:
torch.tensor, torch.tensor
Note: depends on scipy
Returns leading \(\chi\) eigenpairs of a matrix M, where M is a symmetric matrix \(M=M^T\), by computing the partial symmetric decomposition \(M= UDU^T\) up to rank \(\chi\). Returned tensors have dimensions
\[dim(D)=(\chi),\ dim(U)=(N,\chi)\]Note
This function does not support autograd.
- linalg.custom_eig.truncated_eig_sym(M, chi, abs_tol=1e-14, rel_tol=None, ad_decomp_reg=1e-12, keep_multiplets=False, eps_multiplet=1e-12, verbosity=0)[source]¶
- Parameters:
M (torch.tensor) – symmetric matrix of dimensions \(N \times N\)
chi (int) – desired maximal rank \(\chi\)
abs_tol (float) – absolute tolerance on minimal(in magnitude) eigenvalue
rel_tol (float) – relative tolerance on minimal(in magnitude) eigenvalue
keep_multiplets (bool) – truncate spectrum down to last complete multiplet
eps_multiplet (float) – allowed splitting within multiplet
verbosity (int) – logging verbosity
- Returns:
leading \(\chi\) eigenvalues D and eigenvectors U
- Return type:
torch.tensor, torch.tensor
Returns leading \(\chi\) eigenpairs of a matrix M, where M is a symmetric matrix \(M=M^T\), by computing the full symmetric decomposition \(M= UDU^T\). Returned tensors have dimensions
\[dim(D)=(\chi),\ dim(U)=(N,\chi)\]
- linalg.custom_eig.truncated_eig_symarnoldi(M, chi, abs_tol=1e-14, rel_tol=None, keep_multiplets=False, eps_multiplet=1e-12, verbosity=0)[source]¶
- Parameters:
M (torch.tensor) – symmetric matrix of dimensions \(N \times N\)
chi (int) – desired maximal rank \(\chi\)
abs_tol (float) – absolute tolerance on minimal(in magnitude) eigenvalue
rel_tol (float) – relative tolerance on minimal(in magnitude) eigenvalue
keep_multiplets (bool) – truncate spectrum down to last complete multiplet
eps_multiplet (float) – allowed splitting within multiplet
verbosity (int) – logging verbosity
- Returns:
leading \(\chi\) eigenvalues D and eigenvectors U
- Return type:
torch.tensor, torch.tensor
Note: depends on scipy
Returns leading \(\chi\) eigenpairs of a matrix M, where M is a symmetric matrix \(M=M^T\), by computing the partial symmetric decomposition \(M= UDU^T\) up to rank \(\chi\). Returned tensors have dimensions
\[dim(D)=(\chi),\ dim(U)=(N,\chi)\]Note
This function does not support autograd.