Maestro 0.2.5
Unified interface for quantum circuit simulation
Loading...
Searching...
No Matches
Simulator Class Reference

#include <Simulator.hpp>

+ Inheritance diagram for Simulator:
+ Collaboration diagram for Simulator:

Public Member Functions

 Simulator () noexcept
 
virtual ~Simulator ()
 
unsigned long int AllocateQubits (unsigned long int nrQubits)
 
double * AllProbabilities ()
 
double * Amplitude (unsigned long long int outcome)
 
int ApplyCCX (int controlQubit1, int controlQubit2, int targetQubit)
 
int ApplyCH (int controlQubit, int targetQubit)
 
int ApplyCP (int controlQubit, int targetQubit, double theta)
 
int ApplyCRx (int controlQubit, int targetQubit, double theta)
 
int ApplyCRy (int controlQubit, int targetQubit, double theta)
 
int ApplyCRz (int controlQubit, int targetQubit, double theta)
 
int ApplyCSwap (int controlQubit, int qubit1, int qubit2)
 
int ApplyCSX (int controlQubit, int targetQubit)
 
int ApplyCSXDG (int controlQubit, int targetQubit)
 
int ApplyCU (int controlQubit, int targetQubit, double theta, double phi, double lambda, double gamma)
 
int ApplyCX (int controlQubit, int targetQubit)
 
int ApplyCY (int controlQubit, int targetQubit)
 
int ApplyCZ (int controlQubit, int targetQubit)
 
int ApplyH (int qubit)
 
int ApplyK (int qubit)
 
int ApplyP (int qubit, double theta)
 
int ApplyReset (const unsigned long int *qubits, unsigned long int nrQubits)
 
int ApplyRx (int qubit, double theta)
 
int ApplyRy (int qubit, double theta)
 
int ApplyRz (int qubit, double theta)
 
int ApplyS (int qubit)
 
int ApplySDG (int qubit)
 
int ApplySwap (int qubit1, int qubit2)
 
int ApplySX (int qubit)
 
int ApplySXDG (int qubit)
 
int ApplyT (int qubit)
 
int ApplyTDG (int qubit)
 
int ApplyU (int qubit, double theta, double phi, double lambda, double gamma)
 
int ApplyX (int qubit)
 
int ApplyY (int qubit)
 
int ApplyZ (int qubit)
 
int ClearSimulator ()
 
int ConfigureSimulator (const char *key, const char *value)
 
unsigned long int CreateSimulator (int simType, int simExecType) override
 
int FlushSimulator ()
 
void FreeDoubleVector (double *vec) override
 
void FreeResult (char *result) override
 
void FreeULLIVector (unsigned long long int *vec) override
 
char * GetConfiguration (const char *key)
 
int GetMultithreading ()
 
unsigned long int GetNumberOfQubits ()
 
int GetSimulationType ()
 
void * GetSimulator ()
 
int GetSimulatorType ()
 
bool Init (const char *libName) noexcept override
 
int InitializeSimulator ()
 
int IsQcsim ()
 
unsigned long long int Measure (const unsigned long int *qubits, unsigned long int nrQubits)
 
unsigned long long int MeasureNoCollapse ()
 
double * Probabilities (const unsigned long long int *qubits, unsigned long int nrQubits)
 
double Probability (unsigned long long int outcome)
 
int ResetSimulator ()
 
int RestoreInternalDestructiveSavedState ()
 
int RestoreState ()
 
unsigned long long int * SampleCounts (const unsigned long long int *qubits, unsigned long int nrQubits, unsigned long int shots)
 
int SaveState ()
 
int SaveStateToInternalDestructive ()
 
int SetMultithreading (int multithreading)
 

Protected Member Functions

int AddOptimizationSimulator (unsigned long int simHandle, int simType, int simExecType)
 
unsigned long int AllocateQubits (void *sim, unsigned long int nrQubits)
 
double * AllProbabilities (void *sim)
 
double * Amplitude (void *sim, unsigned long long int outcome)
 
int ApplyCCX (void *sim, int controlQubit1, int controlQubit2, int targetQubit)
 
int ApplyCH (void *sim, int controlQubit, int targetQubit)
 
int ApplyCP (void *sim, int controlQubit, int targetQubit, double theta)
 
int ApplyCRx (void *sim, int controlQubit, int targetQubit, double theta)
 
int ApplyCRy (void *sim, int controlQubit, int targetQubit, double theta)
 
int ApplyCRz (void *sim, int controlQubit, int targetQubit, double theta)
 
int ApplyCSwap (void *sim, int controlQubit, int qubit1, int qubit2)
 
int ApplyCSX (void *sim, int controlQubit, int targetQubit)
 
int ApplyCSXDG (void *sim, int controlQubit, int targetQubit)
 
int ApplyCU (void *sim, int controlQubit, int targetQubit, double theta, double phi, double lambda, double gamma)
 
