Skip to content

Releases: quantumlib/Cirq

v1.7.0

Choose a tag to compare

@pavoljuhas pavoljuhas released this 30 Jun 18:44
v1.7.0

Cirq v1.7.0 release

General

Added support for Python 3.14 and protobuf-6. Increased the minimum
version of NumPy to 2.1. Established performance benchmarks suite
based on pytest-benchmarks. Increased type-check coverage for
return types of public functions. Improved speed and reliability
of the CI test suite.

cirq-core

Added CY and CCY gates. Added circuit insertion strategy LATEST to
complement EARLIEST. Improved handling of measurement and control keys
overlap in Circuit.insert and Circuit.append. Added efficient
sparse matrix computation to PauliString and PauliSum.
Improved dynamical decoupling transformer to better preserve input circuit
structure. Added lightcone filter transformer. Thoroughly optimized
computation of PhasedXZGate unitary and of its has_stabilizer_effect flag.
Added tools for creating GHZ state-preparing circuits with 1D and 2D
connectivity of qubits. Added cirq.symbol function for a more
convenient setup of parametrized circuits. Improved handling of unordered
sets in cirq.approx_eq.

cirq-core contrib

Added functions for measuring expectation values of Pauli strings with readout
and T-rex error mitigations. Added tool for measuring the fidelity of GHZ
states. Enhanced support for import and export of circuits to QASM 3. Added
publication-quality circuit rendering via LaTeX and Quantikz (experimental).

cirq-google

Many enhancements to utilize developments of the internal QuantumEngineService.
Improved support and efficiency of running multi-circuit and batched
parametrized-circuit programs. Added specialized gates to express
options and parameters available for Google quantum hardware.
Added simulator for circuits with analog gates.

cirq-ionq

Updated IonQ client for the IonQ API version 0.4. Added support
for retrying engine requests that failed due to service rate limits.

cirq-pasqal

Fixed PasqalGateset to correctly produce single-gate moments in transformed circuits.

cirq-web

Migrated from Webpack to the Vite framework for Typescript development and packaging.

A Huge Thank You

Thank you to all our contributors for this release:

A.C.E07, Aarush, Anton Kast, Aqil Ahmad, Bicheng Ying, Chris Bunch,
Codrut Grosu, Danni Wang, Dax Fohl, Devon Yates, Doug Strain, Edge Seven,
Eliott Rosenberg, Gangavarapu Vivek, Guilherme Dionysio, Jagan Kalsi,
Joe Schulte, Jon Donovan, Kamal Al-Ameri, Kanguk Lee, kataro92, Matt Wenner,
Matthew Neeley, Michael Hucka, Michael Qian, Nate Stemen, Nour Yosri,
Patryk Kowalewski, Pavol Juhas, Quantova-Inc, Radu Marginean, Rahil Jain,
Renyi Chen, Revanth Gundala, Ross Peili, Sena Gul Hazir, Seun Omonije,
Shashwat Kumar, Shih-Cheng Tu, Shubham Agrawal, Spencer Churchill,
Supash Ramesha, William (Acciaccatura), Zlatko Minev

What's Changed

