PauliOperator Struct Reference

#include <pauli_operator.hpp>

Public Member Functions

std::vector< UINT > get_index_list () const
 
std::vector< UINT > get_pauli_id_list () const
 
 PauliOperator (double coef=1.0)
 
 PauliOperator (std::string strings, double coef=1.0)
 
 PauliOperator (const std::vector< UINT > &target_qubit_index_list, std::string Pauli_operator_type_list, double coef=1.)
 
 PauliOperator (const std::vector< UINT > &pauli_list, double coef=1.)
 
 PauliOperator (const std::vector< UINT > &target_qubit_index_list, const std::vector< UINT > &target_qubit_pauli_list, double coef=1.)
 
virtual double get_coef () const
 
virtual ~PauliOperator ()
 
virtual void add_single_Pauli (UINT qubit_index, UINT pauli_type)
 
virtual double get_expectation_value (const QuantumStateBase *state) const
 
virtual CPPCTYPE get_transition_amplitude (const QuantumStateBase *state_bra, const QuantumStateBase *state_ket) const
 
virtual PauliOperatorcopy () const
 

Detailed Description

複数qubitに作用するパウリ演算子の情報を保持するクラス。 SinglePauliOperatorをリストとして持ち, 種々の操作を行う。

Constructor & Destructor Documentation

◆ PauliOperator() [1/5]

PauliOperator::PauliOperator ( double  coef = 1.0)
inline

コンストラクタ

係数をとって空のインスタンスを返す。

Parameters
[in]coef係数。デフォルトは1.0
Returns
係数がcoefの空のインスタンス

◆ PauliOperator() [2/5]

PauliOperator::PauliOperator ( std::string  strings,
double  coef = 1.0 
)

コンストラクタ

パウリ演算子とその添字からなる文字列と、その係数から複数qubitに掛かるパウリ演算子を作成する

Parameters
[in]stringsPauli演算子とその掛かるindex. "X 1 Y 2 Z 5"のようにスペース区切りの文字列
[in]coef演算子の係数
Returns
入力のパウリ演算子と係数をもつPauliOpetatorのインスタンス

◆ PauliOperator() [3/5]

PauliOperator::PauliOperator ( const std::vector< UINT > &  target_qubit_index_list,
std::string  Pauli_operator_type_list,
double  coef = 1. 
)

コンストラクタ

パウリ演算子の文字列と添字のリスト、係数からPauliOperatorのインスタンスを生成する。 このとき入力として与える演算子と添字のリストは、i番目の演算子にi番目の添字が対応する。

Parameters
[in]target_qubit_index_listPauli_operator_type_listで与えるパウリ演算子が掛かるqubitを指定する添字のリスト。
[in]Pauli_operator_type_listパウリ演算子の文字列。(example: "XXYZ")
[in]coef係数
Returns
入力として与えたパウリ演算子のリストと添字のリスト、係数から生成されるPauliOperatorのインスタンス

◆ PauliOperator() [4/5]

PauliOperator::PauliOperator ( const std::vector< UINT > &  pauli_list,
double  coef = 1. 
)

コンストラクタ

配列の添字に作用するパウリ演算子と係数からインスタンスを生成する。

Parameters
[in]pauli_list配列の添字に対応するqubitに作用するパウリ演算子のリスト
[in]coef係数
Returns
pauli_listの添字に対応するqubitに作用するパウリ演算子と係数をもつインスタンス

◆ PauliOperator() [5/5]

PauliOperator::PauliOperator ( const std::vector< UINT > &  target_qubit_index_list,
const std::vector< UINT > &  target_qubit_pauli_list,
double  coef = 1. 
)

コンストラクタ

パウリ演算子のリストと添字のリスト、係数からPauliOperatorのインスタンスを生成する。 このとき入力として与える演算子と添字のリストは、リストの同じ添字の場所にあるものが対応する。

Parameters
[in]target_qubit_index_listPauli_operator_type_listで与えるパウリ演算子が掛かるqubitを指定する添字のリスト
[in]target_qubit_pauli_listパウリ演算子の符号なし整数リスト。(I,X,Y,Z)が(0,1,2,3)に対応する。
[in]coef係数
Returns
入力として与えたパウリ演算子のリストと添字のリスト、係数から生成されるPauliOperatorのインスタンス

◆ ~PauliOperator()

virtual PauliOperator::~PauliOperator ( )
inlinevirtual

Member Function Documentation

◆ add_single_Pauli()

void PauliOperator::add_single_Pauli ( UINT  qubit_index,
UINT  pauli_type 
)
virtual

指定した添字のqubitに作用するSinglePauliOperatorを自身が保持するリストの末尾に追加する。

Parameters
[in]qubit_index作用するqubitの添字
[in]pauli_typeパウリ演算子。(I,X,Y,Z)が(0,1,2,3)に対応する。

◆ copy()

PauliOperator * PauliOperator::copy ( ) const
virtual

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

Returns
自身のディープコピー

◆ get_coef()

virtual double PauliOperator::get_coef ( ) const
inlinevirtual

自身の係数を返す

Returns
自身の係数

◆ get_expectation_value()

double PauliOperator::get_expectation_value ( const QuantumStateBase state) const
virtual

量子状態に対応するパウリ演算子の期待値を計算する

Parameters
[in]state期待値をとるときの量子状態
Returns
stateに対応する期待値

◆ get_index_list()

std::vector<UINT> PauliOperator::get_index_list ( ) const
inline

自身の保持するパウリ演算子が作用する添字のリストを返す

それぞれの添字に作用する演算子は PauliOperator::get_pauli_id_listで得られる添字のリストの対応する場所から得られる。

Returns
自身の保持するパウリ演算子が作用する添字のリスト。

◆ get_pauli_id_list()

std::vector<UINT> PauliOperator::get_pauli_id_list ( ) const
inline

自身が保持するパウリ演算子を返す。

それぞれが作用するqubitは PauliOperator::get_index_listで得られる添字のリストの対応する場所から得られる。

Returns
自身の保持するパウリ演算子のリスト。(I,X,Y,Z)が(0,1,2,3)に対応する。

◆ get_transition_amplitude()

CPPCTYPE PauliOperator::get_transition_amplitude ( const QuantumStateBase state_bra,
const QuantumStateBase state_ket 
) const
virtual

量子状態に対応するパウリ演算子の遷移振幅を計算する

Parameters
[in]state_bra遷移先の量子状態
[in]state_ket遷移元の量子状態
Returns
state_bra, state_ketに対応する遷移振幅

The documentation for this struct was generated from the following files: