|
Maestro 0.1.0
Unified interface for quantum circuit simulation
|
Tensor Contractor interface. More...
#include <TensorContractor.h>
Inheritance diagram for TensorNetworks::ITensorContractor:Public Types | |
| using | TensorsMap = std::unordered_map< Eigen::Index, std::shared_ptr< TensorNode > > |
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< ITensorContractor > | Clone () const =0 |
| Clone the tensor contractor. | |
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.
| using TensorNetworks::ITensorContractor::TensorsMap = std::unordered_map<Eigen::Index, std::shared_ptr<TensorNode> > |
Definition at line 35 of file TensorContractor.h.
|
pure virtual |
Clone the tensor contractor.
Implemented in TensorNetworks::DumbContractor, TensorNetworks::ForestContractor, TensorNetworks::LookaheadContractor, TensorNetworks::StochasticContractor, and TensorNetworks::VerticalContractor.
|
pure virtual |
Contract the tensor network.
| network | The tensor network to contract. |
Implemented in TensorNetworks::DumbContractor, TensorNetworks::ForestContractor, TensorNetworks::LookaheadContractor, TensorNetworks::StochasticContractor, and TensorNetworks::VerticalContractor.
|
pure virtual |
Implemented in TensorNetworks::BaseContractor.
|
pure virtual |
Get the multithreading flag.
Returns the multithreading flag.
Implemented in TensorNetworks::BaseContractor.
|
pure virtual |
Implemented in TensorNetworks::BaseContractor.
|
pure virtual |
Enable/disable multithreading.
Enable/disable multithreading. Default is enabled.
| multithreading | A flag to indicate if multithreading should be enabled. |
Implemented in TensorNetworks::BaseContractor.