Class QuantumGate_Probabilistic

Inheritance Relationships

Base Type

Class Documentation

class QuantumGate_Probabilistic : public QuantumGateBase

ここら辺のtarget listの仕様について ゲートをマージしたときのtargetやcontrolの挙動は get_new_qubit_list 関数で決められている Identity のゲート + 含まれるすべてのゲート のゲート集合を元に、 get_new_qubit_list で決める ただし、和が1のProbabilistic においてのみ、 Identityなしで求めている 確率的なユニタリ操作

Public Functions

inline explicit QuantumGate_Probabilistic(const std::vector<double> &distribution, const std::vector<QuantumGateBase*> &gate_list)

コンストラクタ

パラメータ
  • distribution -- ゲートが現れる確率

  • gate_list -- ゲートのリスト

inline explicit QuantumGate_Probabilistic(const std::vector<double> &distribution, const std::vector<QuantumGateBase*> &gate_list, UINT classical_register_address)
inline virtual ~QuantumGate_Probabilistic()
inline virtual void update_quantum_state(QuantumStateBase *state) override

量子状態を更新する

パラメータ

state -- 更新する量子状態

inline virtual QuantumGate_Probabilistic *copy() const override

自身のディープコピーを生成する

戻り値

自身のディープコピー

inline virtual void set_matrix(ComplexMatrix &matrix) const override

自身のゲート行列をセットする

パラメータ

matrix -- 行列をセットする変数の参照

inline virtual void set_seed(int seed) override
inline virtual std::vector<double> get_cumulative_distribution()
inline virtual std::vector<double> get_distribution()
inline virtual std::vector<QuantumGateBase*> get_gate_list()
inline virtual void optimize_ProbablisticGate()
inline virtual bool is_noise() override

Protected Attributes

Random random
std::vector<double> _distribution
std::vector<double> _cumulative_distribution
std::vector<QuantumGateBase*> _gate_list
bool is_instrument
UINT _classical_register_address