Class QuantumGateBase

Inheritance Relationships

Derived Types

Class Documentation

class QuantumGateBase

Subclassed by ClsNoisyEvolution, ClsNoisyEvolution_auto, ClsNoisyEvolution_fast, ClsOneControlOneTargetGate, ClsOneQubitGate, ClsOneQubitRotationGate, ClsPauliGate, ClsPauliRotationGate, ClsReversibleBooleanGate, ClsStateReflectionGate, ClsTwoQubitGate, QuantumGate_Adaptive, QuantumGate_CP, QuantumGate_CPTP, QuantumGate_Probabilistic, QuantumGate_SingleParameter, QuantumGateDiagonalMatrix, QuantumGateMatrix, QuantumGateSparseMatrix

Public Functions

inline virtual ~QuantumGateBase()
inline std::vector<UINT> get_target_index_list() const
inline std::vector<UINT> get_control_index_list() const
inline std::vector<UINT> get_control_value_list() const
inline std::vector<std::pair<UINT, UINT>> get_control_index_value_list() const
virtual void update_quantum_state(QuantumStateBase *state) = 0
virtual QuantumGateBase *copy() const = 0
virtual void set_matrix(ComplexMatrix &matrix) const = 0
bool is_commute(const QuantumGateBase *gate) const
bool is_Pauli() const
bool is_Clifford() const
bool is_Gaussian() const
bool is_parametric() const
bool is_diagonal() const
UINT get_property_value() const
bool commute_Pauli_at(UINT qubit_index, UINT pauli_type) const
virtual std::string get_name() const
virtual std::string to_string() const
inline virtual bool is_noise()
inline virtual void set_seed(int)
inline void set_target_index_list(const std::vector<UINT> &target_index_list)
inline void set_control_index_list(const std::vector<UINT> &control_index_list)
virtual QuantumGateBase *get_inverse(void) const

Public Members

std::vector<TargetQubitInfo> &target_qubit_list

ターゲット量子ビットのリスト

std::vector<ControlQubitInfo> &control_qubit_list

コントロール量子ビットのリスト

Protected Functions

inline QuantumGateBase()
inline QuantumGateBase(const QuantumGateBase &obj)
QuantumGateBase &operator=(const QuantumGateBase &rhs) = delete

Protected Attributes

std::vector<TargetQubitInfo> _target_qubit_list
std::vector<ControlQubitInfo> _control_qubit_list
UINT _gate_property = 0
std::string _name = "Generic gate"

Friends

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