aboutsummaryrefslogtreecommitdiff
path: root/include/core/circuit.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/core/circuit.h')
-rw-r--r--include/core/circuit.h79
1 files changed, 41 insertions, 38 deletions
diff --git a/include/core/circuit.h b/include/core/circuit.h
index bbc864c..7c0d371 100644
--- a/include/core/circuit.h
+++ b/include/core/circuit.h
@@ -46,14 +46,14 @@ struct PsiGateOp
double params[3];
size_t param_count;
size_t classical;
- struct PsiCustomGate *custom;
- size_t *custom_targets;
+ struct PsiCustomGate* custom;
+ size_t* custom_targets;
size_t custom_target_count;
};
-const char *psi_gate_op_name(struct PsiGateOp op);
-const size_t *psi_gate_op_quantum_targets(const struct PsiGateOp *op, size_t *out_count);
-const size_t *psi_gate_op_classical_targets(const struct PsiGateOp *op, size_t *out_count);
+const char* psi_gate_op_name(struct PsiGateOp op);
+const size_t* psi_gate_op_quantum_targets(const struct PsiGateOp* op, size_t* out_count);
+const size_t* psi_gate_op_classical_targets(const struct PsiGateOp* op, size_t* out_count);
bool psi_gate_op_is_measurement(struct PsiGateOp op);
bool psi_gate_op_is_custom(struct PsiGateOp op);
bool psi_gate_op_is_non_clifford(struct PsiGateOp op);
@@ -62,7 +62,7 @@ struct PsiQuantumCircuit
{
size_t num_qubits;
size_t num_classical;
- struct PsiGateOp *operations;
+ struct PsiGateOp* operations;
size_t operation_count;
size_t operation_capacity;
struct PsiVector computed_state;
@@ -70,41 +70,44 @@ struct PsiQuantumCircuit
};
struct PsiQuantumCircuit psi_new_quantum_circuit(size_t num_qubits);
-struct PsiQuantumCircuit psi_new_quantum_circuit_with_classical(size_t num_qubits, size_t num_classical);
-void psi_free_quantum_circuit(struct PsiQuantumCircuit *c);
-void psi_reset_circuit(struct PsiQuantumCircuit *c);
+struct PsiQuantumCircuit psi_new_quantum_circuit_with_classical(size_t num_qubits,
+ size_t num_classical);
+void psi_free_quantum_circuit(struct PsiQuantumCircuit* c);
+void psi_reset_circuit(struct PsiQuantumCircuit* c);
-void psi_apply_h(struct PsiQuantumCircuit *c, size_t target);
-void psi_apply_x(struct PsiQuantumCircuit *c, size_t target);
-void psi_apply_y(struct PsiQuantumCircuit *c, size_t target);
-void psi_apply_z(struct PsiQuantumCircuit *c, size_t target);
-void psi_apply_s(struct PsiQuantumCircuit *c, size_t target);
-void psi_apply_t(struct PsiQuantumCircuit *c, size_t target);
-void psi_apply_sdg(struct PsiQuantumCircuit *c, size_t target);
-void psi_apply_tdg(struct PsiQuantumCircuit *c, size_t target);
-void psi_apply_sx(struct PsiQuantumCircuit *c, size_t target);
-void psi_apply_sxdg(struct PsiQuantumCircuit *c, size_t target);
+void psi_apply_h(struct PsiQuantumCircuit* c, size_t target);
+void psi_apply_x(struct PsiQuantumCircuit* c, size_t target);
+void psi_apply_y(struct PsiQuantumCircuit* c, size_t target);
+void psi_apply_z(struct PsiQuantumCircuit* c, size_t target);
+void psi_apply_s(struct PsiQuantumCircuit* c, size_t target);
+void psi_apply_t(struct PsiQuantumCircuit* c, size_t target);
+void psi_apply_sdg(struct PsiQuantumCircuit* c, size_t target);
+void psi_apply_tdg(struct PsiQuantumCircuit* c, size_t target);
+void psi_apply_sx(struct PsiQuantumCircuit* c, size_t target);
+void psi_apply_sxdg(struct PsiQuantumCircuit* c, size_t target);
-void psi_apply_rx(struct PsiQuantumCircuit *c, size_t target, double theta);
-void psi_apply_ry(struct PsiQuantumCircuit *c, size_t target, double theta);
-void psi_apply_rz(struct PsiQuantumCircuit *c, size_t target, double theta);
-void psi_apply_p(struct PsiQuantumCircuit *c, size_t target, double theta);
-void psi_apply_u1(struct PsiQuantumCircuit *c, size_t target, double lambda);
-void psi_apply_u2(struct PsiQuantumCircuit *c, size_t target, double phi, double lambda);
-void psi_apply_u3(struct PsiQuantumCircuit *c, size_t target, double theta, double phi, double lambda);
+void psi_apply_rx(struct PsiQuantumCircuit* c, size_t target, double theta);
+void psi_apply_ry(struct PsiQuantumCircuit* c, size_t target, double theta);
+void psi_apply_rz(struct PsiQuantumCircuit* c, size_t target, double theta);
+void psi_apply_p(struct PsiQuantumCircuit* c, size_t target, double theta);
+void psi_apply_u1(struct PsiQuantumCircuit* c, size_t target, double lambda);
+void psi_apply_u2(struct PsiQuantumCircuit* c, size_t target, double phi, double lambda);
+void psi_apply_u3(struct PsiQuantumCircuit* c, size_t target, double theta, double phi,
+ double lambda);
-void psi_apply_cnot(struct PsiQuantumCircuit *c, size_t control, size_t target);
-void psi_apply_cz(struct PsiQuantumCircuit *c, size_t control, size_t target);
-void psi_apply_swap(struct PsiQuantumCircuit *c, size_t qubit1, size_t qubit2);
-void psi_apply_crx(struct PsiQuantumCircuit *c, size_t control, size_t target, double theta);
-void psi_apply_cry(struct PsiQuantumCircuit *c, size_t control, size_t target, double theta);
-void psi_apply_crz(struct PsiQuantumCircuit *c, size_t control, size_t target, double theta);
-void psi_apply_cp(struct PsiQuantumCircuit *c, size_t control, size_t target, double theta);
+void psi_apply_cnot(struct PsiQuantumCircuit* c, size_t control, size_t target);
+void psi_apply_cz(struct PsiQuantumCircuit* c, size_t control, size_t target);
+void psi_apply_swap(struct PsiQuantumCircuit* c, size_t qubit1, size_t qubit2);
+void psi_apply_crx(struct PsiQuantumCircuit* c, size_t control, size_t target, double theta);
+void psi_apply_cry(struct PsiQuantumCircuit* c, size_t control, size_t target, double theta);
+void psi_apply_crz(struct PsiQuantumCircuit* c, size_t control, size_t target, double theta);
+void psi_apply_cp(struct PsiQuantumCircuit* c, size_t control, size_t target, double theta);
-void psi_apply_ccnot(struct PsiQuantumCircuit *c, size_t control1, size_t control2, size_t target);
-void psi_apply_cswap(struct PsiQuantumCircuit *c, size_t control, size_t target1, size_t target2);
+void psi_apply_ccnot(struct PsiQuantumCircuit* c, size_t control1, size_t control2, size_t target);
+void psi_apply_cswap(struct PsiQuantumCircuit* c, size_t control, size_t target1, size_t target2);
-void psi_measure(struct PsiQuantumCircuit *c, size_t qubit, size_t classical);
-void psi_measure_all(struct PsiQuantumCircuit *c);
+void psi_measure(struct PsiQuantumCircuit* c, size_t qubit, size_t classical);
+void psi_measure_all(struct PsiQuantumCircuit* c);
-void psi_apply_custom(struct PsiQuantumCircuit *c, struct PsiCustomGate gate, const size_t *targets, size_t count);
+void psi_apply_custom(struct PsiQuantumCircuit* c, struct PsiCustomGate gate, const size_t* targets,
+ size_t count);