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

The Base Class Tensor Contractor. More...

#include <BaseContractor.h>

+ Inheritance diagram for TensorNetworks::BaseContractor:
+ Collaboration diagram for TensorNetworks::BaseContractor:

Public Types

using TensorsMap = ITensorContractor::TensorsMap
 
- Public Types inherited from TensorNetworks::ITensorContractor
using TensorsMap = std::unordered_map< Eigen::Index, std::shared_ptr< TensorNode > >
 

Public Member Functions

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
 
template<class PassedTensorsMap = TensorsMap>
Eigen::Index ContractNodes (Types::qubit_t qubit, PassedTensorsMap &tensors, Eigen::Index tensor1Id, Eigen::Index tensor2Id, Eigen::Index resultRank)
 
size_t GetMaxTensorRank () const override
 
void SetMultithreading (bool multithreading=true) override
 Enable/disable multithreading.
 
bool GetMultithreading () const override
 Get the multithreading flag.
 
- Public Member Functions inherited from TensorNetworks::ITensorContractor
virtual double Contract (const TensorNetwork &network, Types::qubit_t qubit)=0
 Contract the tensor network.
 
virtual std::shared_ptr< ITensorContractorClone () const =0
 Clone the tensor contractor.
 

Static Public Member Functions

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

Protected Attributes

size_t maxTensorRank
 The maximum rank of the tensors in the network.
 
bool enableMultithreading
 A flag to indicate if multithreading should be enabled.
 

Detailed Description

The Base Class Tensor Contractor.

Tensor contractions common functionality.

Definition at line 29 of file BaseContractor.h.

Member Typedef Documentation

◆ TensorsMap

Member Function Documentation

◆ 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 
)
inline

Definition at line 122 of file BaseContractor.h.

◆ GetMaxTensorRank()

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

Implements TensorNetworks::ITensorContractor.

Definition at line 236 of file BaseContractor.h.

◆ GetMultithreading()

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

Get the multithreading flag.

Returns the multithreading flag.

Returns
The multithreading flag.

Implements TensorNetworks::ITensorContractor.

Definition at line 257 of file BaseContractor.h.

◆ GetResultRank()

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

Definition at line 215 of file BaseContractor.h.

◆ 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 
)
inlineoverridevirtual

Implements TensorNetworks::ITensorContractor.

Definition at line 33 of file BaseContractor.h.

◆ SetMultithreading()

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

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.

Member Data Documentation

◆ enableMultithreading

bool TensorNetworks::BaseContractor::enableMultithreading
protected
Initial value:
=
true

A flag to indicate if multithreading should be enabled.

Definition at line 262 of file BaseContractor.h.

◆ maxTensorRank

size_t TensorNetworks::BaseContractor::maxTensorRank
protected
Initial value:
=
0

The maximum rank of the tensors in the network.

Definition at line 260 of file BaseContractor.h.


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