int ApplyCX (void *sim, int controlQubit, int targetQubit)
 
int ApplyCY (void *sim, int controlQubit, int targetQubit)
 
int ApplyCZ (void *sim, int controlQubit, int targetQubit)
 
int ApplyH (void *sim, int qubit)
 
int ApplyK (void *sim, int qubit)
 
int ApplyP (void *sim, int qubit, double theta)
 
int ApplyReset (void *sim, const unsigned long int *qubits, unsigned long int nrQubits)
 
int ApplyRx (void *sim, int qubit, double theta)
 
int ApplyRy (void *sim, int qubit, double theta)
 
int ApplyRz (void *sim, int qubit, double theta)
 
int ApplyS (void *sim, int qubit)
 
int ApplySDG (void *sim, int qubit)
 
int ApplySwap (void *sim, int qubit1, int qubit2)
 
int ApplySX (void *sim, int qubit)
 
int ApplySXDG (void *sim, int qubit)
 
int ApplyT (void *sim, int qubit)
 
int ApplyTDG (void *sim, int qubit)
 
int ApplyU (void *sim, int qubit, double theta, double phi, double lambda, double gamma)
 
int ApplyX (void *sim, int qubit)
 
int ApplyY (void *sim, int qubit)
 
int ApplyZ (void *sim, int qubit)
 
int ClearSimulator (void *sim)
 
int ConfigureSimulator (void *sim, const char *key, const char *value)
 
virtual unsigned long int CreateSimpleSimulator (int nrQubits)
 
void DestroySimpleSimulator (unsigned long int simHandle)
 
void DestroySimulator (unsigned long int simHandle)
 
int FlushSimulator (void *sim)
 
char * GetConfiguration (void *sim, const char *key)
 
void * GetFunction (const char *funcName) noexcept
 
const void * GetHandle () const noexcept
 
int GetMultithreading (void *sim)
 
unsigned long int GetNumberOfQubits (void *sim)
 
int GetSimulationType (void *sim)
 
void * GetSimulator (unsigned long int simHandle)
 
int GetSimulatorType (void *sim)
 
int InitializeSimulator (void *sim)
 
bool IsMuted () const noexcept
 
int IsQcsim (void *sim)
 
bool IsValid () const
 
unsigned long long int Measure (void *sim, const unsigned long int *qubits, unsigned long int nrQubits)
 
unsigned long long int MeasureNoCollapse (void *sim)
 
double * Probabilities (void *sim, const unsigned long long int *qubits, unsigned long int nrQubits)
 
double Probability (void *sim, unsigned long long int outcome)
 
int RemoveAllOptimizationSimulatorsAndAdd (unsigned long int simHandle, int simType, int simExecType)
 
int ResetSimulator (void *sim)
 
int RestoreInternalDestructiveSavedState (void *sim)
 
int RestoreState (void *sim)
 
unsigned long long int * SampleCounts (void *sim, const unsigned long long int *qubits, unsigned long int nrQubits, unsigned long int shots)
 
int SaveState (void *sim)
 
int SaveStateToInternalDestructive (void *sim)
 
int SetMultithreading (void *sim, int multithreading)
 
void SetMute (bool m) noexcept
 
char * SimpleEstimate (unsigned long int simpleSim, const char *jsonCircuit, const char *observableStr, const char *jsonConfig)
 
char * SimpleExecute (unsigned long int simpleSim, const char *jsonCircuit, const char *jsonConfig)
 

Static Protected Member Functions

static void CheckFunction (void *func, int line) noexcept
 

Detailed Description

Definition at line 59 of file Simulator.hpp.

Constructor & Destructor Documentation

◆ Simulator()

Simulator::Simulator ( )
inlinenoexcept

Definition at line 61 of file Simulator.hpp.

◆ ~Simulator()

virtual Simulator::~Simulator ( )
inlinevirtual

Definition at line 63 of file Simulator.hpp.

References MaestroLibrary::DestroySimulator().

Member Function Documentation

◆ AddOptimizationSimulator()

int MaestroLibrary::AddOptimizationSimulator ( unsigned long int  simHandle,
int  simType,
int  simExecType 
)
inlineinherited

Definition at line 267 of file MaestroLib.hpp.

Referenced by SimpleSimulator::AddOptimizationSimulator().

◆ AllocateQubits() [1/2]

unsigned long int Simulator::AllocateQubits ( unsigned long int  nrQubits)
inline

Definition at line 109 of file Simulator.hpp.

References MaestroLibrary::AllocateQubits().

◆ AllocateQubits() [2/2]

unsigned long int MaestroLibrary::AllocateQubits ( void *  sim,
unsigned long int  nrQubits 
)
inlineinherited

Definition at line 372 of file MaestroLib.hpp.

Referenced by AllocateQubits().

◆ AllProbabilities() [1/2]

double * Simulator::AllProbabilities ( )
inline

Definition at line 158 of file Simulator.hpp.

