numerics 0.1.0
Loading...
Searching...
No Matches
lanczos.hpp File Reference

Lanczos eigensolver for symmetric operators. More...

#include "core/matrix.hpp"
#include "core/policy.hpp"
#include "core/vector.hpp"
#include "kernel/subspace.hpp"
#include "linalg/eigen/jacobi_eig.hpp"
#include "linalg/sparse/sparse.hpp"
#include "operator/operators.hpp"
#include <algorithm>
#include <cmath>
#include <stdexcept>

Go to the source code of this file.

Classes

struct  num::LanczosResult
 

Namespaces

namespace  num
 

Functions

template<class Op >
requires operators::LinearOperator<Op, Vector, Vector>
LanczosResult num::lanczos (const Op &A, idx k, real tol=1e-10, idx max_steps=0, Backend backend=Backend::seq)
 Operator Lanczos for any symmetric \(y=A x\) adapter.
 
LanczosResult num::lanczos (const Matrix &A, idx k, real tol=1e-10, idx max_steps=0, Backend backend=Backend::seq)
 
LanczosResult num::lanczos (const SparseMatrix &A, idx k, real tol=1e-10, idx max_steps=0, Backend backend=Backend::seq)
 

Detailed Description

Lanczos eigensolver for symmetric operators.

Builds an orthonormal basis \(Q_m\) such that \(Q_m^T A Q_m = T_m\), with \(T_m\) tridiagonal.

Definition in file lanczos.hpp.