|
Maestro 0.2.5
Unified interface for quantum circuit simulation
|
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 Member Functions | |
| virtual std::shared_ptr< ITensorContractor > | Clone () const =0 |
| Clone the tensor contractor. | |
| virtual double | Contract (const TensorNetwork &network, Types::qubit_t qubit)=0 |
| 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 | 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 | 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. | |
| size_t | maxTensorRank |
| The maximum rank of the tensors in the network. | |
The Base Class Tensor Contractor.
Tensor contractions common functionality.
Definition at line 29 of file BaseContractor.h.
Definition at line 31 of file BaseContractor.h.
|
pure virtualinherited |
Clone the tensor contractor.
Implemented in TensorNetworks::DumbContractor, TensorNetworks::ForestContractor, TensorNetworks::LookaheadContractor, TensorNetworks::StochasticContractor, and TensorNetworks::VerticalContractor.
|
pure virtualinherited |
Contract the tensor network.
| network | The tensor network to contract. |
Implemented in TensorNetworks::DumbContractor, TensorNetworks::ForestContractor, TensorNetworks::LookaheadContractor, TensorNetworks::StochasticContractor, and TensorNetworks::VerticalContractor.
|
inline |
Definition at line 122 of file BaseContractor.h.
References enableMultithreading, and maxTensorRank.
Referenced by TensorNetworks::DumbContractor::Contract(), TensorNetworks::ForestContractor::Contract(), TensorNetworks::LookaheadContractor::Contract(), TensorNetworks::StochasticContractor::Contract(), TensorNetworks::VerticalContractor::Contract(), and InitializeTensors().
|
inlineoverridevirtual |
Implements TensorNetworks::ITensorContractor.
Definition at line 236 of file BaseContractor.h.
References maxTensorRank.
|
inlineoverridevirtual |
Get the multithreading flag.
Returns the multithreading flag.
Implements TensorNetworks::ITensorContractor.
Definition at line 257 of file BaseContractor.h.
References enableMultithreading.
|
inlinestatic |
Definition at line 215 of file BaseContractor.h.
Referenced by TensorNetworks::DumbContractor::Contract(), TensorNetworks::ForestContractor::Contract(), TensorNetworks::LookaheadContractor::Contract(), TensorNetworks::StochasticContractor::Contract(), TensorNetworks::VerticalContractor::Contract(), and InitializeTensors().
|
inlineoverridevirtual |
Implements TensorNetworks::ITensorContractor.
Definition at line 33 of file BaseContractor.h.
References ContractNodes(), TensorNetworks::TensorNetwork::GetQubitGroup(), GetResultRank(), TensorNetworks::TensorNetwork::GetTensors(), and maxTensorRank.
Referenced by TensorNetworks::DumbContractor::Contract(), TensorNetworks::ForestContractor::Contract(), TensorNetworks::LookaheadContractor::Contract(), TensorNetworks::StochasticContractor::Contract(), and TensorNetworks::VerticalContractor::Contract().
|
inlineoverridevirtual |
Enable/disable multithreading.
Enable/disable multithreading. Default is enabled.
| multithreading | A flag to indicate if multithreading should be enabled. |
Implements TensorNetworks::ITensorContractor.
Definition at line 246 of file BaseContractor.h.
References enableMultithreading.
|
protected |
A flag to indicate if multithreading should be enabled.
Definition at line 262 of file BaseContractor.h.
Referenced by TensorNetworks::DumbContractor::Clone(), TensorNetworks::ForestContractor::Clone(), TensorNetworks::LookaheadContractor::Clone(), TensorNetworks::StochasticContractor::Clone(), TensorNetworks::VerticalContractor::Clone(), ContractNodes(), GetMultithreading(), and SetMultithreading().
|
protected |
The maximum rank of the tensors in the network.
Definition at line 260 of file BaseContractor.h.
Referenced by TensorNetworks::DumbContractor::Clone(), TensorNetworks::ForestContractor::Clone(), TensorNetworks::LookaheadContractor::Clone(), TensorNetworks::StochasticContractor::Clone(), TensorNetworks::VerticalContractor::Clone(), TensorNetworks::LookaheadContractor::Contract(), ContractNodes(), GetMaxTensorRank(), and InitializeTensors().