Class QuantumCircuit

Inheritance Relationships

Derived Type

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)

Public Members

const UINT &qubit_count
const std::vector<QuantumGateBase*> &gate_list

Protected Functions

QuantumCircuit(const QuantumCircuit &obj)
QuantumCircuit &operator=(const QuantumCircuit&) = delete

Protected Attributes

std::vector<QuantumGateBase*> _gate_list
UINT _qubit_count

Friends

friend std::ostream &operator<<(std::ostream &os, const QuantumCircuit&)
friend std::ostream &operator<<(std::ostream &os, const QuantumCircuit *gate)