Maestro 0.1.0
Unified interface for quantum circuit simulation
Loading...
Searching...
No Matches
TensorNetworks::ITensorContractor Class Referenceabstract

Tensor Contractor interface. More...

#include <TensorContractor.h>

Inheritance diagram for TensorNetworks::ITensorContractor:
TensorNetworks::BaseContractor TensorNetworks::DumbContractor TensorNetworks::ForestContractor TensorNetworks::LookaheadContractor TensorNetworks::StochasticContractor TensorNetworks::VerticalContractor

Public Types

using TensorsMap

Public Member Functions

virtual 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)=0
virtual double Contract (const TensorNetwork &network, Types::qubit_t qubit)=0
 Contract the tensor network.
virtual size_t GetMaxTensorRank () const =0
virtual void SetMultithreading (bool multithreading=true)=0
 Enable/disable multithreading.
virtual bool GetMultithreading () const =0
 Get the multithreading flag.
virtual std::shared_ptr< ITensorContractorClone () const =0
 Clone the tensor contractor.

Detailed Description

Tensor Contractor interface.

Defines an interface for tensor contractions. There might be different implementations for different types of contractions.

Definition at line 33 of file TensorContractor.h.

Member Typedef Documentation

◆ TensorsMap

Initial value:
std::unordered_map<Eigen::Index, std::shared_ptr<TensorNode>>

Definition at line 35 of file TensorContractor.h.

Member Function Documentation

◆ Clone()

virtual std::shared_ptr< ITensorContractor > TensorNetworks::ITensorContractor::Clone ( ) const
pure virtual

Clone the tensor contractor.

Returns
A shared pointer to the cloned tensor contractor.

Implemented in TensorNetworks::DumbContractor, TensorNetworks::ForestContractor, TensorNetworks::LookaheadContractor, TensorNetworks::StochasticContractor, and TensorNetworks::VerticalContractor.

◆ Contract()

virtual double TensorNetworks::ITensorContractor::Contract ( const TensorNetwork & network,
Types::qubit_t qubit )
pure virtual

Contract the tensor network.

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

Implemented in TensorNetworks::DumbContractor, TensorNetworks::ForestContractor, TensorNetworks::LookaheadContractor, TensorNetworks::StochasticContractor, and TensorNetworks::VerticalContractor.

◆ GetMaxTensorRank()

virtual size_t TensorNetworks::ITensorContractor::GetMaxTensorRank ( ) const
pure virtual

◆ GetMultithreading()

virtual bool TensorNetworks::ITensorContractor::GetMultithreading ( ) const
pure virtual

Get the multithreading flag.

Returns the multithreading flag.

Returns
The multithreading flag.

Implemented in TensorNetworks::BaseContractor.

◆ InitializeTensors()

virtual TensorsMap TensorNetworks::ITensorContractor::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 )
pure virtual

◆ SetMultithreading()

virtual void TensorNetworks::ITensorContractor::SetMultithreading ( bool multithreading = true)
pure virtual

Enable/disable multithreading.

Enable/disable multithreading. Default is enabled.

Parameters
multithreadingA flag to indicate if multithreading should be enabled.

Implemented in TensorNetworks::BaseContractor.


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