References MaestroLibrary::AllProbabilities().

◆ AllProbabilities() [2/2]

double * MaestroLibrary::AllProbabilities ( void *  sim)
inlineinherited

Definition at line 454 of file MaestroLib.hpp.

Referenced by AllProbabilities().

◆ Amplitude() [1/2]

double * Simulator::Amplitude ( unsigned long long int  outcome)
inline

Definition at line 153 of file Simulator.hpp.

References MaestroLibrary::Amplitude().

◆ Amplitude() [2/2]

double * MaestroLibrary::Amplitude ( void *  sim,
unsigned long long int  outcome 
)
inlineinherited

Definition at line 445 of file MaestroLib.hpp.

Referenced by Amplitude().

◆ ApplyCCX() [1/2]

int Simulator::ApplyCCX ( int  controlQubit1,
int  controlQubit2,
int  targetQubit 
)
inline

Definition at line 387 of file Simulator.hpp.

References MaestroLibrary::ApplyCCX().

◆ ApplyCCX() [2/2]

int MaestroLibrary::ApplyCCX ( void *  sim,
int  controlQubit1,
int  controlQubit2,
int  targetQubit 
)
inlineinherited

Definition at line 792 of file MaestroLib.hpp.

Referenced by ApplyCCX().

◆ ApplyCH() [1/2]

int Simulator::ApplyCH ( int  controlQubit,
int  targetQubit 
)
inline

Definition at line 340 of file Simulator.hpp.

References MaestroLibrary::ApplyCH().

◆ ApplyCH() [2/2]

int MaestroLibrary::ApplyCH ( void *  sim,
int  controlQubit,
int  targetQubit 
)
inlineinherited

Definition at line 736 of file MaestroLib.hpp.

Referenced by ApplyCH().

◆ ApplyCP() [1/2]

int Simulator::ApplyCP ( int  controlQubit,
int  targetQubit,
double  theta 
)
inline

Definition at line 359 of file Simulator.hpp.

References MaestroLibrary::ApplyCP().

◆ ApplyCP() [2/2]

int MaestroLibrary::ApplyCP ( void *  sim,
int  controlQubit,
int  targetQubit,
double  theta 
)
inlineinherited

Definition at line 760 of file MaestroLib.hpp.

Referenced by ApplyCP().

◆ ApplyCRx() [1/2]

int Simulator::ApplyCRx ( int  controlQubit,
int  targetQubit,
double  theta 
)
inline

Definition at line 366 of file Simulator.hpp.

References MaestroLibrary::ApplyCRx().

◆ ApplyCRx() [2/2]

int MaestroLibrary::ApplyCRx ( void *  sim,
int  controlQubit,
int  targetQubit,
double  theta 
)
inlineinherited

Definition at line 768 of file MaestroLib.hpp.

Referenced by ApplyCRx().

◆ ApplyCRy() [1/2]

int Simulator::ApplyCRy ( int  controlQubit,
int  targetQubit,
double  theta 
)
inline

Definition at line 373 of file Simulator.hpp.

References MaestroLibrary::ApplyCRy().

◆ ApplyCRy() [2/2]

int MaestroLibrary::ApplyCRy ( void *  sim,
int  controlQubit,
int  targetQubit,
double  theta 
)
inlineinherited

Definition at line 776 of file MaestroLib.hpp.

Referenced by ApplyCRy().

◆ ApplyCRz() [1/2]

int Simulator::ApplyCRz ( int  controlQubit,
int  targetQubit,
double  theta 
)
inline

Definition at line 380 of file Simulator.hpp.

References MaestroLibrary::ApplyCRz().

◆ ApplyCRz() [2/2]

int MaestroLibrary::ApplyCRz ( void *  sim,
int  controlQubit,
int  targetQubit,
double  theta 
)
inlineinherited

Definition at line 784 of file MaestroLib.hpp.

Referenced by ApplyCRz().

◆ ApplyCSwap() [1/2]

int Simulator::ApplyCSwap ( int  controlQubit,
int  qubit1,
int  qubit2 
)
inline

Definition at line 400 of file Simulator.hpp.

References MaestroLibrary::ApplyCSwap().

◆ ApplyCSwap() [2/2]

int MaestroLibrary::ApplyCSwap ( void *  sim,
int  controlQubit,
int  qubit1,
int  qubit2 
)
inlineinherited

Definition at line 809 of file MaestroLib.hpp.

Referenced by ApplyCSwap().

◆ ApplyCSX() [1/2]

int Simulator::ApplyCSX ( int  controlQubit,
int  targetQubit 
)
inline

Definition at line 346 of file Simulator.hpp.

References MaestroLibrary::ApplyCSX().

◆ ApplyCSX() [2/2]

int MaestroLibrary::ApplyCSX ( void *  sim,
int  controlQubit,
int  targetQubit 
)
inlineinherited

