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
c20c99ba Add cirq.eject_phased_paulis
transformer to replace cirq.EjectPhasedPaulis
(#4958)
bfa26028 Make PauliMeasurementGate
respect sign of the pauli observable. (#4836)
89f88b01 Remove use of .device
in contrib. (#4821)
b0519b38 Convert cirq.Result to ABC and add ResultDict implementation (#4806)
6937e417 Add ClassicalDataStore class to keep track of qubits measured (#4781)
1d8d2f38 Implement PauliStringPhasorGate (#4696)
4985a516 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(...)
or circuit.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
(use get_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 to cirq.TwoQubitGateTabulationResult
)
GateTabulation
(moved to cirq.TwoQubitGateTabulation
)
gate_product_tabulation
(moved to cirq.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
33580bb9 Rename TestDevice -> FakeDevice to avoid pytest confusion (#5066)
45624ff7 Add support for deep=True flag in cg.optimized_for_sycamore
and cg.SycamoreTargetGateset
transformers (#5126)
cdd3f8ce DeviceSpecification proto updates (#5056)
091582ee Bugfix in handling of deep=True flag in cirq.merge_k_qubit_unitaries
transformer (#5125)
89e7210e Add support for deep=True to cirq.optimize_for_target_gateset
transformer (#5124)
518d828f Add support for deep=True to merge_single_qubit_gates* transformers (#5123)
92d19f66 Add support for deep=True to cirq.merge_k_qubit_unitaries transformer (#5122)
64a6723f Add support for deep=True to cirq.eject_z
transformer (#5115)
04d58c4e Add support for deep=True to cirq.align_left
and cirq.align_right
transformers (#5112)
ca4bb722 Add support for deep=True to cirq.eject_phased_paulis
transformer (#5116)
d2f284d8 Add support for deep=True to cirq.expand_composite
transformer (#5119)
b45e63d8 Add support for deep=True to cirq.synchronize_terminal_measurements
transformer (#5118)
155f6074 Add support for deep=True to cirq.stratified_circuit
transformer (#5117)
869d83b8 Add support for deep=True to cirq.drop_negligible_operations
transformer (#5114)
fade070c Add support for deep=True to cirq.drop_empty_moments
transformer (#5113)
cfa255a1 Add add_deep_support
flag to @cirq.transformer
decorator (#5108)
aed4eb8a Bugfixes in handling nested tags_to_ignore + deep=True in cirq.map_moments
and cirq.map_operations
transformer primitives (#5109)
e0a64dd2 Extract BufferedDM/SV/MPS from ActOnDM/SV/MPSArgs (#4979)
d3c48530 Add assert_decompose_ends_at_default_gateset
to consistent protocols test to ensure all cirq gates decompose to default gateset (#5107)
6af53872 Add support for deep=True flag to remaining transformer primitives (#5106)
26939516 Improve support for recursively applying transformer primitives on circuit operations using deep=True
(#5103)
caadb0c3 Deprectate log_of_measurement_result input (#5100)
848bfde6 Add default decomposition for cirq.QubitPermutationGate in terms of adjacent swaps (#5093)
e0f74324 Deprecate cirq_google.ConvertToXmonGates
and replace with cirq.CZTargetGateset
+ cirq.optimize_for_target_gateset
(#5096)
a7df5790 Replace _PhasedFSimConverter in cirq_google with new transformer primitives (#5095)
1f470826 Extend default decomposition of cirq.ControlledGate
and cirq.ControlledOperation
to end in X/Y/Z/CZ target gateset (#5091)
90e70c63 Order of keys shouldn't matter when comparing cirq.google.KeyValueExecutableSpec (#5073)
b2d8dd96 Add to_dict() to KeyValueExecutableSpec (#5072)
c1536646 Serialize QubitPermutationGate. (#5092)
66dd5080 Add support for decompositions of parameterized cirq.CCZPowGate
(#5087)
ded5d172 Adds default decompositions for cirq.MatrixGate
into X/Y/Z/CZ target gateset. (#5088)
098617c5 Add support for decompositions of parameterized cirq.DiagonalGate
(#5085)
2fb5651b Add default decomposition for cirq.TwoQubitDiagonalGate (#5084)
28f90b05 Support decomposition of parameterized gates in cirq.PhasedXPowGate (#5083)
765ccfee Add assert_decompose_ends_at_default_gateset consistency test (#5079)
083d2e5d Remove reference to deprecated readthedocs documentation in Contribute page (#4988)
701f62c3 Add return type annotation on MeasurementGate.full_invert_mask (#5080)
fa473b44 Allow repetitions to be parameterized (#5043)
7a5c20e4 Allow partial state vector function to handle qudits (#5077)
9ae8f1ee Add SuperconductingQubitsNoiseProperties (#4964)
889e5d22 Add cg.SycamoreTargetGateset
and deprecate cg.ConvertToSycamoreGates
(#5054)
c76bbc70 Fix state vector factorization validation (#5076)
bfc04b82 Remove public fields from fsim (#5075)
d8652be4 Remove public fields for pauli ops (#5062)
27f92aef Wrap private fields for DensePauliString (#5064)
097544e5 Remove public fields from subop gates and ops (#5074)
120f296d Remove public fields for measurement and controlled ops (#5061)
013498ff Rename two_qubit_matrix related functions (#5070)
2792f384 Call decompose_once in TaggedOperation (#5071)
d967317c Update getting started notebook (#5046)
785c5c12 Change ValueError to assertion in clifford_optimize (#5060)
9cefed8c [cg.workflow] Consistent get_sampler()
(#5030)
3cdf8963 Pin sympy version to <1.10 (#5059)
557cdeca Adjust runtime estimator for high numbers of qubits (#5049)
cff7a8e7 Add type annotations to method overrides in child classes (#5051)
d89baa34 Add some types to equals_tester.py
(#5053)
4ddcd5f1 Refactors convert_to_sycamore_gates
to abstract out analytical decomposition methods in cirq_google.two_qubit_to_sycamore
(#5044)
3c1c8022 Add repeat-until functionality to subcircuits (#5018)
d90b09c2 Move serialize_program and serialize_run_context into EngineContext (#5034)
d5be95ff Recursive subop parameter resolution (#5033)
5ff22ce9 Add functools.cached_property
backport (#5031)
d2ae1e49 BooleanHamiltonianGate implementation (#4705)
8d658063 Update Sampler.run_async signature to match Sampler.run (#5036)
8bc6915f Fix subcircuits with zero reps (#5038)
305cc7dd Deprecate cirq.ConvertToSqrtIswapGates and cirq.MergeInteractionsToSqrtIswap (#5040)
6c45d9cc Add cirq.SqrtIswapTargetGateset
for (parameterized & non-parameterized) compilation to sqrt iswaps. (#5025)
47098b6d Use f-strings consistently in engine_client.py helpers (#5037)
d6966352 Add show_error_codes option to mypy config (#5032)
853dde3a Fix run_batch results format for SimulatedLocalProcessor (#5026)
a9e6e4e8 Update quantum_run_stream to not prefetch first result (#5024)
741e93ca Deprecate ignore_measurement_results (#4978)
452dbea2 Add missing Arg in SimulatedLocalProcessor (#5027)
2d6c8bd8 Fail fast on measurements in has_unitary (#5020)
43b37fa5 Add better repr for EngineProcessor (#5022)
387187d3 Add cirq.CZTargetGateset
to replace cirq.ConvertToCZAndSingleGates
and cirq.MergeInteractions
(#5007)
afb62da0 Use parallel pytest in the CI checks (#5006)
6f9e277d [cg.workflow] Update str(ProcessorRecord) (#5012)
43527c88 Permit 2D _run output for backwards compatibility. (#5014)
d3d44cb5 Serialize results with repeated measurements (#5019)
32f319dc Sets tolerance to 1.0e-8 by default in equivalence assertion (#5017)
bded331c Allow flattening of subcircuits (#4997)
ddefd846 BugFix in cirq.merge_moments
to correctly handle new empty moments. (#5013)
31776478 Reject multiplication of cirq.PauliSum
inside in cirq.PauliString
(#5010)
ca4c8e7c Replace fields with properties in ActOnArgs (#5011)
1bbbc9f4 Multiple Qubits Clifford Gate (#4791)
59b72a1e Add cirq.convert_to_target_gateset
transformer and cirq.CompilationTargetGateset
interface (#5005)
35173066 Add isolated qubit functionality for gridmetadata. (#5001)
6c2b3766 Update bell_inequality.py (#4998)
a2f04f19 Add caching to CI. (#4999)
a016e527 Add clean_operations
flag to cirq.two_qubit_matrix_to_sqrt_iswap_operations
(#5002)
7c5ad613 Add cirq.merge_k_qubit_unitaries
transformer to replace cirq.MergeSingleQubitGates
optimizer (#4986)
02259630 Deprecate qubit_set in cirq-core/devices (#4965)
43955b32 Allow repeated measurement keys (#4899)
72f9a5be Use CIRCUIT_SERIALIZER as default serializer for quantum engine (#4983)
3c89de16 Use google.auth.default() in cirq_google.get_engine (#4985)
7e785269 Bump follow-redirects from 1.14.7 to 1.14.8 in /cirq-web/cirq_ts (#4993)
dd55a86d Support repeated measurement keys in cirq.Result (#4555)
872b22a3 Update documentation development instructions and codeowners (#4990)
580575c3 In QCS getting started, only install cirq-google (#4991)
87d36326 Make circuit._prev_moment_available
a public method. (#4980)
6dc316d0 Add Cirq 1.0 tab to TP. (#4984)
78950284 Replace AbstractEngineProcessorShim (#4842)
aad6c57a Add transformer primitive to merge connected component of operations in a circuit op (#4974)
9ab327a8 Add cirq.toggle_tags
helper to apply transformers on specific subsets of operations in a circuit (#4973)
4dc6e25f Rewrite cirq.stratified_circuit
following new Transformer API and primitives. (#4944)
169db486 Refactor virtual_engine_factory (#4909)
0bdc9f1e Deferred measurements transformer (#4849)
aed19646 Minor formatting fixes (#4971)
92032c1f Revert "Change TaggedOperation
's __pow__
from returning Operation
to returning TaggedOperation
" (#4966)
aadc56d6 Deperecate {ion,neutral_atom}.qubit_set. (#4943)
eb159072 Deprecate device.qubit_set in cirq_ionq. (#4942)
c3b1b22b Deprecate device.qubit_set in cirq_google. (#4940)
5eae221c DeviceMetadata docs update. (#4963)
c20c99ba Add cirq.eject_phased_paulis
transformer to replace cirq.EjectPhasedPaulis
(#4958)
2d2226a8 Refactor [NoiseModelFrom]NoiseProperties (#4866)
5196dff0 Remove ch-form cyclical dependencies (#4948)
6937e417 Add ClassicalDataStore class to keep track of qubits measured (#4781)
467c68d3 Move default implementation of Result.data into base class (#4949)
41312e80 Add cirq.eject_z
transformer to replace cirq.EjectZ
(#4955)
8b64834b Move cirq/ops/moment.py to cirq/circuits/moment.py (#4932)
6806f6ab Add deep=True
flag to recursively apply transformer primitives to subcircuits. (#4934)
be0429db Use contextlib.contextmanager for assert_logs and assert_deprecated (#4951)
18eba185 Bump simple-get from 3.1.0 to 3.1.1 in /cirq-web/cirq_ts (#4953)
229a9f28 Add expand_composite
transformer to replace ExpandComposite
optimizer (#4946)
18d19db0 remove codeowners windows. (#4950)
4042204a deprecate device.qubit_set in cirq_pasqal. (#4938)
f18fde4f Use group_interchangeable_qubits for qubit comparison in GateOperation (#4941)
a57c5ad8 Missing cirq_google import in command line QCS example (#4939)
84b0a289 Bump @npmcli/arborist from 2.6.2 to 2.10.0 in /cirq-web/cirq_ts (#4937)
8b718904 Fix _compat tests (#4926)
ec445753 Deprecate device.decompose_operation in cirq-core. (#4922)
92878fc5 Add tags_to_ignore
flag to map_operations and merge_operations transformer primitives (#4933)
57e09200 Rename context.ignore_tags to context.tags_to_ignore (#4931)
2f2c7ca7 Add state conversion logic from _create_partial_act_on_args to the corresponding ActOnArgs (#4847)
c8dc720f Deprecate {ion,neutral_atom}.decompose_operation. (#4930)
610b0d4e Deprecate device.decompose_operation in cirq_ionq. (#4925)
d3a122b0 Deprecate device.decompose_operation in cirq_pasqal. (#4927)
c57d8bf7 Deprecate decompose_operation in cirq_google. (#4924)
f0b249f9 Add verult as cirq/google owner (#4929)
4f354ea6 Fix submodule attributes and spec after deprecation (#4920)
9fb7e9c2 Minor cleanup in QCS Getting Started tutorial (#4575)
86c873be Add drop_empty_moments
and drop_negligible_operations
transformers. (#4915)
35e6d21c Deprecate can_add_operation_into_moment. (#4902)
ab61d7fc Add synchronize_terminal_measurements
transformer to replace SynchronizeTerminalMeasurements
(#4911)
8c8ee432 Add asynchronous ability to simulated engine. (#4811)
d7a39063 Change TaggedOperation
's __pow__
from returning Operation
to returning TaggedOperation
(#4916)
275372ed Clean up redundant use of _deprecate_attributes
(#4917)
2dc428b3 Deprecate set_state_vector and set_density_matrix (#4906)
38fcc429 Support adding / deleting operations in (#4912)
2b2a6fed Fix commutation of classical controls (#4872)
4d445c41 Add align_left
/align_right
transformers to replace AlignLeft
/AlignRight
(#4891)
fdf85f0b Support additional **kwargs
with default arguments in Transformer API. (#4890)
8c71ac88 Change engine_validator_test to be deterministic. (#4908)
fd4e834c Deprecate qid_pairs (#4900)
c4dd879d Add Bravyi-Gosset-Liu sampling (#4848)
6d2221f8 Move block_overlapping_deps to _compat.py. (#4904)
e0bbfadb Upgrade cirq-web deps. (#4905)
2faba7aa Update Cirq decomposition to use RZ, RX, CNOT only (#4824)
497cd3db Allow clifford simulator to run as product state (#4844)
b0519b38 Convert cirq.Result to ABC and add ResultDict implementation (#4806)
2c795d2b Update top level module documentation (#4893)
64e2eac1 Increase atol for sub_state_vector() (#4877)
aa9d1846 Bump ipython from 7.22 to 7.31.1 in /dev_tools/requirements/deps (#4898)
37ba2713 revert coverage and notebook packages. (#4896)
12ebe83d Add metadata property for cirq_google devices. (#4869)
ee744bd2 Documentation fix for cirq.Circuit.prev_moment_operating_on
(#4895)
4600f588 Add missing import in README example (#4875)
693ceedb Use a Protocol for TRANSFORMER to ensure common arg names (#4871)
90679d27 Fix backwards incompatible pandas usage. (#4873)
b2fa6428 Add cirq.TensoredConfusionMatrices
for readout error mitigation. (#4854)
c2b86915 Update "Compare to Calibration" tutorial into "Identifying Hardware Changes" with Simultaneous Readout and additional context (#4552)
39ce4f0e add "https://" to first link (#4604)
61196201 Add Transformer API Interface and @cirq.transformer
decorator (#4797)
394b9cf4 Add metadata property to device. (#4868)
e29f47c7 Add / improve CircuitOperation memoizing (#4855)
1be94689 Fix type signature of act_on implementations (#4867)
ee9bd680 Deprecate XmonDevice, Foxtail and Bristlecone. (#4864)
fe80da77 Add default decompositions for XXPowGate
and YYPowGate
which terminate in CZPowGate
. (#4862)
0a0d5f7e Make DensePauliString an iterable (#4861)
a2544479 Fix value_equality_values_cls handling in _value_equality_approx_eq (#4860)
a22269df Fix act-on specialization for all the Clifford simulators (#4748)
8a78e10a Make gate_sets actually optional (#4850)
745ee1b2 Make order of traversal deterministic in merge_operations
primitive (#4764)
7ffc77ca [runtime] QubitPlacer 2 - RandomDevicePlacer (#4719)
bce3002d Deprecate ciruit.device
everywhere. (#4845)
5e12333c Improve consistency between code and docstrings for XEB (#4853)
4cfa8457 Add link to dev environment page in CONTRIBUTING.md (#4843)
3513d136 Bump follow-redirects from 1.14.1 to 1.14.7 in /cirq-web/cirq_ts (#4846)
20b577c2 Avoid copying unnecessary buffers between simulation iterations (#4789)
972b6d44 Remove use of .device
from cirq-aqt (#4812)
ca391cac Add GridDeviceMetadata. (#4839)
33a804b9 Update equalstester in DeviceMetadata. (#4840)
bfa26028 Make PauliMeasurementGate
respect sign of the pauli observable. (#4836)
3a6ad871 Add DeviceMetaData class. (#4832)
89f88b01 Remove use of .device
in contrib. (#4821)
0a12c88a Remove use of .device
in cirq-google. (#4820)
93bbaa85 Do not separate substates when measurements are ignored (#4816)
778d3179 Move GateTabulation and friends to cirq-core as requested in #4461 (#4602)
16345897 Close matplotlib figures after testing (#4810)
bbd965e1 Import transformers/analytical_decompositions/*
methods in optimizers/*
(#4813)
45e7dddd Make test ordering and parametrization reproducible (#4788)
c739edc1 Density Matrix plotting is being fixed (#4805)
b00907a7 Remove uses of .device
in cirq-pasqal in preparation for larger circuit.device deprecation (#4757)
19c965ba Move two/three qubit decompositions from optimizers/
to transformers/analytical_decompositions
(#4809)
979a443f Change Sampler methods to return Sequence instead of List (#4807)
3d111e49 Convert type comments to type annotations (#4808)
c1389ce1 Retain ordering information in conversion. (#4384)
8192ae7b Move optimizers/decompositions.py
to transformers/analytical_decompositions/single_qubit_decompositions.py
(#4799)
3d905011 Fix warning on array creation from ragged sequences (#4801)
09a4667e Upgrade glob-parent to 5.1.2 (#4803)
6bb239f6 Upgrade Ansi-Regex to 5.0.1 (#4802)
58487406 Fix deprecated_submodule conflict with importlib_metadata (#4772)
b60b9f8f Return NotImplemented
from Moment._kraus_()
if self._has_kraus_()
is False (#4794)
4201daa3 Add exponent to the labels of web 3D gates (#4777)
efa08205 Part-2: Move analytical decompositions from cirq/optimizers/
to cirq/transformers/analytical_decompositions/
(#4785)
1812fdd9 Thermal noise model (#4673)
7d6ba34e Use NotImplemented
instead of None
as default value for TaggedOperation._unitary_
(#4795)
1d76e50f Adding files for virtual emulation (#4793)
95127231 Speed up simplification of CNOTs in _simplify_commuting_cnots (#4626)
894d49e0 Fix the deprecation warning for ClassicallyControlledOperation
(#4780)
d58b58ba Fix ResetGate to work with MPS, StabilizerSampler (#4765)
58f6a6f4 Add classes to aid in providing simulated versions of devices (#4747)
01ae51ee Move optimizers/two_qubit_state_preparation.py
to transformers/analytical_decompositions/two_qubit_state_preparation.py
(#4762)
9581e650 Fix ignore_measurement_results=True for subcircuits (#4760)
9aede582 Sanitize type annotations in cirq.circuits (#4776)
ff671ae2 Allow sympy expressions as classical controls (#4740)
65d783ed [cirqflow] Convenience method for loading results (#4720)
5da63350 Unroll circuit_op when validating containment in a gateset (#4770)
e9b62583 Sanitize type annotations in cirq.sim (#4773)
1d27a006 Fix str/repr explosion in separated states (#4518)
4ebfb1c8 Scoping for control keys (#4736)
e7892c3e Add json resolvers for sympy relational operators (#4767)
1d8d2f38 Implement PauliStringPhasorGate (#4696)
2e60ca1e Add AbstractEngine objects to cirq_google.engine init (#4759)
c33bd9bd Add JSON serialization support for QasmUGate (#4750)
645692e6 Ignore deprecation warnings from protobufs (#4751)
11457220 Bump tar from 6.1.0 to 6.1.11 in /cirq-web/cirq_ts (#4755)
a7ca3e57 Bump path-parse from 1.0.6 to 1.0.7 in /cirq-web/cirq_ts (#4754)
ce1a2422 Fix qasm output for bitmasked measurements (#4756)
ac5b7ca5 Move cirq.vis
methods to the outer cirq package (#4752)
807a24de Insertion noise model (#4672)
ca09f4c2 Upgrade pinned black
version (#4753)
3becbbc5 Move optimizers/transformer_primitives.py to transformers/transformer_primitives.py (#4746)
9cf2748c Fix scipy.linalg import in swap_gates_test (#4749)
876bad4f Allow sourcing of dev_tools/pypath from any path (#4739)
132005a2 Utilities for approximate hardware noise (#4671)
b7bfb10a QASM parsing for classical controls (#4738)
e207415f Implement GlobalPhaseGate (#4697)
d419ef5a Add merge_operations
and merge_moments
transformer primitives (#4708)
e97768c6 Classical control (#4631)
45fd829c Add missing _has_*_
methods (#4735)
5ae8a2e4 Circuit superoperator (#4550)
5ee7ff62 Support FrozenCircuit incg.Engine
(#4731)
a0497a41 Add runtime estimator (#4718)
5cd5662b Change Engine to implement AbstractEngine (#4723)
7bce81da Support serialization of Gatesets (#4724)
ec79736b Efficient 2q state preparation methods using CZ and SQRT_ISWAP (#4707)
fe7fa122 [runtime] QubitPlacer part 1 (#4700)
9053a272 Support serialization of GateFamilies (#4715)
72599254 format-incremental - store modified files in bash array (#4717)
1bf3f573 Fix operator_spaces.py::kron_bases initial value (#4716)
973b2c7b Simulated Engine Implementation (#4638)
5a30119f Always use bash arrays for changed files and directories (#4703)
d7611dc6 Remove non-deterministic hash from circuit diagram. (#4712)
1d57c819 pylint - enable check for f-string-without-interpolation (#4706)
43a32804 Don't invoke json_cirq_type if cirq_type is defined...for now. (#4711)
48397d66 Move "cirq_type" responsibility to protocols (#4704)
d42e0583 Named topology reprs (#4701)
42ac9daf Support and test type serialization (#4693)
272350de Add map_operations
and map_moments
transformer primitives (#4692)
e3110590 Rename (qubits+cbits) to labels (#4675)
a75b215f Add Local implementation of abstract engine classes (#4645)
5be2a9b8 Clarify runtime of gateset contains (#4694)
80e84744 Add double-line diagrams for control keys (#4627)
1d7436ff Add Abstract Engine Interface (#4644)
3af7e895 Remove op validation when inserting into Circuit (#4669)
46cb62f9 Add a test to ensure reset does not collapse density matrix (#4682)
1ea60617 Enforce LineQubit type for IonDevices (#4690)
1ba60465 Fix remaining documentation lint (#4689)
bfe52b50 Unwind some delayed imports using LazyLoader (#4681)
c15af92d Add sxdg, now that it is supported by qiskit (#4688)
1360fb68 Reducing documentation lint errors even further (#4687)
a1b46ddc Removing 0.14.0.dev -> 0.14.0
33580bb9 Rename TestDevice -> FakeDevice to avoid pytest confusion (#5066)
45624ff7 Add support for deep=True flag in cg.optimized_for_sycamore
and cg.SycamoreTargetGateset
transformers (#5126)
cdd3f8ce DeviceSpecification proto updates (#5056)
091582ee Bugfix in handling of deep=True flag in cirq.merge_k_qubit_unitaries
transformer (#5125)
89e7210e Add support for deep=True to cirq.optimize_for_target_gateset
transformer (#5124)
518d828f Add support for deep=True to merge_single_qubit_gates* transformers (#5123)
92d19f66 Add support for deep=True to cirq.merge_k_qubit_unitaries transformer (#5122)
64a6723f Add support for deep=True to cirq.eject_z
transformer (#5115)
04d58c4e Add support for deep=True to cirq.align_left
and cirq.align_right
transformers (#5112)
ca4bb722 Add support for deep=True to cirq.eject_phased_paulis
transformer (#5116)
d2f284d8 Add support for deep=True to cirq.expand_composite
transformer (#5119)
b45e63d8 Add support for deep=True to cirq.synchronize_terminal_measurements
transformer (#5118)
155f6074 Add support for deep=True to cirq.stratified_circuit
transformer (#5117)
869d83b8 Add support for deep=True to cirq.drop_negligible_operations
transformer (#5114)
fade070c Add support for deep=True to cirq.drop_empty_moments
transformer (#5113)
cfa255a1 Add add_deep_support
flag to @cirq.transformer
decorator (#5108)
aed4eb8a Bugfixes in handling nested tags_to_ignore + deep=True in cirq.map_moments
and cirq.map_operations
transformer primitives (#5109)
e0a64dd2 Extract BufferedDM/SV/MPS from ActOnDM/SV/MPSArgs (#4979)
d3c48530 Add assert_decompose_ends_at_default_gateset
to consistent protocols test to ensure all cirq gates decompose to default gateset (#5107)
6af53872 Add support for deep=True flag to remaining transformer primitives (#5106)
26939516 Improve support for recursively applying transformer primitives on circuit operations using deep=True
(#5103)
caadb0c3 Deprectate log_of_measurement_result input (#5100)
848bfde6 Add default decomposition for cirq.QubitPermutationGate in terms of adjacent swaps (#5093)
e0f74324 Deprecate cirq_google.ConvertToXmonGates
and replace with cirq.CZTargetGateset
+ cirq.optimize_for_target_gateset
(#5096)
a7df5790 Replace _PhasedFSimConverter in cirq_google with new transformer primitives (#5095)
1f470826 Extend default decomposition of cirq.ControlledGate
and cirq.ControlledOperation
to end in X/Y/Z/CZ target gateset (#5091)
90e70c63 Order of keys shouldn't matter when comparing cirq.google.KeyValueExecutableSpec (#5073)
b2d8dd96 Add to_dict() to KeyValueExecutableSpec (#5072)
c1536646 Serialize QubitPermutationGate. (#5092)
66dd5080 Add support for decompositions of parameterized cirq.CCZPowGate
(#5087)
ded5d172 Adds default decompositions for cirq.MatrixGate
into X/Y/Z/CZ target gateset. (#5088)
098617c5 Add support for decompositions of parameterized cirq.DiagonalGate
(#5085)
2fb5651b Add default decomposition for cirq.TwoQubitDiagonalGate (#5084)
28f90b05 Support decomposition of parameterized gates in cirq.PhasedXPowGate (#5083)
765ccfee Add assert_decompose_ends_at_default_gateset consistency test (#5079)
083d2e5d Remove reference to deprecated readthedocs documentation in Contribute page (#4988)
701f62c3 Add return type annotation on MeasurementGate.full_invert_mask (#5080)
fa473b44 Allow repetitions to be parameterized (#5043)
7a5c20e4 Allow partial state vector function to handle qudits (#5077)
9ae8f1ee Add SuperconductingQubitsNoiseProperties (#4964)
889e5d22 Add cg.SycamoreTargetGateset
and deprecate cg.ConvertToSycamoreGates
(#5054)
c76bbc70 Fix state vector factorization validation (#5076)
bfc04b82 Remove public fields from fsim (#5075)
d8652be4 Remove public fields for pauli ops (#5062)
27f92aef Wrap private fields for DensePauliString (#5064)
097544e5 Remove public fields from subop gates and ops (#5074)
120f296d Remove public fields for measurement and controlled ops (#5061)
013498ff Rename two_qubit_matrix related functions (#5070)
2792f384 Call decompose_once in TaggedOperation (#5071)
d967317c Update getting started notebook (#5046)
785c5c12 Change ValueError to assertion in clifford_optimize (#5060)
9cefed8c [cg.workflow] Consistent get_sampler()
(#5030)
3cdf8963 Pin sympy version to <1.10 (#5059)
557cdeca Adjust runtime estimator for high numbers of qubits (#5049)
cff7a8e7 Add type annotations to method overrides in child classes (#5051)
d89baa34 Add some types to equals_tester.py
(#5053)
4ddcd5f1 Refactors convert_to_sycamore_gates
to abstract out analytical decomposition methods in cirq_google.two_qubit_to_sycamore
(#5044)
3c1c8022 Add repeat-until functionality to subcircuits (#5018)
d90b09c2 Move serialize_program and serialize_run_context into EngineContext (#5034)
d5be95ff Recursive subop parameter resolution (#5033)
5ff22ce9 Add functools.cached_property
backport (#5031)
d2ae1e49 BooleanHamiltonianGate implementation (#4705)
8d658063 Update Sampler.run_async signature to match Sampler.run (#5036)
8bc6915f Fix subcircuits with zero reps (#5038)
305cc7dd Deprecate cirq.ConvertToSqrtIswapGates and cirq.MergeInteractionsToSqrtIswap (#5040)
6c45d9cc Add cirq.SqrtIswapTargetGateset
for (parameterized & non-parameterized) compilation to sqrt iswaps. (#5025)
47098b6d Use f-strings consistently in engine_client.py helpers (#5037)
d6966352 Add show_error_codes option to mypy config (#5032)
853dde3a Fix run_batch results format for SimulatedLocalProcessor (#5026)
a9e6e4e8 Update quantum_run_stream to not prefetch first result (#5024)
741e93ca Deprecate ignore_measurement_results (#4978)
452dbea2 Add missing Arg in SimulatedLocalProcessor (#5027)
2d6c8bd8 Fail fast on measurements in has_unitary (#5020)
43b37fa5 Add better repr for EngineProcessor (#5022)
387187d3 Add cirq.CZTargetGateset
to replace cirq.ConvertToCZAndSingleGates
and cirq.MergeInteractions
(#5007)
afb62da0 Use parallel pytest in the CI checks (#5006)
6f9e277d [cg.workflow] Update str(ProcessorRecord) (#5012)
43527c88 Permit 2D _run output for backwards compatibility. (#5014)
d3d44cb5 Serialize results with repeated measurements (#5019)
32f319dc Sets tolerance to 1.0e-8 by default in equivalence assertion (#5017)
bded331c Allow flattening of subcircuits (#4997)
ddefd846 BugFix in cirq.merge_moments
to correctly handle new empty moments. (#5013)
31776478 Reject multiplication of cirq.PauliSum
inside in cirq.PauliString
(#5010)
ca4c8e7c Replace fields with properties in ActOnArgs (#5011)
1bbbc9f4 Multiple Qubits Clifford Gate (#4791)
59b72a1e Add cirq.convert_to_target_gateset
transformer and cirq.CompilationTargetGateset
interface (#5005)
35173066 Add isolated qubit functionality for gridmetadata. (#5001)
6c2b3766 Update bell_inequality.py (#4998)
a2f04f19 Add caching to CI. (#4999)
a016e527 Add clean_operations
flag to cirq.two_qubit_matrix_to_sqrt_iswap_operations
(#5002)
7c5ad613 Add cirq.merge_k_qubit_unitaries
transformer to replace cirq.MergeSingleQubitGates
optimizer (#4986)
02259630 Deprecate qubit_set in cirq-core/devices (#4965)
43955b32 Allow repeated measurement keys (#4899)
72f9a5be Use CIRCUIT_SERIALIZER as default serializer for quantum engine (#4983)
3c89de16 Use google.auth.default() in cirq_google.get_engine (#4985)
7e785269 Bump follow-redirects from 1.14.7 to 1.14.8 in /cirq-web/cirq_ts (#4993)
dd55a86d Support repeated measurement keys in cirq.Result (#4555)
872b22a3 Update documentation development instructions and codeowners (#4990)
580575c3 In QCS getting started, only install cirq-google (#4991)
87d36326 Make circuit._prev_moment_available
a public method. (#4980)
6dc316d0 Add Cirq 1.0 tab to TP. (#4984)
78950284 Replace AbstractEngineProcessorShim (#4842)
aad6c57a Add transformer primitive to merge connected component of operations in a circuit op (#4974)
9ab327a8 Add cirq.toggle_tags
helper to apply transformers on specific subsets of operations in a circuit (#4973)
4dc6e25f Rewrite cirq.stratified_circuit
following new Transformer API and primitives. (#4944)
169db486 Refactor virtual_engine_factory (#4909)
0bdc9f1e Deferred measurements transformer (#4849)
aed19646 Minor formatting fixes (#4971)
92032c1f Revert "Change TaggedOperation
's __pow__
from returning Operation
to returning TaggedOperation
" (#4966)
aadc56d6 Deperecate {ion,neutral_atom}.qubit_set. (#4943)
eb159072 Deprecate device.qubit_set in cirq_ionq. (#4942)
c3b1b22b Deprecate device.qubit_set in cirq_google. (#4940)
5eae221c DeviceMetadata docs update. (#4963)
c20c99ba Add cirq.eject_phased_paulis
transformer to replace cirq.EjectPhasedPaulis
(#4958)
2d2226a8 Refactor [NoiseModelFrom]NoiseProperties (#4866)
5196dff0 Remove ch-form cyclical dependencies (#4948)
6937e417 Add ClassicalDataStore class to keep track of qubits measured (#4781)
467c68d3 Move default implementation of Result.data into base class (#4949)
41312e80 Add cirq.eject_z
transformer to replace cirq.EjectZ
(#4955)
8b64834b Move cirq/ops/moment.py to cirq/circuits/moment.py (#4932)
6806f6ab Add deep=True
flag to recursively apply transformer primitives to subcircuits. (#4934)
be0429db Use contextlib.contextmanager for assert_logs and assert_deprecated (#4951)
18eba185 Bump simple-get from 3.1.0 to 3.1.1 in /cirq-web/cirq_ts (#4953)
229a9f28 Add expand_composite
transformer to replace ExpandComposite
optimizer (#4946)
18d19db0 remove codeowners windows. (#4950)
4042204a deprecate device.qubit_set in cirq_pasqal. (#4938)
f18fde4f Use group_interchangeable_qubits for qubit comparison in GateOperation (#4941)
a57c5ad8 Missing cirq_google import in command line QCS example (#4939)
84b0a289 Bump @npmcli/arborist from 2.6.2 to 2.10.0 in /cirq-web/cirq_ts (#4937)
8b718904 Fix _compat tests (#4926)
ec445753 Deprecate device.decompose_operation in cirq-core. (#4922)
92878fc5 Add tags_to_ignore
flag to map_operations and merge_operations transformer primitives (#4933)
57e09200 Rename context.ignore_tags to context.tags_to_ignore (#4931)
2f2c7ca7 Add state conversion logic from _create_partial_act_on_args to the corresponding ActOnArgs (#4847)
c8dc720f Deprecate {ion,neutral_atom}.decompose_operation. (#4930)
610b0d4e Deprecate device.decompose_operation in cirq_ionq. (#4925)
d3a122b0 Deprecate device.decompose_operation in cirq_pasqal. (#4927)
c57d8bf7 Deprecate decompose_operation in cirq_google. (#4924)
f0b249f9 Add verult as cirq/google owner (#4929)
4f354ea6 Fix submodule attributes and spec after deprecation (#4920)
9fb7e9c2 Minor cleanup in QCS Getting Started tutorial (#4575)
86c873be Add drop_empty_moments
and drop_negligible_operations
transformers. (#4915)
35e6d21c Deprecate can_add_operation_into_moment. (#4902)
ab61d7fc Add synchronize_terminal_measurements
transformer to replace SynchronizeTerminalMeasurements
(#4911)
8c8ee432 Add asynchronous ability to simulated engine. (#4811)
d7a39063 Change TaggedOperation
's __pow__
from returning Operation
to returning TaggedOperation
(#4916)
275372ed Clean up redundant use of _deprecate_attributes
(#4917)
2dc428b3 Deprecate set_state_vector and set_density_matrix (#4906)
38fcc429 Support adding / deleting operations in (#4912)
2b2a6fed Fix commutation of classical controls (#4872)
4d445c41 Add align_left
/align_right
transformers to replace AlignLeft
/AlignRight
(#4891)
fdf85f0b Support additional **kwargs
with default arguments in Transformer API. (#4890)
8c71ac88 Change engine_validator_test to be deterministic. (#4908)
fd4e834c Deprecate qid_pairs (#4900)
c4dd879d Add Bravyi-Gosset-Liu sampling (#4848)
6d2221f8 Move block_overlapping_deps to _compat.py. (#4904)
e0bbfadb Upgrade cirq-web deps. (#4905)
2faba7aa Update Cirq decomposition to use RZ, RX, CNOT only (#4824)
497cd3db Allow clifford simulator to run as product state (#4844)
b0519b38 Convert cirq.Result to ABC and add ResultDict implementation (#4806)
2c795d2b Update top level module documentation (#4893)
64e2eac1 Increase atol for sub_state_vector() (#4877)
aa9d1846 Bump ipython from 7.22 to 7.31.1 in /dev_tools/requirements/deps (#4898)
37ba2713 revert coverage and notebook packages. (#4896)
12ebe83d Add metadata property for cirq_google devices. (#4869)
ee744bd2 Documentation fix for cirq.Circuit.prev_moment_operating_on
(#4895)
4600f588 Add missing import in README example (#4875)
693ceedb Use a Protocol for TRANSFORMER to ensure common arg names (#4871)
90679d27 Fix backwards incompatible pandas usage. (#4873)
b2fa6428 Add cirq.TensoredConfusionMatrices
for readout error mitigation. (#4854)
c2b86915 Update "Compare to Calibration" tutorial into "Identifying Hardware Changes" with Simultaneous Readout and additional context (#4552)
39ce4f0e add "https://" to first link (#4604)
61196201 Add Transformer API Interface and @cirq.transformer
decorator (#4797)
394b9cf4 Add metadata property to device. (#4868)
e29f47c7 Add / improve CircuitOperation memoizing (#4855)
1be94689 Fix type signature of act_on implementations (#4867)
ee9bd680 Deprecate XmonDevice, Foxtail and Bristlecone. (#4864)
fe80da77 Add default decompositions for XXPowGate
and YYPowGate
which terminate in CZPowGate
. (#4862)
0a0d5f7e Make DensePauliString an iterable (#4861)
a2544479 Fix value_equality_values_cls handling in _value_equality_approx_eq (#4860)
a22269df Fix act-on specialization for all the Clifford simulators (#4748)
8a78e10a Make gate_sets actually optional (#4850)
745ee1b2 Make order of traversal deterministic in merge_operations
primitive (#4764)
7ffc77ca [runtime] QubitPlacer 2 - RandomDevicePlacer (#4719)
bce3002d Deprecate ciruit.device
everywhere. (#4845)
5e12333c Improve consistency between code and docstrings for XEB (#4853)
4cfa8457 Add link to dev environment page in CONTRIBUTING.md (#4843)
3513d136 Bump follow-redirects from 1.14.1 to 1.14.7 in /cirq-web/cirq_ts (#4846)
20b577c2 Avoid copying unnecessary buffers between simulation iterations (#4789)
972b6d44 Remove use of .device
from cirq-aqt (#4812)
ca391cac Add GridDeviceMetadata. (#4839)
33a804b9 Update equalstester in DeviceMetadata. (#4840)
bfa26028 Make PauliMeasurementGate
respect sign of the pauli observable. (#4836)
3a6ad871 Add DeviceMetaData class. (#4832)
89f88b01 Remove use of .device
in contrib. (#4821)
0a12c88a Remove use of .device
in cirq-google. (#4820)
93bbaa85 Do not separate substates when measurements are ignored (#4816)
778d3179 Move GateTabulation and friends to cirq-core as requested in #4461 (#4602)
16345897 Close matplotlib figures after testing (#4810)
bbd965e1 Import transformers/analytical_decompositions/*
methods in optimizers/*
(#4813)
45e7dddd Make test ordering and parametrization reproducible (#4788)
c739edc1 Density Matrix plotting is being fixed (#4805)
b00907a7 Remove uses of .device
in cirq-pasqal in preparation for larger circuit.device deprecation (#4757)
19c965ba Move two/three qubit decompositions from optimizers/
to transformers/analytical_decompositions
(#4809)
979a443f Change Sampler methods to return Sequence instead of List (#4807)
3d111e49 Convert type comments to type annotations (#4808)
c1389ce1 Retain ordering information in conversion. (#4384)
8192ae7b Move optimizers/decompositions.py
to transformers/analytical_decompositions/single_qubit_decompositions.py
(#4799)
3d905011 Fix warning on array creation from ragged sequences (#4801)
09a4667e Upgrade glob-parent to 5.1.2 (#4803)
6bb239f6 Upgrade Ansi-Regex to 5.0.1 (#4802)
58487406 Fix deprecated_submodule conflict with importlib_metadata (#4772)
b60b9f8f Return NotImplemented
from Moment._kraus_()
if self._has_kraus_()
is False (#4794)
4201daa3 Add exponent to the labels of web 3D gates (#4777)
efa08205 Part-2: Move analytical decompositions from cirq/optimizers/
to cirq/transformers/analytical_decompositions/
(#4785)
1812fdd9 Thermal noise model (#4673)
7d6ba34e Use NotImplemented
instead of None
as default value for TaggedOperation._unitary_
(#4795)
1d76e50f Adding files for virtual emulation (#4793)
95127231 Speed up simplification of CNOTs in _simplify_commuting_cnots (#4626)
894d49e0 Fix the deprecation warning for ClassicallyControlledOperation
(#4780)
d58b58ba Fix ResetGate to work with MPS, StabilizerSampler (#4765)
58f6a6f4 Add classes to aid in providing simulated versions of devices (#4747)
01ae51ee Move optimizers/two_qubit_state_preparation.py
to transformers/analytical_decompositions/two_qubit_state_preparation.py
(#4762)
9581e650 Fix ignore_measurement_results=True for subcircuits (#4760)
9aede582 Sanitize type annotations in cirq.circuits (#4776)
ff671ae2 Allow sympy expressions as classical controls (#4740)
65d783ed [cirqflow] Convenience method for loading results (#4720)
5da63350 Unroll circuit_op when validating containment in a gateset (#4770)
e9b62583 Sanitize type annotations in cirq.sim (#4773)
1d27a006 Fix str/repr explosion in separated states (#4518)
4ebfb1c8 Scoping for control keys (#4736)
e7892c3e Add json resolvers for sympy relational operators (#4767)
1d8d2f38 Implement PauliStringPhasorGate (#4696)
2e60ca1e Add AbstractEngine objects to cirq_google.engine init (#4759)
c33bd9bd Add JSON serialization support for QasmUGate (#4750)
645692e6 Ignore deprecation warnings from protobufs (#4751)
11457220 Bump tar from 6.1.0 to 6.1.11 in /cirq-web/cirq_ts (#4755)
a7ca3e57 Bump path-parse from 1.0.6 to 1.0.7 in /cirq-web/cirq_ts (#4754)
ce1a2422 Fix qasm output for bitmasked measurements (#4756)
ac5b7ca5 Move cirq.vis
methods to the outer cirq package (#4752)
807a24de Insertion noise model (#4672)
ca09f4c2 Upgrade pinned black
version (#4753)
3becbbc5 Move optimizers/transformer_primitives.py to transformers/transformer_primitives.py (#4746)
9cf2748c Fix scipy.linalg import in swap_gates_test (#4749)
876bad4f Allow sourcing of dev_tools/pypath from any path (#4739)
132005a2 Utilities for approximate hardware noise (#4671)
b7bfb10a QASM parsing for classical controls (#4738)
e207415f Implement GlobalPhaseGate (#4697)
d419ef5a Add merge_operations
and merge_moments
transformer primitives (#4708)
e97768c6 Classical control (#4631)
45fd829c Add missing _has_*_
methods (#4735)
5ae8a2e4 Circuit superoperator (#4550)
5ee7ff62 Support FrozenCircuit incg.Engine
(#4731)
a0497a41 Add runtime estimator (#4718)
5cd5662b Change Engine to implement AbstractEngine (#4723)
7bce81da Support serialization of Gatesets (#4724)
ec79736b Efficient 2q state preparation methods using CZ and SQRT_ISWAP (#4707)
fe7fa122 [runtime] QubitPlacer part 1 (#4700)
9053a272 Support serialization of GateFamilies (#4715)
72599254 format-incremental - store modified files in bash array (#4717)
1bf3f573 Fix operator_spaces.py::kron_bases initial value (#4716)
973b2c7b Simulated Engine Implementation (#4638)
5a30119f Always use bash arrays for changed files and directories (#4703)
d7611dc6 Remove non-deterministic hash from circuit diagram. (#4712)
1d57c819 pylint - enable check for f-string-without-interpolation (#4706)
43a32804 Don't invoke json_cirq_type if cirq_type is defined...for now. (#4711)
48397d66 Move "cirq_type" responsibility to protocols (#4704)
d42e0583 Named topology reprs (#4701)
42ac9daf Support and test type serialization (#4693)
272350de Add map_operations
and map_moments
transformer primitives (#4692)
e3110590 Rename (qubits+cbits) to labels (#4675)
a75b215f Add Local implementation of abstract engine classes (#4645)
5be2a9b8 Clarify runtime of gateset contains (#4694)
80e84744 Add double-line diagrams for control keys (#4627)
1d7436ff Add Abstract Engine Interface (#4644)
3af7e895 Remove op validation when inserting into Circuit (#4669)
46cb62f9 Add a test to ensure reset does not collapse density matrix (#4682)
1ea60617 Enforce LineQubit type for IonDevices (#4690)
1ba60465 Fix remaining documentation lint (#4689)
bfe52b50 Unwind some delayed imports using LazyLoader (#4681)
c15af92d Add sxdg, now that it is supported by qiskit (#4688)
1360fb68 Reducing documentation lint errors even further (#4687)
9fde1b55 Fix check/mypy-next (#4686)
2e3e5f39 Fix mistakes in circuit tutorial and add picture (#4677)
ca0401f2 Deprecate from_single_parameter_set on Result (#4680)
8374b716 Removing more documentation lint (#4679)
cd4feda2 Documentation fixes continue (#4670)
a28d601b Fix test that are failing on aarch64-linux due to precision (#4674)
b263acb4 More documentation fixes (#4668)
21ed680f Small clarification in development.md (#4663)
c647079b Add cirq_google.FSimGateFamily
class. (#4586)
dc6f5692 Add pretty repr to devices and result types (#4649)
54286063 Add docker and docker compose to dev install (#4661)
3c0ca4b6 More documentation fixes (#4654)
dcaacd6b Even more documentation lint (#4662)
ca05b0ec Bump version of qiskit-aer in dev-tools (#4659)
5fdf7643 Add parameter resolution and other utility methods to _InverseCompositeGate (#4656)
c5477cb8 Update ecosystem (#4651)
e4d0467b Optimize parameter sweeps to cache unparameterized prefixes (#4533)
13e0225c Fix measurement keys in subcircuits with parent_path (#4616)
a4f55618 Add LazyLoader for delayed imports of slow modules (#4653)
83c440f0 Ensure subcircuit.mapped_circuit applies parent path if no repetitions (#4619)
2f123fb0 Fix num_qubits property on AsymetricDepolarizing Channel (#4652)
2cfeef07 Remove remaining uses of cirq.google in docs/ . (#4650)
321ce634 Delay import of scipy stats and optimize (#4643)
6fdad5f1 Remove deprecated use of cirq.google
in install guide (#4647)
6f71b55f Fix FSim serialization for zeros and ints (#4646)
1f0fc1de More lint documentation fixes. (#4641)
72f831d5 Fix importlib.abc and type madness in _import (#4642)
3b2b2d83 Fixes for documentation (#4635)
017e9a71 [cirqflow] Factor out FilesystemSaver (#4614)
cf06adf7 [cirqflow] Factor out PrintLogger (#4613)
7c36cefb Named topologies: support manual placement (#4628)
eb1d9031 Fix operator spaces test which fails due to precision (#4636)
aaf95a8c Fix lint errors (#4634)
ab335e6b Pass shell script arguments without splitting (#4629)
d1e7228a pylint - enforce singleton-comparison check (#4625)
00230f0e Add control_keys protocol (simplified) (#4610)
d137a7d6 Validating Sampler (#4609)
2f7dfded mixture not matrix in noise notebook (#4621)
18515858 Fix SVGCircuit()
for cirq.Circuit
with empty moments (#4535)
3df15e3d Fix lint bugs with unused imports (#4622)
64df1fc3 Implement PhasedXZGate.unitary (#4617)
4985a516 Remove EngineTimeSlot (#4608)
bb4468c2 [cirqflow] Execution Loop I/O (#4599)
74ed369a Add CODEOWNERS for rigetti (#4543)
1bb75540 Add a copyright checker as a pylint plugin (#4577)
21b9be30 Flush v0.14.0 deprecation backlog. (#4601)
c7d420bc Json serialize MSGate
(#4605)
ec9fc450 Add jobs filtering by executed and scheduled processor IDs (#4589)
009b3dae Flush missed v0.13 backlog items. (#4600)
954a7b61 [cirqflow] Quantum runtime skeleton - part 3 (#4584)
ca25c423 Qcircuit exponent (#4593)
Source code(tar.gz)
Source code(zip)
cirq-0.14.0-py3-none-any.whl(7.58 KB)
cirq_aqt-0.14.0-py3-none-any.whl(18.82 KB)
cirq_core-0.14.0-py3-none-any.whl(1.70 MB)
cirq_google-0.14.0-py3-none-any.whl(528.87 KB)
cirq_ionq-0.14.0-py3-none-any.whl(47.66 KB)
cirq_pasqal-0.14.0-py3-none-any.whl(29.98 KB)
cirq_rigetti-0.14.0-py3-none-any.whl(55.05 KB)
cirq_web-0.14.0-py3-none-any.whl(580.07 KB)