Skip to content

Commit caadb0c

Browse files
daxfohlCirqBot
andauthored
Deprectate log_of_measurement_result input (#5100)
Co-authored-by: Cirq Bot <[email protected]>
1 parent 848bfde commit caadb0c

25 files changed

+53
-95
lines changed

cirq-core/cirq/contrib/quimb/mps_simulator_test.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -550,7 +550,9 @@ def test_state_act_on_args_initializer():
550550
s = ccq.mps_simulator.MPSState(
551551
qubits=(cirq.LineQubit(0),),
552552
prng=np.random.RandomState(0),
553-
log_of_measurement_results={'test': [4]},
553+
classical_data=cirq.ClassicalDataDictionaryStore(
554+
_records={cirq.MeasurementKey('test'): [(4,)]}
555+
),
554556
)
555557
assert s.qubits == (cirq.LineQubit(0),)
556558
assert s.log_of_measurement_results == {'test': [4]}
@@ -560,7 +562,6 @@ def test_act_on_gate():
560562
args = ccq.mps_simulator.MPSState(
561563
qubits=cirq.LineQubit.range(3),
562564
prng=np.random.RandomState(0),
563-
log_of_measurement_results={},
564565
)
565566

566567
cirq.act_on(cirq.X, args, [cirq.LineQubit(1)])

cirq-core/cirq/ops/clifford_gate.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -666,9 +666,7 @@ def _generate_clifford_from_known_gate(
666666
) -> 'CliffordGate':
667667
qubits = devices.LineQubit.range(num_qubits)
668668
t = qis.CliffordTableau(num_qubits=num_qubits)
669-
args = sim.ActOnCliffordTableauArgs(
670-
tableau=t, qubits=qubits, prng=np.random.RandomState(), log_of_measurement_results={}
671-
)
669+
args = sim.ActOnCliffordTableauArgs(tableau=t, qubits=qubits)
672670

673671
protocols.act_on(gate, args, qubits, allow_decompose=False)
674672
return CliffordGate.from_clifford_tableau(args.tableau)
@@ -732,7 +730,6 @@ def from_op_list(
732730
tableau=base_tableau,
733731
qubits=qubit_order,
734732
prng=np.random.RandomState(0), # unused
735-
log_of_measurement_results={}, # unused
736733
)
737734
for op in operations:
738735
protocols.act_on(op, args, allow_decompose=True)

cirq-core/cirq/ops/clifford_gate_test.py

+2-9
Original file line numberDiff line numberDiff line change
@@ -796,13 +796,11 @@ def test_clifford_gate_act_on_small_case():
796796
tableau=cirq.CliffordTableau(num_qubits=5),
797797
qubits=qubits,
798798
prng=np.random.RandomState(),
799-
log_of_measurement_results={},
800799
)
801800
expected_args = cirq.ActOnCliffordTableauArgs(
802801
tableau=cirq.CliffordTableau(num_qubits=5),
803802
qubits=qubits,
804803
prng=np.random.RandomState(),
805-
log_of_measurement_results={},
806804
)
807805
cirq.act_on(cirq.H, expected_args, qubits=[qubits[0]], allow_decompose=False)
808806
cirq.act_on(cirq.CliffordGate.H, args, qubits=[qubits[0]], allow_decompose=False)
@@ -833,12 +831,8 @@ def test_clifford_gate_act_on_large_case():
833831
t1 = cirq.CliffordTableau(num_qubits=n)
834832
t2 = cirq.CliffordTableau(num_qubits=n)
835833
qubits = cirq.LineQubit.range(n)
836-
args1 = cirq.ActOnCliffordTableauArgs(
837-
tableau=t1, qubits=qubits, prng=prng, log_of_measurement_results={}
838-
)
839-
args2 = cirq.ActOnCliffordTableauArgs(
840-
tableau=t2, qubits=qubits, prng=prng, log_of_measurement_results={}
841-
)
834+
args1 = cirq.ActOnCliffordTableauArgs(tableau=t1, qubits=qubits, prng=prng)
835+
args2 = cirq.ActOnCliffordTableauArgs(tableau=t2, qubits=qubits, prng=prng)
842836
ops = []
843837
for _ in range(num_ops):
844838
g = prng.randint(len(gate_candidate))
@@ -861,7 +855,6 @@ def test_clifford_gate_act_on_ch_form():
861855
initial_state=cirq.StabilizerStateChForm(num_qubits=2, initial_state=1),
862856
qubits=cirq.LineQubit.range(2),
863857
prng=np.random.RandomState(),
864-
log_of_measurement_results={},
865858
)
866859
cirq.act_on(cirq.CliffordGate.X, args, qubits=cirq.LineQubit.range(1))
867860
np.testing.assert_allclose(args.state.state_vector(), np.array([0, 0, 0, 1]))