Definition at line 744 of file MaestroLib.hpp.

Referenced by ApplyCSX().

◆ ApplyCSXDG() [1/2]

int Simulator::ApplyCSXDG ( int  controlQubit,
int  targetQubit 
)
inline

Definition at line 352 of file Simulator.hpp.

References MaestroLibrary::ApplyCSXDG().

◆ ApplyCSXDG() [2/2]

int MaestroLibrary::ApplyCSXDG ( void *  sim,
int  controlQubit,
int  targetQubit 
)
inlineinherited

Definition at line 752 of file MaestroLib.hpp.

Referenced by ApplyCSXDG().

◆ ApplyCU() [1/2]

int Simulator::ApplyCU ( int  controlQubit,
int  targetQubit,
double  theta,
double  phi,
double  lambda,
double  gamma 
)
inline

Definition at line 407 of file Simulator.hpp.

References MaestroLibrary::ApplyCU().

◆ ApplyCU() [2/2]

int MaestroLibrary::ApplyCU ( void *  sim,
int  controlQubit,
int  targetQubit,
double  theta,
double  phi,
double  lambda,
double  gamma 
)
inlineinherited

Definition at line 817 of file MaestroLib.hpp.

Referenced by ApplyCU().

◆ ApplyCX() [1/2]

int Simulator::ApplyCX ( int  controlQubit,
int  targetQubit 
)
inline

Definition at line 322 of file Simulator.hpp.

References MaestroLibrary::ApplyCX().

◆ ApplyCX() [2/2]

int MaestroLibrary::ApplyCX ( void *  sim,
int  controlQubit,
int  targetQubit 
)
inlineinherited

Definition at line 712 of file MaestroLib.hpp.

Referenced by ApplyCX().

◆ ApplyCY() [1/2]

int Simulator::ApplyCY ( int  controlQubit,
int  targetQubit 
)
inline

Definition at line 328 of file Simulator.hpp.

References MaestroLibrary::ApplyCY().

◆ ApplyCY() [2/2]

int MaestroLibrary::ApplyCY ( void *  sim,
int  controlQubit,
int  targetQubit 
)
inlineinherited

Definition at line 720 of file MaestroLib.hpp.

Referenced by ApplyCY().

◆ ApplyCZ() [1/2]

int Simulator::ApplyCZ ( int  controlQubit,
int  targetQubit 
)
inline

Definition at line 334 of file Simulator.hpp.

References MaestroLibrary::ApplyCZ().

◆ ApplyCZ() [2/2]

int MaestroLibrary::ApplyCZ ( void *  sim,
int  controlQubit,
int  targetQubit 
)
inlineinherited

Definition at line 728 of file MaestroLib.hpp.

Referenced by ApplyCZ().

◆ ApplyH() [1/2]

int Simulator::ApplyH ( int  qubit)
inline

Definition at line 252 of file Simulator.hpp.

References MaestroLibrary::ApplyH().

◆ ApplyH() [2/2]

int MaestroLibrary::ApplyH ( void *  sim,
int  qubit 
)
inlineinherited

Definition at line 607 of file MaestroLib.hpp.

Referenced by ApplyH().

◆ ApplyK() [1/2]

int Simulator::ApplyK ( int  qubit)
inline

Definition at line 287 of file Simulator.hpp.

References MaestroLibrary::ApplyK().

◆ ApplyK() [2/2]

int MaestroLibrary::ApplyK ( void *  sim,
int  qubit 
)
inlineinherited

Definition at line 663 of file MaestroLib.hpp.

Referenced by ApplyK().

◆ ApplyP() [1/2]

int Simulator::ApplyP ( int  qubit,
double  theta 
)
inline

Definition at line 292 of file Simulator.hpp.

References MaestroLibrary::ApplyP().

◆ ApplyP() [2/2]

int MaestroLibrary::ApplyP ( void *  sim,
int  qubit,
double  theta 
)
inlineinherited

Definition at line 671 of file MaestroLib.hpp.

Referenced by ApplyP().

◆ ApplyReset() [1/2]

int Simulator::ApplyReset ( const unsigned long int *  qubits,
unsigned long int  nrQubits 
)
inline

Definition at line 133 of file Simulator.hpp.

References MaestroLibrary::ApplyReset().

◆ ApplyReset() [2/2]

int MaestroLibrary::ApplyReset ( void *  sim,
const unsigned long int *  qubits,
unsigned long int  nrQubits 
)
inlineinherited

Definition at line 410 of file MaestroLib.hpp.

Referenced by ApplyReset().

◆ ApplyRx() [1/2]

int Simulator::ApplyRx ( int  qubit,
double  theta 
)
inline

Definition at line 297 of file Simulator.hpp.

References MaestroLibrary::ApplyRx().

◆ ApplyRx() [2/2]

int MaestroLibrary::ApplyRx ( void *  sim,
int  qubit,
double  theta 
)
inlineinherited

