13 bool Init(
const char *libName)
noexcept override {
30 handle, simType, simExecType) == 1;
48 const char *jsonConfig) {
56 unsigned long int handle = 0;
67 bool Init(
const char *libName)
noexcept override {
125 unsigned long long int Measure(
const unsigned long int *qubits,
126 unsigned long int nrQubits) {
133 int ApplyReset(
const unsigned long int *qubits,
unsigned long int nrQubits) {
164 unsigned long int nrQubits) {
170 unsigned long long int *
SampleCounts(
const unsigned long long int *qubits,
171 unsigned long int nrQubits,
172 unsigned long int shots) {
315 int ApplyU(
int qubit,
double theta,
double phi,
double lambda,
double gamma) {
322 int ApplyCX(
int controlQubit,
int targetQubit) {
328 int ApplyCY(
int controlQubit,
int targetQubit) {
334 int ApplyCZ(
int controlQubit,
int targetQubit) {
340 int ApplyCH(
int controlQubit,
int targetQubit) {
359 int ApplyCP(
int controlQubit,
int targetQubit,
double theta) {
366 int ApplyCRx(
int controlQubit,
int targetQubit,
double theta) {
373 int ApplyCRy(
int controlQubit,
int targetQubit,
double theta) {
380 int ApplyCRz(
int controlQubit,
int targetQubit,
double theta) {
387 int ApplyCCX(
int controlQubit1,
int controlQubit2,
int targetQubit) {
390 controlQubit2, targetQubit);
407 int ApplyCU(
int controlQubit,
int targetQubit,
double theta,
double phi,
408 double lambda,
double gamma) {
411 theta, phi, lambda, gamma);
416 unsigned long int handle = 0;
417 void *simulatorPtr =
nullptr;
int ApplyCCX(void *sim, int controlQubit1, int controlQubit2, int targetQubit)
int ResetSimulator(void *sim)
void * GetSimulator(unsigned long int simHandle)
int ApplyCZ(void *sim, int controlQubit, int targetQubit)
unsigned long int AllocateQubits(void *sim, unsigned long int nrQubits)
int ConfigureSimulator(void *sim, const char *key, const char *value)
unsigned long long int * SampleCounts(void *sim, const unsigned long long int *qubits, unsigned long int nrQubits, unsigned long int shots)
int ApplySXDG(void *sim, int qubit)
int ApplyS(void *sim, int qubit)
int GetSimulationType(void *sim)
int GetSimulatorType(void *sim)
int ApplyH(void *sim, int qubit)
double * AllProbabilities(void *sim)
unsigned long long int Measure(void *sim, const unsigned long int *qubits, unsigned long int nrQubits)
int ApplySDG(void *sim, int qubit)
int RemoveAllOptimizationSimulatorsAndAdd(unsigned long int simHandle, int simType, int simExecType)
int ApplyT(void *sim, int qubit)
int ApplyY(void *sim, int qubit)
int ApplySX(void *sim, int qubit)
int ApplyX(void *sim, int qubit)
int ApplyCY(void *sim, int controlQubit, int targetQubit)
int ApplyCX(void *sim, int controlQubit, int targetQubit)
void DestroySimpleSimulator(unsigned long int simHandle)
int ApplyCRx(void *sim, int controlQubit, int targetQubit, double theta)
int ClearSimulator(void *sim)
int ApplyCSX(void *sim, int controlQubit, int targetQubit)
int ApplyK(void *sim, int qubit)
char * SimpleExecute(unsigned long int simpleSim, const char *jsonCircuit, const char *jsonConfig)
int RestoreState(void *sim)
int ApplyCRz(void *sim, int controlQubit, int targetQubit, double theta)
double * Amplitude(void *sim, unsigned long long int outcome)
int AddOptimizationSimulator(unsigned long int simHandle, int simType, int simExecType)
virtual unsigned long int CreateSimpleSimulator(int nrQubits)
char * SimpleEstimate(unsigned long int simpleSim, const char *jsonCircuit, const char *observableStr, const char *jsonConfig)
double Probability(void *sim, unsigned long long int outcome)
int ApplyCH(void *sim, int controlQubit, int targetQubit)
int ApplyCSwap(void *sim, int controlQubit, int qubit1, int qubit2)
virtual void FreeULLIVector(unsigned long long int *vec)
virtual unsigned long int CreateSimulator(int simType, int simExecType)
int ApplyCSXDG(void *sim, int controlQubit, int targetQubit)
int SaveStateToInternalDestructive(void *sim)
virtual void FreeDoubleVector(double *vec)
int ApplyCRy(void *sim, int controlQubit, int targetQubit, double theta)
double * Probabilities(void *sim, const unsigned long long int *qubits, unsigned long int nrQubits)
int ApplyRz(void *sim, int qubit, double theta)
int ApplySwap(void *sim, int qubit1, int qubit2)
void DestroySimulator(unsigned long int simHandle)
int ApplyU(void *sim, int qubit, double theta, double phi, double lambda, double gamma)
int ApplyZ(void *sim, int qubit)
int RestoreInternalDestructiveSavedState(void *sim)
int ApplyCU(void *sim, int controlQubit, int targetQubit, double theta, double phi, double lambda, double gamma)
int ApplyReset(void *sim, const unsigned long int *qubits, unsigned long int nrQubits)
int InitializeSimulator(void *sim)
int ApplyP(void *sim, int qubit, double theta)
int ApplyRy(void *sim, int qubit, double theta)
bool Init(const char *libName) noexcept override
int ApplyCP(void *sim, int controlQubit, int targetQubit, double theta)
int FlushSimulator(void *sim)
int GetMultithreading(void *sim)
virtual void FreeResult(char *result)
int ApplyRx(void *sim, int qubit, double theta)
unsigned long int GetNumberOfQubits(void *sim)
char * GetConfiguration(void *sim, const char *key)
int ApplyTDG(void *sim, int qubit)
unsigned long long int MeasureNoCollapse(void *sim)
int SetMultithreading(void *sim, int multithreading)
SimpleSimulator() noexcept
bool AddOptimizationSimulator(int simType, int simExecType)
virtual ~SimpleSimulator()
char * SimpleEstimate(const char *jsonCircuit, const char *observableStr, const char *jsonConfig)
unsigned long int CreateSimpleSimulator(int nrQubits) override
char * SimpleExecute(const char *jsonCircuit, const char *jsonConfig)
void FreeResult(char *result) override
bool Init(const char *libName) noexcept override
bool RemoveAllOptimizationSimulatorsAndAdd(int simType, int simExecType)
int ApplyCSXDG(int controlQubit, int targetQubit)
bool Init(const char *libName) noexcept override
unsigned long int AllocateQubits(unsigned long int nrQubits)
int ApplyCH(int controlQubit, int targetQubit)
int ApplyCSwap(int controlQubit, int qubit1, int qubit2)
int ApplyCY(int controlQubit, int targetQubit)
int ApplyCZ(int controlQubit, int targetQubit)
int SaveStateToInternalDestructive()
unsigned long int CreateSimulator(int simType, int simExecType) override
double * Probabilities(const unsigned long long int *qubits, unsigned long int nrQubits)
double * AllProbabilities()
int ApplyCRy(int controlQubit, int targetQubit, double theta)
void FreeResult(char *result)
int ApplyP(int qubit, double theta)
void FreeULLIVector(unsigned long long int *vec) override
int InitializeSimulator()
int ApplyCP(int controlQubit, int targetQubit, double theta)
double * Amplitude(unsigned long long int outcome)
char * GetConfiguration(const char *key)
int ApplyCRz(int controlQubit, int targetQubit, double theta)
void FreeDoubleVector(double *vec) override
int ApplySwap(int qubit1, int qubit2)
int ApplyRy(int qubit, double theta)
int RestoreInternalDestructiveSavedState()
int ApplyRz(int qubit, double theta)
double Probability(unsigned long long int outcome)
int ApplyCX(int controlQubit, int targetQubit)
int ApplyCSX(int controlQubit, int targetQubit)
int ApplyCRx(int controlQubit, int targetQubit, double theta)
unsigned long long int MeasureNoCollapse()
int ConfigureSimulator(const char *key, const char *value)
unsigned long long int Measure(const unsigned long int *qubits, unsigned long int nrQubits)
unsigned long long int * SampleCounts(const unsigned long long int *qubits, unsigned long int nrQubits, unsigned long int shots)
int ApplyU(int qubit, double theta, double phi, double lambda, double gamma)
int ApplyRx(int qubit, double theta)
int ApplyReset(const unsigned long int *qubits, unsigned long int nrQubits)
unsigned long int GetNumberOfQubits()
int SetMultithreading(int multithreading)
int ApplyCCX(int controlQubit1, int controlQubit2, int targetQubit)
int ApplyCU(int controlQubit, int targetQubit, double theta, double phi, double lambda, double gamma)