cirq-core/cirq/ops/common_channels_test.py

-1
Original file line numberDiff line numberDiff line change
@@ -498,7 +498,6 @@ def test_reset_act_on():
498498
available_buffer=np.empty(shape=(2, 2, 2, 2, 2), dtype=np.complex64),
499499
qubits=cirq.LineQubit.range(5),
500500
prng=np.random.RandomState(),
501-
log_of_measurement_results={},
502501
initial_state=cirq.one_hot(
503502
index=(1, 1, 1, 1, 1), shape=(2, 2, 2, 2, 2), dtype=np.complex64
504503
),

cirq-core/cirq/ops/common_gates_test.py

-8
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,6 @@ def test_x_act_on_tableau():
309309
tableau=original_tableau.copy(),
310310
qubits=cirq.LineQubit.range(5),
311311
prng=np.random.RandomState(),
312-
log_of_measurement_results={},
313312
)
314313

315314
cirq.act_on(cirq.X ** 0.5, args, [cirq.LineQubit(1)], allow_decompose=False)
@@ -359,7 +358,6 @@ def test_y_act_on_tableau():
359358
tableau=original_tableau.copy(),
360359
qubits=cirq.LineQubit.range(5),
361360
prng=np.random.RandomState(),
362-
log_of_measurement_results={},
363361
)
364362

365363
cirq.act_on(cirq.Y ** 0.5, args, [cirq.LineQubit(1)], allow_decompose=False)
@@ -400,7 +398,6 @@ def test_z_h_act_on_tableau():
400398
tableau=original_tableau.copy(),
401399
qubits=cirq.LineQubit.range(5),
402400
prng=np.random.RandomState(),
403-
log_of_measurement_results={},
404401
)
405402

406403
cirq.act_on(cirq.H, args, [cirq.LineQubit(1)], allow_decompose=False)
@@ -451,7 +448,6 @@ def test_cx_act_on_tableau():
451448
tableau=original_tableau.copy(),
452449
qubits=cirq.LineQubit.range(5),
453450
prng=np.random.RandomState(),
454-
log_of_measurement_results={},
455451
)
456452

457453
cirq.act_on(cirq.CX, args, cirq.LineQubit.range(2), allow_decompose=False)
@@ -496,7 +492,6 @@ def test_cz_act_on_tableau():
496492
tableau=original_tableau.copy(),
497493
qubits=cirq.LineQubit.range(5),
498494
prng=np.random.RandomState(),
499-
log_of_measurement_results={},
500495
)
501496

502497
cirq.act_on(cirq.CZ, args, cirq.LineQubit.range(2), allow_decompose=False)
@@ -537,13 +532,11 @@ def test_cz_act_on_equivalent_to_h_cx_h_tableau():
537532
tableau=cirq.CliffordTableau(num_qubits=2),
538533
qubits=cirq.LineQubit.range(2),
539534
prng=np.random.RandomState(),
540-
log_of_measurement_results={},
541535
)
542536
args2 = cirq.ActOnCliffordTableauArgs(
543537
tableau=cirq.CliffordTableau(num_qubits=2),
544538
qubits=cirq.LineQubit.range(2),
545539
prng=np.random.RandomState(),
546-
log_of_measurement_results={},
547540
)
548541
cirq.act_on(cirq.S, args=args1, qubits=[cirq.LineQubit(1)], allow_decompose=False)
549542
cirq.act_on(cirq.S, args=args2, qubits=[cirq.LineQubit(1)], allow_decompose=False)
@@ -605,7 +598,6 @@ def test_act_on_ch_form(input_gate_sequence, outcome):
605598
args = cirq.ActOnStabilizerCHFormArgs(
606599
qubits=cirq.LineQubit.range(2),
607600
prng=np.random.RandomState(),
608-
log_of_measurement_results={},
609601
initial_state=original_state.copy(),
610602
)
611603

