File tree Expand file tree Collapse file tree 2 files changed +13
-12
lines changed
cirq-core/cirq/contrib/quimb Expand file tree Collapse file tree 2 files changed +13
-12
lines changed Original file line number Diff line number Diff line change 206206 "metadata" : {},
207207 "outputs" : [],
208208 "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 " ,
211211 " \n " ,
212212 " compressed_c = cirq.drop_negligible_operations(compressed_c, atol=1e-6)\n " ,
213213 " 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(
8989 )
9090
9191
92+ @cirq ._compat .deprecated_class (deadline = 'v0.16' , fix = "Use cirq.merge_k_qubit_unitaries" )
9293class MergeNQubitGates (cirq .PointOptimizer ):
9394 """Optimizes runs of adjacent unitary n-qubit operations."""
9495
@@ -131,14 +132,14 @@ def simplify_expectation_value_circuit(circuit_sand: cirq.Circuit):
131132 things for you.
132133 """
133134 n_op = sum (1 for _ in circuit_sand .all_operations ())
135+ circuit = circuit_sand .copy ()
134136 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