12#ifndef _MAESTRO_INTERFACE_H_
13#define _MAESTRO_INTERFACE_H_
38 int simType,
int simExecType);
47 char *
SimpleExecute(
unsigned long int simpleSim,
const char *circuitStr,
48 const char *jsonConfig);
52 char *
SimpleEstimate(
unsigned long int simpleSim,
const char *circuitStr,
53 const char *observableStr,
const char *jsonConfig);
90 unsigned long int AllocateQubits(
void *sim,
unsigned long int nrQubits);
102 unsigned long long int Measure(
void *sim,
const unsigned long int *qubits,
103 unsigned long int nrQubits);
107 int ApplyReset(
void *sim,
const unsigned long int *qubits,
108 unsigned long int nrQubits);
112 double Probability(
void *sim,
unsigned long long int outcome);
124 double *
Amplitude(
void *sim,
unsigned long long int outcome);
132 double *
Probabilities(
void *sim,
const unsigned long long int *qubits,
133 unsigned long int nrQubits);
138 const unsigned long long int *qubits,
139 unsigned long int nrQubits,
140 unsigned long int shots);
189 int ApplyX(
void *sim,
int qubit);
193 int ApplyY(
void *sim,
int qubit);
197 int ApplyZ(
void *sim,
int qubit);
201 int ApplyH(
void *sim,
int qubit);
205 int ApplyS(
void *sim,
int qubit);
213 int ApplyT(
void *sim,
int qubit);
221 int ApplySX(
void *sim,
int qubit);
229 int ApplyK(
void *sim,
int qubit);
233 int ApplyP(
void *sim,
int qubit,
double theta);
237 int ApplyRx(
void *sim,
int qubit,
double theta);
241 int ApplyRy(
void *sim,
int qubit,
double theta);
245 int ApplyRz(
void *sim,
int qubit,
double theta);
249 int ApplyU(
void *sim,
int qubit,
double theta,
double phi,
double lambda,
254 int ApplyCX(
void *sim,
int controlQubit,
int targetQubit);
258 int ApplyCY(
void *sim,
int controlQubit,
int targetQubit);
262 int ApplyCZ(
void *sim,
int controlQubit,
int targetQubit);
266 int ApplyCH(
void *sim,
int controlQubit,
int targetQubit);
270 int ApplyCSX(
void *sim,
int controlQubit,
int targetQubit);
274 int ApplyCSXDG(
void *sim,
int controlQubit,
int targetQubit);
278 int ApplyCP(
void *sim,
int controlQubit,
int targetQubit,
double theta);
282 int ApplyCRx(
void *sim,
int controlQubit,
int targetQubit,
double theta);
286 int ApplyCRy(
void *sim,
int controlQubit,
int targetQubit,
double theta);
290 int ApplyCRz(
void *sim,
int controlQubit,
int targetQubit,
double theta);
294 int ApplyCCX(
void *sim,
int controlQubit1,
int controlQubit2,
299 int ApplySwap(
void *sim,
int qubit1,
int qubit2);
303 int ApplyCSwap(
void *sim,
int controlQubit,
int qubit1,
int qubit2);
307 int ApplyCU(
void *sim,
int controlQubit,
int targetQubit,
double theta,
308 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)
char * SimpleEstimate(unsigned long int simpleSim, const char *circuitStr, const char *observableStr, const char *jsonConfig)
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)