Maestro 0.2.5
Unified interface for quantum circuit simulation
Loading...
Searching...
No Matches
Estimators::ExecutionCost Class Reference

#include <ExecutionCost.h>

+ Collaboration diagram for Estimators::ExecutionCost:

Classes

struct  CircuitInfo
 
struct  ExecutionInfo
 

Static Public Member Functions

static void BenchmarkAndLogExecution (Simulators::SimulatorType simType, Simulators::SimulationType method, const std::shared_ptr< Circuits::Circuit<> > &circuit, size_t nrReps, size_t maxBondDim, Utils::LogFile &log)
 
static void BenchmarkAndLogExecution (Simulators::SimulatorType simType, Simulators::SimulationType method, size_t nrReps, size_t nrMinQubits, size_t nrMaxQubits, size_t stepQubits, size_t depthMin, size_t depthMax, size_t stepDepth, double measureInsideProbability, size_t nrMeasAtEndMin, size_t nrMeasAtEndMax, size_t stepMeasAtEnd, size_t nrRandomCircuitsPerConfig, size_t maxBondDim, const std::string &logFilePath)
 
static void BenchmarkAndLogPauliExpectation (Simulators::SimulatorType simType, Simulators::SimulationType method, const std::shared_ptr< Circuits::Circuit<> > &circuit, const std::string &pauliString, size_t nrReps, size_t maxBondDim, Utils::LogFile &log)
 
static void BenchmarkAndLogPauliExpectation (Simulators::SimulatorType simType, Simulators::SimulationType method, size_t nrReps, size_t nrMinQubits, size_t nrMaxQubits, size_t stepQubits, size_t depthMin, size_t depthMax, size_t stepDepth, size_t nrRandomCircuitsPerConfig, size_t maxBondDim, const std::string &logFilePath)
 
static void BenchmarkAndLogSampling (Simulators::SimulatorType simType, Simulators::SimulationType method, const std::shared_ptr< Circuits::Circuit<> > &circuit, size_t nrQubitsSampled, size_t nrSamples, size_t nrReps, size_t maxBondDim, Utils::LogFile &log)
 
static void BenchmarkAndLogSampling (Simulators::SimulatorType simType, Simulators::SimulationType method, size_t nrReps, size_t nrMinQubits, size_t nrMaxQubits, size_t stepQubits, size_t depthMin, size_t depthMax, size_t stepDepth, size_t nrMeasAtEndMin, size_t nrMeasAtEndMax, size_t stepMeasAtEnd, size_t nrSamplesMin, size_t nrSamplesMax, size_t multiplierSamples, size_t nrRandomCircuitsPerConfig, size_t maxBondDim, const std::string &logFilePath)
 
static double EstimateExecutionCost (Simulators::SimulationType method, size_t nrQubits, const std::shared_ptr< Circuits::Circuit<> > &circuit, size_t maxBondDim)
 
static double EstimatePauliExpectationCost (const std::string &pauliString, Simulators::SimulationType method, size_t nrQubits, const std::shared_ptr< Circuits::Circuit<> > &circuit, size_t maxBondDim)
 
static double EstimateSamplingCost (Simulators::SimulationType method, size_t nrQubits, size_t nrQubitsSampled, size_t samples, const std::shared_ptr< Circuits::Circuit<> > &circuit, size_t maxBondDim)
 
static std::string GeneratePauliString (size_t nrQubits)
 
static std::shared_ptr< Circuits::Circuit<> > GenerateRandomCircuit (size_t nrQubits, size_t depth, double measureInsideProbability=0., size_t nrMeasAtEnd=0, bool isClifford=false, size_t nrNonCliffordGatesLimit=0)
 
static CircuitInfo GetCircuitInfo (const std::shared_ptr< Circuits::Circuit<> > &circuit)
 
static std::shared_ptr< Simulators::ISimulatorGetSimulator (Simulators::SimulatorType simType, Simulators::SimulationType method, size_t nrQubits, size_t maxBondDim)
 