Definition at line 679 of file MaestroLib.hpp.

Referenced by ApplyRx().

◆ ApplyRy() [1/2]

int Simulator::ApplyRy ( int  qubit,
double  theta 
)
inline

Definition at line 303 of file Simulator.hpp.

References MaestroLibrary::ApplyRy().

◆ ApplyRy() [2/2]

int MaestroLibrary::ApplyRy ( void *  sim,
int  qubit,
double  theta 
)
inlineinherited

Definition at line 687 of file MaestroLib.hpp.

Referenced by ApplyRy().

◆ ApplyRz() [1/2]

int Simulator::ApplyRz ( int  qubit,
double  theta 
)
inline

Definition at line 309 of file Simulator.hpp.

References MaestroLibrary::ApplyRz().

◆ ApplyRz() [2/2]

int MaestroLibrary::ApplyRz ( void *  sim,
int  qubit,
double  theta 
)
inlineinherited

Definition at line 695 of file MaestroLib.hpp.

Referenced by ApplyRz().

◆ ApplyS() [1/2]

int Simulator::ApplyS ( int  qubit)
inline

Definition at line 257 of file Simulator.hpp.

References MaestroLibrary::ApplyS().

◆ ApplyS() [2/2]

int MaestroLibrary::ApplyS ( void *  sim,
int  qubit 
)
inlineinherited

Definition at line 615 of file MaestroLib.hpp.

Referenced by ApplyS().

◆ ApplySDG() [1/2]

int Simulator::ApplySDG ( int  qubit)
inline

Definition at line 262 of file Simulator.hpp.

References MaestroLibrary::ApplySDG().

◆ ApplySDG() [2/2]

int MaestroLibrary::ApplySDG ( void *  sim,
int  qubit 
)
inlineinherited

Definition at line 623 of file MaestroLib.hpp.

Referenced by ApplySDG().

◆ ApplySwap() [1/2]

int Simulator::ApplySwap ( int  qubit1,
int  qubit2 
)
inline

Definition at line 394 of file Simulator.hpp.

References MaestroLibrary::ApplySwap().

◆ ApplySwap() [2/2]

int MaestroLibrary::ApplySwap ( void *  sim,
int  qubit1,
int  qubit2 
)
inlineinherited

Definition at line 801 of file MaestroLib.hpp.

Referenced by ApplySwap().

◆ ApplySX() [1/2]

int Simulator::ApplySX ( int  qubit)
inline

Definition at line 277 of file Simulator.hpp.

References MaestroLibrary::ApplySX().

◆ ApplySX() [2/2]

int MaestroLibrary::ApplySX ( void *  sim,
int  qubit 
)
inlineinherited

Definition at line 647 of file MaestroLib.hpp.

Referenced by ApplySX().

◆ ApplySXDG() [1/2]

int Simulator::ApplySXDG ( int  qubit)
inline

Definition at line 282 of file Simulator.hpp.

References MaestroLibrary::ApplySXDG().

◆ ApplySXDG() [2/2]

int MaestroLibrary::ApplySXDG ( void *  sim,
int  qubit 
)
inlineinherited

Definition at line 655 of file MaestroLib.hpp.

Referenced by ApplySXDG().

◆ ApplyT() [1/2]

int Simulator::ApplyT ( int  qubit)
inline

Definition at line 267 of file Simulator.hpp.

References MaestroLibrary::ApplyT().

◆ ApplyT() [2/2]

int MaestroLibrary::ApplyT ( void *  sim,
int  qubit 
)
inlineinherited

Definition at line 631 of file MaestroLib.hpp.

Referenced by ApplyT().

◆ ApplyTDG() [1/2]

int Simulator::ApplyTDG ( int  qubit)
inline

Definition at line 272 of file Simulator.hpp.

References MaestroLibrary::ApplyTDG().

◆ ApplyTDG() [2/2]

int MaestroLibrary::ApplyTDG ( void *  sim,
int  qubit 
)
inlineinherited

Definition at line 639 of file MaestroLib.hpp.

Referenced by ApplyTDG().

◆ ApplyU() [1/2]

int Simulator::ApplyU ( int  qubit,
double  theta,
double  phi,
double  lambda,
double  gamma 
)
inline

Definition at line 315 of file Simulator.hpp.

References MaestroLibrary::ApplyU().

◆ ApplyU() [2/2]

int MaestroLibrary::ApplyU ( void *  sim,
int  qubit,
double  theta,
double  phi,
double  lambda,
double  gamma 
)
inlineinherited

Definition at line 703 of file MaestroLib.hpp.

Referenced by ApplyU().

◆ ApplyX() [1/2]

int Simulator::ApplyX ( int  qubit)
inline

Definition at line 237 of file Simulator.hpp.

References MaestroLibrary::ApplyX().

◆ ApplyX() [2/2]

int MaestroLibrary::ApplyX ( void *  sim,
int  qubit 
)
inlineinherited