cirq-core/cirq/ops/global_phase_op_test.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def test_protocols():
4343
@pytest.mark.parametrize('phase', [1, 1j, -1])
4444
def test_act_on_tableau(phase):
4545
original_tableau = cirq.CliffordTableau(0)
46-
args = cirq.ActOnCliffordTableauArgs(original_tableau.copy(), np.random.RandomState(), {})
46+
args = cirq.ActOnCliffordTableauArgs(original_tableau.copy(), np.random.RandomState())
4747
cirq.act_on(cirq.global_phase_operation(phase), args, allow_decompose=False)
4848
assert args.tableau == original_tableau
4949

@@ -54,7 +54,6 @@ def test_act_on_ch_form(phase):
5454
args = cirq.ActOnStabilizerCHFormArgs(
5555
qubits=[],
5656
prng=np.random.RandomState(),
57-
log_of_measurement_results={},
5857
initial_state=state,
5958
)
6059
cirq.act_on(cirq.global_phase_operation(phase), args, allow_decompose=False)
@@ -309,7 +308,7 @@ def test_gate_protocols():
309308
@pytest.mark.parametrize('phase', [1, 1j, -1])
310309
def test_gate_act_on_tableau(phase):
311310
original_tableau = cirq.CliffordTableau(0)
312-
args = cirq.ActOnCliffordTableauArgs(original_tableau.copy(), np.random.RandomState(), {})
311+
args = cirq.ActOnCliffordTableauArgs(original_tableau.copy(), np.random.RandomState())
313312
cirq.act_on(cirq.GlobalPhaseGate(phase), args, qubits=(), allow_decompose=False)
314313
assert args.tableau == original_tableau
315314

@@ -320,7 +319,6 @@ def test_gate_act_on_ch_form(phase):
320319
args = cirq.ActOnStabilizerCHFormArgs(
321320
qubits=[],
322321
prng=np.random.RandomState(),
323-
log_of_measurement_results={},
324322
initial_state=state,
325323
)
326324
cirq.act_on(cirq.GlobalPhaseGate(phase), args, qubits=(), allow_decompose=False)

cirq-core/cirq/ops/measurement_gate_test.py

-12
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,6 @@ def test_act_on_state_vector():
298298
available_buffer=np.empty(shape=(2, 2, 2, 2, 2)),
299299
qubits=cirq.LineQubit.range(5),
300300
prng=np.random.RandomState(),
301-
log_of_measurement_results={},
302301
initial_state=cirq.one_hot(shape=(2, 2, 2, 2, 2), dtype=np.complex64),
303302
dtype=np.complex64,
304303
)
@@ -309,7 +308,6 @@ def test_act_on_state_vector():
309308
available_buffer=np.empty(shape=(2, 2, 2, 2, 2)),
310309
qubits=cirq.LineQubit.range(5),
311310
prng=np.random.RandomState(),
312-
log_of_measurement_results={},
313311
initial_state=cirq.one_hot(
314312
index=(0, 1, 0, 0, 0), shape=(2, 2, 2, 2, 2), dtype=np.complex64
315313
),
@@ -322,7 +320,6 @@ def test_act_on_state_vector():
322320
available_buffer=np.empty(shape=(2, 2, 2, 2, 2)),
323321
qubits=cirq.LineQubit.range(5),
324322
prng=np.random.RandomState(),
325-
log_of_measurement_results={},
326323
initial_state=cirq.one_hot(
327324
index=(0, 1, 0, 1, 0), shape=(2, 2, 2, 2, 2), dtype=np.complex64
328325
),
@@ -348,7 +345,6 @@ def test_act_on_clifford_tableau():
348345
tableau=cirq.CliffordTableau(num_qubits=5, initial_state=0),
349346
qubits=cirq.LineQubit.range(5),
350347
prng=np.random.RandomState(),
351-
log_of_measurement_results={},
352348
)
353349
cirq.act_on(m, args)
354350
assert args.log_of_measurement_results == {'out': [1, 0]}
@@ -357,7 +353,6 @@ def test_act_on_clifford_tableau():
357353
tableau=cirq.CliffordTableau(num_qubits=5, initial_state=8),
358354
qubits=cirq.LineQubit.range(5),
359355
prng=np.random.RandomState(),
360-
log_of_measurement_results={},
361356
)
362357

