Class QuantumCircuit¶
Defined in File circuit.hpp
Inheritance Relationships¶
Derived Type¶
public ParametricQuantumCircuit
(Class ParametricQuantumCircuit)
Class Documentation¶
-
class QuantumCircuit¶
Subclassed by ParametricQuantumCircuit
Public Functions
-
explicit QuantumCircuit(UINT qubit_count)¶
-
QuantumCircuit *copy() const¶
-
virtual ~QuantumCircuit()¶
-
virtual void add_gate(QuantumGateBase *gate)¶
-
virtual void add_gate(QuantumGateBase *gate, UINT index)¶
-
virtual void add_gate_copy(const QuantumGateBase *gate)¶
-
virtual void add_gate_copy(const QuantumGateBase *gate, UINT index)¶
-
virtual void add_noise_gate(QuantumGateBase *gate, std::string noise_type, double noise_prob)¶
-
void add_noise_gate_copy(QuantumGateBase *gate, std::string noise_type, double noise_prob)¶
-
virtual void remove_gate(UINT index)¶
-
virtual void move_gate(UINT from_index, UINT to_index)¶
-
inline void merge_circuit(const QuantumCircuit *circuit)¶
-
void update_quantum_state(QuantumStateBase *state)¶
-
void update_quantum_state(QuantumStateBase *state, UINT start_index, UINT end_index)¶
-
void update_quantum_state(QuantumStateBase *state, UINT seed)¶
-
void update_quantum_state(QuantumStateBase *state, UINT start_index, UINT end_index, UINT seed)¶
-
bool is_Clifford() const¶
-
bool is_Gaussian() const¶
-
UINT calculate_depth() const¶
-
virtual std::string to_string() const¶
-
virtual void add_X_gate(UINT target_index)¶
-
virtual void add_Y_gate(UINT target_index)¶
-
virtual void add_Z_gate(UINT target_index)¶
-
virtual void add_H_gate(UINT target_index)¶
-
virtual void add_S_gate(UINT target_index)¶
-
virtual void add_Sdag_gate(UINT target_index)¶
-
virtual void add_T_gate(UINT target_index)¶
-
virtual void add_Tdag_gate(UINT target_index)¶
-
virtual void add_sqrtX_gate(UINT target_index)¶
-
virtual void add_sqrtXdag_gate(UINT target_index)¶
-
virtual void add_sqrtY_gate(UINT target_index)¶
-
virtual void add_sqrtYdag_gate(UINT target_index)¶
-
virtual void add_P0_gate(UINT target_index)¶
-
virtual void add_P1_gate(UINT target_index)¶
-
virtual void add_CNOT_gate(UINT control_index, UINT target_index)¶
-
virtual void add_CZ_gate(UINT control_index, UINT target_index)¶
-
virtual void add_SWAP_gate(UINT target_index1, UINT target_index2)¶
-
virtual void add_FusedSWAP_gate(UINT target_index1, UINT target_index2, UINT block_size)¶
-
virtual void add_RX_gate(UINT target_index, double angle)¶
-
virtual void add_RY_gate(UINT target_index, double angle)¶
-
virtual void add_RZ_gate(UINT target_index, double angle)¶
-
virtual void add_RotInvX_gate(UINT target_index, double angle)¶
-
virtual void add_RotInvY_gate(UINT target_index, double angle)¶
-
virtual void add_RotInvZ_gate(UINT target_index, double angle)¶
-
virtual void add_RotX_gate(UINT target_index, double angle)¶
-
virtual void add_RotY_gate(UINT target_index, double angle)¶
-
virtual void add_RotZ_gate(UINT target_index, double angle)¶
-
virtual void add_U1_gate(UINT target_index, double phi)¶
-
virtual void add_U2_gate(UINT target_index, double phi, double psi)¶
-
virtual void add_U3_gate(UINT target_index, double phi, double psi, double lambda)¶
-
virtual void add_multi_Pauli_gate(std::vector<UINT> target_index_list, std::vector<UINT> pauli_id_list)¶
-
virtual void add_multi_Pauli_gate(const PauliOperator &pauli_operator)¶
-
virtual void add_multi_Pauli_rotation_gate(std::vector<UINT> target_index_list, std::vector<UINT> pauli_id_list, double angle)¶
-
virtual void add_multi_Pauli_rotation_gate(const PauliOperator &pauli_operator)¶
-
virtual void add_diagonal_observable_rotation_gate(const Observable &observable, double angle)¶
-
virtual void add_observable_rotation_gate(const Observable &observable, double angle, UINT num_repeats = 0)¶
-
virtual void add_dense_matrix_gate(UINT target_index, const ComplexMatrix &matrix)¶
-
virtual void add_dense_matrix_gate(std::vector<UINT> target_index_list, const ComplexMatrix &matrix)¶
-
virtual void add_random_unitary_gate(std::vector<UINT> target_index_list)¶
-
virtual void add_random_unitary_gate(std::vector<UINT> target_index_list, UINT seed)¶
-
virtual boost::property_tree::ptree to_ptree() const¶
-
virtual QuantumCircuit *get_inverse(void)¶
Protected Functions
-
QuantumCircuit(const QuantumCircuit &obj)¶
-
QuantumCircuit &operator=(const QuantumCircuit&) = delete¶
Friends
-
friend std::ostream &operator<<(std::ostream &os, const QuantumCircuit&)¶
-
friend std::ostream &operator<<(std::ostream &os, const QuantumCircuit *gate)¶
-
explicit QuantumCircuit(UINT qubit_count)¶