static double MeasureExecutionTime (Simulators::SimulatorType simType, Simulators::SimulationType method, size_t nrQubits, const std::shared_ptr< Circuits::Circuit<> > &circuit, size_t nrReps, size_t maxBondDim)
 
static double MeasurePauliExpectationTime (Simulators::SimulatorType simType, Simulators::SimulationType method, size_t nrQubits, const std::shared_ptr< Circuits::Circuit<> > &circuit, const std::string &pauliString, size_t nrReps, size_t maxBondDim)
 
static double MeasureSamplingTime (Simulators::SimulatorType simType, Simulators::SimulationType method, size_t nrQubits, const std::shared_ptr< Circuits::Circuit<> > &circuit, size_t nrQubitsSampled, size_t nrSamples, size_t nrReps, size_t maxBondDim)
 
static std::vector< ExecutionInfoReadLog (const std::string &logFilePath)
 

Detailed Description

Definition at line 43 of file ExecutionCost.h.

Member Function Documentation

◆ BenchmarkAndLogExecution() [1/2]

static void Estimators::ExecutionCost::BenchmarkAndLogExecution ( Simulators::SimulatorType  simType,
Simulators::SimulationType  method,
const std::shared_ptr< Circuits::Circuit<> > &  circuit,
size_t  nrReps,
size_t  maxBondDim,
Utils::LogFile log 
)
inlinestatic

◆ BenchmarkAndLogExecution() [2/2]

static void Estimators::ExecutionCost::BenchmarkAndLogExecution ( Simulators::SimulatorType  simType,
Simulators::SimulationType  method,
size_t  nrReps,
size_t  nrMinQubits,
size_t  nrMaxQubits,
size_t  stepQubits,
size_t  depthMin,
size_t  depthMax,
size_t  stepDepth,
double  measureInsideProbability,
size_t  nrMeasAtEndMin,
size_t  nrMeasAtEndMax,
size_t  stepMeasAtEnd,
size_t  nrRandomCircuitsPerConfig,
size_t  maxBondDim,
const std::string &  logFilePath 
)
inlinestatic

◆ BenchmarkAndLogPauliExpectation() [1/2]

static void Estimators::ExecutionCost::BenchmarkAndLogPauliExpectation ( Simulators::SimulatorType  simType,
Simulators::SimulationType  method,
const std::shared_ptr< Circuits::Circuit<> > &  circuit,
const std::string &  pauliString,
size_t  nrReps,
size_t  maxBondDim,
Utils::LogFile log 
)
inlinestatic

◆ BenchmarkAndLogPauliExpectation() [2/2]

static void Estimators::ExecutionCost::BenchmarkAndLogPauliExpectation ( Simulators::SimulatorType  simType,
Simulators::SimulationType  method,
size_t  nrReps,
size_t  nrMinQubits,
size_t  nrMaxQubits,
size_t  stepQubits,
size_t  depthMin,
size_t  depthMax,
size_t  stepDepth,
size_t  nrRandomCircuitsPerConfig,
size_t  maxBondDim,
const std::string &  logFilePath 
)
inlinestatic

◆ BenchmarkAndLogSampling() [1/2]

static void Estimators::ExecutionCost::BenchmarkAndLogSampling ( Simulators::SimulatorType  simType,
Simulators::SimulationType  method,
const std::shared_ptr< Circuits::Circuit<> > &  circuit,
size_t  nrQubitsSampled,
size_t  nrSamples,
size_t  nrReps,
size_t  maxBondDim,
Utils::LogFile log 
)
inlinestatic

◆ BenchmarkAndLogSampling() [2/2]

