From f8183275695164f9f4da4085637cdec8692ec896 Mon Sep 17 00:00:00 2001 From: gandalfr-KY Date: Mon, 9 Sep 2024 14:06:13 +0000 Subject: [PATCH] fix output of pauli --- scaluq/gate/gate_pauli.hpp | 14 ++++++++++++-- scaluq/gate/param_gate_pauli.hpp | 7 ++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/scaluq/gate/gate_pauli.hpp b/scaluq/gate/gate_pauli.hpp index d861ac24..3b9c7d94 100644 --- a/scaluq/gate/gate_pauli.hpp +++ b/scaluq/gate/gate_pauli.hpp @@ -29,8 +29,13 @@ class PauliGateImpl : public GateBase { std::string to_string(const std::string& indent) const override { std::ostringstream ss; + auto controls = control_qubit_list(); ss << indent << "Gate Type: Pauli\n"; - ss << _pauli.get_pauli_string(); + ss << indent << " Control Qubits: {"; + for (std::uint32_t i = 0; i < controls.size(); ++i) + ss << controls[i] << (i == controls.size() - 1 ? "" : ", "); + ss << "}\n"; + ss << indent << " Pauli Operator: \"" << _pauli.get_pauli_string() << "\""; return ss.str(); } }; @@ -70,9 +75,14 @@ class PauliRotationGateImpl : public GateBase { std::string to_string(const std::string& indent) const override { std::ostringstream ss; + auto controls = control_qubit_list(); ss << indent << "Gate Type: PauliRotation\n"; ss << indent << " Angle: " << _angle << "\n"; - ss << _pauli.get_pauli_string(); + ss << indent << " Control Qubits: {"; + for (std::uint32_t i = 0; i < controls.size(); ++i) + ss << controls[i] << (i == controls.size() - 1 ? "" : ", "); + ss << "}\n"; + ss << indent << " Pauli Operator: \"" << _pauli.get_pauli_string() << "\""; return ss.str(); } }; diff --git a/scaluq/gate/param_gate_pauli.hpp b/scaluq/gate/param_gate_pauli.hpp index 03202a57..985378d1 100644 --- a/scaluq/gate/param_gate_pauli.hpp +++ b/scaluq/gate/param_gate_pauli.hpp @@ -47,8 +47,13 @@ class ParamPauliRotationGateImpl : public ParamGateBase { std::string to_string(const std::string& indent) const override { std::ostringstream ss; + auto controls = control_qubit_list(); ss << indent << "Gate Type: ParamPauliRotation\n"; - ss << _pauli.get_pauli_string(); + ss << indent << " Control Qubits: {"; + for (std::uint32_t i = 0; i < controls.size(); ++i) + ss << controls[i] << (i == controls.size() - 1 ? "" : ", "); + ss << "}\n"; + ss << indent << " Pauli Operator: \"" << _pauli.get_pauli_string() << "\""; return ss.str(); } };