Definition at line 583 of file MaestroLib.hpp.

Referenced by ApplyX().

◆ ApplyY() [1/2]

int Simulator::ApplyY ( int  qubit)
inline

Definition at line 242 of file Simulator.hpp.

References MaestroLibrary::ApplyY().

◆ ApplyY() [2/2]

int MaestroLibrary::ApplyY ( void *  sim,
int  qubit 
)
inlineinherited

Definition at line 591 of file MaestroLib.hpp.

Referenced by ApplyY().

◆ ApplyZ() [1/2]

int Simulator::ApplyZ ( int  qubit)
inline

Definition at line 247 of file Simulator.hpp.

References MaestroLibrary::ApplyZ().

◆ ApplyZ() [2/2]

int MaestroLibrary::ApplyZ ( void *  sim,
int  qubit 
)
inlineinherited

Definition at line 599 of file MaestroLib.hpp.

Referenced by ApplyZ().

◆ CheckFunction()

static void MaestroLibrary::CheckFunction ( void *  func,
int  line 
)
inlinestaticnoexceptinherited

Definition at line 218 of file MaestroLib.hpp.

Referenced by MaestroLibrary::Init().

◆ ClearSimulator() [1/2]

int Simulator::ClearSimulator ( )
inline

Definition at line 120 of file Simulator.hpp.

References MaestroLibrary::ClearSimulator().

◆ ClearSimulator() [2/2]

int MaestroLibrary::ClearSimulator ( void *  sim)
inlineinherited

Definition at line 391 of file MaestroLib.hpp.

Referenced by ClearSimulator().

◆ ConfigureSimulator() [1/2]

int Simulator::ConfigureSimulator ( const char *  key,
const char *  value 
)
inline

Definition at line 97 of file Simulator.hpp.

References MaestroLibrary::ConfigureSimulator().

◆ ConfigureSimulator() [2/2]

int MaestroLibrary::ConfigureSimulator ( void *  sim,
const char *  key,
const char *  value 
)
inlineinherited

Definition at line 353 of file MaestroLib.hpp.

Referenced by ConfigureSimulator().

◆ CreateSimpleSimulator()

virtual unsigned long int MaestroLibrary::CreateSimpleSimulator ( int  nrQubits)
inlinevirtualinherited

Reimplemented in SimpleSimulator.

Definition at line 236 of file MaestroLib.hpp.

Referenced by SimpleSimulator::CreateSimpleSimulator().

◆ CreateSimulator()

unsigned long int Simulator::CreateSimulator ( int  simType,
int  simExecType 
)
inlineoverridevirtual

◆ DestroySimpleSimulator()

void MaestroLibrary::DestroySimpleSimulator ( unsigned long int  simHandle)
inlineinherited

◆ DestroySimulator()

void MaestroLibrary::DestroySimulator ( unsigned long int  simHandle)
inlineinherited

Definition at line 325 of file MaestroLib.hpp.

Referenced by ~Simulator(), and CreateSimulator().

◆ FlushSimulator() [1/2]

int Simulator::FlushSimulator ( )
inline

Definition at line 189 of file Simulator.hpp.

References MaestroLibrary::FlushSimulator().

◆ FlushSimulator() [2/2]

int MaestroLibrary::FlushSimulator ( void *  sim)
inlineinherited

Definition at line 503 of file MaestroLib.hpp.

Referenced by FlushSimulator().

◆ FreeDoubleVector()

void Simulator::FreeDoubleVector ( double *  vec)
inlineoverridevirtual

Reimplemented from MaestroLibrary.

Definition at line 145 of file Simulator.hpp.

References MaestroLibrary::FreeDoubleVector().

◆ FreeResult()

void Simulator::FreeResult ( char *  result)
inlineoverridevirtual

Reimplemented from MaestroLibrary.

Definition at line 85 of file Simulator.hpp.

References MaestroLibrary::FreeResult().

◆ FreeULLIVector()

void Simulator::FreeULLIVector ( unsigned long long int *  vec)
inlineoverridevirtual

Reimplemented from MaestroLibrary.

Definition at line 149 of file Simulator.hpp.

References MaestroLibrary::FreeULLIVector().

◆ GetConfiguration() [1/2]

char * Simulator::GetConfiguration ( const char *  key)
inline

Definition at line 103 of file Simulator.hpp.

References MaestroLibrary::GetConfiguration().

◆ GetConfiguration() [2/2]

char * MaestroLibrary::GetConfiguration ( void *  sim,
const char *  key 
)
inlineinherited

Definition at line 363 of file MaestroLib.hpp.

Referenced by GetConfiguration().

◆ GetFunction()

void * Utils::Library::GetFunction ( const char *  funcName)
inlinenoexceptinherited

Definition at line 104 of file Library.h.

Referenced by MaestroLibrary::Init(), and Simulators::QuestLibSim::Init().

◆ GetHandle()