static void Estimators::ExecutionCost::BenchmarkAndLogSampling ( Simulators::SimulatorType  simType,
Simulators::SimulationType  method,
size_t  nrReps,
size_t  nrMinQubits,
size_t  nrMaxQubits,
size_t  stepQubits,
size_t  depthMin,
size_t  depthMax,
size_t  stepDepth,
size_t  nrMeasAtEndMin,
size_t  nrMeasAtEndMax,
size_t  stepMeasAtEnd,
size_t  nrSamplesMin,
size_t  nrSamplesMax,
size_t  multiplierSamples,
size_t  nrRandomCircuitsPerConfig,
size_t  maxBondDim,
const std::string &  logFilePath 
)
inlinestatic

◆ EstimateExecutionCost()

static double Estimators::ExecutionCost::EstimateExecutionCost ( Simulators::SimulationType  method,
size_t  nrQubits,
const std::shared_ptr< Circuits::Circuit<> > &  circuit,
size_t  maxBondDim 
)
inlinestatic

◆ EstimatePauliExpectationCost()

static double Estimators::ExecutionCost::EstimatePauliExpectationCost ( const std::string &  pauliString,
Simulators::SimulationType  method,
size_t  nrQubits,
const std::shared_ptr< Circuits::Circuit<> > &  circuit,
size_t  maxBondDim 
)
inlinestatic

◆ EstimateSamplingCost()

static double Estimators::ExecutionCost::EstimateSamplingCost ( Simulators::SimulationType  method,
size_t  nrQubits,
size_t  nrQubitsSampled,
size_t  samples,
const std::shared_ptr< Circuits::Circuit<> > &  circuit,
size_t  maxBondDim 
)
inlinestatic

◆ GeneratePauliString()

static std::string Estimators::ExecutionCost::GeneratePauliString ( size_t  nrQubits)
inlinestatic

Definition at line 722 of file ExecutionCost.h.

Referenced by BenchmarkAndLogPauliExpectation().

◆ GenerateRandomCircuit()

static std::shared_ptr< Circuits::Circuit<> > Estimators::ExecutionCost::GenerateRandomCircuit ( size_t  nrQubits,
size_t  depth,
double  measureInsideProbability = 0.,
size_t  nrMeasAtEnd = 0,
bool  isClifford = false,
size_t  nrNonCliffordGatesLimit = 0 
)
inlinestatic

◆ GetCircuitInfo()

◆ GetSimulator()

static std::shared_ptr< Simulators::ISimulator > Estimators::ExecutionCost::GetSimulator ( Simulators::SimulatorType  simType,
Simulators::SimulationType  method,
size_t  nrQubits,
size_t  maxBondDim 
)
inlinestatic

◆ MeasureExecutionTime()

static double Estimators::ExecutionCost::MeasureExecutionTime ( Simulators::SimulatorType  simType,
Simulators::SimulationType  method,
size_t  nrQubits,
const std::shared_ptr< Circuits::Circuit<> > &  circuit,
size_t  nrReps,
size_t  maxBondDim 
)
inlinestatic

Definition at line 495 of file ExecutionCost.h.

References GetSimulator().

Referenced by BenchmarkAndLogExecution().

◆ MeasurePauliExpectationTime()

static double Estimators::ExecutionCost::MeasurePauliExpectationTime ( Simulators::SimulatorType  simType,
Simulators::SimulationType  method,
size_t  nrQubits,
const std::shared_ptr< Circuits::Circuit<> > &  circuit,
const std::string &  pauliString,
size_t  nrReps,
size_t  maxBondDim 
)
inlinestatic

Definition at line 546 of file ExecutionCost.h.

References GetSimulator().

Referenced by BenchmarkAndLogPauliExpectation().

◆ MeasureSamplingTime()

static double Estimators::ExecutionCost::MeasureSamplingTime ( Simulators::SimulatorType  simType,
Simulators::SimulationType  method,
size_t  nrQubits,
const std::shared_ptr< Circuits::Circuit<> > &  circuit,
size_t  nrQubitsSampled,
size_t  nrSamples,
size_t  nrReps,
size_t  maxBondDim 
)
inlinestatic

Definition at line 508 of file ExecutionCost.h.

References GetSimulator().

Referenced by BenchmarkAndLogSampling().

◆ ReadLog()


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