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)
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
inline virtual QuantumGate_Probabilistic *copy() const override
inline virtual void set_matrix(ComplexMatrix &matrix) const override
inline virtual boost::property_tree::ptree to_ptree() const override

japanese-en ptreeに変換する

Returns:

ptree

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