ExaTN
network_builder_tree.hpp
1 
10 #ifndef EXATN_NUMERICS_NETWORK_BUILDER_TREE_HPP_
11 #define EXATN_NUMERICS_NETWORK_BUILDER_TREE_HPP_
12 
13 #include "tensor_basic.hpp"
14 #include "network_builder.hpp"
15 
16 #include <string>
17 #include <memory>
18 
19 namespace exatn{
20 
21 namespace numerics{
22 
24 
25 public:
26 
28  NetworkBuilderTree(const NetworkBuilderTree &) = default;
29  NetworkBuilderTree & operator=(const NetworkBuilderTree &) = default;
30  NetworkBuilderTree(NetworkBuilderTree &&) noexcept = default;
31  NetworkBuilderTree & operator=(NetworkBuilderTree &&) noexcept = default;
32  virtual ~NetworkBuilderTree() = default;
33 
35  virtual bool getParameter(const std::string & name, long long * value) const override;
36 
38  virtual bool setParameter(const std::string & name, long long value) override;
39 
41  virtual void build(TensorNetwork & network) override;
42 
43  static std::unique_ptr<NetworkBuilder> createNew();
44 
45 private:
46 
47  long long max_bond_dim_; //maximal internal bond dimension
48  long long arity_; //tree arity
49 };
50 
51 } //namespace numerics
52 
53 } //namespace exatn
54 
55 #endif //EXATN_NUMERICS_NETWORK_BUILDER_TREE_HPP_
exatn::numerics::NetworkBuilderTree
Definition: network_builder_tree.hpp:23
exatn::numerics::TensorNetwork
Definition: tensor_network.hpp:72
exatn
Definition: DriverClient.hpp:10
exatn::numerics::NetworkBuilderTree::getParameter
virtual bool getParameter(const std::string &name, long long *value) const override
Definition: network_builder_tree.cpp:20
exatn::numerics::NetworkBuilderTree::build
virtual void build(TensorNetwork &network) override
Definition: network_builder_tree.cpp:48
exatn::numerics::NetworkBuilderTree::setParameter
virtual bool setParameter(const std::string &name, long long value) override
Definition: network_builder_tree.cpp:34
exatn::numerics::NetworkBuilder
Definition: network_builder.hpp:25