11#ifndef _MAESTRO_INTERFACE_H_
12#define _MAESTRO_INTERFACE_H_
23 int simType,
int simExecType);
27char *
SimpleExecute(
unsigned long int simpleSim,
const char *circuitStr,
28 const char *jsonConfig);
39unsigned long int AllocateQubits(
void *sim,
unsigned long int nrQubits);
42unsigned long long int Measure(
void *sim,
const unsigned long int *qubits,
43 unsigned long int nrQubits);
44int ApplyReset(
void *sim,
const unsigned long int *qubits,
45 unsigned long int nrQubits);
46double Probability(
void *sim,
unsigned long long int outcome);
49double *
Amplitude(
void *sim,
unsigned long long int outcome);
51double *
Probabilities(
void *sim,
const unsigned long long int *qubits,
52 unsigned long int nrQubits);
54 const unsigned long long int *qubits,
55 unsigned long int nrQubits,
56 unsigned long int shots);
69int ApplyX(
void *sim,
int qubit);
70int ApplyY(
void *sim,
int qubit);
71int ApplyZ(
void *sim,
int qubit);
72int ApplyH(
void *sim,
int qubit);
73int ApplyS(
void *sim,
int qubit);
75int ApplyT(
void *sim,
int qubit);
77int ApplySX(
void *sim,
int qubit);
79int ApplyK(
void *sim,
int qubit);
80int ApplyP(
void *sim,
int qubit,
double theta);
81int ApplyRx(
void *sim,
int qubit,
double theta);
82int ApplyRy(
void *sim,
int qubit,
double theta);
83int ApplyRz(
void *sim,
int qubit,
double theta);
84int ApplyU(
void *sim,
int qubit,
double theta,
double phi,
double lambda,
86int ApplyCX(
void *sim,
int controlQubit,
int targetQubit);
87int ApplyCY(
void *sim,
int controlQubit,
int targetQubit);
88int ApplyCZ(
void *sim,
int controlQubit,
int targetQubit);
89int ApplyCH(
void *sim,
int controlQubit,
int targetQubit);
90int ApplyCSX(
void *sim,
int controlQubit,
int targetQubit);
91int ApplyCSXDG(
void *sim,
int controlQubit,
int targetQubit);
92int ApplyCP(
void *sim,
int controlQubit,
int targetQubit,
double theta);
93int ApplyCRx(
void *sim,
int controlQubit,
int targetQubit,
double theta);
94int ApplyCRy(
void *sim,
int controlQubit,
int targetQubit,
double theta);
95int ApplyCRz(
void *sim,
int controlQubit,
int targetQubit,
double theta);
96int ApplyCCX(
void *sim,
int controlQubit1,
int controlQubit2,
int targetQubit);
97int ApplySwap(
void *sim,
int qubit1,
int qubit2);
98int ApplyCSwap(
void *sim,
int controlQubit,
int qubit1,
int qubit2);
99int ApplyCU(
void *sim,
int controlQubit,
int targetQubit,
double theta,
100 double phi,
double lambda,
double gamma);
int ApplyK(void *sim, int qubit)
double Probability(void *sim, unsigned long long int outcome)
char * GetConfiguration(void *sim, const char *key)
int InitializeSimulator(void *sim)
int RestoreState(void *sim)
void FreeDoubleVector(double *vec)
int ApplyRx(void *sim, int qubit, double theta)
int ApplyReset(void *sim, const unsigned long int *qubits, unsigned long int nrQubits)
int ApplyX(void *sim, int qubit)
int ApplyU(void *sim, int qubit, double theta, double phi, double lambda, double gamma)
int AddOptimizationSimulator(unsigned long int simHandle, int simType, int simExecType)
unsigned long int CreateSimulator(int simType, int simExecType)
int ApplyCRy(void *sim, int controlQubit, int targetQubit, double theta)
int ApplyTDG(void *sim, int qubit)
int ApplyCSXDG(void *sim, int controlQubit, int targetQubit)
void FreeResult(char *result)
int ApplyS(void *sim, int qubit)
int ApplyCX(void *sim, int controlQubit, int targetQubit)
unsigned long int AllocateQubits(void *sim, unsigned long int nrQubits)
char * SimpleExecute(unsigned long int simpleSim, const char *circuitStr, const char *jsonConfig)
int ApplyCRz(void *sim, int controlQubit, int targetQubit, double theta)
unsigned long int GetNumberOfQubits(void *sim)
double * AllProbabilities(void *sim)
void * GetMaestroObjectWithMute()
unsigned long long int MeasureNoCollapse(void *sim)
int ApplyCP(void *sim, int controlQubit, int targetQubit, double theta)
int ApplySXDG(void *sim, int qubit)
void * GetMaestroObject()
int GetMultithreading(void *sim)
int ApplySDG(void *sim, int qubit)
unsigned long long int Measure(void *sim, const unsigned long int *qubits, unsigned long int nrQubits)
int ApplyCSwap(void *sim, int controlQubit, int qubit1, int qubit2)
void DestroySimpleSimulator(unsigned long int simHandle)
int ApplyCCX(void *sim, int controlQubit1, int controlQubit2, int targetQubit)
int ApplyY(void *sim, int qubit)
double * Amplitude(void *sim, unsigned long long int outcome)
int ApplyZ(void *sim, int qubit)
int ApplyH(void *sim, int qubit)
int ApplyCY(void *sim, int controlQubit, int targetQubit)
double * Probabilities(void *sim, const unsigned long long int *qubits, unsigned long int nrQubits)
int SetMultithreading(void *sim, int multithreading)
int ApplyCU(void *sim, int controlQubit, int targetQubit, double theta, double phi, double lambda, double gamma)
void DestroySimulator(unsigned long int simHandle)
int ApplySwap(void *sim, int qubit1, int qubit2)
void * GetSimulator(unsigned long int simHandle)
int ApplyRy(void *sim, int qubit, double theta)
int ApplyP(void *sim, int qubit, double theta)
int SaveStateToInternalDestructive(void *sim)
int ApplyCH(void *sim, int controlQubit, int targetQubit)
int FlushSimulator(void *sim)
unsigned long int CreateSimpleSimulator(int nrQubits)
int GetSimulationType(void *sim)
int ResetSimulator(void *sim)
unsigned long long int * SampleCounts(void *sim, const unsigned long long int *qubits, unsigned long int nrQubits, unsigned long int shots)
int ApplySX(void *sim, int qubit)
int ApplyCZ(void *sim, int controlQubit, int targetQubit)
int ApplyRz(void *sim, int qubit, double theta)
int GetSimulatorType(void *sim)
int RestoreInternalDestructiveSavedState(void *sim)
int ApplyT(void *sim, int qubit)
int ApplyCRx(void *sim, int controlQubit, int targetQubit, double theta)
int ConfigureSimulator(void *sim, const char *key, const char *value)
int ApplyCSX(void *sim, int controlQubit, int targetQubit)
int ClearSimulator(void *sim)
int RemoveAllOptimizationSimulatorsAndAdd(unsigned long int simHandle, int simType, int simExecType)
void FreeULLIVector(unsigned long long int *vec)