ExaTN
contraction_seq_optimizer_heuro.hpp
1 
10 #ifndef EXATN_NUMERICS_CONTRACTION_SEQ_OPTIMIZER_HEURO_HPP_
11 #define EXATN_NUMERICS_CONTRACTION_SEQ_OPTIMIZER_HEURO_HPP_
12 
13 #include "contraction_seq_optimizer.hpp"
14 
15 namespace exatn{
16 
17 namespace numerics{
18 
20 
21 public:
22 
24  virtual ~ContractionSeqOptimizerHeuro() = default;
25 
26  void resetNumWalkers(unsigned int num_walkers);
27 
28  virtual double determineContractionSequence(const TensorNetwork & network,
29  std::list<ContrTriple> & contr_seq,
30  std::function<unsigned int ()> intermediate_num_generator) override;
31 
32  static std::unique_ptr<ContractionSeqOptimizer> createNew();
33 
34 protected:
35 
36  unsigned int num_walkers_;
37 };
38 
39 } //namespace numerics
40 
41 } //namespace exatn
42 
43 #endif //EXATN_NUMERICS_CONTRACTION_SEQ_OPTIMIZER_HEURO_HPP_
exatn::numerics::TensorNetwork
Definition: tensor_network.hpp:72
exatn::numerics::ContractionSeqOptimizer
Definition: contraction_seq_optimizer.hpp:33
exatn
Definition: DriverClient.hpp:10
exatn::numerics::ContractionSeqOptimizerHeuro::determineContractionSequence
virtual double determineContractionSequence(const TensorNetwork &network, std::list< ContrTriple > &contr_seq, std::function< unsigned int()> intermediate_num_generator) override
Definition: contraction_seq_optimizer_heuro.cpp:38
exatn::numerics::ContractionSeqOptimizerHeuro
Definition: contraction_seq_optimizer_heuro.hpp:19