de651a7 Removing 1.7.0.dev0 -> 1.7.0
bf0ed0c Fix small bugs in top-level README.md file (#8166)
ae6959f Flush deprecations for the 1.7.0 release (#8165)
2fa26d0 Fix histogram() for qudits by adding fold_base parameter (#8138)
cedfc6d Fix circuit reversal when searching for shortest stratified_circuit in reverse (#8164)
0bd08de Add qubit_attributes to GridDeviceMetadata and corresponding proto (#8155)
f0e4c73 Add sparse_matrix() to PauliString and PauliSum (#8127)
498d35e Add some utilities for T-rex error mitigation (#8095)
d97892b Add note that PauliSum does not preserve gate order of summed PauliStrings (#8163)
0f28d2e Add test for text fontsize in SVG circuit diagrams (#8161)
dc296ed When recovering from a failed stream, attempt to create missing programs/jobs if they are not found (#8151)
f98e5bd Fix the ci-daily job (#8160)
592c001 Replace inplace assignment of NumPy array shape (#8159)
8cb539e CI - use all runner CPUs in ci-daily and ci-weekly (#8149)
7cf89ef For development install cirq-packages in an editable mode (#8148)
5b2b46b Escape xml characters in all svg text instructions (#8144)
6baa941 Update spin echoes tutorial transformer usage (#8137)
a4e92af pytest - parametrize tests using collection containers only (#8142)
835ca4b Validate device_config_revision type in cirq-google (#8135)
780fe1f Make DD more stable (#8130)
c80eb1d Update Scientific Python dependencies per NEP-29 and SPEC-0 (#8133)
aec7393 Fix typecheck - remove unnecessary type-ignore comment (#8136)
6922063 Fix RCE in BooleanHamiltonianGate decomposition (CWE-502 -> CWE-94) (#8110)
ba1b578 Allow top-level cirq_google.Snapshot and cirq_google.Run (#8126)
3db82dd Replace noninclusive dummy and sanity language (#8103) (#8120)
a596e1c Update triage party configuration (#8080)
4738170 Proto used to hold the output of QEC circuit calibration (#8100)
7edca25 Tweaks to lightcone filter test function (#8109)
74abd87 Add lightcone filter transformer (#8107)
a9a16b6 Add docstring to the QubitManager abstract base class (#8108)
defc9a0 Add LeakageISWAP gate to cirq_google (#8099)
650016f Add LZSResetViaResonator Gate to Cirq-google (#8093)
6527aab Add quantum engine batched_results() (#8092)
fe135f6 Deflake notebook_test when run in parallel (#8090)
503a246 Adds MultilevelResetViaResonator gate to cirq_google (#8089)
f4c35b0 Support non-uniform repetitions in batch jobs (#8088)
5f5c5ae Fix internal sub_state_vector test failure due to tight atol (#8085)
d1cab35 Disable local Google Cloud credentials in cirq-google tests (#8083)
15e1e5d Fix patching of CIRQ_TESTING environment variable (#8084)
bde5ffa Fix issues with multi-circuit size in Engine (#8076)
3bc60a8 (2/2) Combine Pauli measurements and postselection (#7970)
be76e86 Fix bug in circuit.insert (#7823)
ccf35e6 Fix ci-daily run on windows-2022 (#8082)
7228447 Clean up recent changes in sub_state_vector (#8081)
02e927f Sub state vector (#8077)
bf16378 Improve fixup order in check/all --fix (#8079)
76910aa Fix broken IonQ links (#8075)
7753319 Replace specific loops with Boolean masking and vectorized assignments (#8045)
852f92e Micro optimization to Moment initialization. (#8069)
af4e48d Add argument check to move_pauli_strings_into_circuit (#7985)
de66262 Fix ordering in Engine.run_batch (#8060)
f55763c Add multi-circuit capability to EngineJob.get_circuit (#8057)
c73d890 Fix flaky EngineProcessor time filter tests (#8058)
f5300e0 Change canonicalization of PhasedXZGate to preserve pi-pulse rotation axis (#8053)
2821085 Update .github/CODEOWNERS file (#8055)
aff3efc Improve inefficient string concatenation in clifford_tableu.py (#8044)
c40e01d Make program.run() return an EngineJob so it's consistent with program.run_sweep() (#8048)
fdf7e50 All multi-circuit programs to be batched in the same request in Engine. (#8036)
89993a9 Finalize conversion from asv to pytest-benchmark (#8051)
8691276 Fix bash_scripts_test when invoked from pytest --cov (#8050)
574dfeb CI - automatically convert new dependabot PRs to draft (#8043)
fcdf63e Support "input" modifier in QASM3 parser (#7997)
b3366ab Add pull-request note for the first-time contributors (#8016)
7e113e6 Convert attribute docstrings to conventional docstrings (#8037)
b8ff93e Wrap calls to deprecated functions in qubit_characterizations_test.py (#8031)
603755a In histogram.py, only apply log scale if data has positive values (#8032)
a46677e CI - ensure concurrency group name is unique (#8035)
c58771f Avoid circular dependency hack in periodic_value.py (#8030)
6314823 Update protobuf to 6.32.1 or later version 6 (#8029)
f876e70 Address mypy complaint showing for typedunits-0.0.2 (#8033)
52cfc35 Add texlive-latex-extra to required system packages (#8027)
096fe82 Run pytest-changed-files-and-incremental-coverage in a serial mode for small changes (#8025)
5b3eb0b Replace sortedcontainers with builtin collections (#8020)
3f054e8 Streamline .gitignore file (#7992)
3175c9d Update Scientific Python dependencies per NEP-29 and SPEC-0 (#8019)
20bbeec Fix bug & improve stale issue/PR handling workflow (#8010)
c7c054e Add .toml and .cff rules to .editorconfig, and clean up file comments (#7994)
cd63aad Treat classically controlled ops as non-Clifford in dynamical_decoupling (#7621)
aa9a4da Filter Scorecard results about version hash of cifuzz (#7993)
2941583 Only use chr(30) and chr(31) delimiters in cirq-ionq (#7699)
c80fb73 Run black formatter with the --fast option to suppress warning (#8015)
5975e16 Disable Cloud credentials for papermill execution from notebook test (#8014)
a9445bb Enable testing of the pasqal/getting_started.ipynb notebook (#8011)
c3507d8 CI - use Python 3.14 to run the format check (#8008)
d7bc109 Remove obsolete code for handling quimb-1.2 (#7999)
c14de40 Add test coverage for an exception handling case in quimb/state_vector.py (#7987)
9677ce5 Replace awkward if-if wording in a docstring (#7998)
1432127 Use SVD-based fidelity for density matrices and add numerical stability test (#7292)
90fb609 Fix PasqalGateset optimization to enforce single-gate moments #6655 (#7972)
e74a2a3 Fix typos, grammar errors, and capitalization inconsistencies in docstrings (#7989)
9a4d2b1 Add workflow for labeling issues (#7990)
7960fe7 Fix matching operator for ignored files in size-labeler.sh (#7986)
1d14c84 use concurrent.futures.Executor instead of multiprocessing pool to resolve conflict with duet (#7938)
9888067 Avoid broad Exception catch in consistent_resolve_parameters (#7979)
336a71f fix typo (#7977)
c4ea4e5 Further speed up CIFuzz workflow (#7973)
9e6c70a Adding new 'get_job' helper method. (#7969)
e605fa8 Add corresponding serialization for TwoPulseFSimTag (#7971)
fe93650 Make ...

Read more

v1.6.1

Choose a tag to compare

@pavoljuhas pavoljuhas released this 14 Aug 03:26
v1.6.1

Cirq v1.6.1 release

Patch release to fix #7536, a bug in cirq.kraus which made it
in some cases return erroneous near-zero matrices. The release
also includes minor documentation updates.

Contributors

Doug Strain, Michael Hucka, Pavol Juhas, Shih-Cheng Tu

Patches included w/r to v1.6.0

c200724 Test all notebooks vs stable Cirq after the release (#7561)
58ab7ee Link to Willow and Weber data sheets (#7560)
7e3bfca Update OpenQASM compatibility table (#7555)
77546b5 Fix typos in reference docs (#7539)
6f1a975 Fix kraus channels for fallbacks to super-operators (#7537)
7fd4a7b Fix two typos (#7533)

v1.6.0

Choose a tag to compare

@pavoljuhas pavoljuhas released this 23 Jul 04:43
v1.6.0

Cirq v1.6.0 release

Summary

Removed the Cirq-Rigetti package. Increased the minimum Python version to 3.11.
Enhanced support for experiment types and circuits for Quantum Engine.
Added a new Quantum Virtual Machine "willow_pink", to simulate state-of-art
Google processors.

Removal of cirq-rigetti

The Cirq-Rigetti subpackage has been removed after its deprecation in #7058.
For legacy code needs, please use the last release cirq-rigetti-1.5.0.

General code maintenance

Increased type-check coverage by adding type annotations to unit tests
(an ongoing effort). Updated annotations syntax to confirm to [PEP-585].
Activated ruff tool for fast code checking and linting. Deleted the
outdated maintenance tool pr_monitor and eliminated the use of Docker
in tools and tests.

cirq-core

Added CXSWAP and CZSWAP gates. Added transformers for manipulating
operation tags and for parameterizing tagged operations. Added support
for parameterized circuits in the merge-single-qubit-gates transformer.
Added a new implementation of parallel XEB accepting circuits instead of
single gates. Improved Randomized Benchmarking to reduce the size of
generated circuits. Simplified decomposition of controlled gates with
global phase. Added JSON serialization support for NoiseModel classes.
Extended the QASM import parser to understand more OpenQASM 2.0 gates.
Improved the output and speed of Quantum Shannon Decomposition.
Implemented support for adding tags to Cirq moments.
Enhanced apply_unitary and unitary to accept numpy matrices.

API change

Changed [CircuitOperation] to assume use_repetition_ids=False by default
(you can pass the explicit argument use_repetition_ids=True to restore
the previous behavior).

cirq-google

Added specifications for the new Quantum Virtual Machine (QVM) "willow_pink"
with updated demos in QVM notebooks. Improved serialization of Cirq objects
for Quantum Engine (QE) for better performance and to support more Cirq types.
Added classes to express analog qubit frequency and coupling experiments at QE.
Deprecated hard-coded default gate times in noise_properties_from_calibration.

cirq-ionq

Added support for expressing IonQ Pauli-exponential gates.
Fixed a bug in the computation of inverse MSGate.

cirq-web

Improved the cirq-web package layout to avoid installing the unnecessary
cirq_ts module.

A Huge Thank You

Thank you to all our contributors for this release:

ACE07-Sev, Akshita, Andreas Bengtsson, Bicheng Ying, Codrut Grosu, Danni Wang,
Dax Fohl, Devon Yates, Doug Strain, Kerry Zhou, Michael Hucka, Michael Qian,
Nour Yosri, Pavol Juhas, Radu Marginean, Renyi Chen, Revanth Gundala,
Saurav Maheshkar, Seneca Meeks, Su Ji Park, WingCode

What's Changed

315f026 Change use of measurements to records in tomography [continued] (#7477)
cd32133 Fix #7510: remove outdated notebook about XEB (#7519)
86b38ab Regenerate QuantumEngineService gRPC client libraries with GAPIC (#7500)
0373f2b Fix sidepanel contents for section on noise (#7518)
c09b3d0 Derive _kraus_ from _apply_channel_ (#7434)
6b6a7ff Fix global phase computation in matrix gate decomposition (#7482)
3031b1f Expand product sweep parameters iteratively rather than recursively (#7523)
8e8fd80 Add JSON serialization support for NoiseModel classes (#7396)
11c769d Add clarification to GridQubit neighbors function (#7521)
c434f94 Don't attempt to make the logo light/dark responsive (#7512)
118de18 ruff - enable and fix ISC, implicit string concatenation (#7511)
cb60bba Add num_qubits to DepolarizingChannel cirq_google serialization (#7502)
bdcf704 Remove documentation links to nonexistent documents and pages (#7506)
97718bf Update link to qelib1.inc file (#7508)
286fff5 Adjust example notebooks for the change of the use_repetion_ids default to false (#7504)
e7636e0 Implementation of support for IonQ pauliexp gates (#7374)
662716b Make the points in cirq_google v2 proto to be double (#7498)
731f1bf Serialize tags on moments in cirq_google protos (#7493)
c971809 CI - activate Python 3.13 tests for all platforms (#7489)
11f6238 Bump up grpcio-tools-1.71.2 (#7495)
3254362 NEP-29 - require minimum Python version 3.11 (#7499)
fee1d37 Update Scientific Python dependencies per NEP-29 and SPEC-0 (#7496)
07fb131 CODEOWNERS - remove owner specifications for cirq-rigetti (#7497)
bb2e86b Fix resolution of notebook paths when pytest is not at the repo root (#7487)
40722be Fix missing None types on test functions (#7494)
6d791fa Remove cirq-rigetti vendor module (#7488)
1e66a39 ci - avoid overlapping artifact names from notebook tests (#7486)
89ebad8 Cache the result of CircuitOperation.has_unitary (#7483)
460dda0 Standardize serialization of CalibrationTag (#7480)
ffd78c8 Make isolated_notebook_test work from any directory (#7481)
2e0784b Add proto serialization support for circuit tags (#7478)
a5dceed Fixing MS gate inverse is not implemented correctly (Issue 7432) (#7466)
346c95b Promote FrozenCircuit.tags to AbstractCircuit (#7476)
e42eac2 Update RB to reduce the size of the generated circuits (#7411)
68c5741 Add noise gates to cirq_google serialization (#7443)
5adcb64 Adding tags to Moments (#7467)
b3fe874 Add max_concurrent_jobs to Engine.get_sampler(). (#7442)
b5600e6 Add AnalogDetuneCouplerOnly (#7444)
a89f5b9 Fix a couple of typos in transformers (#7471)
fec106c Add return-type to public functions, mostly tests part 1 (#7440)
f7f54e2 Fix test flake in pauli_string_measurement_with_readout_mitigation_test (#7459)
e34da07 Combine mypy version updates (#7457)
3a6875c Combine cirq-web updates (#7456)
45a0ead CI - disable cirq-rigetti tests (#7433)
7bd8953 Update ruff requirement from ~=0.11.11 to ~=0.12.1 in /dev_tools/requirements/deps (#7451)
73ede52 Address review comments for PR #7390 (#7441)
4c7e393 Make QVM notebooks use development version of cirq_google (#7439)
5c96d02 Add AnalogTrajectory and FreqMap (#7437)
0df354c Update QVM demo notebooks to use "willow_pink" (#7428)
66b582f Add AnalogDetuneQubit cirq google version (#7430)
c9839bf Implements optimizations A.1 and A.2 for Quantum Shannon Decomposition (#7390)
cedf227 Simplify decomposition of controlled eigengates with global phase (#7383)
cac6aad Ensure QVM notebooks use development version of cirq (#7436)
9a58a8b Support merge symbolized 1 qubit gate transformer (#7393)
b1ff3ae Combining readout circuits for QWC pauli strings in the measure_pauli_strings method (#7416)
bcd9528 Update dd with faster circuit construction (#7431)
7978a27 Fix test assertion in raw_types_test.py. (#7401)
4c9b173 Modify apply_unitary and unitary to take in numpy unitary matrix. (#7419)
5ea1d04 Handle non-2D arrays in cirq.unitary (#7427)
a839837 Change merge_single_qubit_moments_to_phxz to support global phase. (#7405)
be1b527 Fix typo in notebook example (#7426)
9d511e9 Extend include_tags to support by-type selection (#7425)
bb7b5c1 CI - bump GHA windows runner to windows-2022 (#7423)
dd8634f Deselect ruff-covered pylint rules (#7424)
a025e0b ruff - enable and fix pylint-equivalent rules (#7420)
e395921 Cirq Exponent exception for str only (#7422)
ef6a3ab Fixes #7072: Support more OpenQASM 2.0 gates from qelib1.inc (#7377)
8788b62 Update dd at "pulled-throughs meet non-cliffords" (#7409)
6bb6661 ruff - enable and fix rules F401, F601 (#7413)
4a128dc Cirq x exponent symbol (#7400)
15345b4 Enable pylint and ruff check for unused suppression comments (#7412)
4b118d0 Remove dead code for scipy<=1.5 (#7410)
d1d25f8 Bump mypy to 1.16.0 (#7407)
1f17390 Prefer load_device_noise_properties in example notebooks (#7408)
fa8d64d Fix test case names. (#7406)
eebcfa0 Use list for GoogleNoiseProperties.readout_errors values (#7392)
123cbf8 QVM - deprecate default gate_times_ns in noise_properties_from_calibration (#7399)
e27d883 Support serializing sweeps with numpy values (#7398)
92c9a91 Ignore notebook formatting in git blame (#7389)
086b03e Fix more typing issues (#7388)
09b44c0 Take care of leftover conversions to PEP 585 style (#7382)
12eab31 pylint - sync with rules used in internal codes (#7387)
8b02d60 Format all notebooks (no change in the code) (#7386)
3578631 Update format-incremental script to format notebooks (#7342)
852997c CI - add ruff check of the code (#7372)
e9f8691 Move cirq-ts files to cirq-web (#7362)
da44cac Bump networkx to minimum version 3.4 (#7378)
c000fae Fix: Allow subtraction of IdentityGate in PauliSum.__sub__ (#7276)
b0a1751 Add list_virtual_processors function to the QVM factory (#7375)
66b3d71 Decompose controlled 1x1 unitary gates generically, not just GlobalPhaseGate (#7283)
e422e16 Add new "willow_pink" processor to the QVM factory (#7366)
318887b Add QVM factory function load_device_noise_properties (#7369)
1c0ba5b Flatten controlled-CZ and controlled-CX more consistently (#7365)
f5228d7 Finalize switch to PEP 585 style type annotations (#7367)
513f309 Update type annotations (#7364)
e9a592d Attempt canonicalization first when decomposing controlled gates (#7269)
0f174c1 Added QASM Import Support for rzz, rxx, ryy, crx, cry, and iswap Gates (#7290)
c45df8b Finalize switch to unquoted type annotations (part 10) (#7357)
4343ef3 Fix Linear dict scalar division test (#7361)
9c376c4 Update types for standard collections (#7355)
d8e4a9b Bump the non-security group in /cirq-web/cirq_ts with 5 updates (#7353)
1f02be7 Bump codecov/codecov-action in the actions-version-updates group (#7351)
aba6fbe Switch to unquoted type annotations part 9 (#7356)
d0a150e Add QVM helper extract_gate_times_ns_from_device (#7350)
080ec3...

Read more

v1.5.0

Choose a tag to compare

@pavoljuhas pavoljuhas released this 10 Apr 18:51
v1.5.0

Cirq v1.5.0 release

Summary

Added support for Python 3.13 and NumPy-2. Deprecated the Cirq-Rigetti
package, which was changed to an opt-in component of the Cirq suite.

Deprecation of Cirq-Rigetti

The Cirq-Rigetti subpackage has been deprecated. For more details or to provide
feedback, see #7058. Cirq-Rigetti needs to be installed explicitly using
pip install cirq-rigetti as it is not included with the cirq installation anymore.
Note that installation of Cirq-Rigetti requires a downgrade to Python 3.12 and NumPy-1.

cirq-core

Added BitMaskKeyCondition to provide multiqubit classical control conditions with bit
masks. Added support to concatenate parameter sweeps as a new sweep. Added preliminary
support for parsing OpenQASM-3. Improved MatrixGate decomposition to compensate for
global phase change. Added function for computing Rényi entropy. Added transformers for
cphase gauge transformation, simulation of depolarizing noise, and for performing
randomized measurement protocol. Added contrib utilities for readout error
benchmarking and an experimental workflow for Z-phase calibration of two-qubit gates.

API change

In next release the default value of the use_repetition_ids argument of the
[CircuitOperation] will change from True to False. Please pass an explicit
use_repetition_ids=True to preserve the current behavior of the code.

cirq-google

Enhanced serialization capability to support more circuit objects and parameter types
for the cirq-google service backend. Added support for stimcirq gates and operations.
Enhanced sweep proto messages with typed units and optional metadata.
Added support for custom device parameter overrides for circuit execution.

cirq-ionq

Added definitions for the IonQ ZZGate and for device gatesets AriaNativeGateset and
ForteNativeGateset. Added capability for circuit transpilation to native gatesets.

A Huge Thank You

Thank you to all our contributors for this release:

Alessandro Cosentino, Ashiq Firoz, Benno Bielmeier, Bharath Thotakura, Bicheng Ying,
Chamod Perera, Codrut Grosu, Danni Wang, Dave Bacon, Dax Fohl, Divyanshu Verma,
Doug Strain, Eliott Rosenberg, Festus Ayobami Owumi, Gaurav Gyawali, Ilya K. Drozdov,
Jacob Selig, Justin Pan, K M Lau, Matthew Neeley, Michael A. Perlin, Michael Hucka,
Nate Stemen, Nour Yosri, Pavol Juhas, Radu Marginean, Renyi Chen, richrines1,
Rodolfo Carobene, Rohan Jain, Roland Siegbert, Ryan Hill, Rémi Doreau, Seneca Meeks,
Shivansh Mittal, Victory Omole, William Courtney, Yash Gondhalekar

What's Changed

6e47e2e Add classical conditions to cirq_google proto (#7250)
da6ec5d Fix serialization error in cirq_google (#7260)
65a4105 Avoid using NotImplemented as a boolean (#7259)
66c630b Fix typos in XEB (#7254)
6fd52aa Do mild editing for grammar, consistency, and Markdown (#7246)
cc4f208 Correct minor typo in BitMaskKeyCondition (#7251)
b199b21 Fix issue #7245: update docs referring to calibration_api.ipynb (#7253)
9b367de Switch notebooks from dev to stable cirq where possible (#7247)
bdf9249 Fix a few capitalization typos (#7244)
58d9619 Flip back to default use_repetition_ids=True in CircuitOperation (#7237)
5ee16b7 Fix docker installation for cirq_pre_release image (#7240)
0684419 Address pandas warning about deprecated DataFrameGroupBy.apply default (#7235)
0a326d0 Assume PhasedXPowGate is different from XPowGate and YPowGate (#7070)
d39112e Add tuples, ndarrays, and complex numbers to cirq_google proto (#7226)
9fd4751 Ignore spurious PollerCompletionQueue errors in AsyncioExecutor (#6492)
02941bf Allow _mixture_ to return gates instead of just raw unitary matrices (#7048)
d87d87e Fix EigenGate equality (#7057)
a68adcd Compensate for global phase in MatrixGate decomposition (#7118)
5a81b3d Remove previously deprecated fields in cirq_google proto (#7183)
4436b85 Test qcircuit pdf generation without extra prepare_only argument (#7227)
9cb81ad Switch to unquoted type annotations part 1 (#7193)
24b07a8 Fix ALL THE COVERAGE (#7220)
d909a6e Recommend use of unquoted annotations in coding style guide (#7222)
11f0f51 Clarify docstring of is_parameterized (#7215)
c34989b Improve cirq-dev installation command (#7213)
f6187b3 Better stimcirq serialization (#7192)
efabff1 Resolve issue #7000 by adding PR labeler workflow (#7203)
586b3f6 Change a list of if statements into match (#7204)
75f0dd3 Add bytes to cirq_google proto (#7201)
4b87002 Revise Community section (#7199)
b140970 Fix #5497: update IonQ docs to remove decompose_operation (#7198)
8a3d1ef Create a new condition that allows easy control by bitmasks (#7166)
4819570 Update and make minor additions to docs/ in time for Cirq 1.5 (#7175)
250f129 Sort import statements - no change in the effective code (#7195)
fa18b82 Improve check of expected shell commands in check/format-incremental (#7196)
0f652e1 Update Zenodo info & correct a small typo (#7191)
c3d315e Fix isort invocation in format-incremental (#7194)
3b268c2 Add isort for import linting (#7181)
cdbc196 Avoid frequent test failure in greedy_test.py by increasing timeout (#7188)
c95af3e Fix WaitGate for multiple qubits in cirq_google proto (#7189)
53d3331 Simplify python package description (#7187)
0eea89e Fix flakes in pauli_string_measurement_with_readout_mitigation_test (#7185)
80a63b9 Fix np.einsum type annotations (#7184)
815649c Update _NPY_MAXDIMS (#7167)
b3561b4 Add a tool for measuring expectation values of Pauli strings with readout error mitigation (#7067)
eddb281 Add boolean support to cirq_google protos (#7177)
ea1679d Deprecate Cirq-Rigetti (#7176)
71c3cf1 Clarify the license statement for examples/ (#7173)
aaa66f6 Decouple cirq package from cirq-rigetti (#7170)
4bdf21f Add missing license files & do minor updates to dot files (#7161)
2bfa1cd Add info to CITATION.cff (#7140)
43d033b Add ability to add custom tag (de)serializers (#7169)
840bb2b Avoid Moment typechecks when (un)freezing circuits (#7150)
ce31720 Fix moment commutation detection for group-commuting operations (#7082)
0551f85 Allow cirq-google installation with protobuf-5 (#7147)
5d59cf7 Ensure InsertStrategy.NAME is identical after pickle round-trip (#7138)
abf6051 Update pass_operations_over with fixed conjugated_by (#7123)
e014f4d Small fixes of linalg.decompositions (#7128)
b3af2ee Fix nondeterminacy in Circuit.insert (simplified) (#7043)
8073d4c Fix deserialization of reset gates when dimensions missing (#7135)
5e7bc33 Add missing import of qiskit.qasm2 in unit test (#7137)
2167552 Support for stimcirq gates and operations in cirq_google protos (#7101)
78d30e7 Remove sweep_must_pass (#7124)
927f600 Add cphase_gauge (#7111)
fe72856 cirq-google - get CZ gate noise properties from engine calibration data (#7116)
3b9eceb Add magic square game (#7109)
6ff3d66 [Bugfix] Re-allow non-integral line/grid qubits (#7110)
2ad4136 Correct the sweep order example in the docstring (#7104)
fe946a1 Use fixed PauliString.after() (#7103)
22ed25e Fix conjugated_by of PauliString (#7065)
8f2f198 Ensure SycamoreGate instances are preserved over serialization (#7093)
61548e0 Fix decompose for controlled CZ gates with phase shift (#7071)
60551b4 Partial support of reset gate in cirq_google protos (#7095)
09432f6 Fix #6970: mention release cadence (#7099)
d8ec3e4 Remove apt package pandoc and add shellcheck (#7096)
094eb9a Add badge for OpenSSF score (#7097)
9604ab1 Add warning about GenAI code generation (#7098)
7a834a0 Remove arg_function_language (#7092)
96583fe Add a .editorconfig file (#7081)
931bc66 Increase min version of Python Requests for multiple security advisories (#7075)
aee2c30 Support parameters in InternalTag (#7060)
e3b46a1 Increase min version of Python tqdm for security (#7076)
f30e6d4 Remove rST-specific code in snippets_test.py (#7085)
a2bf6e8 Add workflow for OpenSSF Scorecard (#7074)
ca6ceb3 Allow ability to plug in custom (de)serializers for cirq_google protos (#7059)
d5c2b41 Make mypy pass no matter if qsimcirq is installed or not (#7063)
dd3df78 Fix the format of CliffordGate repr (#7046)
bc9fc97 Improve the readability of CliffordTableau _full_str_ function (#7047)
1c55f3f Partial Support for tags in cirq_google protos (#7044)
83f3579 Add NDArrays to cirq-google protos (#7032)
e2de439 Remove [float,int] unions from type declarations (#7042)
7f46121 Add InternalTag to support non-public tags (#7040)
72e1d20 Clean up redundant complex type unions (#7041)
14d61c8 Compile to ZZ gate instead of MS for Forte backends when transpiling to native IonQ gates (#6973)
d589bfc Move coverage configuration to pyproject.toml (#7038)
dee2c5c Allow symbolic scalars in linear combinations (#7030)
35322ae Specify long_description_content_type so that PyPI accepts wheels (#7035)
cc82f52 Fix QASM lexer when identifiers start with keywords (#7018)
6c9db55 Move moment index into circuit message (#7008)
5c198ce Allow symbolic scalars in LinearDict (#7003)
0e5db12 Enable test of the Contract-a-Grid-Circuit.ipynb notebook (#7015)
5e8466b Avoid CI flake due to random-seed-dependent test (#7016)
6b2f4d7 Update and refresh cirq-* module README files (#6900)
aba898c Minor edits and updates to Markdown files in docs/ (#7009)
bb10251 Reformat miscellaneous .md files outside of docs/ (#6999)
d936ee3 Overhaul top-level README and convert to Markdown (#6988)
4a12309 doctest - exclude third-party sources in node_modules (#7011)
3208b94 Add snapshot_id to get_sampler interface on engine object (#7005)
08b1efb Streamline proto serialization of circuits with duplicate operations (#6991)
6ebc78b Fix check/nbformat installation and execution (#7004)
0e5df4e Fix mapped measurement keys of repeat_until fields in CircuitOperations (#6881)
e6c1101 F...

Read more

v1.4.1

Choose a tag to compare

@pavoljuhas pavoljuhas released this 27 Jun 00:46
v1.4.1

Cirq v1.4.1 release

Patch release which updates cirq-rigetti to use pyquil v4 and fixes
documentation build problems due to conflicting requirements per #6500.

Patches included w/r to v1.4.0

9bf365e Improve replace_version tool and development wheels (#6626)
e228340 Make implicit Optional type hints in Quantum Engine PEP 484 compliant (#6640)
6f5b4b2 Update cirq-rigetti to use pyquil v4 (#6281)
d38f24a Update requirements.txt (#6633)
4112b59 CI - add Python 3.12 tests to ci-daily (#6605)
b0e5b1d Fix CI lint failure by pinning to protobuf-4 (#6650)
2975d10 Bump cirq version to 1.4.1

v1.4.0

Choose a tag to compare

@pavoljuhas pavoljuhas released this 30 May 04:28
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)

v1.3.0

Choose a tag to compare

@dstrain115 dstrain115 released this 01 Dec 22:10

Cirq v1.3.0 release

Summary

Deprecation of cirq-ft

The newly created cirq-ft package (from 1.2.0) will be moving to its new home in the qualtran repository. Please pull from that repository to get all your fault-tolerant resource estimation goodness.

Qubit management

Two new qubit managers (GreedyQubitManager and SimpleQubitManager) can help manage creation and allocation of temporarily or borrowed ancilla qubits.

Performance improvements

Many minor performance improvements have been made over the past 6 months to help speed up troublesome corner cases, such as json serialization, transformers, circuit creation, and symbol resolution.

A classical simulator for simulating circuits without superposition (such as Toffoli, CNOT, X, SWAP, etc) has been added.

A Huge Thank You

Thank you to all our contributors for this release:

Andreas Bengtsson, Bram Evert, Cheng Xing, Doug Strain, Dripto Debroy, eliottrosenberg, Emilio Peláez, Fionn Malone, Jon Donovan, Jose Urruticoechea, Matthew Neeley, Nishna Aerabati, Nafay Najam, Noureldin, Ogah Jackreece Ejini, Pavol Juhas, richrines1, Ryan Hill, Sam Burdick, Sanuj Sharma, Seneca Meeks, Shef, Spencer Churchill, Suyash Damle, Tanuj Khattar, yinghui-hu, Yisu Peng

What's Changed

9b65f68 Remote problematic terminology from test (#6368)
dbbca73 Change master to main in documentation (#6365)
ced1383 Restore code coverage (#6364)
3ac43f6 Switch master to main in CI tools and dev tools (#6363)
3c6a305 Deprecate Cirq-FT module in favour of Qualtran (#6362)
cf973a5 Remove leftover dummy terms from the Cirq sources (#6358)
9142f6a Fix MacOS installation instructions for mactex with brew (#6361)
6aa9d0d Cleanup classical simulator code and fix a couple of bugs (#6344)
a55f962 Fix typos in the documentation. (#6359)
a4ba95b Break intermediate measurements on 3+ qubits into single qubit measurements in RouteCQC#6293 (#6349)
7f47e13 Created using Colaboratory (#6360)
b5b3b74 ProcessorSampler: route run_batch to run_sweep (#6357)
2fdb447 Remove dummy from cirq-core (#6356)
3a64ef1 StreamManager: make function params explicit (#6355)
26dbabc Speed up hashing for GridQubit, LineQubit, and NamedQubit (#6350)
3c81961 Update docs/tutorials/google/start.pynb (#6346)
9a8298d Update start.ipynb (#6342)
8d07cab Optimize ParamResolver.value_of (#6341)
392083b StreamManager: retry with get result request on already exist errors (#6345)
0e288a7 Bump @babel/traverse from 7.14.5 to 7.23.2 in /cirq-web/cirq_ts (#6318)
2f702c8 Add classical simulator (#6124)
39bd926 Change default for streaming feature flag to false (#6310)
0b90ed6 Increase coverage of clifford protocols to parity_gates (#6338)
11ae0bd Make RouteCQC errorout on intermediate measurements on 3+ qubits (#6307)
aa312bc Fix flaky behavior of test_xeb_fidelity (#6337)
2f7d732 Cache Circuit properties between mutations (#6322)
5485227 Run unit tests without affecting user browser session (#6333)
fec68ae Fix ci-daily pytest failure (#6335)
34e8dab Extend Clifford protocol for 2+ qubit operations through analytical check and falling back to decompose (#6332)
17313e7 ci - show 20 slowest tests on Linux, Windows and Mac (#6334)
5556e72 ci - skip slow tests on PR, run them in daily ci instead (#6331)
1eced48 Moved rigetti integration test logic to higher level conftest.py file… (#6328)
1549785 remove default values of InternalGate (#6330)
235a0c6 Add documentation for cirq google's support for google internal gates (#6301)
455f50b Build clifford tableau just once during SingleQubitCliffordGate to PhasedXZGate conversion (#6325)
ec84a05 Preserve subcircuits passed to [Frozen]Circuit.from_moments (#6320)
96b3842 Move qubit management transformers from Cirq-FT to Cirq-core (#6319)
105d975 Adds 2q prep for iswap instead of sqrt_iswap (#6314)
a98fc61 Make ancilla for BiQubitsMixer sided too. (#6313)
9b65f68 Remote problematic terminology from test (#6368)
dbbca73 Change master to main in documentation (#6365)
ced1383 Restore code coverage (#6364)
3ac43f6 Switch master to main in CI tools and dev tools (#6363)
3c6a305 Deprecate Cirq-FT module in favour of Qualtran (#6362)
cf973a5 Remove leftover dummy terms from the Cirq sources (#6358)
9142f6a Fix MacOS installation instructions for mactex with brew (#6361)
6aa9d0d Cleanup classical simulator code and fix a couple of bugs (#6344)
a55f962 Fix typos in the documentation. (#6359)
a4ba95b Break intermediate measurements on 3+ qubits into single qubit measurements in RouteCQC#6293 (#6349)
7f47e13 Created using Colaboratory (#6360)
b5b3b74 ProcessorSampler: route run_batch to run_sweep (#6357)
2fdb447 Remove dummy from cirq-core (#6356)
3a64ef1 StreamManager: make function params explicit (#6355)
26dbabc Speed up hashing for GridQubit, LineQubit, and NamedQubit (#6350)
3c81961 Update docs/tutorials/google/start.pynb (#6346)
9a8298d Update start.ipynb (#6342)
8d07cab Optimize ParamResolver.value_of (#6341)
392083b StreamManager: retry with get result request on already exist errors (#6345)
0e288a7 Bump @babel/traverse from 7.14.5 to 7.23.2 in /cirq-web/cirq_ts (#6318)
2f702c8 Add classical simulator (#6124)
39bd926 Change default for streaming feature flag to false (#6310)
0b90ed6 Increase coverage of clifford protocols to parity_gates (#6338)
11ae0bd Make RouteCQC errorout on intermediate measurements on 3+ qubits (#6307)
aa312bc Fix flaky behavior of test_xeb_fidelity (#6337)
2f7d732 Cache Circuit properties between mutations (#6322)
5485227 Run unit tests without affecting user browser session (#6333)
fec68ae Fix ci-daily pytest failure (#6335)
34e8dab Extend Clifford protocol for 2+ qubit operations through analytical check and falling back to decompose (#6332)
17313e7 ci - show 20 slowest tests on Linux, Windows and Mac (#6334)
5556e72 ci - skip slow tests on PR, run them in daily ci instead (#6331)
1eced48 Moved rigetti integration test logic to higher level conftest.py file… (#6328)
1549785 remove default values of InternalGate (#6330)
235a0c6 Add documentation for cirq google's support for google internal gates (#6301)
455f50b Build clifford tableau just once during SingleQubitCliffordGate to PhasedXZGate conversion (#6325)
ec84a05 Preserve subcircuits passed to [Frozen]Circuit.from_moments (#6320)
96b3842 Move qubit management transformers from Cirq-FT to Cirq-core (#6319)
105d975 Adds 2q prep for iswap instead of sqrt_iswap (#6314)
a98fc61 Make ancilla for BiQubitsMixer sided too. (#6313)
fefe350 Make SingleQubitCompare output registers directional (#6312)
fee056e Move GreedyQubitManager from Cirq-FT to Cirq-Core (#6309)
87f77be Create separate unary and streaming RPC tests in engine_test.py (#6311)
4dc36d5 Integrate StreamManager with run_sweep() (#6285)
c6f60bc Apply fix from typo scan of quantumai website, cl/570431484 (#6308)
bef756e Allow specifying settings field from Cirq-ionq (#5817)
fd18da5 Make OpIdentifier serializable for all inputs (#6295)
1948e73 Change signature of cirq_ft.And gate to use directional registers like Qualtran (#6302)
c696323 Rename cirq_ft.Registers to cirq_ft.Signature to match data types in Qualtran (#6300)
61d9671 Fix stream_manager_test type warnings (#6299)
acbc624 Do not allow creating registers with bitsize 0 (#6298)
8e4e7d1 Add bitsize field to Cirq-FT Registers (#6286)
188bb94 Add registry sweep documentation to cirq_google (#6291)
907ec3a Try to make docstring render correctly (#6283)
d805d82 Make InternalGate hashable if all gate args are hashable (#6294)
1366494 Apply minor doc fixes (#6289)
b630298 Fix matplotlib typing (#6290)
f715527 Fix documentation of FSimGate (#6288)
432d57a Add serialization support for InsertionNoiseModel (#6282)
cf005c2 add to ionq code owners (#6273)
6c14cfa StreamManager: Add mechanism to close the request iterator (#6263)
deedb45 Changed FakeQuantumRunStream to support arbitrary response and exception timing (#6253)
6fae409 Delete SelectionRegisters and replace uses of Registers with Tuple[Register, ...] (#6278)
e235642 Variable spacing QROM should depend upon structure of different data sequences and not exact elements (#6280)
eddb2d9 Add caching to value_equality_values decorator for auto generated methods. (#6275)
0e80fa5 v0.3 API + debiasing (#6077)
b70b2fc Add new processor selector parameters in cirq-google/engine run methods (#6267)
b28bfce Speed up parameter resolution for cirq.Duration (#6270)
c7048f5 codecov - exclude protobuf-generated sources from coverage analysis (#6268)
041ce5d Add tags to cirq.FrozenCircuit (#6266)
83609eb Make device parameter units/idx optional (#6264)
8bd2161 Support the new quantum engine processor_selector in engine_client (#6254)
56b5db2 add back add/remove_qubit to density matrix sim state (#6259)
ed26d2f Fix ordering issue in random_rotations_between_grid_interaction_layers_circuit (#6261)
7ed95aa Speed up cirq.map_operations and cirq.map_operations_and_unroll (#6250)
be6218e codecov - tolerate small decrease in coverage (#6258)
5bbdc22 Apply variable-spaced optimization to QROM circuits (#6257)
6abc740 remove extra User-Agent prefix in the ionq API header (#6232)
999fd94 Avoid skipping code lines depending on random seed (#6256)
86f17eb Update documentation to prevent markdown rendering of underscores as italics (#6255)
6e38a27 Fix coverage exclusion syntax (#6241)
6b44704 Check if python starts python3 (#6239)
95cb43f Remove temporary directories after test done (#6236)
30fa6f5 Fix bug in cirq-ft due to which T-complexity fails for gates with an empty decomposition / no-op (#6252)
95c672a Support the deprecated_parameter decorator for asynchronous functions. (#6247)
64e1a7f Fix CI requirements for Changed files test (#6243)
9fbaa05 Fix quoting i...

Read more

v1.2.0

Choose a tag to compare

@tanujkhattar tanujkhattar released this 18 Jul 17:50

Cirq v1.2.0 release

Summary

This Cirq release focuses on making it easier to express and do resource estimations for Fault Tolerant Quantum Algorithms, with a number of high level improvement summarized as follows:

Improvements to Cirq-Core

  • Cirq protocols (eg: cirq.unitary) and simulators (eg: cirq.Simulator) now support gates that allocate new qubits as part of their decomposition
  • cirq.QubitManager is a new top-level abstraction that defines the interface for a qubit allocator/deallocator which can be used to manage ancilla qubits at the time of circuit construction.
  • cirq.decompose infrastructure is updated s.t. new composite gates can override the _decompose_with_context_ method to gain access to a cirq.DecompositionContext that contains options such as a cirq.QubitManager to help with allocating ancilla qubits at the time of circuit construction.

Cirq-FT: A new sub-package for Fault-Tolerant algorithms

Cirq-FT is a new sub-package for rapid prototyping and resource estimation of fault tolerant algorithms that extends Cirq. Some notable features include

  • A concept of qubit Register / Registers that make it easier for composite gates to express their signature in terms of named groups of logical qubits.
  • A cirq_ft.GateWithRegisters base class, which acts as a SHIM on top of the flat qubits API of cirq.Gate class and helps users define their composite gates using qubit registers.
  • New protocols, like cirq_ft.TComplexity, for macroscopic resource estimation.
  • New compilation transformers for mapping ancilla allocation / deallocation requests in a compute graph (eg: cirq circuit) to physical qubits, supporting both clean and dirty allocations.
  • A well-annotated and well-tested library of hierarchical gate decompositions which implements all the circuit primitives from Encoding Electronic Spectra in Quantum Circuits with Linear T Complexity. Table IV containing resource estimates of circuits with ~10^10 T-gates can be reproduced in under a minute demonstrating the scalability of the framework.

Other notable changes

  • Dropped support for Python 3.7 and Python 3.8 and added support for Python 3.11
  • Performance improvements for parameter resolution and a new __cirq_debug__ flag that provides an option to disable validations at the time of circuit construction.

What's Changed

Read more

Cirq v1.1.0

Choose a tag to compare

@tanujkhattar tanujkhattar released this 20 Dec 23:28

Cirq v1.1.0 release

Summary

This Cirq release focuses on tracking and improving performance of key workflows like circuit construction, parameter resolution etc. The release also adds a new transformers framework for qubit routing and provides an efficient implementation of the qubit routing algorithm described in arXiv:1902.08091 [quant-ph]

As part of this release, we have also published our new backwards compatibility guidelines.

Backwards Incompatible Changes

7892143 Print multi-qubit circuit with asymmetric depolarizing noise correctly (#5931) by Paige
af1267d Allow repeated measurements in deferred transformer (#5857) by Dax Fohl

What's New

New top level objects in cirq-core:

  • RoutingSwapTag
  • AbstractInitialMapper
  • HardCodedInitialMapper
  • LineInitialMapper
  • MappingManager
  • RouteCQC
  • routed_circuit_with_mapping

What's Changed

Read more

Cirq v1.0.0

Choose a tag to compare

@MichaelBroughton MichaelBroughton released this 18 Jul 22:34

What's new

Cirq has officially left alpha and is v1.0. With this release comes new policies on API stability as well as functionality gaurantees for the long term. Along with some minor bug fixes and tweaks, this release focuses on stabilizing the APIs within cirq-core. With cirq-core we intend to follow along with semver and only make breaking changes with moves to new major versions. For the vendor packages we plan to continue to allow developers to iterate at speed and will do best effort on ensuring any API changes come with as little friction as possible. For all the details on this policy please see: release.md.

To make this upgrade as smooth as possible, we recommend first upgrading your installation to Cirq v0.15 to surface any deprecation warnings or upcoming breakages you might experience, once those are resolved, you can safely install Cirq v1.0.0.

Thank you all so much for your hard work.

What's Changed

Read more