Maestro 0.1.0
Unified interface for quantum circuit simulation
Loading...
Searching...
No Matches
Estimators::SimulatorsEstimatorInterface< Time > Class Template Referenceabstract

An interface for runtime estimators. More...

#include <SimulatorsEstimatorInterface.h>

Public Member Functions

virtual ~SimulatorsEstimatorInterface ()=default
virtual std::shared_ptr< Simulators::ISimulatorChooseBestSimulator (const std::vector< std::pair< Simulators::SimulatorType, Simulators::SimulationType > > &simulatorTypes, const std::shared_ptr< Circuits::Circuit< Time > > &dcirc, size_t &counts, size_t nrQubits, size_t nrCbits, size_t nrResultCbits, Simulators::SimulatorType &simType, Simulators::SimulationType &method, std::vector< bool > &executed, const std::string &maxBondDim, const std::string &singularValueThreshold, const std::string &mpsSample, size_t maxSimulators, const std::vector< std::string > *paulis, bool multithreading=false, bool dontRunCircuitStart=false) const =0

Static Public Member Functions

static void ExecuteUpToMeasurements (const std::shared_ptr< Circuits::Circuit< Time > > &dcirc, size_t nrQubits, size_t nrCbits, size_t nrResultCbits, const std::shared_ptr< Simulators::ISimulator > &sim, std::vector< bool > &executed, bool multithreading)

Detailed Description

template<typename Time = Types::time_type>
class Estimators::SimulatorsEstimatorInterface< Time >

An interface for runtime estimators.

A class derived from this is able to estimate the time to simulate a circuit, using various means (for example using the O() complexity of the algorithms). It uses the estimation to choose the best simulator for a given circuit and number of shots.

Template Parameters
TimeThe time type used for operation timing.

Definition at line 31 of file SimulatorsEstimatorInterface.h.

Constructor & Destructor Documentation

◆ ~SimulatorsEstimatorInterface()

template<typename Time = Types::time_type>
virtual Estimators::SimulatorsEstimatorInterface< Time >::~SimulatorsEstimatorInterface ( )
virtualdefault

Member Function Documentation

◆ ChooseBestSimulator()

template<typename Time = Types::time_type>
virtual std::shared_ptr< Simulators::ISimulator > Estimators::SimulatorsEstimatorInterface< Time >::ChooseBestSimulator ( const std::vector< std::pair< Simulators::SimulatorType, Simulators::SimulationType > > & simulatorTypes,
const std::shared_ptr< Circuits::Circuit< Time > > & dcirc,
size_t & counts,
size_t nrQubits,
size_t nrCbits,
size_t nrResultCbits,
Simulators::SimulatorType & simType,
Simulators::SimulationType & method,
std::vector< bool > & executed,
const std::string & maxBondDim,
const std::string & singularValueThreshold,
const std::string & mpsSample,
size_t maxSimulators,
const std::vector< std::string > * paulis,
bool multithreading = false,
bool dontRunCircuitStart = false ) const
pure virtual

◆ ExecuteUpToMeasurements()

template<typename Time = Types::time_type>
void Estimators::SimulatorsEstimatorInterface< Time >::ExecuteUpToMeasurements ( const std::shared_ptr< Circuits::Circuit< Time > > & dcirc,
size_t nrQubits,
size_t nrCbits,
size_t nrResultCbits,
const std::shared_ptr< Simulators::ISimulator > & sim,
std::vector< bool > & executed,
bool multithreading )
inlinestatic

Definition at line 47 of file SimulatorsEstimatorInterface.h.


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