const void * Utils::Library::GetHandle ( ) const
inlinenoexceptinherited

Definition at line 112 of file Library.h.

◆ GetMultithreading() [1/2]

int Simulator::GetMultithreading ( )
inline

Definition at line 222 of file Simulator.hpp.

References MaestroLibrary::GetMultithreading().

◆ GetMultithreading() [2/2]

int MaestroLibrary::GetMultithreading ( void *  sim)
inlineinherited

Definition at line 556 of file MaestroLib.hpp.

Referenced by GetMultithreading().

◆ GetNumberOfQubits() [1/2]

unsigned long int Simulator::GetNumberOfQubits ( )
inline

Definition at line 115 of file Simulator.hpp.

References MaestroLibrary::GetNumberOfQubits().

◆ GetNumberOfQubits() [2/2]

unsigned long int MaestroLibrary::GetNumberOfQubits ( void *  sim)
inlineinherited

Definition at line 381 of file MaestroLib.hpp.

Referenced by GetNumberOfQubits().

◆ GetSimulationType() [1/2]

int Simulator::GetSimulationType ( )
inline

Definition at line 184 of file Simulator.hpp.

References MaestroLibrary::GetSimulationType().

◆ GetSimulationType() [2/2]

int MaestroLibrary::GetSimulationType ( void *  sim)
inlineinherited

Definition at line 494 of file MaestroLib.hpp.

Referenced by GetSimulationType().

◆ GetSimulator() [1/2]

void * Simulator::GetSimulator ( )
inline

Definition at line 83 of file Simulator.hpp.

References MaestroLibrary::GetSimulator().

◆ GetSimulator() [2/2]

void * MaestroLibrary::GetSimulator ( unsigned long int  simHandle)
inlineinherited

Definition at line 318 of file MaestroLib.hpp.

Referenced by CreateSimulator(), and GetSimulator().

◆ GetSimulatorType() [1/2]

int Simulator::GetSimulatorType ( )
inline

Definition at line 179 of file Simulator.hpp.

References MaestroLibrary::GetSimulatorType().

◆ GetSimulatorType() [2/2]

int MaestroLibrary::GetSimulatorType ( void *  sim)
inlineinherited

Definition at line 485 of file MaestroLib.hpp.

Referenced by GetSimulatorType().

◆ Init()

bool Simulator::Init ( const char *  libName)
inlineoverridevirtualnoexcept

Reimplemented from MaestroLibrary.

Definition at line 67 of file Simulator.hpp.

References MaestroLibrary::Init().

◆ InitializeSimulator() [1/2]

int Simulator::InitializeSimulator ( )
inline

Definition at line 87 of file Simulator.hpp.

References MaestroLibrary::InitializeSimulator().

◆ InitializeSimulator() [2/2]

int MaestroLibrary::InitializeSimulator ( void *  sim)
inlineinherited

Definition at line 333 of file MaestroLib.hpp.

Referenced by InitializeSimulator().

◆ IsMuted()

bool Utils::Library::IsMuted ( ) const
inlinenoexceptinherited

Definition at line 114 of file Library.h.

◆ IsQcsim() [1/2]

int Simulator::IsQcsim ( )
inline

Definition at line 227 of file Simulator.hpp.

References MaestroLibrary::IsQcsim().

◆ IsQcsim() [2/2]

int MaestroLibrary::IsQcsim ( void *  sim)
inlineinherited

Definition at line 565 of file MaestroLib.hpp.

Referenced by IsQcsim().

◆ IsValid()

bool MaestroLibrary::IsValid ( ) const
inlineinherited

Definition at line 234 of file MaestroLib.hpp.

◆ Measure() [1/2]

unsigned long long int Simulator::Measure ( const unsigned long int *  qubits,
unsigned long int  nrQubits 
)
inline

Definition at line 125 of file Simulator.hpp.

References MaestroLibrary::Measure().

◆ Measure() [2/2]

unsigned long long int MaestroLibrary::Measure ( void *  sim,
const unsigned long int *  qubits,
unsigned long int  nrQubits 
)
inlineinherited

Definition at line 400 of file MaestroLib.hpp.

Referenced by Measure().

◆ MeasureNoCollapse() [1/2]

unsigned long long int Simulator::MeasureNoCollapse ( )
inline

Definition at line 232 of file Simulator.hpp.

References MaestroLibrary::MeasureNoCollapse().

◆ MeasureNoCollapse() [2/2]

unsigned long long int MaestroLibrary::MeasureNoCollapse ( void *  sim)
inlineinherited

Definition at line 574 of file MaestroLib.hpp.

Referenced by MeasureNoCollapse().

◆ Probabilities() [1/2]

double * Simulator::Probabilities ( const unsigned long long int *  qubits,
unsigned long int  nrQubits 
)
inline

Definition at line 163 of file Simulator.hpp.

References MaestroLibrary::Probabilities().

