ExaTN
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
exatn::numerics::ContractionSeqOptimizerHeuro Class Reference
Inheritance diagram for exatn::numerics::ContractionSeqOptimizerHeuro:
exatn::numerics::ContractionSeqOptimizer

Public Member Functions

void resetNumWalkers (unsigned int num_walkers)
 
virtual double determineContractionSequence (const TensorNetwork &network, std::list< ContrTriple > &contr_seq, std::function< unsigned int()> intermediate_num_generator) override
 

Static Public Member Functions

static std::unique_ptr< ContractionSeqOptimizercreateNew ()
 

Protected Attributes

unsigned int num_walkers_
 

Member Function Documentation

◆ determineContractionSequence()

double exatn::numerics::ContractionSeqOptimizerHeuro::determineContractionSequence ( const TensorNetwork network,
std::list< ContrTriple > &  contr_seq,
std::function< unsigned int()>  intermediate_num_generator 
)
overridevirtual

Determines the pseudo-optimal tensor contraction sequence required for evaluating a given tensor network. The unique intermediate tensor id's are generated by the provided intermediate number generator (each invocation returns a new tensor id). The latter can be conveniently passed as a lambda closure. The returned double value is an estimate of the total flop count associated with the determined contraction sequence. The tensor network must have at least two input tensors in order to get a single contraction. No contraction sequence is generated for tensor networks with a single input tensor.

Implements exatn::numerics::ContractionSeqOptimizer.


The documentation for this class was generated from the following files: