Maestro 0.2.5
Unified interface for quantum circuit simulation
Loading...
Searching...
No Matches
TensorNetworks::StochasticContractor Class Reference

The Stochastic Tensor Contractor. More...

#include <StochasticContractor.h>

+ Inheritance diagram for TensorNetworks::StochasticContractor:
+ Collaboration diagram for TensorNetworks::StochasticContractor:

Public Types

using TensorsMap = ITensorContractor::TensorsMap
 

Public Member Functions

 StochasticContractor ()
 Constructor.
 
std::shared_ptr< ITensorContractorClone () const override
 Clone the tensor contractor.
 
double Contract (const TensorNetwork &network, Types::qubit_t qubit) override
 Contract the tensor network.
 
template<class PassedTensorsMap = TensorsMap>
Eigen::Index ContractNodes (Types::qubit_t qubit, PassedTensorsMap &tensors, Eigen::Index tensor1Id, Eigen::Index tensor2Id, Eigen::Index resultRank)
 
size_t GetMaxRejections () const
 
size_t GetMaxTensorRank () const override
 
bool GetMultithreading () const override
 Get the multithreading flag.
 
TensorsMap InitializeTensors (const TensorNetwork &network, Types::qubit_t qubit, std::vector< Eigen::Index > &keys, std::unordered_map< Eigen::Index, Eigen::Index > &keysKeys, bool fillKeys=true, bool contract=true) override
 
void SetMaxRejections (size_t maxRejections)
 
void SetMultithreading (bool multithreading=true) override
 Enable/disable multithreading.
 

Static Public Member Functions

static size_t GetResultRank (const std::shared_ptr< TensorNode > &tensor1, const std::shared_ptr< TensorNode > &tensor2)
 

Protected Attributes

bool enableMultithreading
 A flag to indicate if multithreading should be enabled.
 
std::mt19937 gen
 
size_t MaxRejections = 15
 
size_t maxTensorRank
 The maximum rank of the tensors in the network.
 

Detailed Description

The Stochastic Tensor Contractor.

Tensor contractions using a stochastic method.

Definition at line 31 of file StochasticContractor.h.

Member Typedef Documentation

◆ TensorsMap

Constructor & Destructor Documentation

◆ StochasticContractor()

TensorNetworks::StochasticContractor::StochasticContractor ( )
inline

Constructor.

Constructs the Stochastic Tensor Contractor. Initializes the random number generator.

Definition at line 39 of file StochasticContractor.h.

Member Function Documentation

◆ Clone()

std::shared_ptr< ITensorContractor > TensorNetworks::StochasticContractor::Clone ( ) const
inlineoverridevirtual

Clone the tensor contractor.

Returns
A shared pointer to the cloned tensor contractor.

Implements TensorNetworks::ITensorContractor.

Definition at line 159 of file StochasticContractor.h.

References TensorNetworks::BaseContractor::enableMultithreading, MaxRejections, and TensorNetworks::BaseContractor::maxTensorRank.

◆ Contract()

double TensorNetworks::StochasticContractor::Contract ( const TensorNetwork network,
Types::qubit_t  qubit 
)
inlineoverridevirtual

Contract the tensor network.

Parameters
networkThe tensor network to contract.
Returns
The result of the contraction.

Implements TensorNetworks::ITensorContractor.

Definition at line 47 of file StochasticContractor.h.

References TensorNetworks::BaseContractor::ContractNodes(), gen, TensorNetworks::BaseContractor::GetResultRank(), TensorNetworks::BaseContractor::InitializeTensors(), and MaxRejections.

◆ ContractNodes()

template<class PassedTensorsMap = TensorsMap>
Eigen::Index TensorNetworks::BaseContractor::ContractNodes ( Types::qubit_t  qubit,
PassedTensorsMap &  tensors,
Eigen::Index  tensor1Id,
Eigen::Index  tensor2Id,
Eigen::Index  resultRank 
)
inlineinherited

◆ GetMaxRejections()

size_t TensorNetworks::StochasticContractor::GetMaxRejections ( ) const
inline

Definition at line 150 of file StochasticContractor.h.

References MaxRejections.

◆ GetMaxTensorRank()

size_t TensorNetworks::BaseContractor::GetMaxTensorRank ( ) const
inlineoverridevirtualinherited

◆ GetMultithreading()

bool TensorNetworks::BaseContractor::GetMultithreading ( ) const
inlineoverridevirtualinherited

Get the multithreading flag.

Returns the multithreading flag.

Returns
The multithreading flag.

Implements TensorNetworks::ITensorContractor.

Definition at line 257 of file BaseContractor.h.

References TensorNetworks::BaseContractor::enableMultithreading.

◆ GetResultRank()

static size_t TensorNetworks::BaseContractor::GetResultRank ( const std::shared_ptr< TensorNode > &  tensor1,
const std::shared_ptr< TensorNode > &  tensor2 
)
inlinestaticinherited

◆ InitializeTensors()

TensorsMap TensorNetworks::BaseContractor::InitializeTensors ( const TensorNetwork network,
Types::qubit_t  qubit,
std::vector< Eigen::Index > &  keys,
std::unordered_map< Eigen::Index, Eigen::Index > &  keysKeys,
bool  fillKeys = true,
bool  contract = true 
)
inlineoverridevirtualinherited

◆ SetMaxRejections()

void TensorNetworks::StochasticContractor::SetMaxRejections ( size_t  maxRejections)
inline

Definition at line 152 of file StochasticContractor.h.

References MaxRejections.

◆ SetMultithreading()

void TensorNetworks::BaseContractor::SetMultithreading ( bool  multithreading = true)
inlineoverridevirtualinherited

Enable/disable multithreading.

Enable/disable multithreading. Default is enabled.

Parameters
multithreadingA flag to indicate if multithreading should be enabled.

Implements TensorNetworks::ITensorContractor.

Definition at line 246 of file BaseContractor.h.

References TensorNetworks::BaseContractor::enableMultithreading.

Member Data Documentation

◆ enableMultithreading

◆ gen

std::mt19937 TensorNetworks::StochasticContractor::gen
protected

Definition at line 170 of file StochasticContractor.h.

Referenced by Contract().

◆ MaxRejections

size_t TensorNetworks::StochasticContractor::MaxRejections = 15
protected

Definition at line 171 of file StochasticContractor.h.

Referenced by Clone(), Contract(), GetMaxRejections(), and SetMaxRejections().

◆ maxTensorRank


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