Class ParametricQuantumCircuit¶
Defined in File parametric_circuit.hpp
Inheritance Relationships¶
Base Type¶
public QuantumCircuit
(Class QuantumCircuit)
Class Documentation¶
-
class ParametricQuantumCircuit : public QuantumCircuit¶
Public Functions
-
ParametricQuantumCircuit(UINT qubit_count)¶
-
ParametricQuantumCircuit *copy() const¶
-
virtual void add_parametric_gate(QuantumGate_SingleParameter *gate)¶
-
virtual void add_parametric_gate(QuantumGate_SingleParameter *gate, UINT index)¶
-
virtual void add_parametric_gate_copy(QuantumGate_SingleParameter *gate)¶
-
virtual void add_parametric_gate_copy(QuantumGate_SingleParameter *gate, UINT index)¶
-
virtual UINT get_parameter_count() const¶
-
virtual double get_parameter(UINT index) const¶
-
virtual void set_parameter(UINT index, double value)¶
-
virtual UINT get_parametric_gate_position(UINT index) const¶
-
virtual void add_gate(QuantumGateBase *gate) override¶
量子ゲートを回路の末尾に追加する
量子ゲートを回路に追加する。 追加した量子ゲートは量子回路の解放時に開放される。
- パラメータ
gate -- [in] 追加する量子ゲート
-
virtual void add_gate(QuantumGateBase *gate, UINT index) override¶
量子ゲートを回路の指定位置に追加する。
量子ゲートを回路の指定した位置に追加する。 追加した量子ゲートは量子回路の解放時に開放される。
- パラメータ
gate -- [in] 追加する量子ゲート
index -- [in] 追加する位置
-
virtual void add_gate_copy(const QuantumGateBase *gate) override¶
量子ゲートを回路の末尾に追加する
与えられた量子ゲートのコピーを回路に追加する。 add_gateに比べコピーが発生する分低速な一方、引数で与えたゲートを再利用できる。
- パラメータ
gate -- [in] 追加する量子ゲート
-
virtual void add_gate_copy(const QuantumGateBase *gate, UINT index) override¶
量子ゲートを回路の指定位置に追加する。
与えらた量子ゲートを回路の指定した位置に追加する。
- パラメータ
gate -- [in] 追加する量子ゲート
index -- [in] 追加する位置
-
virtual void remove_gate(UINT index) override¶
量子回路からゲートを削除する。
削除した量子ゲートは解放される。
- パラメータ
index -- [in] 削除するゲートの位置
-
virtual void merge_circuit(const ParametricQuantumCircuit *circuit)¶
量子回路をマージする。
引数で与えた量子回路のゲートを後ろに追加していく。 マージされた側の量子回路に変更を加えてもマージした側の量子回路には変更は加わらないことに注意する。 パラメータゲートに対応するため、ParametricQuantumCircuit にも merge_circuit() を追加する circuit1.add_circuit(circuit2) circuit2.add_gate(gate) # これをしても、circuit1にgateは追加されない
- パラメータ
circuit -- [in] マージする量子回路
-
virtual std::string to_string() const override¶
量子回路のデバッグ情報の文字列を生成する
- 戻り値
生成した文字列
-
virtual void add_parametric_RX_gate(UINT target_index, double initial_angle)¶
-
virtual void add_parametric_RY_gate(UINT target_index, double initial_angle)¶
-
virtual void add_parametric_RZ_gate(UINT target_index, double initial_angle)¶
-
virtual void add_parametric_multi_Pauli_rotation_gate(std::vector<UINT> target, std::vector<UINT> pauli_id, double initial_angle)¶
-
virtual std::vector<double> backprop(GeneralQuantumOperator *obs)¶
-
virtual std::vector<double> backprop_inner_product(QuantumState *bistate)¶
Friends
-
friend std::ostream &operator<<(std::ostream &os, const ParametricQuantumCircuit&)¶
-
friend std::ostream &operator<<(std::ostream &os, const ParametricQuantumCircuit *circuit)¶
-
ParametricQuantumCircuit(UINT qubit_count)¶