# net::tensor
# Classes
Name | |
---|---|
struct | net::tensor::absorb |
struct | net::tensor::auto_qr |
struct | net::tensor::contract |
struct | net::tensor::default_dec |
struct | net::tensor::qr |
struct | net::tensor::svd |
struct | net::tensor::svd2 |
# Types
Name | |
---|---|
template <typename T ,typename SiteKey =std::string,typename EdgeKey =stdEdgeKey> using network< Tensor< T, EdgeKey >, Tensor< T, EdgeKey >, SiteKey, EdgeKey, default_traits< Tensor< T, EdgeKey >, Tensor< T, EdgeKey >, SiteKey, EdgeKey > > | TensorNetworkEnv |
template <typename T ,typename SiteKey =std::string,typename EdgeKey =stdEdgeKey> using network< Tensor< T, EdgeKey >, std::monostate, SiteKey, EdgeKey, default_traits< Tensor< T, EdgeKey >, std::monostate, SiteKey, EdgeKey > > | TensorNetworkNoEnv |
template <typename T ,typename EdgeKey =stdEdgeKey> using TAT::Tensor< T, TAT::NoSymmetry, EdgeKey > | Tensor |
# Functions
Name | |
---|---|
template <typename NetType > NetType::NodeValType | init_node_rand(const typename NetType::NodeType & this_node, const unsigned int D, const double min, const double max, std::default_random_engine & R) |
template <typename NetType > NetType::NodeValType | init_node_rand_phy(const typename NetType::NodeType & this_node, const unsigned int D, const unsigned int dphy, std::default_random_engine & R) |
template <typename NetType > NetType::EdgeValType | init_edge_one(const typename NetType::NodeType & this_node, const typename NetType::EdgeKeyType & edge1, const unsigned int D) |
template <typename NetType > NetType::EdgeValType | init_edge_null(const typename NetType::NodeType & this_node, const typename NetType::EdgeKeyType & edge1) |
template <typename T ,typename EdgeKey =stdEdgeKey> std::monostate | zero_map(const Tensor< T, EdgeKey > & ten) |
std::string | conjugate_string(const std::string & s) |
std::monostate | conjugate_mono(const std::monostate & m) |
template <typename T > Tensor< T > | conjugate_tensor(const Tensor< T > & t) |
template <typename T > TensorNetworkEnv< T > | conjugate_tnenv(const TensorNetworkEnv< T > & t) |
template <typename T > TensorNetworkNoEnv< T > | conjugate_tnnoenv(const TensorNetworkNoEnv< T > & t) |
template <typename T > TensorNetworkEnv< T > | double_tnenv(const TensorNetworkEnv< T > & t) |
template <typename T > TensorNetworkNoEnv< T > | double_tnnoenv(const TensorNetworkNoEnv< T > & t) |
template <template< typename > typename TreeVal,typename NetType ,typename Engine > std::shared_ptr< net::tree< TreeVal< typename NetType::NodeKeySetType > > > | get_contract_tree(const NetType & lat, Engine & eg, const std::string & method) |
template <typename Network > Network::NodeValType | contract_tn(const Network & n, Engine & eg, const std::string & method) |
template <typename TnType > int | get_dim(TnType ten, int s) |
template <typename TnType > int | get_size(TnType ten) |
template <typename TnType > int | get_rank(TnType ten) |
template <typename T > std::set< std::string > | inds_start_with(const TAT::Tensor< T > & ten, const std::string & head) |
template <typename TnType ,typename EdgeKey > int | get_dim(TnType ten, EdgeKey s) |
template <typename TnType > void | diminfo(TnType ten, std::ostream & os) |
template <typename T ,typename EdgeKey =stdEdgeKey> Tensor< T, EdgeKey > | get_diag(const Tensor< T, EdgeKey > & ten, std::vector< std::pair< EdgeKey, EdgeKey > > names) 得到tensor的对角元 |
# Attributes
Name | |
---|---|
std::function< std::string(const std::string &)> | conjugate_string_fun |
std::function< std::monostate(const std::monostate &)> | conjugate_mono_fun |
std::function< Tensor< T >(const Tensor< T > &)> | conjugate_tensor_fun |
# Types Documentation
# using TensorNetworkEnv
template <typename T ,
typename SiteKey =std::string,
typename EdgeKey =stdEdgeKey>
using net::tensor::TensorNetworkEnv = typedef network< Tensor<T, EdgeKey>, Tensor<T, EdgeKey>, SiteKey, EdgeKey, default_traits<Tensor<T, EdgeKey>, Tensor<T, EdgeKey>, SiteKey, EdgeKey> >;
# using TensorNetworkNoEnv
template <typename T ,
typename SiteKey =std::string,
typename EdgeKey =stdEdgeKey>
using net::tensor::TensorNetworkNoEnv = typedef network<Tensor<T, EdgeKey>, std::monostate, SiteKey, EdgeKey, default_traits<Tensor<T, EdgeKey>, std::monostate, SiteKey, EdgeKey> >;
# using Tensor
template <typename T ,
typename EdgeKey =stdEdgeKey>
using net::tensor::Tensor = typedef TAT::Tensor<T, TAT::NoSymmetry, EdgeKey>;
# Functions Documentation
# function init_node_rand
template <typename NetType >
NetType::NodeValType init_node_rand(
const typename NetType::NodeType & this_node,
const unsigned int D,
const double min,
const double max,
std::default_random_engine & R
)
# function init_node_rand_phy
template <typename NetType >
NetType::NodeValType init_node_rand_phy(
const typename NetType::NodeType & this_node,
const unsigned int D,
const unsigned int dphy,
std::default_random_engine & R
)
# function init_edge_one
template <typename NetType >
NetType::EdgeValType init_edge_one(
const typename NetType::NodeType & this_node,
const typename NetType::EdgeKeyType & edge1,
const unsigned int D
)
# function init_edge_null
template <typename NetType >
NetType::EdgeValType init_edge_null(
const typename NetType::NodeType & this_node,
const typename NetType::EdgeKeyType & edge1
)
# function zero_map
template <typename T ,
typename EdgeKey =stdEdgeKey>
std::monostate zero_map(
const Tensor< T, EdgeKey > & ten
)
# function conjugate_string
inline std::string conjugate_string(
const std::string & s
)
# function conjugate_mono
inline std::monostate conjugate_mono(
const std::monostate & m
)
# function conjugate_tensor
template <typename T >
Tensor< T > conjugate_tensor(
const Tensor< T > & t
)
# function conjugate_tnenv
template <typename T >
TensorNetworkEnv< T > conjugate_tnenv(
const TensorNetworkEnv< T > & t
)
# function conjugate_tnnoenv
template <typename T >
TensorNetworkNoEnv< T > conjugate_tnnoenv(
const TensorNetworkNoEnv< T > & t
)
# function double_tnenv
template <typename T >
TensorNetworkEnv< T > double_tnenv(
const TensorNetworkEnv< T > & t
)
# function double_tnnoenv
template <typename T >
TensorNetworkNoEnv< T > double_tnnoenv(
const TensorNetworkNoEnv< T > & t
)
# function get_contract_tree
template <template< typename > typename TreeVal,
typename NetType ,
typename Engine >
std::shared_ptr< net::tree< TreeVal< typename NetType::NodeKeySetType > > > get_contract_tree(
const NetType & lat,
Engine & eg,
const std::string & method
)
# function contract_tn
template <typename Network >
Network::NodeValType contract_tn(
const Network & n,
Engine & eg,
const std::string & method
)
# function get_dim
template <typename TnType >
int get_dim(
TnType ten,
int s
)
# function get_size
template <typename TnType >
int get_size(
TnType ten
)
# function get_rank
template <typename TnType >
int get_rank(
TnType ten
)
# function inds_start_with
template <typename T >
std::set< std::string > inds_start_with(
const TAT::Tensor< T > & ten,
const std::string & head
)
# function get_dim
template <typename TnType ,
typename EdgeKey >
int get_dim(
TnType ten,
EdgeKey s
)
# function diminfo
template <typename TnType >
void diminfo(
TnType ten,
std::ostream & os
)
# function get_diag
template <typename T ,
typename EdgeKey =stdEdgeKey>
Tensor< T, EdgeKey > get_diag(
const Tensor< T, EdgeKey > & ten,
std::vector< std::pair< EdgeKey, EdgeKey > > names
)
得到tensor的对角元
# Attributes Documentation
# variable conjugate_string_fun
std::function< std::string(const std::string &)> conjugate_string_fun = [conjugate_string](/Namespaces/namespacenet_1_1tensor.md#function-conjugate_string);
# variable conjugate_mono_fun
std::function< std::monostate(const std::monostate &)> conjugate_mono_fun = [conjugate_mono](/Namespaces/namespacenet_1_1tensor.md#function-conjugate_mono);
# variable conjugate_tensor_fun
std::function< Tensor< T >(const Tensor< T > &)> conjugate_tensor_fun = [conjugate_tensor](/Namespaces/namespacenet_1_1tensor.md#function-conjugate_tensor)<T>;
Updated on 15 June 2022 at 16:04:19 CST