@@ -304,17 +304,22 @@ ClassicalDecision(t::Integer, c::Integer) = ClassicalDecision("\\;\\;", [t], [c]
304304ClassicalDecision (t:: ArrayOrRange , c:: Integer ) = ClassicalDecision (" \\ ;\\ ;" , t, [c])
305305ClassicalDecision (t:: Integer , c:: ArrayOrRange ) = ClassicalDecision (" \\ ;\\ ;" , [t], c)
306306ClassicalDecision (t:: ArrayOrRange , c:: ArrayOrRange ) = ClassicalDecision (" \\ ;\\ ;" , t, c)
307+ ClassicalDecision (c:: ArrayOrRange ) = ClassicalDecision (" " , [], c)
307308
308309affectedqubits (g:: ClassicalDecision ) = g. targets
309310affectedbits (g:: ClassicalDecision ) = g. bits
310311function update_table! (qtable,step,g:: ClassicalDecision )
311312 qvtable = qubitsview (qtable)
312313 bvtable = bitsview (qtable)
313- m, M = explicit_extrema (qvtable, g. targets)
314- draw_rectangle! (qvtable,step,g. targets,g. str)
315314 bits = explicit_targets (bvtable, g. bits)
316315 startpoint = minimum (bits)
317- bvtable[startpoint,step] = " \\ cwbend{$(- (qtable. qubits- M)- qtable. ancillaries- startpoint) }"
316+ if ! isa (g. targets,AbstractVector) || length (g. targets)> 0
317+ m, M = explicit_extrema (qvtable, g. targets)
318+ draw_rectangle! (qvtable,step,g. targets,g. str)
319+ bvtable[startpoint,step] = " \\ cwbend{$(- (qtable. qubits- M)- qtable. ancillaries- startpoint) }"
320+ else
321+ bvtable[startpoint,step] = " \\ cwbend{0}"
322+ end
318323 for b in sort (bits)[2 : end ]
319324 bvtable[b,step] = " \\ cwbend{$(startpoint- b) }"
320325 startpoint = b
@@ -410,7 +415,11 @@ function circuit2table_compressed(circuit, qubits)
410415 for op in circuit
411416 qubits = extrema2range (explicit_extrema (qvtable, affectedqubits (op)))
412417 if circuitwidthbits (op)!= 0 || neededancillaries (op)!= 0
413- qubits = minimum (qubits): iend
418+ qubits = if length (qubits)== 0
419+ ibegin: iend # TODO this branch is too pessimistic
420+ else
421+ minimum (qubits): iend
422+ end
414423 end
415424 bits = extrema2range (explicit_extrema (bvtable, affectedbits (op)))
416425 ancillaries = neededancillaries (op)
0 commit comments