◆ Probabilities() [2/2]

double * MaestroLibrary::Probabilities ( void *  sim,
const unsigned long long int *  qubits,
unsigned long int  nrQubits 
)
inlineinherited

Definition at line 463 of file MaestroLib.hpp.

Referenced by Probabilities().

◆ Probability() [1/2]

double Simulator::Probability ( unsigned long long int  outcome)
inline

Definition at line 139 of file Simulator.hpp.

References MaestroLibrary::Probability().

◆ Probability() [2/2]

double MaestroLibrary::Probability ( void *  sim,
unsigned long long int  outcome 
)
inlineinherited

Definition at line 420 of file MaestroLib.hpp.

Referenced by Probability().

◆ RemoveAllOptimizationSimulatorsAndAdd()

int MaestroLibrary::RemoveAllOptimizationSimulatorsAndAdd ( unsigned long int  simHandle,
int  simType,
int  simExecType 
)
inlineinherited

◆ ResetSimulator() [1/2]

int Simulator::ResetSimulator ( )
inline

Definition at line 92 of file Simulator.hpp.

References MaestroLibrary::ResetSimulator().

◆ ResetSimulator() [2/2]

int MaestroLibrary::ResetSimulator ( void *  sim)
inlineinherited

Definition at line 343 of file MaestroLib.hpp.

Referenced by ResetSimulator().

◆ RestoreInternalDestructiveSavedState() [1/2]

int Simulator::RestoreInternalDestructiveSavedState ( )
inline

◆ RestoreInternalDestructiveSavedState() [2/2]

int MaestroLibrary::RestoreInternalDestructiveSavedState ( void *  sim)
inlineinherited

Definition at line 522 of file MaestroLib.hpp.

Referenced by RestoreInternalDestructiveSavedState().

◆ RestoreState() [1/2]

int Simulator::RestoreState ( )
inline

Definition at line 211 of file Simulator.hpp.

References MaestroLibrary::RestoreState().

◆ RestoreState() [2/2]

int MaestroLibrary::RestoreState ( void *  sim)
inlineinherited

Definition at line 540 of file MaestroLib.hpp.

Referenced by RestoreState().

◆ SampleCounts() [1/2]

unsigned long long int * Simulator::SampleCounts ( const unsigned long long int *  qubits,
unsigned long int  nrQubits,
unsigned long int  shots 
)
inline

Definition at line 170 of file Simulator.hpp.

References MaestroLibrary::SampleCounts().

◆ SampleCounts() [2/2]

unsigned long long int * MaestroLibrary::SampleCounts ( void *  sim,
const unsigned long long int *  qubits,
unsigned long int  nrQubits,
unsigned long int  shots 
)
inlineinherited

Definition at line 473 of file MaestroLib.hpp.

Referenced by SampleCounts().

◆ SaveState() [1/2]

int Simulator::SaveState ( )
inline

Definition at line 206 of file Simulator.hpp.

References MaestroLibrary::SaveState().

◆ SaveState() [2/2]

int MaestroLibrary::SaveState ( void *  sim)
inlineinherited

Definition at line 532 of file MaestroLib.hpp.

Referenced by SaveState().

◆ SaveStateToInternalDestructive() [1/2]

int Simulator::SaveStateToInternalDestructive ( )
inline

Definition at line 194 of file Simulator.hpp.

References MaestroLibrary::SaveStateToInternalDestructive().

◆ SaveStateToInternalDestructive() [2/2]

int MaestroLibrary::SaveStateToInternalDestructive ( void *  sim)
inlineinherited

Definition at line 512 of file MaestroLib.hpp.

Referenced by SaveStateToInternalDestructive().

◆ SetMultithreading() [1/2]

int Simulator::SetMultithreading ( int  multithreading)
inline

Definition at line 216 of file Simulator.hpp.

References MaestroLibrary::SetMultithreading().

◆ SetMultithreading() [2/2]

int MaestroLibrary::SetMultithreading ( void *  sim,
int  multithreading 
)
inlineinherited

Definition at line 548 of file MaestroLib.hpp.

Referenced by SetMultithreading().

◆ SetMute()

void Utils::Library::SetMute ( bool  m)
inlinenoexceptinherited

Definition at line 116 of file Library.h.

◆ SimpleEstimate()

char * MaestroLibrary::SimpleEstimate ( unsigned long int  simpleSim,
const char *  jsonCircuit,
const char *  observableStr,
const char *  jsonConfig 
)
inlineinherited

Definition at line 289 of file MaestroLib.hpp.

Referenced by SimpleSimulator::SimpleEstimate().

◆ SimpleExecute()

char * MaestroLibrary::SimpleExecute ( unsigned long int  simpleSim,
const char *  jsonCircuit,
const char *  jsonConfig 
)
inlineinherited

Definition at line 278 of file MaestroLib.hpp.

Referenced by SimpleSimulator::SimpleExecute().


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