SyTen
state_wrappers.h File Reference

Wrappers around states and operators to work with the generic Lanczos algorithm. More...

#include <iostream>
#include <stdexcept>
#include <type_traits>
#include <vector>
#include "inc/util/persistent.h"
#include "inc/tensor/truncation.h"
#include "inc/util/converting_iterator.h"
+ Include dependency graph for state_wrappers.h:
+ This graph shows which files directly or indirectly include this file:

Classes

class  syten::Krylov::OperatorWrapper< Op >
 The OperatorWrapper class wraps a MPS/BTT operator, providing an interface complying to the exponentialLanczos template. More...
 
class  syten::Krylov::StateWrapper< StateT, TruncT >
 The StateWrapper class wraps a MPS/BTT-state to provide an interface complying to exponentialLanczos template. More...
 

Namespaces

namespace  syten
 Syten namespace.
 
namespace  syten::Krylov
 Krylov subspace methods.
 

Functions

template<typename Op >
auto syten::Krylov::make_OperatorWrapper (Op &&o)
 make_OperatorWrapper simplifies OperatorWrapper construction by template type deduction More...
 
template<typename StateT , typename TruncT >
auto syten::Krylov::make_StateWrapper (StateT &&state, TruncT &&trunc)
 make_StateWrapper simplifies StateWrapper construction by template type deduction More...
 
template<typename SType , typename TType >
SRDef syten::Krylov::norm (StateWrapper< SType, TType > const &s)
 norm non-member norm function More...
 
template<typename SType , typename TType >
StateWrapper< SType, TType > syten::Krylov::operator* (SDef prefactor, StateWrapper< SType, TType > const &s)
 operator * Multiplication of scalar w/ statewrapper. invokes StateWrapper::operator * More...
 
template<typename SType , typename TType , typename It >
void syten::Krylov::orthogonalise_arithmetic (StateWrapper< SType, TType > &s, It first, It last, bool assume_norm_one=false)
 
template<typename SType , typename TType , typename It >
void syten::Krylov::orthogonalise_variational (StateWrapper< SType, TType > &s, It first, It last)
 
template<typename SType , typename TType , typename It >
void syten::Krylov::orthogonalise_variational_two_site (StateWrapper< SType, TType > &s, It first, It last)
 
template<typename SType , typename TType >
SDef syten::Krylov::overlap (StateWrapper< SType, TType > const &a, StateWrapper< SType, TType > const &b)
 Overlap of two StateWrappers, first argument is complex-conjugated. More...
 

Detailed Description

Wrappers around states and operators to work with the generic Lanczos algorithm.

MPS/BTTS and MPO/BTTO in general support the operations necessary for a Lanczos algorithm to work, but require a thin wrapper to e.g. truncate states at the appropriate time and provide an interface to match the generic implementation.