363358
cirq.act_on(m, args)
@@ -367,7 +362,6 @@ def test_act_on_clifford_tableau():
367362
tableau=cirq.CliffordTableau(num_qubits=5, initial_state=10),
368363
qubits=cirq.LineQubit.range(5),
369364
prng=np.random.RandomState(),
370-
log_of_measurement_results={},
371365
)
372366
cirq.act_on(m, args)
373367
datastore = cast(cirq.ClassicalDataDictionaryStore, args.classical_data)
@@ -388,7 +382,6 @@ def test_act_on_stabilizer_ch_form():
388382
args = cirq.ActOnStabilizerCHFormArgs(
389383
qubits=cirq.LineQubit.range(5),
390384
prng=np.random.RandomState(),
391-
log_of_measurement_results={},
392385
initial_state=0,
393386
)
394387
cirq.act_on(m, args)
@@ -397,7 +390,6 @@ def test_act_on_stabilizer_ch_form():
397390
args = cirq.ActOnStabilizerCHFormArgs(
398391
qubits=cirq.LineQubit.range(5),
399392
prng=np.random.RandomState(),
400-
log_of_measurement_results={},
401393
initial_state=8,
402394
)
403395

@@ -407,7 +399,6 @@ def test_act_on_stabilizer_ch_form():
407399
args = cirq.ActOnStabilizerCHFormArgs(
408400
qubits=cirq.LineQubit.range(5),
409401
prng=np.random.RandomState(),
410-
log_of_measurement_results={},
411402
initial_state=10,
412403
)
413404
cirq.act_on(m, args)
@@ -428,7 +419,6 @@ def test_act_on_qutrit():
428419
available_buffer=np.empty(shape=(3, 3, 3, 3, 3)),
429420
qubits=cirq.LineQid.range(5, dimension=3),
430421
prng=np.random.RandomState(),
431-
log_of_measurement_results={},
432422
initial_state=cirq.one_hot(
433423
index=(0, 2, 0, 2, 0), shape=(3, 3, 3, 3, 3), dtype=np.complex64
434424
),
@@ -441,7 +431,6 @@ def test_act_on_qutrit():
441431
available_buffer=np.empty(shape=(3, 3, 3, 3, 3)),
442432
qubits=cirq.LineQid.range(5, dimension=3),
443433
prng=np.random.RandomState(),
444-
log_of_measurement_results={},
445434
initial_state=cirq.one_hot(
446435
index=(0, 1, 0, 2, 0), shape=(3, 3, 3, 3, 3), dtype=np.complex64
447436
),
@@ -454,7 +443,6 @@ def test_act_on_qutrit():
454443
available_buffer=np.empty(shape=(3, 3, 3, 3, 3)),
455444
qubits=cirq.LineQid.range(5, dimension=3),
456445
prng=np.random.RandomState(),
457-
log_of_measurement_results={},
458446
initial_state=cirq.one_hot(
459447
index=(0, 2, 0, 1, 0), shape=(3, 3, 3, 3, 3), dtype=np.complex64
460448
),

cirq-core/cirq/sim/act_on_args_container.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
import numpy as np
3232

