Generic orthogonalisation functions. More...
#include "inc/util/scalars.h"
#include "inc/tensor/truncation.h"
#include "inc/dense/dense_invert.h"
Namespaces | |
namespace | syten |
Syten namespace. | |
namespace | syten::MPS |
The namespace containing all MPS-related tools, classes and objects. | |
Functions | |
template<typename T , typename Iterator > | |
void | syten::orthogonalise_arithmetic (T &vec, Iterator first, Iterator last, bool assume_norm_one=false, Truncation const &trunc=Truncation()) |
Generic implementation of orthogonalisation against a set of vectors using Gram-Schmidt orthogonalisation. More... | |
template<typename T , typename Iterator > | |
void | syten::orthogonalise_arithmetic_imp (T &vec, Iterator first, Iterator last, Truncation const &=Truncation(), bool assume_norm_one=false, long=0) |
orthogonalise_arithmetic() : Fully generic implementation More... | |
template<typename T , typename Iterator > | |
auto | syten::orthogonalise_arithmetic_imp (T &vec, Iterator first, Iterator last, Truncation const &trunc=Truncation(), bool assume_norm_one=false, int=0) -> decltype(vec.truncateKeepNorm(trunc), void()) |
orthogonalise_arithmetic() : Preferred implementation, used if truncateKeepNorm() exists. More... | |
template<typename Vector , typename Iterator > | |
std::pair< typename std::remove_reference< Vector >::type, DenseTensor< 2 > > | syten::orthogonalise_solve_svd (Vector &&target, Iterator first, Iterator last, bool careful) |
Generic implementation of orthogonalisation against a set of vectors using SVD-based orthogonalisation. More... | |
template<typename Vector , typename Iterator > | |
std::remove_reference< Vector >::type | syten::orthogonalise_solve_svd (Vector &&target, Iterator first, Iterator last, DenseTensor< 2 > const &xtxinv, bool careful) |
Generic implementation of orthogonalisation against a set of vectors using SVD-based orthogonalisation. More... | |
Generic orthogonalisation functions.