ALPS MPS Codes
Reference documentation.
|
#include "dmrg/utils/logger.h"
#include "dmrg/utils/utils.hpp"
#include "utils/timings.h"
#include "utils/traits.hpp"
#include "utils/bindings.hpp"
#include "dmrg/block_matrix/block_matrix.h"
#include "dmrg/block_matrix/indexing.h"
#include "dmrg/block_matrix/multi_index.h"
#include <boost/lambda/lambda.hpp>
#include <boost/function.hpp>
#include "dmrg/utils/parallel_for.hpp"
Go to the source code of this file.
Classes | |
struct | truncation_results |
Namespaces | |
detail | |
Functions | |
template<class Matrix1 , class Matrix2 , class Matrix3 , class SymmGroup > | |
void | gemm (block_matrix< Matrix1, SymmGroup > const &A, block_matrix< Matrix2, SymmGroup > const &B, block_matrix< Matrix3, SymmGroup > &C) |
template<class Matrix1 , class Matrix2 , class Matrix3 , class SymmGroup > | |
void | gemm_trim_left (block_matrix< Matrix1, SymmGroup > const &A, block_matrix< Matrix2, SymmGroup > const &B, block_matrix< Matrix3, SymmGroup > &C) |
template<class Matrix1 , class Matrix2 , class Matrix3 , class SymmGroup > | |
void | gemm_trim_right (block_matrix< Matrix1, SymmGroup > const &A, block_matrix< Matrix2, SymmGroup > const &B, block_matrix< Matrix3, SymmGroup > &C) |
template<class Matrix , class DiagMatrix , class SymmGroup > | |
void | svd (block_matrix< Matrix, SymmGroup > const &M, block_matrix< Matrix, SymmGroup > &U, block_matrix< Matrix, SymmGroup > &V, block_matrix< DiagMatrix, SymmGroup > &S) |
template<class Matrix , class DiagMatrix , class SymmGroup > | |
void | heev (block_matrix< Matrix, SymmGroup > const &M, block_matrix< Matrix, SymmGroup > &evecs, block_matrix< DiagMatrix, SymmGroup > &evals) |
template<class T > | |
maquis::traits::real_type< T > ::type | gather_real_pred (T const &val) |
template<class DiagMatrix , class SymmGroup > | |
void | estimate_truncation (block_matrix< DiagMatrix, SymmGroup > const &evals, size_t Mmax, double cutoff, size_t *keeps, double &truncated_fraction, double &truncated_weight, double &smallest_ev) |
template<class Matrix , class DiagMatrix , class SymmGroup > | |
truncation_results | svd_truncate (block_matrix< Matrix, SymmGroup > const &M, block_matrix< Matrix, SymmGroup > &U, block_matrix< Matrix, SymmGroup > &V, block_matrix< DiagMatrix, SymmGroup > &S, double rel_tol, std::size_t Mmax, bool verbose=true) |
template<class Matrix , class DiagMatrix , class SymmGroup > | |
truncation_results | alt_svd_truncate (block_matrix< Matrix, SymmGroup > const &M, block_matrix< Matrix, SymmGroup > &U, block_matrix< Matrix, SymmGroup > &V, block_matrix< DiagMatrix, SymmGroup > &S, double rel_tol, std::size_t Mmax, bool verbose=true) |
template<class Matrix , class DiagMatrix , class SymmGroup > | |
truncation_results | heev_truncate (block_matrix< Matrix, SymmGroup > const &M, block_matrix< Matrix, SymmGroup > &evecs, block_matrix< DiagMatrix, SymmGroup > &evals, double cutoff, std::size_t Mmax, bool verbose=true) |
template<class Matrix , class SymmGroup > | |
void | qr (block_matrix< Matrix, SymmGroup > const &M, block_matrix< Matrix, SymmGroup > &Q, block_matrix< Matrix, SymmGroup > &R) |
template<class Matrix , class SymmGroup > | |
void | lq (block_matrix< Matrix, SymmGroup > const &M, block_matrix< Matrix, SymmGroup > &L, block_matrix< Matrix, SymmGroup > &Q) |
template<class Matrix , class SymmGroup > | |
block_matrix< typename maquis::traits::transpose_view < Matrix >::type, SymmGroup > | transpose (block_matrix< Matrix, SymmGroup > const &m) |
template<class Matrix , class SymmGroup > | |
block_matrix< Matrix, SymmGroup > | conjugate (block_matrix< Matrix, SymmGroup > m) |
template<class Matrix , class SymmGroup > | |
block_matrix< Matrix, SymmGroup > | adjoint (block_matrix< Matrix, SymmGroup > m) |
template<class Matrix , class SymmGroup > | |
block_matrix< Matrix, SymmGroup >::scalar_type | trace (block_matrix< Matrix, SymmGroup > const &m) |
template<class Matrix , class SymmGroup > | |
block_matrix< Matrix, SymmGroup > | adjoin (block_matrix< Matrix, SymmGroup > const &m) |
template<class Matrix , class SymmGroup , class Generator > | |
void | generate (block_matrix< Matrix, SymmGroup > &m, Generator &g) |
template<class Matrix , class SymmGroup > | |
block_matrix< Matrix, SymmGroup > | identity_matrix (Index< SymmGroup > const &size) |
template<class Matrix , class SymmGroup > | |
bool | is_hermitian (block_matrix< Matrix, SymmGroup > const &m) |
template<class Matrix , class SymmGroup > | |
block_matrix< Matrix, SymmGroup > | sqrt (block_matrix< Matrix, SymmGroup > m) |
template<class Matrix , class SymmGroup , class A > | |
block_matrix< Matrix, SymmGroup > | op_exp_hermitian (Index< SymmGroup > const &phys, block_matrix< Matrix, SymmGroup > M, A const &alpha=1.) |
template<class Matrix > | |
boost::enable_if < boost::is_complex< typename Matrix::value_type >, Matrix > ::type | detail::exp_dispatcher (Matrix const &m, typename Matrix::value_type const &alpha) |
template<class Matrix > | |
boost::disable_if < boost::is_complex< typename Matrix::value_type >, Matrix > ::type | detail::exp_dispatcher (Matrix const &m, typename Matrix::value_type const &alpha) |
template<class Matrix , class SymmGroup , class A > | |
block_matrix< Matrix, SymmGroup > | op_exp (Index< SymmGroup > const &phys, block_matrix< Matrix, SymmGroup > M, A const &alpha=1.) |
template<class Matrix1 , class Matrix2 , class SymmGroup > | |
void | op_kron (Index< SymmGroup > const &phys_A, Index< SymmGroup > const &phys_B, block_matrix< Matrix1, SymmGroup > const &A, block_matrix< Matrix1, SymmGroup > const &B, block_matrix< Matrix2, SymmGroup > &C) |
template<class Matrix , class SymmGroup > | |
void | op_kron_long (MultiIndex< SymmGroup > const &midx, typename MultiIndex< SymmGroup >::set_id s, block_matrix< Matrix, SymmGroup > const &A, block_matrix< Matrix, SymmGroup > const &B, block_matrix< Matrix, SymmGroup > const &F, std::size_t dist, block_matrix< Matrix, SymmGroup > &C) |
block_matrix<Matrix, SymmGroup> adjoin | ( | block_matrix< Matrix, SymmGroup > const & | m | ) |
Definition at line 456 of file block_matrix_algorithms.h.
block_matrix<Matrix, SymmGroup> adjoint | ( | block_matrix< Matrix, SymmGroup > | m | ) |
Definition at line 443 of file block_matrix_algorithms.h.
truncation_results alt_svd_truncate | ( | block_matrix< Matrix, SymmGroup > const & | M, |
block_matrix< Matrix, SymmGroup > & | U, | ||
block_matrix< Matrix, SymmGroup > & | V, | ||
block_matrix< DiagMatrix, SymmGroup > & | S, | ||
double | rel_tol, | ||
std::size_t | Mmax, | ||
bool | verbose = true |
||
) |
Definition at line 283 of file block_matrix_algorithms.h.
block_matrix<Matrix, SymmGroup> conjugate | ( | block_matrix< Matrix, SymmGroup > | m | ) |
Definition at line 436 of file block_matrix_algorithms.h.
void estimate_truncation | ( | block_matrix< DiagMatrix, SymmGroup > const & | evals, |
size_t | Mmax, | ||
double | cutoff, | ||
size_t * | keeps, | ||
double & | truncated_fraction, | ||
double & | truncated_weight, | ||
double & | smallest_ev | ||
) |
Definition at line 173 of file block_matrix_algorithms.h.
maquis::traits::real_type<T>::type gather_real_pred | ( | T const & | val | ) |
Definition at line 165 of file block_matrix_algorithms.h.
void gemm | ( | block_matrix< Matrix1, SymmGroup > const & | A, |
block_matrix< Matrix2, SymmGroup > const & | B, | ||
block_matrix< Matrix3, SymmGroup > & | C | ||
) |
Definition at line 62 of file block_matrix_algorithms.h.
void gemm_trim_left | ( | block_matrix< Matrix1, SymmGroup > const & | A, |
block_matrix< Matrix2, SymmGroup > const & | B, | ||
block_matrix< Matrix3, SymmGroup > & | C | ||
) |
Definition at line 82 of file block_matrix_algorithms.h.
void gemm_trim_right | ( | block_matrix< Matrix1, SymmGroup > const & | A, |
block_matrix< Matrix2, SymmGroup > const & | B, | ||
block_matrix< Matrix3, SymmGroup > & | C | ||
) |
Definition at line 107 of file block_matrix_algorithms.h.
void generate | ( | block_matrix< Matrix, SymmGroup > & | m, |
Generator & | g | ||
) |
Definition at line 467 of file block_matrix_algorithms.h.
void heev | ( | block_matrix< Matrix, SymmGroup > const & | M, |
block_matrix< Matrix, SymmGroup > & | evecs, | ||
block_matrix< DiagMatrix, SymmGroup > & | evals | ||
) |
Definition at line 151 of file block_matrix_algorithms.h.
truncation_results heev_truncate | ( | block_matrix< Matrix, SymmGroup > const & | M, |
block_matrix< Matrix, SymmGroup > & | evecs, | ||
block_matrix< DiagMatrix, SymmGroup > & | evals, | ||
double | cutoff, | ||
std::size_t | Mmax, | ||
bool | verbose = true |
||
) |
Definition at line 334 of file block_matrix_algorithms.h.
block_matrix<Matrix, SymmGroup> identity_matrix | ( | Index< SymmGroup > const & | size | ) |
Definition at line 473 of file block_matrix_algorithms.h.
bool is_hermitian | ( | block_matrix< Matrix, SymmGroup > const & | m | ) |
Definition at line 482 of file block_matrix_algorithms.h.
void lq | ( | block_matrix< Matrix, SymmGroup > const & | M, |
block_matrix< Matrix, SymmGroup > & | L, | ||
block_matrix< Matrix, SymmGroup > & | Q | ||
) |
Definition at line 405 of file block_matrix_algorithms.h.
block_matrix<Matrix, SymmGroup> op_exp | ( | Index< SymmGroup > const & | phys, |
block_matrix< Matrix, SymmGroup > | M, | ||
A const & | alpha = 1. |
||
) |
Definition at line 556 of file block_matrix_algorithms.h.
block_matrix<Matrix, SymmGroup> op_exp_hermitian | ( | Index< SymmGroup > const & | phys, |
block_matrix< Matrix, SymmGroup > | M, | ||
A const & | alpha = 1. |
||
) |
Definition at line 524 of file block_matrix_algorithms.h.
void op_kron | ( | Index< SymmGroup > const & | phys_A, |
Index< SymmGroup > const & | phys_B, | ||
block_matrix< Matrix1, SymmGroup > const & | A, | ||
block_matrix< Matrix1, SymmGroup > const & | B, | ||
block_matrix< Matrix2, SymmGroup > & | C | ||
) |
Definition at line 570 of file block_matrix_algorithms.h.
void op_kron_long | ( | MultiIndex< SymmGroup > const & | midx, |
typename MultiIndex< SymmGroup >::set_id | s, | ||
block_matrix< Matrix, SymmGroup > const & | A, | ||
block_matrix< Matrix, SymmGroup > const & | B, | ||
block_matrix< Matrix, SymmGroup > const & | F, | ||
std::size_t | dist, | ||
block_matrix< Matrix, SymmGroup > & | C | ||
) |
Definition at line 603 of file block_matrix_algorithms.h.
void qr | ( | block_matrix< Matrix, SymmGroup > const & | M, |
block_matrix< Matrix, SymmGroup > & | Q, | ||
block_matrix< Matrix, SymmGroup > & | R | ||
) |
Definition at line 383 of file block_matrix_algorithms.h.
block_matrix<Matrix, SymmGroup> sqrt | ( | block_matrix< Matrix, SymmGroup > | m | ) |
Definition at line 499 of file block_matrix_algorithms.h.
void svd | ( | block_matrix< Matrix, SymmGroup > const & | M, |
block_matrix< Matrix, SymmGroup > & | U, | ||
block_matrix< Matrix, SymmGroup > & | V, | ||
block_matrix< DiagMatrix, SymmGroup > & | S | ||
) |
Definition at line 132 of file block_matrix_algorithms.h.
truncation_results svd_truncate | ( | block_matrix< Matrix, SymmGroup > const & | M, |
block_matrix< Matrix, SymmGroup > & | U, | ||
block_matrix< Matrix, SymmGroup > & | V, | ||
block_matrix< DiagMatrix, SymmGroup > & | S, | ||
double | rel_tol, | ||
std::size_t | Mmax, | ||
bool | verbose = true |
||
) |
Definition at line 221 of file block_matrix_algorithms.h.
block_matrix<Matrix, SymmGroup>::scalar_type trace | ( | block_matrix< Matrix, SymmGroup > const & | m | ) |
Definition at line 450 of file block_matrix_algorithms.h.
block_matrix<typename maquis::traits::transpose_view<Matrix>::type, SymmGroup> transpose | ( | block_matrix< Matrix, SymmGroup > const & | m | ) |
Definition at line 427 of file block_matrix_algorithms.h.