Class QubitTable

Class Documentation

class QubitTable

量子ビットの順序を管理するためのクラス

Public Functions

explicit QubitTable(UINT qubit_count)

コンストラクタ

パラメータ:

qubit_count -- [in] 量子ビットの数

QubitTable(const QubitTable &qt)

コンストラクタ

パラメータ:

qt -- [in] 量子ビットテーブル

void rewrite_gate_qubit_indexes(QuantumGateBase *g) const

量子ゲートの量子ビットの添え字を書き換える

パラメータ:

g -- [inout] 書き換える量子ゲート

UINT add_swap_gate(QuantumCircuit *circuit, UINT idx0, UINT idx1, UINT width)

量子回路にSWAP/FusedSWAPゲートを追加し、量子ビットテーブルを更新する

パラメータ:
  • circuit -- [inout] ゲートを追加する量子回路

  • idx0 -- [in] 交換する量子ビットの物理開始添え字

  • idx1 -- [in] 交換する量子ビットの物理開始添え字

  • width -- [in] 交換する量子ビットの幅

戻り値:

追加した量子ゲート数

UINT add_swap_gate(QuantumCircuit *circuit, UINT idx0, UINT idx1, UINT width, UINT gate_pos)

量子回路にSWAP/FusedSWAPゲートを追加し、量子ビットテーブルを更新する

パラメータ:
  • circuit -- [inout] ゲートを追加する量子回路

  • idx0 -- [in] 交換する量子ビットの物理開始添え字

  • idx1 -- [in] 交換する量子ビットの物理開始添え字

  • width -- [in] 交換する量子ビットの幅

  • gate_pos -- [in] ゲートを追加する位置

戻り値:

追加した量子ゲート数

Public Members

const std::vector<UINT> &p2l

論理添え字への変換テーブル

const std::vector<UINT> &l2p

物理添え字への変換テーブル

Friends

inline friend std::ostream &operator<<(std::ostream &os, const QubitTable &qt)

量子ビットテーブルを出力する

戻り値:

受け取ったストリーム