![]()  | 
  
    mptensor
    v0.3.0
    
   Parallel Library for Tensor Network Methods 
   | 
 
Tensor class. More...
#include <algorithm>#include <cassert>#include <iostream>#include <string>#include <vector>#include "complex.hpp"#include "index.hpp"#include "matrix.hpp"#include "tensor_impl.hpp"#include "file_io/save.hpp"#include "file_io/load.hpp"Go to the source code of this file.
Classes | |
| class | mptensor::Tensor< Matrix, C > | 
| Tensor class. The main object of mptensor.  More... | |
Namespaces | |
| mptensor | |
Typedefs | |
| typedef Index | mptensor::Axes | 
| typedef Index | mptensor::Shape | 
Functions | |
| template<template< typename > class Matrix, typename C > | |
| Tensor< Matrix, C > | mptensor::transpose (Tensor< Matrix, C > T, const Axes &axes) | 
| Transposition of tensor with lazy evaluation.  More... | |
| template<template< typename > class Matrix, typename C > | |
| Tensor< Matrix, C > | mptensor::transpose (const Tensor< Matrix, C > &T, const Axes &axes, size_t urank_new) | 
| Transposition of tensor without lazy evaluation.  More... | |
| template<template< typename > class Matrix, typename C > | |
| Tensor< Matrix, C > | mptensor::reshape (const Tensor< Matrix, C > &T, const Shape &shape_new) | 
| Change the shape of tensor.  More... | |
| template<template< typename > class Matrix, typename C > | |
| Tensor< Matrix, C > | mptensor::slice (const Tensor< Matrix, C > &T, size_t n_axes, size_t i_begin, size_t i_end) | 
| Slice a tensor.  More... | |
| template<template< typename > class Matrix, typename C > | |
| Tensor< Matrix, C > | mptensor::slice (const Tensor< Matrix, C > &T, const Index &index_begin, const Index &index_end) | 
| Slice a tensor.  More... | |
| template<template< typename > class Matrix, typename C > | |
| Tensor< Matrix, C > | mptensor::extend (const Tensor< Matrix, C > &T, const Shape &shape_new) | 
| Extend the size of a tensor.  More... | |
| template<template< typename > class Matrix, typename C > | |
| C | mptensor::trace (const Tensor< Matrix, C > &M) | 
| Trace of matrix (rank-2 tensor)  More... | |
| template<template< typename > class Matrix, typename C > | |
| C | mptensor::trace (const Tensor< Matrix, C > &T, const Axes &axes_1, const Axes &axes_2) | 
| Full trace of tensor.  More... | |
| template<template< typename > class Matrix, typename C > | |
| C | mptensor::trace (const Tensor< Matrix, C > &A, const Tensor< Matrix, C > &B, const Axes &axes_a, const Axes &axes_b) | 
| Full contraction of two tensors.  More... | |
| template<template< typename > class Matrix, typename C > | |
| Tensor< Matrix, C > | mptensor::contract (const Tensor< Matrix, C > &T, const Axes &axes_1, const Axes &axes_2) | 
| Partial trace of tensor.  More... | |
| template<template< typename > class Matrix, typename C > | |
| Tensor< Matrix, C > | mptensor::tensordot (const Tensor< Matrix, C > &a, const Tensor< Matrix, C > &b, const Axes &axes_a, const Axes &axes_b) | 
| Compute tensor dot product.  More... | |
| template<template< typename > class Matrix, typename C > | |
| Tensor< Matrix, C > | mptensor::kron (const Tensor< Matrix, C > &a, const Tensor< Matrix, C > &b) | 
| Compute the Kronecker product.  More... | |
| template<template< typename > class Matrix, typename C > | |
| int | mptensor::svd (const Tensor< Matrix, C > &a, std::vector< double > &s) | 
| Singular value decomposition for rank-2 tensor (matrix)  More... | |
| template<template< typename > class Matrix, typename C > | |
| int | mptensor::svd (const Tensor< Matrix, C > &a, Tensor< Matrix, C > &u, std::vector< double > &s, Tensor< Matrix, C > &vt) | 
| Singular value decomposition for rank-2 tensor (matrix)  More... | |
| template<template< typename > class Matrix, typename C > | |
| int | mptensor::svd (const Tensor< Matrix, C > &a, const Axes &axes_row, const Axes &axes_col, std::vector< double > &s) | 
| Singular value decomposition for tensor.  More... | |
| template<template< typename > class Matrix, typename C > | |
| int | mptensor::svd (const Tensor< Matrix, C > &a, const Axes &axes_row, const Axes &axes_col, Tensor< Matrix, C > &u, std::vector< double > &s, Tensor< Matrix, C > &vt) | 
| Singular value decomposition for tensor.  More... | |
| template<template< typename > class Matrix, typename C > | |
| int | mptensor::psvd (const Tensor< Matrix, C > &a, std::vector< double > &s, const size_t target_rank) | 
| Partial SVD for rank-2 tensor (matrix)  More... | |
| template<template< typename > class Matrix, typename C > | |
| int | mptensor::psvd (const Tensor< Matrix, C > &a, Tensor< Matrix, C > &u, std::vector< double > &s, Tensor< Matrix, C > &vt, const size_t target_rank) | 
| Partial SVD for rank-2 tensor (matrix)  More... | |
| template<template< typename > class Matrix, typename C > | |
| int | mptensor::psvd (const Tensor< Matrix, C > &a, const Axes &axes_row, const Axes &axes_col, std::vector< double > &s, const size_t target_rank) | 
| Partial SVD for tensor.  More... | |
| template<template< typename > class Matrix, typename C > | |
| int | mptensor::psvd (const Tensor< Matrix, C > &a, const Axes &axes_row, const Axes &axes_col, Tensor< Matrix, C > &u, std::vector< double > &s, Tensor< Matrix, C > &vt, const size_t target_rank) | 
| Partial SVD for tensor.  More... | |
| template<template< typename > class Matrix, typename C > | |
| int | mptensor::qr (const Tensor< Matrix, C > &a, Tensor< Matrix, C > &q, Tensor< Matrix, C > &r) | 
| QR decomposition of matrix (rank-2 tensor)  More... | |
| template<template< typename > class Matrix, typename C > | |
| int | mptensor::qr (const Tensor< Matrix, C > &a, const Axes &axes_row, const Axes &axes_col, Tensor< Matrix, C > &q, Tensor< Matrix, C > &r) | 
| QR decomposition of tensor.  More... | |
| template<template< typename > class Matrix, typename C > | |
| int | mptensor::eigh (const Tensor< Matrix, C > &a, std::vector< double > &eigval, Tensor< Matrix, C > &eigvec) | 
| template<template< typename > class Matrix, typename C > | |
| int | mptensor::eigh (const Tensor< Matrix, C > &a, std::vector< double > &eigval) | 
| template<template< typename > class Matrix, typename C > | |
| int | mptensor::eigh (const Tensor< Matrix, C > &a, const Axes &axes_row, const Axes &axes_col, std::vector< double > &eigval, Tensor< Matrix, C > &eigvec) | 
| template<template< typename > class Matrix, typename C > | |
| int | mptensor::eigh (const Tensor< Matrix, C > &a, const Axes &axes_row, const Axes &axes_col, std::vector< double > &w) | 
| Compute the eigenvalues of a complex Hermitian or real symmetric tensor.  More... | |
| template<template< typename > class Matrix, typename C > | |
| int | mptensor::eigh (const Tensor< Matrix, C > &a, const Axes &axes_row_a, const Axes &axes_col_a, const Tensor< Matrix, C > &b, const Axes &axes_row_b, const Axes &axes_col_b, std::vector< double > &eigval, Tensor< Matrix, C > &eigvec) | 
| template<template< typename > class Matrix, typename C > | |
| int | mptensor::eig (const Tensor< Matrix, C > &a, std::vector< complex > &w, Tensor< Matrix, complex > &z) | 
| Compute the eigenvalues and eigenvectors of a general matrix (rank-2 tensor)  More... | |
| template<template< typename > class Matrix, typename C > | |
| int | mptensor::eig (const Tensor< Matrix, C > &a, std::vector< complex > &w) | 
| Compute only the eigenvalues of a general matrix (rank-2 tensor)  More... | |
| template<template< typename > class Matrix, typename C > | |
| int | mptensor::eig (const Tensor< Matrix, C > &a, const Axes &axes_row, const Axes &axes_col, std::vector< complex > &w, Tensor< Matrix, complex > &z) | 
| Compute the eigenvalues and eigenvectors of a general tensor.  More... | |
| template<template< typename > class Matrix, typename C > | |
| int | mptensor::eig (const Tensor< Matrix, C > &a, const Axes &axes_row, const Axes &axes_col, std::vector< complex > &w) | 
| Compute the eigenvalues of a general tensor.  More... | |
| template<template< typename > class Matrix, typename C > | |
| int | mptensor::solve (const Tensor< Matrix, C > &a, const std::vector< C > &b, std::vector< C > &x) | 
| Solve linear equation \( A\vec{x}=\vec{b}\).  More... | |
| template<template< typename > class Matrix, typename C > | |
| int | mptensor::solve (const Tensor< Matrix, C > &a, const Tensor< Matrix, C > &b, Tensor< Matrix, C > &x) | 
| Solve linear equation \( AX=B\).  More... | |
| template<template< typename > class Matrix, typename C > | |
| int | mptensor::solve (const Tensor< Matrix, C > &a, const Tensor< Matrix, C > &b, Tensor< Matrix, C > &x, const Axes &axes_row_a, const Axes &axes_col_a, const Axes &axes_row_b, const Axes &axes_col_b) | 
| Solve linear equation \( AX=B\).  More... | |
| template<template< typename > class Matrix, typename C > | |
| Tensor< Matrix, C > | mptensor::operator+ (Tensor< Matrix, C > rhs) | 
| Unary plus.  More... | |
| template<template< typename > class Matrix, typename C > | |
| Tensor< Matrix, C > | mptensor::operator- (Tensor< Matrix, C > rhs) | 
| Unary minus.  More... | |
| template<template< typename > class Matrix, typename C > | |
| Tensor< Matrix, C > | mptensor::operator+ (Tensor< Matrix, C > lhs, const Tensor< Matrix, C > &rhs) | 
| Addition.  More... | |
| template<template< typename > class Matrix, typename C > | |
| Tensor< Matrix, C > | mptensor::operator- (Tensor< Matrix, C > lhs, const Tensor< Matrix, C > &rhs) | 
| Subtraction.  More... | |
| template<template< typename > class Matrix, typename C , typename D > | |
| Tensor< Matrix, C > | mptensor::operator* (Tensor< Matrix, C > lhs, D rhs) | 
| Tensor-scalar multiplication.  More... | |
| template<template< typename > class Matrix, typename C , typename D > | |
| Tensor< Matrix, C > | mptensor::operator/ (Tensor< Matrix, C > lhs, D rhs) | 
| Scalar division.  More... | |
| template<template< typename > class Matrix, typename C , typename D > | |
| Tensor< Matrix, C > | mptensor::operator* (D lhs, Tensor< Matrix, C > rhs) | 
| Scalar-tensor multiplication.  More... | |
| template<template< typename > class Matrix, typename C > | |
| Tensor< Matrix, C > | mptensor::sqrt (Tensor< Matrix, C > t) | 
| Take square-root of each element.  More... | |
| template<template< typename > class Matrix, typename C > | |
| Tensor< Matrix, C > | mptensor::conj (Tensor< Matrix, C > t) | 
| Take conjugate of each element.  More... | |
| template<template< typename > class Matrix, typename C > | |
| double | mptensor::max (const Tensor< Matrix, C > &t) | 
| Return the maximum element. For complex, same as max_abs().  More... | |
| template<template< typename > class Matrix, typename C > | |
| double | mptensor::min (const Tensor< Matrix, C > &t) | 
| Return the minimum element. For complex, same as min_abs().  More... | |
| template<template< typename > class Matrix, typename C > | |
| double | mptensor::max_abs (const Tensor< Matrix, C > &t) | 
| Return maximum of the absolute value of an element.  More... | |
| template<template< typename > class Matrix, typename C > | |
| double | mptensor::min_abs (const Tensor< Matrix, C > &t) | 
| Return minimum of the absolute value of an element.  More... | |
| template<template< typename > class Matrix, typename C > | |
| std::ostream & | mptensor::operator<< (std::ostream &out, const Tensor< Matrix, C > &t) | 
| Output elements of tensor in numpy style.  More... | |
Tensor class.