QuantumGate_Probabilistic Class Reference

#include <gate_general.hpp>

Inheritance diagram for QuantumGate_Probabilistic:
QuantumGateBase

Public Member Functions

 QuantumGate_Probabilistic (std::vector< double > distribution, std::vector< QuantumGateBase *> gate_list)
 
virtual ~QuantumGate_Probabilistic ()
 
virtual void update_quantum_state (QuantumStateBase *state) override
 
virtual QuantumGateBasecopy () const override
 
virtual void set_matrix (ComplexMatrix &matrix) const override
 
- Public Member Functions inherited from QuantumGateBase
virtual ~QuantumGateBase ()
 
std::vector< UINT > get_target_index_list () const
 
std::vector< UINT > get_control_index_list () const
 
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 to_string () const
 

Protected Attributes

Random random
 
std::vector< double > _distribution
 
std::vector< double > _cumulative_distribution
 
std::vector< QuantumGateBase * > _gate_list
 
- Protected Attributes inherited from QuantumGateBase
std::vector< TargetQubitInfo_target_qubit_list
 
std::vector< ControlQubitInfo_control_qubit_list
 
UINT _gate_property =0
 
std::string _name ="Generic gate"
 

Additional Inherited Members

- Public Attributes inherited from QuantumGateBase
const std::vector< TargetQubitInfo > & target_qubit_list = _target_qubit_list
 
const std::vector< ControlQubitInfo > & control_qubit_list = _control_qubit_list
 
- Protected Member Functions inherited from QuantumGateBase
 QuantumGateBase ()
 
 QuantumGateBase (const QuantumGateBase &obj)=default
 
QuantumGateBaseoperator= (const QuantumGateBase &rhs)=default
 

Detailed Description

確率的なユニタリ操作

Constructor & Destructor Documentation

◆ QuantumGate_Probabilistic()

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

コンストラクタ

Parameters
distributionゲートが現れる確率
gate_listゲートのリスト

◆ ~QuantumGate_Probabilistic()

virtual QuantumGate_Probabilistic::~QuantumGate_Probabilistic ( )
inlinevirtual

Member Function Documentation

◆ copy()

virtual QuantumGateBase* QuantumGate_Probabilistic::copy ( ) const
inlineoverridevirtual

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

Returns
自身のディープコピー

Implements QuantumGateBase.

◆ set_matrix()

virtual void QuantumGate_Probabilistic::set_matrix ( ComplexMatrix matrix) const
inlineoverridevirtual

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

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

Implements QuantumGateBase.

◆ update_quantum_state()

virtual void QuantumGate_Probabilistic::update_quantum_state ( QuantumStateBase state)
inlineoverridevirtual

量子状態を更新する

Parameters
state更新する量子状態

Implements QuantumGateBase.

Member Data Documentation

◆ _cumulative_distribution

std::vector<double> QuantumGate_Probabilistic::_cumulative_distribution
protected

◆ _distribution

std::vector<double> QuantumGate_Probabilistic::_distribution
protected

◆ _gate_list

std::vector<QuantumGateBase*> QuantumGate_Probabilistic::_gate_list
protected

◆ random

Random QuantumGate_Probabilistic::random
protected

The documentation for this class was generated from the following file: