Cirq v0.14.0
Cirq v0.14.0 release
Highlights
Transformers
Revamped and deprecated many of the old and buggy optimizers found in cirq.optimizers
with new cirq.transformer
implementations. New transformers have well defined functionality with CircuitOperations and should be easier to use overall.
Classical Control
Cirq now has support for classical control in NiSQ relevant regimes. Classically controlled operations and measurement feedforward operations are supported. Extension into arbitrary classical logic on top of this is not on the immediate roadmap.
Devices
Devices have undergone a rework. Functionality to: attach a device to a circuit, use a device as a means to decompose a circuit, and exploration related functions have been removed. Devices now validate circuits and carry a DeviceMetaData
property if more description of the device is needed.
Misc
In addition to the larger changes mentioned above, this release also includes new experiment utilities for characterizing device readout errors with cirq.measure_confusion_matrix
. The cirq.decompose
function contract has now been tightened to return a circuit containing just X,Y,Z,C*Z gates (assuming a decomposition is possible). Repeated measurement keys will now store temporal measurements (where previously they would be disallowed). New simulation techniques based on (https://arxiv.org/abs/2112.08499) and more.
Breaking changes
c20c99b Add cirq.eject_phased_paulis
transformer to replace cirq.EjectPhasedPaulis
(#4958)
bfa2602 Make PauliMeasurementGate
respect sign of the pauli observable. (#4836)
89f88b0 Remove use of .device
in contrib. (#4821)
b0519b3 Convert cirq.Result to ABC and add ResultDict implementation (#4806)
6937e41 Add ClassicalDataStore class to keep track of qubits measured (#4781)
1d8d2f3 Implement PauliStringPhasorGate (#4696)
4985a51 Remove EngineTimeSlot (#4608)
Changes to top level objects
cirq-core
New top level objects
DeviceMetadata
GridDeviceMetadata
NoiseModelFromNoiseProperties
NoiseProperties
OpIdentifier
SuperconductingQubitsNoiseProperties
TensoredConfusionMatrices
measure_confusion_matrix
density_matrix_kronecker_product
state_vector_kronecker_product
BooleanHamiltonianGate
ClassicallyControlledOperation
CliffordGate
GlobalPhaseGate
global_phase_operation
PauliStringPhasorGate
SynchronizeTerminalMeasurements
New or renamed top level objects from cirq.transformers
align_left
align_right
CompilationTargetGateset
CZTargetGateset
compute_cphase_exponents_for_fsim_decomposition
decompose_clifford_tableau_to_operations
decompose_cphase_into_two_fsim
decompose_multi_controlled_x
decompose_multi_controlled_rotation
decompose_two_qubit_interaction_into_four_fsim_gates
defer_measurements
dephase_measurements
drop_empty_moments
drop_negligible_operations
eject_phased_paulis
eject_z
expand_composite
is_negligible_turn
map_moments
map_operations
map_operations_and_unroll
merge_k_qubit_unitaries
merge_k_qubit_unitaries_to_circuit_op
merge_moments
merge_operations
merge_operations_to_circuit_op
merge_single_qubit_gates_to_phased_x_and_z
merge_single_qubit_gates_to_phxz
merge_single_qubit_moments_to_phxz
optimize_for_target_gateset
parameterized_2q_op_to_sqrt_iswap_operations
prepare_two_qubit_state_using_cz
prepare_two_qubit_state_using_sqrt_iswap
SqrtIswapTargetGateset
TRANSFORMER
TransformerContext
TransformerLogger
three_qubit_matrix_to_operations
transformer
two_qubit_matrix_to_cz_operations
two_qubit_matrix_to_diagonal_and_cz_operations
two_qubit_matrix_to_operations
two_qubit_gate_product_tabulation
TwoQubitCompilationTargetGateset
TwoQubitGateTabulation
TwoQubitGateTabulationResult
toggle_tags
unroll_circuit_op
unroll_circuit_op_greedy_earliest
unroll_circuit_op_greedy_frontier
StabilizerState
ActOnStabilizerArgs
SimulationTrialResultBase
ResultDict
ClassicalDataDictionaryStore
ClassicalDataStore
ClassicalDataStoreReader
Condition
KeyCondition
MeasurementType
SympyCondition
cirq_type_from_json
control_keys
HasJSONNamespace
json_cirq_type
json_namespace
LabelEntity
measurement_keys_touched
SupportsControlKey
with_key_path_prefix
with_rescoped_keys
Pre-existing optimizers with the same names as the given transformers have also been deprecated in favor of these newer implementations.
Objects or parameters that are marked as deprecated and will be removed in coming releases (too long to list all individual deprecations)
- Attaching devices to circuits via
Circuit(...)
orcircuit.with_device
. device.{qubit_set, decompose_operation, qid_pairs, can_add_operation_into_moment}
SymmetricalQidPair
- The above changes impact all vendor packages as well as contrib.
- All old optimizer implementations have been replaced/updated with new transformer implementations.
ActOnDensityMatrixArgs
(multiple parameters)ActOnStateVectorArgs
(multiple parameters)ActOnStabilizerCHFormArgs
(multiple parameters)
cirq-google
New top level objects
ValidatingSampler
FSimGateFamily
known_2q_op_to_sycamore_operations
two_qubit_matrix_to_sycamore_operations
SycamoreTargetGateset
CIRCUIT_SERIALIZER
ExecutableGroupResultFilesystemRecord
execute
QubitPlacer
CouldNotPlaceError
NaiveQubitPlacer
RandomDevicePlacer
ProcessorRecord
EngineProcessorRecord
SimulatedProcessorRecord
SimulatedProcessorWithLocalDeviceRecord
Objects or parameters that are marked as deprecated and will be removed in coming releases
Bristlecone
Foxtail
XmonDevice
EngineProcessor.list_calibrations
(latest_timestamp_seconds
->latest_timestamp
)EngineProcessor.list_calibrations
(earliest_timestamp_seconds
->earliest_timestamp
)Engine.sampler
(useget_sampler
instead)optimized_for_sycamore
(new_device is going away)optimized_for_xmon
(new_device is going away)ConvertToSycamoreGates
(use cirq.optimize_for_target_gateset instead)ConvertToSqrtIswapGates
(use cirq.optimize_for_target_gateset instead)TwoQubitGateCompilation
(moved tocirq.TwoQubitGateTabulationResult
)GateTabulation
(moved tocirq.TwoQubitGateTabulation
)gate_product_tabulation
(moved tocirq.two_qubit_gate_product_tabulation
)SerializableDevice.qubit_set
(use device.metadata property where applicable)deserialize
(removed support for device attachment to circuit)
A Huge Thank You
Thank you to all our contributors for this release:
Abraham Asfaw, Adam Zalcman, Aleksandr Pak, Alex McNamara, Animesh Sinha, Anna Nachesa, Antoine (Tony) Bruguier, augustehirth, Bicheng Ying, Cheng Xing, Dave Bacon, Dax Fohl, dependabot[bot], Doug Strain, Evan Peters, Freyam Mehta, Hosseinberg, Ilja Livenson, Jintao YU, Jon Donovan, Matthew Harrigan, Matthew Neeley, Michael A. Perlin, Michael Broughton, Nathanael Thompson, Orion Martin, Pavol Juhas, Tanuj Khattar, Victory Omole, Zachary Crockett
Full change list
33580bb Rename TestDevice -> FakeDevice to avoid pytest confusion (#5066)
45624ff Add support for deep=True flag in cg.optimized_for_sycamore
and cg.SycamoreTargetGateset
transformers (#5126)
cdd3f8c DeviceSpecification proto updates (#5056)
091582e Bugfix in handling of deep=True flag in cirq.merge_k_qubit_unitaries
transformer (#5125)
89e7210 Add support for deep=True to cirq.optimize_for_target_gateset
transformer (#5124)
518d828 Add support for deep=True to merge_single_qubit_gates* transformers (#5123)
92d19f6 Add support for deep=True to cirq.merge_k_qubit_unitaries transformer (#5122)
64a6723 Add support for deep=True to cirq.eject_z
transformer (#5115)
04d58c4 Add support for deep=True to cirq.align_left
and cirq.align_right
transformers (#5112)
ca4bb72 Add support for deep=True to cirq.eject_phased_paulis
transformer (#5116)
d2f284d Add support for deep=True to cirq.expand_composite
transformer (#5119)
b45e63d Add support for deep=True to cirq.synchronize_terminal_measurements
transformer (#5118)
155f607 Add support for deep=True to cirq.stratified_circuit
transformer (#5117)
869d83b Add support for deep=True to cirq.drop_negligible_operations
transformer (#5114)
fade070 Add support for deep=True to cirq.drop_empty_moments
transformer (#5113)
cfa255a Add add_deep_support
flag to @cirq.transformer
decorator (#5108)
aed4eb8 Bugfixes in handling nested tags_to_ignore + deep=True in cirq.map_moments
and cirq.map_operations
transformer primitives (#5109)
e0a64dd Extract BufferedDM/SV/MPS from ActOnDM/SV/MPSArgs (#4979)
d3c4853 Add assert_decompose_ends_at_default_gateset
to consistent protocols test to ensure all cirq gates decompose to default gateset (#5107)
6af5387 Add support for deep=True flag to remaining transformer primitives (#5106)
2693951 Improve support for recursively applying transformer primitives on circuit operations using deep=True
(#5103)
caadb0c Deprectate log_of_measurement_result input (#5100)
848bfde Add default decomposition for cirq.QubitPermutationGate in terms of adjacent swaps (#5093)
e0f7432 Deprecate cirq_google.ConvertToXmonGates
and replace with cirq.CZTargetGateset
+ cirq.optimize_for_target_gateset
(#5096)
a7df579 Replace _PhasedFSimConverter in cirq_google with new transformer primitives (#5095)
1f47082 Extend default decomposition of cirq.ControlledGate
and cirq.ControlledOperation
to end in X/Y/Z/CZ target gateset (#5091)
90e70c6 Order of keys shouldn't matter when comparing cirq.google.KeyValueExecutableSpec (#5073)
b2d8dd9 Add to_dict() to KeyValueExecutableSpec (#5072)
c153664 Serialize QubitPermutationGate. (#5092)
66dd508 Add support for decompositions of parameterized cirq.CCZPowGate
(#5087)
ded5d17 Adds default decompositions for cirq.MatrixGate
into X/Y/Z/CZ target gateset. (#5088)
098617c Add support for decompositions of parameterized cirq.DiagonalGate
(#5085)
2fb5651 Add default decomposition for cirq.TwoQubitDiagonalGate (#5084)
28f90b0 Support decomposition of parameterized gates in cirq.PhasedXPowGate (#5083)
765ccfe Add assert_decompose_ends_at_default_gateset consistency test (#5079)
083d2e5 Remove reference to deprecated readthedocs documentation in Contribute page (#4988)
701f62c Add return type annotation on MeasurementGate.full_invert_mask (#5080)
fa473b4 Allow repetitions to be parameterized (#5043)
7a5c20e Allow partial state vector function to handle qudits (#5077)
9ae8f1e Add SuperconductingQubitsNoiseProperties (#4964)
889e5d2 Add cg.SycamoreTargetGateset
and deprecate cg.ConvertToSycamoreGates
(#5054)
c76bbc7 Fix state vector factorization validation (#5076)
bfc04b8 Remove public fields from fsim (#5075)
d8652be Remove public fields for pauli ops (#5062)
27f92ae Wrap private fields for DensePauliString (#5064)
097544e Remove public fields from subop gates and ops (#5074)
120f296 Remove public fields for measurement and controlled ops (#5061)
013498f Rename two_qubit_matrix related functions (#5070)
2792f38 Call decompose_once in TaggedOperation (#5071)
d967317 Update getting started notebook (#5046)
785c5c1 Change ValueError to assertion in clifford_optimize (#5060)
9cefed8 [cg.workflow] Consistent get_sampler()
(#5030)
3cdf896 Pin sympy version to <1.10 (#5059)
557cdec Adjust runtime estimator for high numbers of qubits (#5049)
cff7a8e Add type annotations to method overrides in child classes (#5051)
d89baa3 Add some types to equals_tester.py
(#5053)
4ddcd5f Refactors convert_to_sycamore_gates
to abstract out analytical decomposition methods in cirq_google.two_qubit_to_sycamore
(#5044)
3c1c802 Add repeat-until functionality to subcircuits (#5018)
d90b09c Move serialize_program and serialize_run_context into EngineContext (#5034)
d5be95f Recursive subop parameter resolution (#5033)
5ff22ce Add functools.cached_property
backport (#5031)
d2ae1e4 BooleanHamiltonianGate implementation (#4705)
8d65806 Update Sampler.run_async signature to match Sampler.run (#5036)
8bc6915 Fix subcircuits with zero reps (#5038)
305cc7d Deprecate cirq.ConvertToSqrtIswapGates and cirq.MergeInteractionsToSqrtIswap (#5040)
6c45d9c Add cirq.SqrtIswapTargetGateset
for (parameterized & non-parameterized) compilation to sqrt iswaps. (#5025)
47098b6 Use f-strings consistently in engine_client.py helpers (#5037)
d696635 Add show_error_codes option to mypy config (#5032)
853dde3 Fix run_batch results format for SimulatedLocalProcessor (#5026)
a9e6e4e Update quantum_run_stream to not prefetch first result (#5024)
741e93c Deprecate ignore_measurement_results (#4978)
452dbea Add missing Arg in SimulatedLocalProcessor (#5027)
2d6c8bd Fail fast on measurements in has_unitary (#5020)
43b37fa Add better repr for EngineProcessor (#5022)
387187d Add cirq.CZTargetGateset
to replace cirq.ConvertToCZAndSingleGates
and cirq.MergeInteractions
(#5007)
afb62da Use parallel pytest in the CI checks (#5006)
6f9e277 [cg.workflow] Update str(ProcessorRecord) (#5012)
43527c8 Permit 2D _run output for backwards compatibility. (#5014)
d3d44cb Serialize results with repeated measurements (#5019)
32f319d Sets tolerance to 1.0e-8 by default in equivalence assertion (#5017)
bded331 Allow flattening of subcircuits (#4997)
ddefd84 BugFix in cirq.merge_moments
to correctly handle new empty moments. (#5013)
3177647 Reject multiplication of cirq.PauliSum
inside in cirq.PauliString
(#5010)
ca4c8e7 Replace fields with properties in ActOnArgs (#5011)
1bbbc9f Multiple Qubits Clifford Gate (#4791)
59b72a1 Add cirq.convert_to_target_gateset
transformer and cirq.CompilationTargetGateset
interface (#5005)
3517306 Add isolated qubit functionality for gridmetadata. (#5001)
6c2b376 Update bell_inequality.py (#4998)
a2f04f1 Add caching to CI. (#4999)
a016e52 Add clean_operations
flag to cirq.two_qubit_matrix_to_sqrt_iswap_operations
(#5002)
7c5ad61 Add cirq.merge_k_qubit_unitaries
transformer to replace cirq.MergeSingleQubitGates
optimizer (#4986)
0225963 Deprecate qubit_set in cirq-core/devices (#4965)
43955b3 Allow repeated measurement keys (#4899)
72f9a5b Use CIRCUIT_SERIALIZER as default serializer for quantum engine (#4983)
3c89de1 Use google.auth.default() in cirq_google.get_engine (#4985)
7e78526 Bump follow-redirects from 1.14.7 to 1.14.8 in /cirq-web/cirq_ts (#4993)
dd55a86 Support repeated measurement keys in cirq.Result (#4555)
872b22a Update documentation development instructions and codeowners (#4990)
580575c In QCS getting started, only install cirq-google (#4991)
87d3632 Make circuit._prev_moment_available
a public method. (#4980)
6dc316d Add Cirq 1.0 tab to TP. (#4984)
7895028 Replace AbstractEngineProcessorShim (#4842)
aad6c57 Add transformer primitive to merge connected component of operations in a circuit op (#4974)
9ab327a Add cirq.toggle_tags
helper to apply transformers on specific subsets of operations in a circuit (#4973)
4dc6e25 Rewrite cirq.stratified_circuit
following new Transformer API and primitives. (#4944)
169db48 Refactor virtual_engine_factory (#4909)
0bdc9f1 Deferred measurements transformer (#4849)
aed1964 Minor formatting fixes (#4971)
92032c1 Revert "Change TaggedOperation
's __pow__
from returning Operation
to returning TaggedOperation
" (#4966)
aadc56d Deperecate {ion,neutral_atom}.qubit_set. (#4943)
eb15907 Deprecate device.qubit_set in cirq_ionq. (#4942)
c3b1b22 Deprecate device.qubit_set in cirq_google. (#4940)
5eae221 DeviceMetadata docs update. (#4963)
c20c99b Add cirq.eject_phased_paulis
transformer to replace cirq.EjectPhasedPaulis
(#4958)
2d2226a Refactor [NoiseModelFrom]NoiseProperties (#4866)
5196dff Remove ch-form cyclical dependencies (#4948)
6937e41 Add ClassicalDataStore class to keep track of qubits measured (#4781)
467c68d Move default implementation of Result.data into base class (#4949)
41312e8 Add cirq.eject_z
transformer to replace cirq.EjectZ
(#4955)
8b64834 Move cirq/ops/moment.py to cirq/circuits/moment.py (#4932)
6806f6a Add deep=True
flag to recursively apply transformer primitives to subcircuits. (#4934)
be0429d Use contextlib.contextmanager for assert_logs and assert_deprecated (#4951)
18eba18 Bump simple-get from 3.1.0 to 3.1.1 in /cirq-web/cirq_ts (#4953)
229a9f2 Add expand_composite
transformer to replace ExpandComposite
optimizer (#4946)
18d19db remove codeowners windows. (#4950)
4042204 deprecate device.qubit_set in cirq_pasqal. (#4938)
f18fde4 Use group_interchangeable_qubits for qubit comparison in GateOperation (#4941)
a57c5ad Missing cirq_google import in command line QCS example (#4939)
84b0a28 Bump @npmcli/arborist from 2.6.2 to 2.10.0 in /cirq-web/cirq_ts (#4937)
8b71890 Fix _compat tests (#4926)
ec44575 Deprecate device.decompose_operation in cirq-core. (#4922)
92878fc Add tags_to_ignore
flag to map_operations and merge_operations transformer primitives (#4933)
57e0920 Rename context.ignore_tags to context.tags_to_ignore (#4931)
2f2c7ca Add state conversion logic from _create_partial_act_on_args to the corresponding ActOnArgs (#4847)
c8dc720 Deprecate {ion,neutral_atom}.decompose_operation. (#4930)
610b0d4 Deprecate device.decompose_operation in cirq_ionq. (#4925)
d3a122b Deprecate device.decompose_operation in cirq_pasqal. (#4927)
c57d8bf Deprecate decompose_operation in cirq_google. (#4924)
f0b249f Add verult as cirq/google owner (#4929)
4f354ea Fix submodule attributes and spec after deprecation (#4920)
9fb7e9c Minor cleanup in QCS Getting Started tutorial (#4575)
86c873b Add drop_empty_moments
and drop_negligible_operations
transformers. (#4915)
35e6d21 Deprecate can_add_operation_into_moment. (#4902)
ab61d7f Add synchronize_terminal_measurements
transformer to replace SynchronizeTerminalMeasurements
(#4911)
8c8ee43 Add asynchronous ability to simulated engine. (#4811)
d7a3906 Change TaggedOperation
's __pow__
from returning Operation
to returning TaggedOperation
(#4916)
275372e Clean up redundant use of _deprecate_attributes
(#4917)
2dc428b Deprecate set_state_vector and set_density_matrix (#4906)
38fcc42 Support adding / deleting operations in (#4912)
2b2a6fe Fix commutation of classical controls (#4872)
4d445c4 Add align_left
/align_right
transformers to replace AlignLeft
/AlignRight
(#4891)
fdf85f0 Support additional **kwargs
with default arguments in Transformer API. (#4890)
8c71ac8 Change engine_validator_test to be deterministic. (#4908)
fd4e834 Deprecate qid_pairs (#4900)
c4dd879 Add Bravyi-Gosset-Liu sampling (#4848)
6d2221f Move block_overlapping_deps to _compat.py. (#4904)
e0bbfad Upgrade cirq-web deps. (#4905)
2faba7a Update Cirq decomposition to use RZ, RX, CNOT only (#4824)
497cd3d Allow clifford simulator to run as product state (#4844)
b0519b3 Convert cirq.Result to ABC and add ResultDict implementation (#4806)
2c795d2 Update top level module documentation (#4893)
64e2eac Increase atol for sub_state_vector() (#4877)
aa9d184 Bump ipython from 7.22 to 7.31.1 in /dev_tools/requirements/deps (#4898)
37ba271 revert coverage and notebook packages. (#4896)
12ebe83 Add metadata property for cirq_google devices. (#4869)
ee744bd Documentation fix for cirq.Circuit.prev_moment_operating_on
(#4895)
4600f58 Add missing import in README example (#4875)
693ceed Use a Protocol for TRANSFORMER to ensure common arg names (#4871)
90679d2 Fix backwards incompatible pandas usage. (#4873)
b2fa642 Add cirq.TensoredConfusionMatrices
for readout error mitigation. (#4854)
c2b8691 Update "Compare to Calibration" tutorial into "Identifying Hardware Changes" with Simultaneous Readout and additional context (#4552)
39ce4f0 add "https://" to first link (#4604)
6119620 Add Transformer API Interface and @cirq.transformer
decorator (#4797)
394b9cf Add metadata property to device. (#4868)
e29f47c Add / improve CircuitOperation memoizing (#4855)
1be9468 Fix type signature of act_on implementations (#4867)
ee9bd68 Deprecate XmonDevice, Foxtail and Bristlecone. (#4864)
fe80da7 Add default decompositions for XXPowGate
and YYPowGate
which terminate in CZPowGate
. (#4862)
0a0d5f7 Make DensePauliString an iterable (#4861)
a254447 Fix value_equality_values_cls handling in _value_equality_approx_eq (#4860)
a22269d Fix act-on specialization for all the Clifford simulators (#4748)
8a78e10 Make gate_sets actually optional (#4850)
745ee1b Make order of traversal deterministic in merge_operations
primitive (#4764)
7ffc77c [runtime] QubitPlacer 2 - RandomDevicePlacer (#4719)
bce3002 Deprecate ciruit.device
everywhere. (#4845)
5e12333 Improve consistency between code and docstrings for XEB (#4853)
4cfa845 Add link to dev environment page in CONTRIBUTING.md (#4843)
3513d13 Bump follow-redirects from 1.14.1 to 1.14.7 in /cirq-web/cirq_ts (#4846)
20b577c Avoid copying unnecessary buffers between simulation iterations (#4789)
972b6d4 Remove use of .device
from cirq-aqt (#4812)
ca391ca Add GridDeviceMetadata. (#4839)
33a804b Update equalstester in DeviceMetadata. (#4840)
bfa2602 Make PauliMeasurementGate
respect sign of the pauli observable. (#4836)
3a6ad87 Add DeviceMetaData class. (#4832)
89f88b0 Remove use of .device
in contrib. (#4821)
0a12c88 Remove use of .device
in cirq-google. (#4820)
93bbaa8 Do not separate substates when measurements are ignored (#4816)
778d317 Move GateTabulation and friends to cirq-core as requested in #4461 (#4602)
1634589 Close matplotlib figures after testing (#4810)
bbd965e Import transformers/analytical_decompositions/*
methods in optimizers/*
(#4813)
45e7ddd Make test ordering and parametrization reproducible (#4788)
c739edc Density Matrix plotting is being fixed (#4805)
b00907a Remove uses of .device
in cirq-pasqal in preparation for larger circuit.device deprecation (#4757)
19c965b Move two/three qubit decompositions from optimizers/
to transformers/analytical_decompositions
(#4809)
979a443 Change Sampler methods to return Sequence instead of List (#4807)
3d111e4 Convert type comments to type annotations (#4808)
c1389ce Retain ordering information in conversion. (#4384)
8192ae7 Move optimizers/decompositions.py
to transformers/analytical_decompositions/single_qubit_decompositions.py
(#4799)
3d90501 Fix warning on array creation from ragged sequences (#4801)
09a4667 Upgrade glob-parent to 5.1.2 (#4803)
6bb239f Upgrade Ansi-Regex to 5.0.1 (#4802)
5848740 Fix deprecated_submodule conflict with importlib_metadata (#4772)
b60b9f8 Return NotImplemented
from Moment._kraus_()
if self._has_kraus_()
is False (#4794)
4201daa Add exponent to the labels of web 3D gates (#4777)
efa0820 Part-2: Move analytical decompositions from cirq/optimizers/
to cirq/transformers/analytical_decompositions/
(#4785)
1812fdd Thermal noise model (#4673)
7d6ba34 Use NotImplemented
instead of None
as default value for TaggedOperation._unitary_
(#4795)
1d76e50 Adding files for virtual emulation (#4793)
9512723 Speed up simplification of CNOTs in _simplify_commuting_cnots (#4626)
894d49e Fix the deprecation warning for ClassicallyControlledOperation
(#4780)
d58b58b Fix ResetGate to work with MPS, StabilizerSampler (#4765)
58f6a6f Add classes to aid in providing simulated versions of devices (#4747)
01ae51e Move optimizers/two_qubit_state_preparation.py
to transformers/analytical_decompositions/two_qubit_state_preparation.py
(#4762)
9581e65 Fix ignore_measurement_results=True for subcircuits (#4760)
9aede58 Sanitize type annotations in cirq.circuits (#4776)
ff671ae Allow sympy expressions as classical controls (#4740)
65d783e [cirqflow] Convenience method for loading results (#4720)
5da6335 Unroll circuit_op when validating containment in a gateset (#4770)
e9b6258 Sanitize type annotations in cirq.sim (#4773)
1d27a00 Fix str/repr explosion in separated states (#4518)
4ebfb1c Scoping for control keys (#4736)
e7892c3 Add json resolvers for sympy relational operators (#4767)
1d8d2f3 Implement PauliStringPhasorGate (#4696)
2e60ca1 Add AbstractEngine objects to cirq_google.engine init (#4759)
c33bd9b Add JSON serialization support for QasmUGate (#4750)
645692e Ignore deprecation warnings from protobufs (#4751)
1145722 Bump tar from 6.1.0 to 6.1.11 in /cirq-web/cirq_ts (#4755)
a7ca3e5 Bump path-parse from 1.0.6 to 1.0.7 in /cirq-web/cirq_ts (#4754)
ce1a242 Fix qasm output for bitmasked measurements (#4756)
ac5b7ca Move cirq.vis
methods to the outer cirq package (#4752)
807a24d Insertion noise model (#4672)
ca09f4c Upgrade pinned black
version (#4753)
3becbbc Move optimizers/transformer_primitives.py to transformers/transformer_primitives.py (#4746)
9cf2748 Fix scipy.linalg import in swap_gates_test (#4749)
876bad4 Allow sourcing of dev_tools/pypath from any path (#4739)
132005a Utilities for approximate hardware noise (#4671)
b7bfb10 QASM parsing for classical controls (#4738)
e207415 Implement GlobalPhaseGate (#4697)
d419ef5 Add merge_operations
and merge_moments
transformer primitives (#4708)
e97768c Classical control (#4631)
45fd829 Add missing _has_*_
methods (#4735)
5ae8a2e Circuit superoperator (#4550)
5ee7ff6 Support FrozenCircuit incg.Engine
(#4731)
a0497a4 Add runtime estimator (#4718)
5cd5662 Change Engine to implement AbstractEngine (#4723)
7bce81d Support serialization of Gatesets (#4724)
ec79736 Efficient 2q state preparation methods using CZ and SQRT_ISWAP (#4707)
fe7fa12 [runtime] QubitPlacer part 1 (#4700)
9053a27 Support serialization of GateFamilies (#4715)
7259925 format-incremental - store modified files in bash array (#4717)
1bf3f57 Fix operator_spaces.py::kron_bases initial value (#4716)
973b2c7 Simulated Engine Implementation (#4638)
5a30119 Always use bash arrays for changed files and directories (#4703)
d7611dc Remove non-deterministic hash from circuit diagram. (#4712)
1d57c81 pylint - enable check for f-string-without-interpolation (#4706)
43a3280 Don't invoke json_cirq_type if cirq_type is defined...for now. (#4711)
48397d6 Move "cirq_type" responsibility to protocols (#4704)
d42e058 Named topology reprs (#4701)
42ac9da Support and test type serialization (#4693)
272350d Add map_operations
and map_moments
transformer primitives (#4692)
e311059 Rename (qubits+cbits) to labels (#4675)
a75b215 Add Local implementation of abstract engine classes (#4645)
5be2a9b Clarify runtime of gateset contains (#4694)
80e8474 Add double-line diagrams for control keys (#4627)
1d7436f Add Abstract Engine Interface (#4644)
3af7e89 Remove op validation when inserting into Circuit (#4669)
46cb62f Add a test to ensure reset does not collapse density matrix (#4682)
1ea6061 Enforce LineQubit type for IonDevices (#4690)
1ba6046 Fix remaining documentation lint (#4689)
bfe52b5 Unwind some delayed imports using LazyLoader (#4681)
c15af92 Add sxdg, now that it is supported by qiskit (#4688)
1360fb6 Reducing documentation lint errors even further (#4687)
a1b46dd Removing 0.14.0.dev -> 0.14.0
33580bb Rename TestDevice -> FakeDevice to avoid pytest confusion (#5066)
45624ff Add support for deep=True flag in cg.optimized_for_sycamore
and cg.SycamoreTargetGateset
transformers (#5126)
cdd3f8c DeviceSpecification proto updates (#5056)
091582e Bugfix in handling of deep=True flag in cirq.merge_k_qubit_unitaries
transformer (#5125)
89e7210 Add support for deep=True to cirq.optimize_for_target_gateset
transformer (#5124)
518d828 Add support for deep=True to merge_single_qubit_gates* transformers (#5123)
92d19f6 Add support for deep=True to cirq.merge_k_qubit_unitaries transformer (#5122)
64a6723 Add support for deep=True to cirq.eject_z
transformer (#5115)
04d58c4 Add support for deep=True to cirq.align_left
and cirq.align_right
transformers (#5112)
ca4bb72 Add support for deep=True to cirq.eject_phased_paulis
transformer (#5116)
d2f284d Add support for deep=True to cirq.expand_composite
transformer (#5119)
b45e63d Add support for deep=True to cirq.synchronize_terminal_measurements
transformer (#5118)
155f607 Add support for deep=True to cirq.stratified_circuit
transformer (#5117)
869d83b Add support for deep=True to cirq.drop_negligible_operations
transformer (#5114)
fade070 Add support for deep=True to cirq.drop_empty_moments
transformer (#5113)
cfa255a Add add_deep_support
flag to @cirq.transformer
decorator (#5108)
aed4eb8 Bugfixes in handling nested tags_to_ignore + deep=True in cirq.map_moments
and cirq.map_operations
transformer primitives (#5109)
e0a64dd Extract BufferedDM/SV/MPS from ActOnDM/SV/MPSArgs (#4979)
d3c4853 Add assert_decompose_ends_at_default_gateset
to consistent protocols test to ensure all cirq gates decompose to default gateset (#5107)
6af5387 Add support for deep=True flag to remaining transformer primitives (#5106)
2693951 Improve support for recursively applying transformer primitives on circuit operations using deep=True
(#5103)
caadb0c Deprectate log_of_measurement_result input (#5100)
848bfde Add default decomposition for cirq.QubitPermutationGate in terms of adjacent swaps (#5093)
e0f7432 Deprecate cirq_google.ConvertToXmonGates
and replace with cirq.CZTargetGateset
+ cirq.optimize_for_target_gateset
(#5096)
a7df579 Replace _PhasedFSimConverter in cirq_google with new transformer primitives (#5095)
1f47082 Extend default decomposition of cirq.ControlledGate
and cirq.ControlledOperation
to end in X/Y/Z/CZ target gateset (#5091)
90e70c6 Order of keys shouldn't matter when comparing cirq.google.KeyValueExecutableSpec (#5073)
b2d8dd9 Add to_dict() to KeyValueExecutableSpec (#5072)
c153664 Serialize QubitPermutationGate. (#5092)
66dd508 Add support for decompositions of parameterized cirq.CCZPowGate
(#5087)
ded5d17 Adds default decompositions for cirq.MatrixGate
into X/Y/Z/CZ target gateset. (#5088)
098617c Add support for decompositions of parameterized cirq.DiagonalGate
(#5085)
2fb5651 Add default decomposition for cirq.TwoQubitDiagonalGate (#5084)
28f90b0 Support decomposition of parameterized gates in cirq.PhasedXPowGate (#5083)
765ccfe Add assert_decompose_ends_at_default_gateset consistency test (#5079)
083d2e5 Remove reference to deprecated readthedocs documentation in Contribute page (#4988)
701f62c Add return type annotation on MeasurementGate.full_invert_mask (#5080)
fa473b4 Allow repetitions to be parameterized (#5043)
7a5c20e Allow partial state vector function to handle qudits (#5077)
9ae8f1e Add SuperconductingQubitsNoiseProperties (#4964)
889e5d2 Add cg.SycamoreTargetGateset
and deprecate cg.ConvertToSycamoreGates
(#5054)
c76bbc7 Fix state vector factorization validation (#5076)
bfc04b8 Remove public fields from fsim (#5075)
d8652be Remove public fields for pauli ops (#5062)
27f92ae Wrap private fields for DensePauliString (#5064)
097544e Remove public fields from subop gates and ops (#5074)
120f296 Remove public fields for measurement and controlled ops (#5061)
013498f Rename two_qubit_matrix related functions (#5070)
2792f38 Call decompose_once in TaggedOperation (#5071)
d967317 Update getting started notebook (#5046)
785c5c1 Change ValueError to assertion in clifford_optimize (#5060)
9cefed8 [cg.workflow] Consistent get_sampler()
(#5030)
3cdf896 Pin sympy version to <1.10 (#5059)
557cdec Adjust runtime estimator for high numbers of qubits (#5049)
cff7a8e Add type annotations to method overrides in child classes (#5051)
d89baa3 Add some types to equals_tester.py
(#5053)
4ddcd5f Refactors convert_to_sycamore_gates
to abstract out analytical decomposition methods in cirq_google.two_qubit_to_sycamore
(#5044)
3c1c802 Add repeat-until functionality to subcircuits (#5018)
d90b09c Move serialize_program and serialize_run_context into EngineContext (#5034)
d5be95f Recursive subop parameter resolution (#5033)
5ff22ce Add functools.cached_property
backport (#5031)
d2ae1e4 BooleanHamiltonianGate implementation (#4705)
8d65806 Update Sampler.run_async signature to match Sampler.run (#5036)
8bc6915 Fix subcircuits with zero reps (#5038)
305cc7d Deprecate cirq.ConvertToSqrtIswapGates and cirq.MergeInteractionsToSqrtIswap (#5040)
6c45d9c Add cirq.SqrtIswapTargetGateset
for (parameterized & non-parameterized) compilation to sqrt iswaps. (#5025)
47098b6 Use f-strings consistently in engine_client.py helpers (#5037)
d696635 Add show_error_codes option to mypy config (#5032)
853dde3 Fix run_batch results format for SimulatedLocalProcessor (#5026)
a9e6e4e Update quantum_run_stream to not prefetch first result (#5024)
741e93c Deprecate ignore_measurement_results (#4978)
452dbea Add missing Arg in SimulatedLocalProcessor (#5027)
2d6c8bd Fail fast on measurements in has_unitary (#5020)
43b37fa Add better repr for EngineProcessor (#5022)
387187d Add cirq.CZTargetGateset
to replace cirq.ConvertToCZAndSingleGates
and cirq.MergeInteractions
(#5007)
afb62da Use parallel pytest in the CI checks (#5006)
6f9e277 [cg.workflow] Update str(ProcessorRecord) (#5012)
43527c8 Permit 2D _run output for backwards compatibility. (#5014)
d3d44cb Serialize results with repeated measurements (#5019)
32f319d Sets tolerance to 1.0e-8 by default in equivalence assertion (#5017)
bded331 Allow flattening of subcircuits (#4997)
ddefd84 BugFix in cirq.merge_moments
to correctly handle new empty moments. (#5013)
3177647 Reject multiplication of cirq.PauliSum
inside in cirq.PauliString
(#5010)
ca4c8e7 Replace fields with properties in ActOnArgs (#5011)
1bbbc9f Multiple Qubits Clifford Gate (#4791)
59b72a1 Add cirq.convert_to_target_gateset
transformer and cirq.CompilationTargetGateset
interface (#5005)
3517306 Add isolated qubit functionality for gridmetadata. (#5001)
6c2b376 Update bell_inequality.py (#4998)
a2f04f1 Add caching to CI. (#4999)
a016e52 Add clean_operations
flag to cirq.two_qubit_matrix_to_sqrt_iswap_operations
(#5002)
7c5ad61 Add cirq.merge_k_qubit_unitaries
transformer to replace cirq.MergeSingleQubitGates
optimizer (#4986)
0225963 Deprecate qubit_set in cirq-core/devices (#4965)
43955b3 Allow repeated measurement keys (#4899)
72f9a5b Use CIRCUIT_SERIALIZER as default serializer for quantum engine (#4983)
3c89de1 Use google.auth.default() in cirq_google.get_engine (#4985)
7e78526 Bump follow-redirects from 1.14.7 to 1.14.8 in /cirq-web/cirq_ts (#4993)
dd55a86 Support repeated measurement keys in cirq.Result (#4555)
872b22a Update documentation development instructions and codeowners (#4990)
580575c In QCS getting started, only install cirq-google (#4991)
87d3632 Make circuit._prev_moment_available
a public method. (#4980)
6dc316d Add Cirq 1.0 tab to TP. (#4984)
7895028 Replace AbstractEngineProcessorShim (#4842)
aad6c57 Add transformer primitive to merge connected component of operations in a circuit op (#4974)
9ab327a Add cirq.toggle_tags
helper to apply transformers on specific subsets of operations in a circuit (#4973)
4dc6e25 Rewrite cirq.stratified_circuit
following new Transformer API and primitives. (#4944)
169db48 Refactor virtual_engine_factory (#4909)
0bdc9f1 Deferred measurements transformer (#4849)
aed1964 Minor formatting fixes (#4971)
92032c1 Revert "Change TaggedOperation
's __pow__
from returning Operation
to returning TaggedOperation
" (#4966)
aadc56d Deperecate {ion,neutral_atom}.qubit_set. (#4943)
eb15907 Deprecate device.qubit_set in cirq_ionq. (#4942)
c3b1b22 Deprecate device.qubit_set in cirq_google. (#4940)
5eae221 DeviceMetadata docs update. (#4963)
c20c99b Add cirq.eject_phased_paulis
transformer to replace cirq.EjectPhasedPaulis
(#4958)
2d2226a Refactor [NoiseModelFrom]NoiseProperties (#4866)
5196dff Remove ch-form cyclical dependencies (#4948)
6937e41 Add ClassicalDataStore class to keep track of qubits measured (#4781)
467c68d Move default implementation of Result.data into base class (#4949)
41312e8 Add cirq.eject_z
transformer to replace cirq.EjectZ
(#4955)
8b64834 Move cirq/ops/moment.py to cirq/circuits/moment.py (#4932)
6806f6a Add deep=True
flag to recursively apply transformer primitives to subcircuits. (#4934)
be0429d Use contextlib.contextmanager for assert_logs and assert_deprecated (#4951)
18eba18 Bump simple-get from 3.1.0 to 3.1.1 in /cirq-web/cirq_ts (#4953)
229a9f2 Add expand_composite
transformer to replace ExpandComposite
optimizer (#4946)
18d19db remove codeowners windows. (#4950)
4042204 deprecate device.qubit_set in cirq_pasqal. (#4938)
f18fde4 Use group_interchangeable_qubits for qubit comparison in GateOperation (#4941)
a57c5ad Missing cirq_google import in command line QCS example (#4939)
84b0a28 Bump @npmcli/arborist from 2.6.2 to 2.10.0 in /cirq-web/cirq_ts (#4937)
8b71890 Fix _compat tests (#4926)
ec44575 Deprecate device.decompose_operation in cirq-core. (#4922)
92878fc Add tags_to_ignore
flag to map_operations and merge_operations transformer primitives (#4933)
57e0920 Rename context.ignore_tags to context.tags_to_ignore (#4931)
2f2c7ca Add state conversion logic from _create_partial_act_on_args to the corresponding ActOnArgs (#4847)
c8dc720 Deprecate {ion,neutral_atom}.decompose_operation. (#4930)
610b0d4 Deprecate device.decompose_operation in cirq_ionq. (#4925)
d3a122b Deprecate device.decompose_operation in cirq_pasqal. (#4927)
c57d8bf Deprecate decompose_operation in cirq_google. (#4924)
f0b249f Add verult as cirq/google owner (#4929)
4f354ea Fix submodule attributes and spec after deprecation (#4920)
9fb7e9c Minor cleanup in QCS Getting Started tutorial (#4575)
86c873b Add drop_empty_moments
and drop_negligible_operations
transformers. (#4915)
35e6d21 Deprecate can_add_operation_into_moment. (#4902)
ab61d7f Add synchronize_terminal_measurements
transformer to replace SynchronizeTerminalMeasurements
(#4911)
8c8ee43 Add asynchronous ability to simulated engine. (#4811)
d7a3906 Change TaggedOperation
's __pow__
from returning Operation
to returning TaggedOperation
(#4916)
275372e Clean up redundant use of _deprecate_attributes
(#4917)
2dc428b Deprecate set_state_vector and set_density_matrix (#4906)
38fcc42 Support adding / deleting operations in (#4912)
2b2a6fe Fix commutation of classical controls (#4872)
4d445c4 Add align_left
/align_right
transformers to replace AlignLeft
/AlignRight
(#4891)
fdf85f0 Support additional **kwargs
with default arguments in Transformer API. (#4890)
8c71ac8 Change engine_validator_test to be deterministic. (#4908)
fd4e834 Deprecate qid_pairs (#4900)
c4dd879 Add Bravyi-Gosset-Liu sampling (#4848)
6d2221f Move block_overlapping_deps to _compat.py. (#4904)
e0bbfad Upgrade cirq-web deps. (#4905)
2faba7a Update Cirq decomposition to use RZ, RX, CNOT only (#4824)
497cd3d Allow clifford simulator to run as product state (#4844)
b0519b3 Convert cirq.Result to ABC and add ResultDict implementation (#4806)
2c795d2 Update top level module documentation (#4893)
64e2eac Increase atol for sub_state_vector() (#4877)
aa9d184 Bump ipython from 7.22 to 7.31.1 in /dev_tools/requirements/deps (#4898)
37ba271 revert coverage and notebook packages. (#4896)
12ebe83 Add metadata property for cirq_google devices. (#4869)
ee744bd Documentation fix for cirq.Circuit.prev_moment_operating_on
(#4895)
4600f58 Add missing import in README example (#4875)
693ceed Use a Protocol for TRANSFORMER to ensure common arg names (#4871)
90679d2 Fix backwards incompatible pandas usage. (#4873)
b2fa642 Add cirq.TensoredConfusionMatrices
for readout error mitigation. (#4854)
c2b8691 Update "Compare to Calibration" tutorial into "Identifying Hardware Changes" with Simultaneous Readout and additional context (#4552)
39ce4f0 add "https://" to first link (#4604)
6119620 Add Transformer API Interface and @cirq.transformer
decorator (#4797)
394b9cf Add metadata property to device. (#4868)
e29f47c Add / improve CircuitOperation memoizing (#4855)
1be9468 Fix type signature of act_on implementations (#4867)
ee9bd68 Deprecate XmonDevice, Foxtail and Bristlecone. (#4864)
fe80da7 Add default decompositions for XXPowGate
and YYPowGate
which terminate in CZPowGate
. (#4862)
0a0d5f7 Make DensePauliString an iterable (#4861)
a254447 Fix value_equality_values_cls handling in _value_equality_approx_eq (#4860)
a22269d Fix act-on specialization for all the Clifford simulators (#4748)
8a78e10 Make gate_sets actually optional (#4850)
745ee1b Make order of traversal deterministic in merge_operations
primitive (#4764)
7ffc77c [runtime] QubitPlacer 2 - RandomDevicePlacer (#4719)
bce3002 Deprecate ciruit.device
everywhere. (#4845)
5e12333 Improve consistency between code and docstrings for XEB (#4853)
4cfa845 Add link to dev environment page in CONTRIBUTING.md (#4843)
3513d13 Bump follow-redirects from 1.14.1 to 1.14.7 in /cirq-web/cirq_ts (#4846)
20b577c Avoid copying unnecessary buffers between simulation iterations (#4789)
972b6d4 Remove use of .device
from cirq-aqt (#4812)
ca391ca Add GridDeviceMetadata. (#4839)
33a804b Update equalstester in DeviceMetadata. (#4840)
bfa2602 Make PauliMeasurementGate
respect sign of the pauli observable. (#4836)
3a6ad87 Add DeviceMetaData class. (#4832)
89f88b0 Remove use of .device
in contrib. (#4821)
0a12c88 Remove use of .device
in cirq-google. (#4820)
93bbaa8 Do not separate substates when measurements are ignored (#4816)
778d317 Move GateTabulation and friends to cirq-core as requested in #4461 (#4602)
1634589 Close matplotlib figures after testing (#4810)
bbd965e Import transformers/analytical_decompositions/*
methods in optimizers/*
(#4813)
45e7ddd Make test ordering and parametrization reproducible (#4788)
c739edc Density Matrix plotting is being fixed (#4805)
b00907a Remove uses of .device
in cirq-pasqal in preparation for larger circuit.device deprecation (#4757)
19c965b Move two/three qubit decompositions from optimizers/
to transformers/analytical_decompositions
(#4809)
979a443 Change Sampler methods to return Sequence instead of List (#4807)
3d111e4 Convert type comments to type annotations (#4808)
c1389ce Retain ordering information in conversion. (#4384)
8192ae7 Move optimizers/decompositions.py
to transformers/analytical_decompositions/single_qubit_decompositions.py
(#4799)
3d90501 Fix warning on array creation from ragged sequences (#4801)
09a4667 Upgrade glob-parent to 5.1.2 (#4803)
6bb239f Upgrade Ansi-Regex to 5.0.1 (#4802)
5848740 Fix deprecated_submodule conflict with importlib_metadata (#4772)
b60b9f8 Return NotImplemented
from Moment._kraus_()
if self._has_kraus_()
is False (#4794)
4201daa Add exponent to the labels of web 3D gates (#4777)
efa0820 Part-2: Move analytical decompositions from cirq/optimizers/
to cirq/transformers/analytical_decompositions/
(#4785)
1812fdd Thermal noise model (#4673)
7d6ba34 Use NotImplemented
instead of None
as default value for TaggedOperation._unitary_
(#4795)
1d76e50 Adding files for virtual emulation (#4793)
9512723 Speed up simplification of CNOTs in _simplify_commuting_cnots (#4626)
894d49e Fix the deprecation warning for ClassicallyControlledOperation
(#4780)
d58b58b Fix ResetGate to work with MPS, StabilizerSampler (#4765)
58f6a6f Add classes to aid in providing simulated versions of devices (#4747)
01ae51e Move optimizers/two_qubit_state_preparation.py
to transformers/analytical_decompositions/two_qubit_state_preparation.py
(#4762)
9581e65 Fix ignore_measurement_results=True for subcircuits (#4760)
9aede58 Sanitize type annotations in cirq.circuits (#4776)
ff671ae Allow sympy expressions as classical controls (#4740)
65d783e [cirqflow] Convenience method for loading results (#4720)
5da6335 Unroll circuit_op when validating containment in a gateset (#4770)
e9b6258 Sanitize type annotations in cirq.sim (#4773)
1d27a00 Fix str/repr explosion in separated states (#4518)
4ebfb1c Scoping for control keys (#4736)
e7892c3 Add json resolvers for sympy relational operators (#4767)
1d8d2f3 Implement PauliStringPhasorGate (#4696)
2e60ca1 Add AbstractEngine objects to cirq_google.engine init (#4759)
c33bd9b Add JSON serialization support for QasmUGate (#4750)
645692e Ignore deprecation warnings from protobufs (#4751)
1145722 Bump tar from 6.1.0 to 6.1.11 in /cirq-web/cirq_ts (#4755)
a7ca3e5 Bump path-parse from 1.0.6 to 1.0.7 in /cirq-web/cirq_ts (#4754)
ce1a242 Fix qasm output for bitmasked measurements (#4756)
ac5b7ca Move cirq.vis
methods to the outer cirq package (#4752)
807a24d Insertion noise model (#4672)
ca09f4c Upgrade pinned black
version (#4753)
3becbbc Move optimizers/transformer_primitives.py to transformers/transformer_primitives.py (#4746)
9cf2748 Fix scipy.linalg import in swap_gates_test (#4749)
876bad4 Allow sourcing of dev_tools/pypath from any path (#4739)
132005a Utilities for approximate hardware noise (#4671)
b7bfb10 QASM parsing for classical controls (#4738)
e207415 Implement GlobalPhaseGate (#4697)
d419ef5 Add merge_operations
and merge_moments
transformer primitives (#4708)
e97768c Classical control (#4631)
45fd829 Add missing _has_*_
methods (#4735)
5ae8a2e Circuit superoperator (#4550)
5ee7ff6 Support FrozenCircuit incg.Engine
(#4731)
a0497a4 Add runtime estimator (#4718)
5cd5662 Change Engine to implement AbstractEngine (#4723)
7bce81d Support serialization of Gatesets (#4724)
ec79736 Efficient 2q state preparation methods using CZ and SQRT_ISWAP (#4707)
fe7fa12 [runtime] QubitPlacer part 1 (#4700)
9053a27 Support serialization of GateFamilies (#4715)
7259925 format-incremental - store modified files in bash array (#4717)
1bf3f57 Fix operator_spaces.py::kron_bases initial value (#4716)
973b2c7 Simulated Engine Implementation (#4638)
5a30119 Always use bash arrays for changed files and directories (#4703)
d7611dc Remove non-deterministic hash from circuit diagram. (#4712)
1d57c81 pylint - enable check for f-string-without-interpolation (#4706)
43a3280 Don't invoke json_cirq_type if cirq_type is defined...for now. (#4711)
48397d6 Move "cirq_type" responsibility to protocols (#4704)
d42e058 Named topology reprs (#4701)
42ac9da Support and test type serialization (#4693)
272350d Add map_operations
and map_moments
transformer primitives (#4692)
e311059 Rename (qubits+cbits) to labels (#4675)
a75b215 Add Local implementation of abstract engine classes (#4645)
5be2a9b Clarify runtime of gateset contains (#4694)
80e8474 Add double-line diagrams for control keys (#4627)
1d7436f Add Abstract Engine Interface (#4644)
3af7e89 Remove op validation when inserting into Circuit (#4669)
46cb62f Add a test to ensure reset does not collapse density matrix (#4682)
1ea6061 Enforce LineQubit type for IonDevices (#4690)
1ba6046 Fix remaining documentation lint (#4689)
bfe52b5 Unwind some delayed imports using LazyLoader (#4681)
c15af92 Add sxdg, now that it is supported by qiskit (#4688)
1360fb6 Reducing documentation lint errors even further (#4687)
9fde1b5 Fix check/mypy-next (#4686)
2e3e5f3 Fix mistakes in circuit tutorial and add picture (#4677)
ca0401f Deprecate from_single_parameter_set on Result (#4680)
8374b71 Removing more documentation lint (#4679)
cd4feda Documentation fixes continue (#4670)
a28d601 Fix test that are failing on aarch64-linux due to precision (#4674)
b263acb More documentation fixes (#4668)
21ed680 Small clarification in development.md (#4663)
c647079 Add cirq_google.FSimGateFamily
class. (#4586)
dc6f569 Add pretty repr to devices and result types (#4649)
5428606 Add docker and docker compose to dev install (#4661)
3c0ca4b More documentation fixes (#4654)
dcaacd6 Even more documentation lint (#4662)
ca05b0e Bump version of qiskit-aer in dev-tools (#4659)
5fdf764 Add parameter resolution and other utility methods to _InverseCompositeGate (#4656)
c5477cb Update ecosystem (#4651)
e4d0467 Optimize parameter sweeps to cache unparameterized prefixes (#4533)
13e0225 Fix measurement keys in subcircuits with parent_path (#4616)
a4f5561 Add LazyLoader for delayed imports of slow modules (#4653)
83c440f Ensure subcircuit.mapped_circuit applies parent path if no repetitions (#4619)
2f123fb Fix num_qubits property on AsymetricDepolarizing Channel (#4652)
2cfeef0 Remove remaining uses of cirq.google in docs/ . (#4650)
321ce63 Delay import of scipy stats and optimize (#4643)
6fdad5f Remove deprecated use of cirq.google
in install guide (#4647)
6f71b55 Fix FSim serialization for zeros and ints (#4646)
1f0fc1d More lint documentation fixes. (#4641)
72f831d Fix importlib.abc and type madness in _import (#4642)
3b2b2d8 Fixes for documentation (#4635)
017e9a7 [cirqflow] Factor out FilesystemSaver (#4614)
cf06adf [cirqflow] Factor out PrintLogger (#4613)
7c36cef Named topologies: support manual placement (#4628)
eb1d903 Fix operator spaces test which fails due to precision (#4636)
aaf95a8 Fix lint errors (#4634)
ab335e6 Pass shell script arguments without splitting (#4629)
d1e7228 pylint - enforce singleton-comparison check (#4625)
00230f0 Add control_keys protocol (simplified) (#4610)
d137a7d Validating Sampler (#4609)
2f7dfde mixture not matrix in noise notebook (#4621)
1851585 Fix SVGCircuit()
for cirq.Circuit
with empty moments (#4535)
3df15e3 Fix lint bugs with unused imports (#4622)
64df1fc Implement PhasedXZGate.unitary (#4617)
4985a51 Remove EngineTimeSlot (#4608)
bb4468c [cirqflow] Execution Loop I/O (#4599)
74ed369 Add CODEOWNERS for rigetti (#4543)
1bb7554 Add a copyright checker as a pylint plugin (#4577)
21b9be3 Flush v0.14.0 deprecation backlog. (#4601)
c7d420b Json serialize MSGate
(#4605)
ec9fc45 Add jobs filtering by executed and scheduled processor IDs (#4589)
009b3da Flush missed v0.13 backlog items. (#4600)
954a7b6 [cirqflow] Quantum runtime skeleton - part 3 (#4584)
ca25c42 Qcircuit exponent (#4593)