3333
from cirq import ops, protocols, value
34-
from cirq._compat import deprecated
34+
from cirq._compat import deprecated, deprecated_parameter
3535
from cirq.sim.operation_target import OperationTarget
3636
from cirq.sim.simulator import (
3737
TActOnArgs,
@@ -48,6 +48,12 @@ class ActOnArgsContainer(
4848
):
4949
"""A container for a `Qid`-to-`ActOnArgs` dictionary."""
5050

51+
@deprecated_parameter(
52+
deadline='v0.15',
53+
fix='Use classical_data.',
54+
parameter_desc='log_of_measurement_results and positional arguments',
55+
match=lambda args, kwargs: 'log_of_measurement_results' in kwargs or len(args) > 4,
56+
)
5157
def __init__(
5258
self,
5359
args: Dict[Optional['cirq.Qid'], TActOnArgs],

cirq-core/cirq/sim/act_on_args_container_test.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,16 @@
1111
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
14-
from typing import Any, Dict, List, Optional, Sequence, Union
14+
from typing import Dict, List, Optional, Sequence, Union
1515

1616
import cirq
1717

1818

1919
class EmptyActOnArgs(cirq.ActOnArgs):
20-
def __init__(self, qubits, logs):
20+
def __init__(self, qubits, classical_data):
2121
super().__init__(
2222
qubits=qubits,
23-
log_of_measurement_results=logs,
23+
classical_data=classical_data,
2424
)
2525

2626
def _perform_measurement(self, qubits: Sequence[cirq.Qid]) -> List[int]:
@@ -30,7 +30,7 @@ def copy(self) -> 'EmptyActOnArgs': # type: ignore
3030
"""The deep_copy_buffers parameter is omitted to trigger a deprecation warning test."""
3131
return EmptyActOnArgs(
3232
qubits=self.qubits,
33-
logs=self.log_of_measurement_results.copy(),
33+
classical_data=self.classical_data.copy(),
3434
)
3535

3636
def _act_on_fallback_(
@@ -70,7 +70,7 @@ def create_container(
7070
split_untangled_states=True,
7171
) -> cirq.ActOnArgsContainer[EmptyActOnArgs]:
7272
args_map: Dict[Optional['cirq.Qid'], EmptyActOnArgs] = {}
73-
log: Dict[str, Any] = {}
73+
log = cirq.ClassicalDataDictionaryStore()
7474
if split_untangled_states:
7575
for q in reversed(qubits):
7676
args_map[q] = EmptyActOnArgs([q], log)
@@ -80,7 +80,7 @@ def create_container(
8080
for q in qubits:
8181
args_map[q] = args
8282
args_map[None] = args if not split_untangled_states else EmptyActOnArgs((), log)
83-
return cirq.ActOnArgsContainer(args_map, qubits, split_untangled_states, log)
83+
return cirq.ActOnArgsContainer(args_map, qubits, split_untangled_states, classical_data=log)
8484

8585

8686
def test_entanglement_causes_join():

cirq-core/cirq/sim/act_on_density_matrix_args.py

+6
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,12 @@ class ActOnDensityMatrixArgs(ActOnArgs):
3333
storing the density matrix of the quantum system with one axis per qubit.
3434
"""
3535

36+
@_compat.deprecated_parameter(
37+
deadline='v0.15',
38+
fix='Use classical_data.',
39+
parameter_desc='log_of_measurement_results and positional arguments',
40+
match=lambda args, kwargs: 'log_of_measurement_results' in kwargs or len(args) > 5,
41+
)
3642
@_compat.deprecated_parameter(
3743
deadline='v0.15',
3844
fix='Use cirq.dephase_measurements to transform the circuit before simulating.',

cirq-core/cirq/sim/act_on_density_matrix_args_test.py

-2
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ def _decompose_(self, qubits):
7373
args = cirq.ActOnDensityMatrixArgs(
7474
qubits=cirq.LineQubit.range(1),
7575
prng=np.random.RandomState(),
76-
log_of_measurement_results={},
7776
initial_state=0,
7877
dtype=np.complex64,
7978
)
@@ -91,7 +90,6 @@ class NoDetails:
9190
args = cirq.ActOnDensityMatrixArgs(
9291
qubits=cirq.LineQubit.range(1),
9392
prng=np.random.RandomState(),
94-
log_of_measurement_results={},
9593
initial_state=0,
9694
dtype=np.complex64,
9795
)

cirq-core/cirq/sim/act_on_state_vector_args.py

+6
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,12 @@ class ActOnStateVectorArgs(ActOnArgs):
3737
then pass `available_buffer` into `swap_target_tensor_for`.
3838
"""
3939

40+
@_compat.deprecated_parameter(
41+
deadline='v0.15',
42+
fix='Use classical_data.',
43+
parameter_desc='log_of_measurement_results and positional arguments',
44+
match=lambda args, kwargs: 'log_of_measurement_results' in kwargs or len(args) > 4,
45+
)
4046
@_compat.deprecated_parameter(
4147
deadline='v0.15',
4248
fix='Use initial_state instead and specify all the arguments with keywords.',

0 commit comments

Comments
 (0)