v1.4.0
Cirq v1.4.0 release
Summary
Added support for Python 3.12 and increased minimum Python version to 3.10.
Removal of cirq-ft
The cirq-ft package introduced in 1.2.0 was deleted after its move to the
Qualtran repository at https://github.com/quantumlib/Qualtran.git.
Please use that repository for fault-tolerant resource estimation needs.
cirq-core
Added cirq.UniformSuperpositionGate
for creating uniform superposition
from a subset of n-qubit basis states. Added transformer that implements
dynamical decoupling for idle moments in a circuit. Added cirq.UNIT_SWEEP
as an alias for the cirq.UnitSweep
but with a constant-style name.
Exposed the Mølmer–Sørensen MSGate
at the top level cirq namespace.
cirq-google
Removed functions create_calibration_program
and create_batch_program
.
Added tag class FSimViaModelTag
to enable execution of the FSimGate
using polynomial model.
A Huge Thank You
Thank you to all our contributors for this release:
Bicheng Ying, Cheng Xing, Dax Fohl, Doug Strain, Eliott Rosenberg,
Greg Kahanamoku-Meyer, jbrixon, Josha91, kenya-sk, Lawal Olufowobi,
Matthew Harrigan, Matthew Neeley, Miguel Costa, Nour Yosri, Pavol Juhas,
Pragya Jain, Prakhar Bhatnagar, Renyi Chen, richrines1, Sam Burdick,
Seneca Meeks, Tanuj Khattar, William Courtney, Yury Shefer
What's Changed
ab86979 Flush deprecations before minor release (#6622)
a9776d0 Nicer string representation for InverseCompositeGate (#6262)
2cfdf1f Add convenience methods to create PhasedXZ gate from ZYZ decomposition (#6569)
1a8caa4 Proper text files end with a newline character (#6614)
778e9e9 Freshen-up cirq dependencies (#6616)
e4b6ab2 Fix spurious failure of the check/all script (#6611)
ee4d702 enable simulation of controlled gates in classical simulator (#6589)
528b2d2 Update list of pre-release notebooks (#6609)
e11d297 Fix nightly build of the staging cirq website (#6615)
f246c2b Add Quantum Engine Support for InternalGate (#6613)
aa04196 Create a generalized uniform superposition state gate (#6506)
df07e94 Release pins from all pytest-related packages (#6602)
bf67f29 CI - deflake Isolated pytest Ubuntu
(#6603)
cf86dda Suppress superfluous warnings from numpy (#6599)
2a907bf Delete cirq_ft (#6596)
3160056 CI - deflake Isolated pytest Ubuntu
(#6593)
ee2b78f Optimise QubitPermutationGate decomposition (#6588)
9ddb8c8 Add a note about conda env to dev doc (#6592)
f79f902 Implement dynamical decoupling. (#6515)
f6bfb7f NEP-29 - enforce minimum Python version 3.10 (#6591)
46eab2d Support Python 3.12 (#6516)
bfba965 Avoid DivisionByZero error when TensorNetwork simplifies to a scalar (#6586)
69e3de1 Optimize Clifford.pow by using binary exponentiation (#6581)
3080d93 Add a new gauge for SqrtCZ and support SqrtCZ† and fix and improve spin inversion gauge (#6571)
614c78a Set maxsize of request queue to Quantum Engine (#6576)
37e8df9 Escape & in SVG diagrams (#6579)
2474d47 Removed deprecated processor_ids (#6563)
5828147 Fix __len__
of empty Product sweep to match actual length (#6575)
3ff41a4 CI - downgrade to macos-13 which has the needed Python versions (#6578)
e1b03ef Update AQT Backend (#6441)
21986dd Add UNKNOWN status code to retryable Quantum Engine errors (#6565)
2eb6d63 Add Quantum Engine support for cirq.CZPowGate (#6562)
7b7c93d check/all - exit with error status if any of checks failed (#6561)
d16b12c Avoid state vector normalization if it worsens the round offs (#6556)
c18feed display tags by str
instead of repr
in circuit diagrams (#6530)
1bec6b5 Improve repr of _BaseAncillaQid
classes with prefix (#6555)
436c937 Remove the --pre
option from verify-published-package.sh (#6536)
857e202 Bugfix in comparison_key
and nicer with_dimension
of _BaseAncillaQid
(#6554)
9ab6601 Loosen the scipy condition in requirements.txt (#6549)
7792dac Remove doc references to stale gitter channel (#6540)
b8f0663 Add FSimViaModel Gate into device.proto (#6548)
bc3f9ff CI - migrate to docker compose v2 (#6547)
f9f0d66 Introduce gauge compilation (#6526)
45c5fa3 Ensure the result of simulation is normalized (#6522)
acb7bf8 pin scipy to ~1.12.0 to temporarily fix ci (#6545)
f955650 Add Serialization and Deserialization Support of FSimViaModelTag. (#6539)
7b97ead Fix density matrix references in other simulators (#6537)
fc3cc70 Add FSimViaModelTag (#6527)
2e28ae1 Undo temporary version pin of mpmath (#6535)
5a479db Install cirq pre-release with stable dependencies (#6534)
e5ad426 Fix ci-daily workflow failures on Mac OS X (#6532)
46e4483 Initialize processor sampler with the default device config key (#6521)
edd8393 Merge serializable_forms and deserialized_forms (#6520)
edda3a5 Add UNIT_SWEEP as an alias for UnitSweep (#6518)
83382ae Add documentation to cirq.decompose protocol regarding specific target gateset (#6439)
632f8b3 Ignore Python code formatting in git blame (#6514)
527af77 Add newly serializable gates to supported grid device gates (#6499)
1a6c16a Format all files with black-24.3.0 (#6513)
42927b8 Fix capitalization of GitHub in docs (#6509)
a2425eb Update ClassicalSimulator to confirm to simulation abstraction (#6432)
7780c01 Preserve circuit tags in transformer_primitives.map_operations (#6505)
dadfdcb Added MSGate
to top level (#6466)
0f4822b update parallel XEB notebook (#6494)
2700f95 Remove python3.9 from CI tests (#6495)
dc1065d Update T1 experiment (#6487)
bc76660 Add serialization support to more gates (#6479)
4513892 Update start notebook to use get_engine
instead of get_qcs_objects_for_notebook
(#6483)
6dbac6b Add new get_hardware_engine_and_authenticate_user
(#6485)
d75d43f Add warning when converting global phase operator to OpenQASM 2.0 (#6476)
eef7c5c Enable test_docker_pre after pinning the mpmath transitive dependency (#6481)
78f05f4 Fix maximum version limit for mpmath (#6482)
e11132e Fix mpmath version to 1.3.0 due to incompatibility with sympy (#6477)
02d29a9 Support serialization of cirq-google.CouplerPulse gate (#6472)
598c84f Add a convenience method that runs both RB and XEB (#6471)
e76702f No longer support create_calibration_program
and create_batch_program
(#6442)
33eea01 Rework SerializableByKey handling to improve performance (#6469)
a4ec796 Address NumPy and NotImplemented deprecation warnings (#6465)
a8bd9a5 Change str of ResultDict to print out repeated measurements (#6468)
d432730 Bugfix in _strat_has_stabilizer_effect_from_decompose (#6467)
6a40da5 Enable testing of quimb-dependent notebook (#6461)
c2e37df CI - update GitHub actions to node20 (#6462)
adf5155 Combine RB and XEB to compute inferred errors (#6455)
c3de706 CI - update GitHub actions to node20 (#6450)
2cb7ffe Specify CODECOV_TOKEN for uploading coverage reports (#6459)
ef0137c Relax version requirement on duet (#6454)
f1aacd7 [Refactoring]: split devices.noise_utils
into qis.noise_utils
and devices.noise_utils
(#6453)
ab9e10a Suppress matplotlib warnings on non-interactive use of show() (#6449)
34a8e59 Combine 2q parallel XEB into two methods, one for benchemarking and the other for visualization (#6443)
b9d2def Bump up to codecov/codecov-action@v4 compatible with node20 (#6448)
36e91b0 Fix ci-daily notebook failures on Mac OS X (#6444)
57c52fe CI - update GitHub actions to node20 (#6445)
f2c6f3c Add an optional CompilationTargetGateset postprocessor to contract the circuit (#6433)
5dd05bf Run product state functions inplace to avoid copies where possible (#6396)
e9e12ee remove partial CZs if allow_partial_czs=False (#6436)
9f07ce8 Fix font family for svg (#6423)
5ed8f16 update quimb version to fix CI (#6438)
2ef1909 Add readout plotting tools (#6425)
ee56c59 Rm build_rtd_docs CI job and its dependencies (#6417)
ba4c6aa convert identity to phased xz in qubit characterization (#6421)
91c3f45 convert cliffords to xz in qubit characterization (#6420)
a3eed6b convert SingleQubitCliffordGate to phasedXZ during serialization (#6419)
7da7f64 Add ParallelRandomizedBenchmarkingResult class (#6412)
9c451a2 Update sphinx version (#6415)
8ae5bbb Pin sphinx dependencies that require Sphinx 5.0 or later (#6414)
968ed4c Remove cached_property backport (#6398)
4d35768 switch from bash to template approach for creating pypi config file (#6409)
ea6fabc use token to upload to pypi (#6406)
c8f7ed7 fix small normalization bug (#6404)
aa57be5 Fix common typos (#6403)
9e86d36 optimize clifford benchmark circuit creation for a total 94.5% speedup (#6401)
b3e0eeb make SingleQubitCliffordGate immutable singletons and use it in qubit_characterizations for a 37% speedup (#6392)
8a7f675 Fix "Build docs" CI job by temporarily pinning alabaster to 0.7.13 (#6399)
d33b1a7 Don't create a new list of qubits in Gate.on (#6390)
7c9b713 Modify run_batch_async (#6387)
99993b9 Check identity first when comparing moments (#6388)
a2530fe Speed up construction of single qubit pauli operations - cirq.X(q) (#6316)
181d7aa Check value equality first when comparing circuits (#6375)
1961207 Add parallel randomized benchmarking (#6382)
2ce4ed1 Add exponential fitting to RandomizedBenchMarkResult (#6385)
321786d Easy changes to difficult terminology (#6340)
e3fbd98 Optimize qid comparisons (#6386)
2f3c1e2 Optimize cached_method when wrapping no-arg methods (#6381)
ec727ca Revert "Change default for streaming feature flag to false (#6310)" (#6380)
33c2573 Cache Qid instances for common types (#6371)
6d437c4 Update start doc to specify recommended python version (#6370)
be7b059 Short-circuit value equality with an identity check (#6372)
7578110 Use spawn in _compat_test.py to avoid fork problems (#6374)
30b6c39 Fix test_notebooks_against_cirq_head for MacOS platform (#6366)
6ea5ae1 Bump cirq version to 1.4.0 (#6369)