ExaTN
network_builder.hpp
1 
11 #ifndef EXATN_NUMERICS_NETWORK_BUILDER_HPP_
12 #define EXATN_NUMERICS_NETWORK_BUILDER_HPP_
13 
14 #include "tensor_basic.hpp"
15 
16 #include <string>
17 #include <memory>
18 
19 namespace exatn{
20 
21 namespace numerics{
22 
23 class TensorNetwork;
24 
25 class NetworkBuilder{ //abstract
26 
27 public:
28 
29  NetworkBuilder() = default;
30  NetworkBuilder(const NetworkBuilder &) = default;
31  NetworkBuilder & operator=(const NetworkBuilder &) = default;
32  NetworkBuilder(NetworkBuilder &&) noexcept = default;
33  NetworkBuilder & operator=(NetworkBuilder &&) noexcept = default;
34  virtual ~NetworkBuilder() = default;
35 
37  virtual bool getParameter(const std::string & name, long long * value) const = 0;
38 
40  virtual bool setParameter(const std::string & name, long long value) = 0;
41 
44  virtual void build(TensorNetwork & network) = 0;
45 
46 };
47 
48 using createNetworkBuilderFn = std::unique_ptr<NetworkBuilder> (*)(void);
49 
50 } //namespace numerics
51 
52 } //namespace exatn
53 
54 #endif //EXATN_NUMERICS_NETWORK_BUILDER_HPP_
exatn::numerics::TensorNetwork
Definition: tensor_network.hpp:72
exatn::numerics::NetworkBuilder::setParameter
virtual bool setParameter(const std::string &name, long long value)=0
exatn
Definition: DriverClient.hpp:10
exatn::numerics::NetworkBuilder::build
virtual void build(TensorNetwork &network)=0
exatn::numerics::NetworkBuilder::getParameter
virtual bool getParameter(const std::string &name, long long *value) const =0
exatn::numerics::NetworkBuilder
Definition: network_builder.hpp:25