@@ -215,23 +215,28 @@ end
215215# return backtrajectory(circuit0, nqubits(state))
216216# end
217217
218- function backtrajectory (circuit:: Vector{<:AbstractOperation} )
219- n = 0
220- for op in circuit
221- if op isa AbstractSingleQubitOperator
222- n = max (n, op. q)
223- elseif op isa AbstractTwoQubitOperator
224- n = max (n, op. q1, op. q2)
225- elseif op isa AbstractMeasurement
226- n = max (n, op. qubit)
227- elseif op isa AbstractReset
228- n = max (n, op. qubit)
229- elseif typeof (op) in [sMRX, sMRY, sMRZ]
230- n = max (n, op. qubit)
231- else
232- error (" Unsupported operation: $(typeof (op)) " )
233- end
234- end
218+ # function backtrajectory(circuit::Vector{<:AbstractOperation})
219+ # n = 0
220+ # for op in circuit
221+ # if op isa AbstractSingleQubitOperator
222+ # n = max(n, op.q)
223+ # elseif op isa AbstractTwoQubitOperator
224+ # n = max(n, op.q1, op.q2)
225+ # elseif op isa AbstractMeasurement
226+ # n = max(n, op.qubit)
227+ # elseif op isa AbstractReset
228+ # n = max(n, op.qubit)
229+ # elseif typeof(op) in [sMRX, sMRY, sMRZ]
230+ # n = max(n, op.qubit)
231+ # else
232+ # error("Unsupported operation: $(typeof(op))")
233+ # end
234+ # end
235+
236+ # return backtrajectory(circuit, n)
237+ # end
235238
239+ function backtrajectory (circuit:: Vector{<:AbstractOperation} )
240+ n = maximum (Iterators. flatten (affectedqubits .(circuit)))
236241 return backtrajectory (circuit, n)
237242end
0 commit comments