File tree 2 files changed +13
-12
lines changed
cirq-core/cirq/contrib/quimb
2 files changed +13
-12
lines changed Original file line number Diff line number Diff line change 206
206
"metadata" : {},
207
207
"outputs" : [],
208
208
"source" : [
209
- " ccq.MergeNQubitGates(n_qubits=2).optimize_circuit (compressed_c)\n " ,
210
- " ccq.MergeNQubitGates(n_qubits=1).optimize_circuit (compressed_c)\n " ,
209
+ " compressed_c= cirq.merge_k_qubit_unitaries (compressed_c, k=2 )\n " ,
210
+ " compressed_c = cirq.merge_k_qubit_unitaries (compressed_c, k=1 )\n " ,
211
211
" \n " ,
212
212
" compressed_c = cirq.drop_negligible_operations(compressed_c, atol=1e-6)\n " ,
213
213
" compressed_c = cirq.drop_empty_moments(compressed_c)\n " ,
Original file line number Diff line number Diff line change @@ -89,6 +89,7 @@ def _interaction(
89
89
)
90
90
91
91
92
+ @cirq ._compat .deprecated_class (deadline = 'v0.16' , fix = "Use cirq.merge_k_qubit_unitaries" )
92
93
class MergeNQubitGates (cirq .PointOptimizer ):
93
94
"""Optimizes runs of adjacent unitary n-qubit operations."""
94
95
@@ -131,14 +132,14 @@ def simplify_expectation_value_circuit(circuit_sand: cirq.Circuit):
131
132
things for you.
132
133
"""
133
134
n_op = sum (1 for _ in circuit_sand .all_operations ())
135
+ circuit = circuit_sand .copy ()
134
136
while True :
135
- MergeNQubitGates (n_qubits = 1 ).optimize_circuit (circuit_sand )
136
- circuit_sand = cirq .drop_negligible_operations (circuit_sand , atol = 1e-6 )
137
- MergeNQubitGates (n_qubits = 2 ).optimize_circuit (circuit_sand )
138
- circuit_sand = cirq .drop_empty_moments (circuit_sand )
139
- new_n_op = sum (1 for _ in circuit_sand .all_operations ())
140
-
141
- if new_n_op < n_op :
142
- n_op = new_n_op
143
- else :
144
- return
137
+ circuit = cirq .merge_k_qubit_unitaries (circuit , k = 1 )
138
+ circuit = cirq .drop_negligible_operations (circuit , atol = 1e-6 )
139
+ circuit = cirq .merge_k_qubit_unitaries (circuit , k = 2 )
140
+ circuit = cirq .drop_empty_moments (circuit )
141
+ new_n_op = sum (1 for _ in circuit .all_operations ())
142
+ if new_n_op >= n_op :
143
+ break
144
+ n_op = new_n_op
145
+ circuit_sand ._moments = circuit ._moments
You can’t perform that action at this time.
0 commit comments