SyTen
classic_krylov.h File Reference

Lanczos implementation with possibility of re-orthogonalisation. More...

#include <utility>
#include <boost/any.hpp>
#include "inc/util/closeness.h"
#include "inc/dense/dense_eigensolver.h"
#include "inc/alg/iterative.h"
#include "inc/dense/dense_make.h"
#include "inc/dense/dense_prod.h"
#include "inc/dense/dense_convenience.h"
#include "inc/dense/dense_transpose.h"
+ Include dependency graph for classic_krylov.h:
+ This graph shows which files directly or indirectly include this file:

Classes

struct  syten::Krylov::ClassicImpl::Classic< Matrix, Vector, Solver, Ortho >
 The ClassicKrylov struct encapsulates the Lanczos algorithm. Template Parameters are: More...
 
struct  syten::Krylov::ClassicImpl::EigenSolver< Solver >
 The EigenSolver struct solves matrices for their eigenvalues and eigenvectors. More...
 
struct  syten::Krylov::ClassicImpl::ExponentialSolver< Solver >
 The ExponentialSolver struct solves exp(prefactor*mat)*vec. More...
 
struct  syten::Krylov::ClassicImpl::Detail::InnerProduct< Vecs >
 The InnerProduct struct is a functor computing the inner product of the stored vector with a given vector. More...
 
struct  syten::Krylov::ClassicImpl::OrthoMat< Lanczos >::InnerProductHelper
 The InnerProductHelper struct provides access to the orthonormalized vectors (in a sense) More...
 
struct  syten::Krylov::ClassicImpl::KrylovError
 Thrown on serious errors encountered in Krylov which do not allow returning an even approximate result. More...
 
struct  syten::Krylov::ClassicImpl::NoOrthoMat< Lanczos >
 The NoOrthoMat struct the default behaviour of Lanczos: do not orthonormalize at all. More...
 
struct  syten::Krylov::ClassicImpl::OrthoMat< Lanczos >
 The OrthoMat struct implements an orthonormalization that is not 'in place' of the krylov vectors, but affects the Hamiltonian matrix <f|H|f> and thus optimizes for the number of additions see arxiv:1203.2523v3. More...
 
struct  syten::Krylov::ClassicImpl::ReorthoMat< Lanczos >
 The ReorthoMat struct provides orthonormalization in case the overlaps grow over SYTEN_SMALL_THRESHOLD. More...
 
struct  syten::Krylov::ClassicImpl::StandardMat< Lanczos >
 The StandardMat struct provides orthogonalisation via the standard orthogonalise() functionality specialisable for each class. More...
 

Namespaces

namespace  syten
 Syten namespace.
 
namespace  syten::Krylov
 Krylov subspace methods.
 
namespace  syten::Krylov::ClassicImpl
 Contains the classic Krylov implementation and helper functions.
 

Functions

template<typename Vecs >
auto syten::Krylov::ClassicImpl::Detail::innerProduct (Vecs const &v)
 innerProduct is a helper function for the fuzz-free construction of InnerProduct objects More...
 
template<typename Scalar >
auto syten::Krylov::ClassicImpl::Detail::lanczosMatImpl (std::vector< SRDef > const &a, std::vector< SRDef > const &b)
 lanczosMatImpl returns a tridiagonal Matrix as needed in Lanczos algorithm More...
 

Detailed Description

Lanczos implementation with possibility of re-orthogonalisation.