1- # quantum_sim/backends/numpy_backend.py
2-
31import numpy as np
42from typing import Dict , List , Optional , Any
53
64from quantum_sim .backends .backend import QuantumBackend
7- # Note: Ensure GateOperation is defined/exported in quantum_sim.core.circuit
85from quantum_sim .core .circuit import QuantumCircuit , GateOperation
96from quantum_sim .core .noise import NoiseChannel , ThermalRelaxationChannel
107
@@ -56,7 +53,7 @@ def run_circuit(self, circuit: QuantumCircuit) -> np.ndarray:
5653 qubit_last_op_time : Dict [int , float ] = {q_id : 0.0 for q_id in range (circuit .num_qubits )}
5754 current_rho_tensor = self ._create_initial_density_matrix (circuit .num_qubits )
5855 qubit_map = {q_id : q_id for q_id in range (circuit .num_qubits )}
59-
56+
6057 for component in getattr (circuit , "_components" , []):
6158 gate_duration = 0.0
6259 if isinstance (component , GateOperation ):
@@ -81,7 +78,8 @@ def run_circuit(self, circuit: QuantumCircuit) -> np.ndarray:
8178 current_rho_tensor = component .apply_to_density_matrix (current_rho_tensor , circuit .num_qubits , qubit_map )
8279
8380 # --- Apply PER-GATE Noise ---
84- affected_qubits = [qubit_map [local_id ] for local_id in component .get_involved_qubit_local_ids ()]
81+ local_ids = component .get_involved_qubit_local_ids ()
82+ affected_qubits = [qubit_map [local_id ] for local_id in local_ids ]
8583 for q_global_id in affected_qubits :
8684 if q_global_id in self .per_qubit_noise_channels :
8785 for noise_channel in self .per_qubit_noise_channels [q_global_id ]:
0 commit comments