|
Maestro 0.2.5
Unified interface for quantum circuit simulation
|
The Dumb Tensor Contractor. More...
#include <DumbContractor.h>
Inheritance diagram for TensorNetworks::DumbContractor:
Collaboration diagram for TensorNetworks::DumbContractor:Public Types | |
| using | TensorsMap = ITensorContractor::TensorsMap |
Public Member Functions | |
| std::shared_ptr< ITensorContractor > | Clone () 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) |
| bool | GetContractTheLowestTensorId () 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 | SetContractTheLowestTensorId (bool c) |
| 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 Dumb Tensor Contractor.
Tensor contractions using the Dumb contraction method.
Definition at line 37 of file DumbContractor.h.
|
inherited |
Definition at line 31 of file BaseContractor.h.
|
inlineoverridevirtual |
Clone the tensor contractor.
Implements TensorNetworks::ITensorContractor.
Definition at line 145 of file DumbContractor.h.
References TensorNetworks::BaseContractor::enableMultithreading, and TensorNetworks::BaseContractor::maxTensorRank.
|
inlineoverridevirtual |
Contract the tensor network.
| network | The tensor network to contract. |
Implements TensorNetworks::ITensorContractor.
Definition at line 45 of file DumbContractor.h.
References TensorNetworks::BaseContractor::ContractNodes(), TensorNetworks::BaseContractor::GetResultRank(), TensorNetworks::BaseContractor::InitializeTensors(), and TensorNetworks::TensorNode::NotConnected.
|
inlineinherited |
Definition at line 122 of file BaseContractor.h.
References TensorNetworks::BaseContractor::enableMultithreading, and TensorNetworks::BaseContractor::maxTensorRank.
Referenced by Contract(), TensorNetworks::ForestContractor::Contract(), TensorNetworks::LookaheadContractor::Contract(), TensorNetworks::StochasticContractor::Contract(), TensorNetworks::VerticalContractor::Contract(), and TensorNetworks::BaseContractor::InitializeTensors().
|
inline |
Definition at line 136 of file DumbContractor.h.
|
inlineoverridevirtualinherited |
Implements TensorNetworks::ITensorContractor.
Definition at line 236 of file BaseContractor.h.
References TensorNetworks::BaseContractor::maxTensorRank.
|
inlineoverridevirtualinherited |
Get the multithreading flag.
Returns the multithreading flag.
Implements TensorNetworks::ITensorContractor.
Definition at line 257 of file BaseContractor.h.
References TensorNetworks::BaseContractor::enableMultithreading.
|
inlinestaticinherited |
Definition at line 215 of file BaseContractor.h.
Referenced by Contract(), TensorNetworks::ForestContractor::Contract(), TensorNetworks::LookaheadContractor::Contract(), TensorNetworks::StochasticContractor::Contract(), TensorNetworks::VerticalContractor::Contract(), and TensorNetworks::BaseContractor::InitializeTensors().
|
inlineoverridevirtualinherited |
Implements TensorNetworks::ITensorContractor.
Definition at line 33 of file BaseContractor.h.
References TensorNetworks::BaseContractor::ContractNodes(), TensorNetworks::TensorNetwork::GetQubitGroup(), TensorNetworks::BaseContractor::GetResultRank(), TensorNetworks::TensorNetwork::GetTensors(), and TensorNetworks::BaseContractor::maxTensorRank.
Referenced by Contract(), TensorNetworks::ForestContractor::Contract(), TensorNetworks::LookaheadContractor::Contract(), TensorNetworks::StochasticContractor::Contract(), and TensorNetworks::VerticalContractor::Contract().
|
inline |
Definition at line 134 of file DumbContractor.h.
|
inlineoverridevirtualinherited |
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 TensorNetworks::BaseContractor::enableMultithreading.
|
protectedinherited |
A flag to indicate if multithreading should be enabled.
Definition at line 262 of file BaseContractor.h.
Referenced by Clone(), TensorNetworks::ForestContractor::Clone(), TensorNetworks::LookaheadContractor::Clone(), TensorNetworks::StochasticContractor::Clone(), TensorNetworks::VerticalContractor::Clone(), TensorNetworks::BaseContractor::ContractNodes(), TensorNetworks::BaseContractor::GetMultithreading(), and TensorNetworks::BaseContractor::SetMultithreading().
|
protectedinherited |
The maximum rank of the tensors in the network.
Definition at line 260 of file BaseContractor.h.
Referenced by Clone(), TensorNetworks::ForestContractor::Clone(), TensorNetworks::LookaheadContractor::Clone(), TensorNetworks::StochasticContractor::Clone(), TensorNetworks::VerticalContractor::Clone(), TensorNetworks::LookaheadContractor::Contract(), TensorNetworks::BaseContractor::ContractNodes(), TensorNetworks::BaseContractor::GetMaxTensorRank(), and TensorNetworks::BaseContractor::InitializeTensors().