Recent Releases of cirq

cirq - 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

c200724a Test all notebooks vs stable Cirq after the release (#7561) 58ab7ee1 Link to Willow and Weber data sheets (#7560) 7e3bfca4 Update OpenQASM compatibility table (#7555) 77546b5c Fix typos in reference docs (#7539) 6f1a9753 Fix kraus channels for fallbacks to super-operators (#7537) 7fd4a7bf Fix two typos (#7533)

- Python
Published by pavoljuhas 5 months ago

cirq - 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) "willowpink" 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 `noisepropertiesfromcalibration`.

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

315f026b0 Change use of measurements to records in tomography continued cd3213345 Fix #7510: remove outdated notebook about XEB (#7519) 86b38ab30 Regenerate QuantumEngineService gRPC client libraries with GAPIC (#7500) 0373f2bf3 Fix sidepanel contents for section on noise (#7518) c09b3d069 Derive _kraus_ from _apply_channel_ (#7434) 6b6a7ff03 Fix global phase computation in matrix gate decomposition (#7482) 3031b1f38 Expand product sweep parameters iteratively rather than recursively (#7523) 8e8fd80c1 Add JSON serialization support for NoiseModel classes (#7396) 11c769d78 Add clarification to GridQubit neighbors function (#7521) c434f944f Don't attempt to make the logo light/dark responsive (#7512) 118de1882 ruff - enable and fix ISC, implicit string concatenation (#7511) cb60bba80 Add num_qubits to DepolarizingChannel cirqgoogle serialization (#7502) bdcf70461 Remove documentation links to nonexistent documents and pages (#7506) 97718bfdb Update link to qelib1.inc file (#7508) 286fff512 Adjust example notebooks for the change of the `userepetionids` default to false (#7504) e7636e0a4 Implementation of support for IonQ pauliexp gates (#7374) 662716b72 Make the points in cirqgoogle v2 proto to be double (#7498) 731f1bf67 Serialize tags on moments in cirqgoogle protos (#7493) c9718098c CI - activate Python 3.13 tests for all platforms (#7489) 11f6238fa Bump up grpcio-tools-1.71.2 (#7495) 325436213 NEP-29 - require minimum Python version 3.11 (#7499) fee1d374a Update Scientific Python dependencies per NEP-29 and SPEC-0 (#7496) 07fb131bc CODEOWNERS - remove owner specifications for cirq-rigetti (#7497) bb2e86bc6 Fix resolution of notebook paths when pytest is not at the repo root (#7487) 40722be31 Fix missing None types on test functions (#7494) 6d791fa8d Remove cirq-rigetti vendor module (#7488) 1e66a3945 ci - avoid overlapping artifact names from notebook tests (#7486) 89ebad8ca Cache the result of `CircuitOperation.hasunitary(#7483) 460dda051 Standardize serialization of CalibrationTag (#7480) ffd78c8f7 Makeisolatednotebooktestwork from any directory (#7481) 2e0784b8e Add proto serialization support for circuit tags (#7478) a5dceeddb Fixing MS gate inverse is not implemented correctly (Issue 7432) (#7466) 346c95b16 Promote FrozenCircuit.tags to AbstractCircuit (#7476) e42eac275 Update RB to reduce the size of the generated circuits (#7411) 68c57413c Add noise gates to cirq_google serialization (#7443) 5adcb6429 Adding tags to Moments (#7467) b3fe87490 AddmaxconcurrentjobstoEngine.getsampler(). (#7442) b5600e6e5 Add AnalogDetuneCouplerOnly (#7444) a89f5b9f0 Fix a couple of typos in transformers (#7471) fec106cb1 Add return-type to public functions, mostly tests part 1 (#7440) f7f54e2ba Fix test flake inpaulistringmeasurementwithreadoutmitigationtest` (#7459) e34da074c Combine mypy version updates (#7457) 3a6875cbf Combine cirq-web updates (#7456) 45a0ead0d CI - disable cirq-rigetti tests (#7433) 7bd8953d0 Update ruff requirement from ~=0.11.11 to ~=0.12.1 in /devtools/requirements/deps (#7451) 73ede52a6 Address review comments for PR #7390 (#7441) 4c7e393eb Make QVM notebooks use development version of cirqgoogle (#7439) 5c96d022d Add AnalogTrajectory and FreqMap (#7437) 0df354cad Update QVM demo notebooks to use "willowpink" (#7428) 66b582ff2 Add AnalogDetuneQubit cirq google version (#7430) c9839bf1e Implements optimizations A.1 and A.2 for Quantum Shannon Decomposition (#7390) cedf22723 Simplify decomposition of controlled eigengates with global phase (#7383) cac6aad66 Ensure QVM notebooks use development version of cirq (#7436) 9a58a8b4e Support merge symbolized 1 qubit gate transformer (#7393) b1ff3aea6 Combining readout circuits for QWC pauli strings in the measure_pauli_strings method (#7416) bcd9528a6 Update dd with faster circuit construction (#7431) 7978a27d4 Fix test assertion in rawtypestest.py. (#7401) 4c9b17301 Modify apply_unitary and unitary to take in numpy unitary matrix. (#7419) 5ea1d04be Handle non-2D arrays in cirq.unitary (#7427) a83983700 Change merge_single_qubit_moments_to_phxz to support global phase. (#7405) be1b527a8 Fix typo in notebook example (#7426) 9d511e966 Extend include_tags to support by-type selection (#7425) bb7b5c1e5 CI - bump GHA windows runner to windows-2022 (#7423) dd8634f70 Deselect ruff-covered pylint rules (#7424) a025e0b1a ruff - enable and fix pylint-equivalent rules (#7420) e3959210f Cirq Exponent exception for str only (#7422) ef6a3ab11 Fixes #7072: Support more OpenQASM 2.0 gates from qelib1.inc (#7377) 8788b625d Update dd at "pulled-throughs meet non-cliffords" (#7409) 6bb666165 ruff - enable and fix rules F401, F601 (#7413) 4a128dc76 Cirq x exponent symbol (#7400) 15345b4f1 Enable pylint and ruff check for unused suppression comments (#7412) 4b118d064 Remove dead code for scipy<=1.5 (#7410) d1d25f837 Bump mypy to 1.16.0 (#7407) 1f17390de Prefer load_device_noise_properties in example notebooks (#7408) fa8d64d6c Fix test case names. (#7406) eebcfa050 Use list for GoogleNoiseProperties.readout_errors values (#7392) 123cbf8db QVM - deprecate default gate_times_ns in noise_properties_from_calibration (#7399) e27d883d2 Support serializing sweeps with numpy values (#7398) 92c9a9180 Ignore notebook formatting in git blame (#7389) 086b03e4c Fix more typing issues (#7388) 09b44c030 Take care of leftover conversions to PEP 585 style (#7382) 12eab3118 pylint - sync with rules used in internal codes (#7387) 8b02d60a9 Format all notebooks (no change in the code) (#7386) 35786312b Update format-incremental script to format notebooks (#7342) 852997c16 CI - add ruff check of the code (#7372) e9f869126 Move cirq-ts files to cirq-web (#7362) da44cace8 Bump networkx to minimum version 3.4 (#7378) c000faea1 Fix: Allow subtraction of IdentityGate in PauliSum.__sub__ (#7276) b0a1751ca Add list_virtual_processors function to the QVM factory (#7375) 66b3d715e Decompose controlled 1x1 unitary gates generically, not just GlobalPhaseGate (#7283) e422e166a Add new "willowpink" processor to the QVM factory (#7366) 318887bfe Add QVM factory function `loaddevicenoiseproperties(#7369) 1c0ba5b06 Flatten controlled-CZ and controlled-CX more consistently (#7365) f5228d7ce Finalize switch to PEP 585 style type annotations (#7367) 513f30931 Update type annotations (#7364) e9a592d53 Attempt canonicalization first when decomposing controlled gates (#7269) 0f174c18a Added QASM Import Support for rzz, rxx, ryy, crx, cry, and iswap Gates (#7290) c45df8b19 Finalize switch to unquoted type annotations (part 10) (#7357) 4343ef33a Fix Linear dict scalar division test (#7361) 9c376c4e7 Update types for standard collections (#7355) d8e4a9bc9 Bump the non-security group in /cirq-web/cirq_ts with 5 updates (#7353) 1f02be718 Bump codecov/codecov-action in the actions-version-updates group (#7351) aba6fbe55 Switch to unquoted type annotations part 9 (#7356) d0a150edb Add QVM helperextractgatetimesnsfromdevice(#7350) 080ec3664 Update Type Hints (#7348) e58f3ad27 Switch to unquoted type annotations part 8 (#7345) 9e1392071 Support Reset gate in GridDevice and device specification proto (#7349) f3410e217 Remove Dockerfile and associated files and documentation (#7347) 4e12cbfac Add a symbolize transformer (#7307) 716549efd Fix another round of typing issues (#7341) b4bcdfbf9 Switch to unquoted type annotations part 7 (#7343) 01e3e9c06 NEP-29 - require minimum Python version 3.11 (#7338) 9df5d3bcc Remove documentation references tooptimizedforsycamore` (#7329) 6ee6b50cc Optimize the HHL algorithm using amplitude amplification (#7141) 22b483125 Update .git-blame-ignore-revs for test return types. (#7332) 9a879c9ff Adjust type annotations for numpy-2 (#7333) 651fefae4 Add CXSWAP and CZSWAP gates (#7334) 8ad59dfc4 Fix identifying hardware changes notebook (#7328) 33b8f3c99 Add few more return-type annotations to tests (#7331) d1e68b15f Add return type for tests (#7327) b6f9c533a Disable all GitHub Actions jobs in forks (#7326) af63d6a08 Add WillowGate to cirqgoogle serialization (#7309) 31455422e Fix qubit metadata in identifying_hardware_changes (#7308) b136ae880 Add tag_transformers, remove_tags, index_tags. (#7306) 293f25ee0 Starts deprecating pass_operations_over for PauliString and PauliStringPhasor (#7294) 2635656a1 Switch to unquoted type annotations part 6 (#7325) 575552a58 Create a new implementation of parallel XEB and its methods (#6940) 8c5753da6 CI - fix type check with a temporary pin to numpy-1 (#7324) 2d8da7162 Rewrite inefficient sum(..., []) and sum(..., ()) (#7304) 8a322f0b9 Group updates for GitHub Actions (#7318) 63b0f178d Add the capability to accept group Paulis that can be measured using same measurement results (#7236) 69c686fce Switch to unquoted type annotations part 5 (#7317) 39306b42e CI - replace actions/cache with setup-python package caching (#7305) de37106ef Add Willow gate (#7301) 22284fe4c Update documentation about num_qubits protocol (#7299) b08bfbe9d Make cirq.Zip twenty times faster (#7303) f08565176 Improve reporting of errors & efficiency of pr-size-labeler (#7288) 4fa82fb1b Switch to unquoted type annotations part 4 (#7298) 5f7fc9afd Clarify error message for decompose_once(X(q)) (#7281) 3d0dee5c5 Switch to unquoted type annotations part 3 (#7295) 1a7688ab1 Fix minor README glitches, update Cirq logo to respond to dark/light mode, and add QAI logo (#7186) 197c83a87 Fixed visual bug and unit test (#7293) 5112418cf Fix YAML quotation error (#7286) c054b90e0 Switch to unquoted type annotations part 2 (#7278) aa3cc1184 Update cirq resolver to check sympy singletons with is instead of == (#7279) 50d71982f Remove prmonitor (#7214) fe86bda4e Put back the issues-write permission for pr-labeler (#7277) 7f570b340 Flip test names to match expected warnings (#7275) 8824a660a Replace PR labeler with better & safer version (#7271) 28653b652 Remove first-interction.yaml workflow (#7273) e4ad080e8 Remove pytest-debug.yaml workflow (#7274) ca5921fd1 Clarify instructions for release process (#7266) 1a75d9fae Remove `USECONSTANTSflags and make them the default (#7262) da14476b6 Roll forward #6910 - CircuitOperation: changeuserepetitionids` default to False (#7265) 92f71b6ef Test all notebooks vs stable cirq after the release (#7255) 10eb80085 Cite Cirq release 1.5.0 (#7263)

- Python
Published by pavoljuhas 6 months ago

cirq - 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

6e47e2ee Add classical conditions to cirqgoogle proto (#7250) da6ec5d0 Fix serialization error in cirqgoogle (#7260) 65a4105e Avoid using NotImplemented as a boolean (#7259) 66c630b3 Fix typos in XEB (#7254) 6fd52aa1 Do mild editing for grammar, consistency, and Markdown (#7246) cc4f208d Correct minor typo in BitMaskKeyCondition (#7251) b199b212 Fix issue #7245: update docs referring to calibrationapi.ipynb (#7253) 9b367de0 Switch notebooks from dev to stable cirq where possible (#7247) bdf92492 Fix a few capitalization typos (#7244) 58d9619a Flip back to default `userepetitionids=True` in CircuitOperation (#7237) 5ee16b73 Fix docker installation for cirqprerelease image (#7240) 0684419c Address pandas warning about deprecated DataFrameGroupBy.apply default (#7235) 0a326d07 Assume PhasedXPowGate is different from XPowGate and YPowGate (#7070) d39112e9 Add tuples, ndarrays, and complex numbers to cirqgoogle proto (#7226) 9fd4751a Ignore spurious PollerCompletionQueue errors in AsyncioExecutor (#6492) 02941bf6 Allow _mixture_ to return gates instead of just raw unitary matrices (#7048) d87d87e5 Fix EigenGate equality (#7057) a68adcd1 Compensate for global phase in MatrixGate decomposition (#7118) 5a81b3d1 Remove previously deprecated fields in cirqgoogle proto (#7183) 4436b853 Test qcircuit pdf generation without extra `prepareonlyargument (#7227) 9cb81ad9 Switch to unquoted type annotations part 1 (#7193) 24b07a80 Fix ALL THE COVERAGE (#7220) d909a6ef Recommend use of unquoted annotations in coding style guide (#7222) 11f0f516 Clarify docstring ofisparameterized` (#7215) c34989b4 Improve cirq-dev installation command (#7213) f6187b39 Better stimcirq serialization (#7192) efabff10 Resolve issue #7000 by adding PR labeler workflow (#7203) 586b3f63 Change a list of if statements into match (#7204) 75f0dd3b Add bytes to cirqgoogle proto (#7201) 4b87002b Revise Community section (#7199) b1409709 Fix #5497: update IonQ docs to remove decomposeoperation (#7198) 8a3d1ef9 Create a new condition that allows easy control by bitmasks (#7166) 48195703 Update and make minor additions to docs/ in time for Cirq 1.5 (#7175) 250f1296 Sort import statements - no change in the effective code (#7195) fa18b82c Improve check of expected shell commands in check/format-incremental (#7196) 0f652e11 Update Zenodo info & correct a small typo (#7191) c3d315e6 Fix isort invocation in format-incremental (#7194) 3b268c25 Add isort for import linting (#7181) cdbc196e Avoid frequent test failure in greedytest.py by increasing timeout (#7188) c95af3e0 Fix WaitGate for multiple qubits in cirqgoogle proto (#7189) 53d33312 Simplify python package description (#7187) 0eea89e8 Fix flakes in paulistringmeasurementwithreadoutmitigationtest (#7185) 80a63b90 Fix np.einsum type annotations (#7184) 815649ca Update `NPYMAXDIMS` (#7167) b3561b44 Add a tool for measuring expectation values of Pauli strings with readout error mitigation (#7067) eddb281d Add boolean support to cirqgoogle protos (#7177) ea1679d5 Deprecate Cirq-Rigetti (#7176) 71c3cf1d Clarify the license statement for examples/ (#7173) aaa66f67 Decouple cirq package from cirq-rigetti (#7170) 4bdf21fa Add missing license files & do minor updates to dot files (#7161) 2bfa1cda Add info to CITATION.cff (#7140) 43d033b5 Add ability to add custom tag (de)serializers (#7169) 840bb2bc Avoid Moment typechecks when (un)freezing circuits (#7150) ce317201 Fix moment commutation detection for group-commuting operations (#7082) 0551f85c Allow cirq-google installation with protobuf-5 (#7147) 5d59cf72 Ensure InsertStrategy.NAME is identical after pickle round-trip (#7138) abf6051b Update passoperationsover with fixed conjugatedby (#7123) e014f4dd Small fixes of linalg.decompositions (#7128) b3af2ee3 Fix nondeterminacy in Circuit.insert (simplified) (#7043) 8073d4cf Fix deserialization of reset gates when dimensions missing (#7135) 5e7bc330 Add missing import of qiskit.qasm2 in unit test (#7137) 21675522 Support for stimcirq gates and operations in cirqgoogle protos (#7101) 78d30e70 Remove sweepmustpass (#7124) 927f600b Add cphasegauge (#7111) fe728560 cirq-google - get CZ gate noise properties from engine calibration data (#7116) 3b9ecebc Add magic square game (#7109) 6ff3d66f [Bugfix] Re-allow non-integral line/grid qubits (#7110) 2ad41366 Correct the sweep order example in the docstring (#7104) fe946a12 Use fixed PauliString.after() (#7103) 22ed25ed Fix conjugatedby of PauliString (#7065) 8f2f1981 Ensure SycamoreGate instances are preserved over serialization (#7093) 61548e0d Fix decompose for controlled CZ gates with phase shift (#7071) 60551b42 Partial support of reset gate in cirqgoogle protos (#7095) 09432f66 Fix #6970: mention release cadence (#7099) d8ec3e47 Remove apt package pandoc and add shellcheck (#7096) 094eb9a7 Add badge for OpenSSF score (#7097) 9604ab18 Add warning about GenAI code generation (#7098) 7a834a05 Remove argfunctionlanguage (#7092) 96583fe7 Add a .editorconfig file (#7081) 931bc666 Increase min version of Python Requests for multiple security advisories (#7075) aee2c30c Support parameters in InternalTag (#7060) e3b46a1f Increase min version of Python tqdm for security (#7076) f30e6d4b Remove rST-specific code in snippetstest.py (#7085) a2bf6e8b Add workflow for OpenSSF Scorecard (#7074) ca6ceb37 Allow ability to plug in custom (de)serializers for cirqgoogle protos (#7059) d5c2b414 Make mypy pass no matter if qsimcirq is installed or not (#7063) dd3df78c Fix the format of CliffordGate repr (#7046) bc9fc97c Improve the readability of CliffordTableau `fullstrfunction (#7047) 1c55f3fe Partial Support for tags in cirq_google protos (#7044) 83f3579c Add NDArrays to cirq-google protos (#7032) e2de439e Remove [float,int] unions from type declarations (#7042) 7f461218 Add InternalTag to support non-public tags (#7040) 72e1d203 Clean up redundant complex type unions (#7041) 14d61c8d Compile to ZZ gate instead of MS for Forte backends when transpiling to native IonQ gates (#6973) d589bfcc Move coverage configuration to pyproject.toml (#7038) dee2c5cd Allow symbolic scalars in linear combinations (#7030) 35322ae3 Specifylongdescriptioncontenttype` so that PyPI accepts wheels (#7035) cc82f526 Fix QASM lexer when identifiers start with keywords (#7018) 6c9db55b Move moment index into circuit message (#7008) 5c198ce2 Allow symbolic scalars in LinearDict (#7003) 0e5db120 Enable test of the Contract-a-Grid-Circuit.ipynb notebook (#7015) 5e8466bf Avoid CI flake due to random-seed-dependent test (#7016) 6b2f4d70 Update and refresh cirq-* module README files (#6900) aba898c6 Minor edits and updates to Markdown files in docs/ (#7009) bb10251b Reformat miscellaneous .md files outside of docs/ (#6999) d936ee32 Overhaul top-level README and convert to Markdown (#6988) 4a123091 doctest - exclude third-party sources in nodemodules (#7011) 3208b947 Add snapshotid to getsampler interface on engine object (#7005) 08b1efb8 Streamline proto serialization of circuits with duplicate operations (#6991) 6ebc78b5 Fix check/nbformat installation and execution (#7004) 0e5df4e2 Fix mapped measurement keys of repeatuntil fields in CircuitOperations (#6881) e6c11014 Fix logic for handling `repetitionidsinCircuitOperation.replace(#6984) 785fd1cb Update .markdownlintrc (#6990) d1503716 Bump grpcio-tools from 1.59 to 1.62 (#6976) 238ce873 Use encoding UTF-8 when opening files (#6989) ab62c254 CI - run the pytest-numpy-2 job also with Python 3.13 (#6974) b4190e9d Add PyPI keywords and edit maintainers name (#6992) b73eb280 Add a default fallback for the equal_up_to_global_phase protocol (#6950) 435f3e15 Support numpy qid indexes (#6987) 79d562ad Update scientific Python core dependencies per NEP-29 and SPEC-0 (#6975) 0f21e0a2 Implementvalueequalityapproximatevalues` for PhasedISwapPowGate (#6959) 48aadd03 Perf optimization for building circuits using only appends (#6882) ebbaad6b Replace OpTree with OPTREE (#6960) 4206cb15 Fix classical conditions getting optimized ahead of their measurements (#6872) 870860f3 Optimize qubit hash for Set operations (#6908) eec204f2 Add a function for running circuits in a shuffled order with readout error benchmarking (#6945) 9945db64 Apply assweep for SqrtCZGauge (#6931) 55c592be [cleanup] Remove unused GridParallelXEBMetadata class (#6909) 05bb69a0 Refactor engine client `testcreatejobtest names for better clarity and consistency (#6885) 0a955cc9 Correct noise channel approximate equality (#6632) 426178ba Revert "#6586 - Avoid DivisionByZero error when TensorNetwork simplifies to a scalar" (#6958) 2b49589f Support custom gate defintions in QASM parser (#6917) 3a835dd9 Add a new sweep metadata from/to proto approach (#6925) 1efa25c6 Add construction examples to docstrings of ClassicallyControlledOperation (#6913) 57d9d21c Streamline proto serialization of circuits with duplicate moments (#6941) 5ab78696 Improvepowfor SingleQubitCliffordGate (issue #6327) (#6919) be8b04b2 Passsweeptransformerrecursively (#6951) df776a06 Add YAML file linter (#6896) 0b796d13 Fix order preservation in align_right (#6899) 84adca96 Handle qudits in drop_terminal_measurements (#6879) 2949afdc Improvestrandreprfor SingleQubitCliffordGate (issue #6326) (#6920) b127bb73 Consider all-false invert_mask equal to no invert_mask (#6952) 2933c726 Fix qasm tests for qiskit 1.0 (#6927) 0361a81c Fix dd issue in calling PauliString.after (#6943) cd9a3ff2 Remove notebooks refering to removed service (#6580) 63e4c7d8 Disallow passing types as tags (#6947) 326a287f Add Markdown file linter (#6895) f596c43b Make qubits a memoized property of Moment (#6894) 7f66b421 Add info to examples/README.rst & convert to Markdown (#6889) 7bb36c32 Remove references to run_batch in engine docs (#6948) 988ecbc1 Adjust some more TeX expressions for rendering in web docs (#6942) 3a130418 Support inverse gate JSON seralization (#6912) 5d317bad Add recommended files for community support & update CONTRIBUTING.md (#6898) dbada0e1 Add bitwise option to Sympy evaluator for classical controls (#6914) ecf9ed75 Re-enable streaming Engine interface (#6930) bb86fb15 Avoid flaky test execution in z_phase_calibration_test (#6928) 9ada8a81 Fix flaky curve fitting tests (#6916) 25b33621 Fix diagram for Identity with no qubits (#6926) 3e16e15a Apply as_sweep for iswap_gauge, spin_inversion_gauge, sqrt_iswap_gauge (#6911) b5a04f04 Fix documentation for PhasedXZGate (#6870) 5ffb3add CircuitOperation: change use_repetition_ids default to False (#6910) b840178f Add metadata into single sweep (#6869) 83a8e0e5 Add examples for transform_qubits function (#6915) c5d29fe9 Add documentation for QASM export (#6891) 4ad58f6f Return NotImplemented for diagram info for empty PauliStringPhasors (#6880) 0f8701fc Add more informative message for improper cirq.qasm arguments (#6905) 59ab27ac Infer QASM for classical KeyConditions in circuit (#6871) 32bf399f Fix exponent location on classically controlled diagrams (#6897) e446d74d Replace references to "master" branch with "main" (#6888) 686766fc Support run_sweep in GaugeTransformer. Pioneered in the CZ Gauge (#6852) 29d99d36 Create a transformer cancels the effect of Z-phases (#6837) 0d9a6ee7 Allow passing a callable to de/serialization funcs (#6855) 324a086f Make DensityMatrixSimulator more numerically stable (#6850) ea605d48 Disable local Google Cloud credentials in tests (#6851) 4d03aea7 Add ability to pass tags to XEB and related methods (#6836) 2e79aa7a Support serialization of sweeps with tunits (#6829) f07a4b50 Add Concat to cirq-google sweep proto (#6821) e9fbabce Support "cu1", "cu3", and "crz" in QasmParser (#6820) def1b080 Add Concat to Sweeps (#6819) 35733fd4 Disable streaming by default (#6818) e61e3be1 Add zip_longest support to the cirq_google sweep proto (#6815) 495d913e Divert cirq.Sampler's run_batch to run_batch_async (#6813) 429bb9b2 Add parsing of the reset instruction to QASM parser (#6710) 550555d6 Vectorize readout mitigation (#6812) d760f00e Add option to specify batch size (#6809) e0087b06 Allow measurement keys with differing qubits in OpenQASM (#6803) 76125a23 Force decimals in scientific notation for OpenQASM 2.0 (#6802) 02f2f845 Preliminary support for parsing OpenQASM 3.0 (#6797) 2991e808 Update docs to usequantumai-oss-maintainers@googlegroups.com(#6804) 7096acdf Fix Moment.resolve_parameter for constant sympy expressions (#6794) f2c7330a Preliminary support for outputting to OpenQASM 3.0 (#6795) 326df25f Add custom args to value equality (#6799) dc8a43bb Fixphaseby` protocol for tagged operations (#6792) 30f5b482 Create a way to encode general functions (#6788) fd95547a Replace typeworkarounds.NotImplementedType with types.NotImplementedType (#6790) d1b0430d Add DynamicalDecouplingTag to cirq-google (#6782) 4bc068c4 Add throttle for jobs run with ProcessorSampler (#6786) 170b20bc Parallel XEB: Add option to specify pairs (#6787) 59be462b Create workflow for Z-phase calibration (#6728) 81d3fd99 Limit the number of db reads using duet.Limiter (#6783) ae6e4e4a Support TUnits in circuit serialization (#6781) c0b8aedd Batch circuit submit in cirqionq (#6652) 7a7ef2ba Create an insertionsort transformer and incorporate it into the transpiling protocol (#6776) f9ed1484 Transpile to native IonQ gates (#6572) 81f66b99 Add request limiter when polling for results (#6774) 351a08e5 Add TypedUnits to the requirements of cirq-google (#6773) 01b0c125 Update pyquil dependency and remove workaround pinning of quil (#6763) e8e53da9 Mark QSD QFT5 with xfail (#6767) 9ff9b6be Use pytest fixture for multiprocessing Pool in XEB tests (#6766) 54f9e8c7 Allow external users to use snapshotid (#6739) 57183653 Fix Quantum Shannon Decomposition (#6756) 95204668 coverage - exclude code guarded by `if TYPECHECKING(#6753) 769ad501 Update copyright checker and switch to pylint-3 (#6751) 55b2c308 CI - fix flaky type check failure incirq.vis.heatmap(#6750) 95f6a3f1 CI - fix flakiness of stream_manager_test on Windows (#6749) ce1d9035 Restore cirq_google.api.v2 protos deleted in 6442 (#6746) 756abe31 Dynamical decoupling: Support pulling through the whole circuit with non-clifford moments (#6718) bb24dae0 Update the const proto field name (#6744) 2bbc3c4c CI - add temporary job pytest-numpy-2 to test with NumPy-2 on Ubuntu (#6740) 3fefe298 Fix #6706 – Update sources for compatibility with NumPy 2 (#6724) d15549c9 Exclude conftest.py files from enforcing changed-code coverage (#6738) 484df6f3 Silence pytest warnings about asyncio fixture scope (#6736) ad29fa87 Fix Rigetti check for Aspen family device kind (#6734) d74e0dce Add support for const sweep with None (#6729) 2adc2189 Implement and enforce explicit re-export for cirq modules (#6722) 19af193e Update node dependencies & generate bundled JavaScript files (#6720) f56a799c Introduce a generic value type for DeviceParametersDiff proto (#6712) f0ead96a Limit maximum multiprocessing pool size in xeb tests (#6713) 6037f184 Update sources for mypy-1.11.1 (#6707) e3fbf20d Stop using deprecated module pkg_resouces (#6708) d94c457b AddIdentityGate.commutes(#6702) 8d8a6c57 Enable pulling through Clifford operations, also add an option of only applying dd to single qubit gate moments (#6675) 16401168 Avoid CI flakes due to random-seed-dependent unit tests (#6700) e2e8aefa Mark ProjectorSum class as unhashable (#6701) 5377fff5 Test hash consistency of cirq objects loaded from a pickle (#6677) 51e8c3d4 Fix recent type check failure in the CI (#6699) c6b69a2d Update NumPy APIs that will be removed in numpy-2.0 (#6693) cd3182a3 Move Coupler to cirq_gooogle.ops (#6697) 978b5e39 Add serialization for Coupler Qids (#6682) 3fee420b Add validation for couplers (#6681) 60ab3c0a Eliminate awful slowdown ofEigenGate.valueequalityvalues(#6695) 2e510148 Fix docstrings for the ionq GPIGate and GPI2Gate (#6694) c25678ef np.infty no longer supported in NumPy 2.0 (#6692) 94f1e094 Exclude all setup.py files from typecheck (#6690) bae02e4d Allow using protobuf version 5 and later (#6683) c58a05c3 Add GridCoupler Qid to cirq_google (#6678) bc4cd6d6 Added random single-qubit CUE and Clifford gates (#6670) 45a6bbbd Fix XEB error rate computation (#6673) ee934fe4 Use np.complex128 for simulating xeb circuits (#6672) df20ade1 Fix bug that caused XEB to fail when requesting depth > 100 (#6671) 8d09a322 Fix equality for cphase gate initialized with sympy constant (#6669) 75b3f408 Adds tools for appending randomized measurement bases and processing renyi entropy from bitstring (#6664) 3922a63a Add noise amplification transformer (#6665) 5d22a538 Support creating XEB calibration options for arbitary FSim like gates (#6657) 590a9f5f Update files to conform to new mypy standard (#6662) 32d48331 Change to optimize_for_target_gateset in docs (#6658) da5c3b51 Add uncorrelated readout error mitigation for arbitrarily long Pauli strings (#6654) ac63c604 cirq_pasqal getting_started.ipynb - enforce single operation per moment (#6656) 9c836ba3 Fix error on MSGate unitary matrix (#6645) 4b8e8e41 Enforces specifying run_name and device_config_name on Engine interfaces (#6649) 0aae3c12 CI - add Python 3.12 tests to ci-daily (#6605) 71c79da7 Allow highlighting a subset of qubits when displaying heatmap (#6642) 2c993f8d Pass metadata to sweeps (#6644) 5f7881ff Remove implicit thread creation in XEB sampling (#6643) 03aa5114 Allow passingNonetoAbstractCircuit.frommoments(#6637) ac3a70fc Make implicit Optional type hints in Quantum Engine PEP 484 compliant (#6640) 543d9cd4 FixXaZbZbZbworks butXaZb**3` (#6618) 16de0690 Improve replaceversion tool and development wheels (#6626) d077532d Add a new proto DeviceParametersDiff which provides a compact way to bundle multiple DeviceParameters and their values (#6583)

- Python
Published by pavoljuhas 9 months ago

cirq - 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

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

- Python
Published by pavoljuhas over 1 year ago

cirq - 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

ab869790 Flush deprecations before minor release (#6622) a9776d0f Nicer string representation for InverseCompositeGate (#6262) 2cfdf1f4 Add convenience methods to create PhasedXZ gate from ZYZ decomposition (#6569) 1a8caa47 Proper text files end with a newline character (#6614) 778e9e9b Freshen-up cirq dependencies (#6616) e4b6ab2f Fix spurious failure of the check/all script (#6611) ee4d7023 enable simulation of controlled gates in classical simulator (#6589) 528b2d2c Update list of pre-release notebooks (#6609) e11d297b Fix nightly build of the staging cirq website (#6615) f246c2be Add Quantum Engine Support for InternalGate (#6613) aa04196e Create a generalized uniform superposition state gate (#6506) df07e94a Release pins from all pytest-related packages (#6602) bf67f297 CI - deflake Isolated pytest Ubuntu (#6603) cf86dda5 Suppress superfluous warnings from numpy (#6599) 2a907bf3 Delete cirqft (#6596) 31600565 CI - deflake Isolated pytest Ubuntu (#6593) ee2b78f8 Optimise QubitPermutationGate decomposition (#6588) 9ddb8c80 Add a note about conda env to dev doc (#6592) f79f9028 Implement dynamical decoupling. (#6515) f6bfb7fc NEP-29 - enforce minimum Python version 3.10 (#6591) 46eab2d8 Support Python 3.12 (#6516) bfba9653 Avoid DivisionByZero error when TensorNetwork simplifies to a scalar (#6586) 69e3de1c Optimize Clifford.pow_ by using binary exponentiation (#6581) 3080d939 Add a new gauge for SqrtCZ and support SqrtCZ† and fix and improve spin inversion gauge (#6571) 614c78ae Set maxsize of request queue to Quantum Engine (#6576) 37e8df95 Escape & in SVG diagrams (#6579) 2474d47d Removed deprecated processorids (#6563) 58281470 Fix `lenof empty Product sweep to match actual length (#6575) 3ff41a45 CI - downgrade to macos-13 which has the needed Python versions (#6578) e1b03ef6 Update AQT Backend (#6441) 21986ddf Add UNKNOWN status code to retryable Quantum Engine errors (#6565) 2eb6d638 Add Quantum Engine support for cirq.CZPowGate (#6562) 7b7c93dc check/all - exit with error status if any of checks failed (#6561) d16b12c0 Avoid state vector normalization if it worsens the round offs (#6556) c18feed7 display tags bystrinstead ofreprin circuit diagrams (#6530) 1bec6b58 Improve repr ofBaseAncillaQidclasses with prefix (#6555) 436c9379 Remove the--preoption from verify-published-package.sh (#6536) 857e202d Bugfix incomparisonkeyand nicerwithdimensionofBaseAncillaQid` (#6554) 9ab66019 Loosen the scipy condition in requirements.txt (#6549) 7792dac1 Remove doc references to stale gitter channel (#6540) b8f06631 Add FSimViaModel Gate into device.proto (#6548) bc3f9ffa CI - migrate to docker compose v2 (#6547) f9f0d66d Introduce gauge compilation (#6526) 45c5fa38 Ensure the result of simulation is normalized (#6522) acb7bf80 pin scipy to ~1.12.0 to temporarily fix ci (#6545) f9556502 Add Serialization and Deserialization Support of FSimViaModelTag. (#6539) 7b97ead2 Fix density matrix references in other simulators (#6537) fc3cc70b Add FSimViaModelTag (#6527) 2e28ae18 Undo temporary version pin of mpmath (#6535) 5a479db7 Install cirq pre-release with stable dependencies (#6534) e5ad4261 Fix ci-daily workflow failures on Mac OS X (#6532) 46e44837 Initialize processor sampler with the default device config key (#6521) edd8393b Merge serializableforms and deserializedforms (#6520) edda3a51 Add UNITSWEEP as an alias for UnitSweep (#6518) 83382ae0 Add documentation to cirq.decompose protocol regarding specific target gateset (#6439) 632f8b3d Ignore Python code formatting in git blame (#6514) 527af773 Add newly serializable gates to supported grid device gates (#6499) 1a6c16a0 Format all files with black-24.3.0 (#6513) 42927b88 Fix capitalization of GitHub in docs (#6509) a2425eb8 Update ClassicalSimulator to confirm to simulation abstraction (#6432) 7780c01e Preserve circuit tags in transformerprimitives.mapoperations (#6505) dadfdcb4 Added MSGate to top level (#6466) 0f4822b1 update parallel XEB notebook (#6494) 2700f959 Remove python3.9 from CI tests (#6495) dc1065d4 Update T1 experiment (#6487) bc766606 Add serialization support to more gates (#6479) 45138921 Update start notebook to use get_engine instead of get_qcs_objects_for_notebook (#6483) 6dbac6b5 Add new get_hardware_engine_and_authenticate_user (#6485) d75d43f0 Add warning when converting global phase operator to OpenQASM 2.0 (#6476) eef7c5c9 Enable testdockerpre after pinning the mpmath transitive dependency (#6481) 78f05f48 Fix maximum version limit for mpmath (#6482) e11132e3 Fix mpmath version to 1.3.0 due to incompatibility with sympy (#6477) 02d29a97 Support serialization of cirq-google.CouplerPulse gate (#6472) 598c84f8 Add a convenience method that runs both RB and XEB (#6471) e76702fe No longer support create_calibration_program and create_batch_program (#6442) 33eea011 Rework SerializableByKey handling to improve performance (#6469) a4ec7967 Address NumPy and NotImplemented deprecation warnings (#6465) a8bd9a59 Change str of ResultDict to print out repeated measurements (#6468) d432730d Bugfix in strathasstabilizereffectfromdecompose (#6467) 6a40da5f Enable testing of quimb-dependent notebook (#6461) c2e37df8 CI - update GitHub actions to node20 (#6462) adf51553 Combine RB and XEB to compute inferred errors (#6455) c3de7064 CI - update GitHub actions to node20 (#6450) 2cb7ffee Specify CODECOVTOKEN for uploading coverage reports (#6459) ef0137c1 Relax version requirement on duet (#6454) f1aacd7f [Refactoring]: split `devices.noiseutilsintoqis.noiseutilsanddevices.noiseutils` (#6453) ab9e10a3 Suppress matplotlib warnings on non-interactive use of show() (#6449) 34a8e59a Combine 2q parallel XEB into two methods, one for benchemarking and the other for visualization (#6443) b9d2defe Bump up to codecov/codecov-action@v4 compatible with node20 (#6448) 36e91b0c Fix ci-daily notebook failures on Mac OS X (#6444) 57c52fe6 CI - update GitHub actions to node20 (#6445) f2c6f3ce Add an optional CompilationTargetGateset postprocessor to contract the circuit (#6433) 5dd05bff Run product state functions inplace to avoid copies where possible (#6396) e9e12ee6 remove partial CZs if allowpartialczs=False (#6436) 9f07ce84 Fix font family for svg (#6423) 5ed8f16c update quimb version to fix CI (#6438) 2ef19094 Add readout plotting tools (#6425) ee56c598 Rm buildrtddocs CI job and its dependencies (#6417) ba4c6aa5 convert identity to phased xz in qubit characterization (#6421) 91c3f45a convert cliffords to xz in qubit characterization (#6420) a3eed6b9 convert SingleQubitCliffordGate to phasedXZ during serialization (#6419) 7da7f64c Add ParallelRandomizedBenchmarkingResult class (#6412) 9c451a2d Update sphinx version (#6415) 8ae5bbb3 Pin sphinx dependencies that require Sphinx 5.0 or later (#6414) 968ed4c3 Remove cachedproperty backport (#6398) 4d35768c switch from bash to template approach for creating pypi config file (#6409) ea6fabca use token to upload to pypi (#6406) c8f7ed72 fix small normalization bug (#6404) aa57be50 Fix common typos (#6403) 9e86d364 optimize clifford benchmark circuit creation for a total 94.5% speedup (#6401) b3e0eeb9 make SingleQubitCliffordGate immutable singletons and use it in qubitcharacterizations for a 37% speedup (#6392) 8a7f6755 Fix "Build docs" CI job by temporarily pinning alabaster to 0.7.13 (#6399) d33b1a71 Don't create a new list of qubits in Gate.on (#6390) 7c9b7137 Modify runbatchasync (#6387) 99993b93 Check identity first when comparing moments (#6388) a2530fe3 Speed up construction of single qubit pauli operations - cirq.X(q) (#6316) 181d7aa2 Check value equality first when comparing circuits (#6375) 19612073 Add parallel randomized benchmarking (#6382) 2ce4ed12 Add exponential fitting to RandomizedBenchMarkResult (#6385) 321786dd Easy changes to difficult terminology (#6340) e3fbd98a Optimize qid comparisons (#6386) 2f3c1e2c Optimize cachedmethod when wrapping no-arg methods (#6381) ec727ca1 Revert "Change default for streaming feature flag to false (#6310)" (#6380) 33c25733 Cache Qid instances for common types (#6371) 6d437c45 Update start doc to specify recommended python version (#6370) be7b0594 Short-circuit value equality with an identity check (#6372) 75781102 Use spawn in _compattest.py to avoid fork problems (#6374) 30b6c390 Fix testnotebooksagainstcirqhead for MacOS platform (#6366) 6ea5ae1c Bump cirq version to 1.4.0 (#6369)

- Python
Published by pavoljuhas over 1 year ago

cirq - v1.3.0

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

9b65f686 Remote problematic terminology from test (#6368) dbbca739 Change master to main in documentation (#6365) ced13835 Restore code coverage (#6364) 3ac43f64 Switch master to main in CI tools and dev tools (#6363) 3c6a305b Deprecate Cirq-FT module in favour of Qualtran (#6362) cf973a53 Remove leftover dummy terms from the Cirq sources (#6358) 9142f6a8 Fix MacOS installation instructions for mactex with brew (#6361) 6aa9d0de Cleanup classical simulator code and fix a couple of bugs (#6344) a55f9626 Fix typos in the documentation. (#6359) a4ba95b6 Break intermediate measurements on 3+ qubits into single qubit measurements in RouteCQC#6293 (#6349) 7f47e133 Created using Colaboratory (#6360) b5b3b748 ProcessorSampler: route runbatch to runsweep (#6357) 2fdb447d Remove dummy from cirq-core (#6356) 3a64ef15 StreamManager: make function params explicit (#6355) 26dbabc6 Speed up hashing for GridQubit, LineQubit, and NamedQubit (#6350) 3c819619 Update docs/tutorials/google/start.pynb (#6346) 9a8298da Update start.ipynb (#6342) 8d07cabc Optimize ParamResolver.valueof (#6341) 392083b9 StreamManager: retry with get result request on already exist errors (#6345) 0e288a75 Bump @babel/traverse from 7.14.5 to 7.23.2 in /cirq-web/cirqts (#6318) 2f702c88 Add classical simulator (#6124) 39bd9269 Change default for streaming feature flag to false (#6310) 0b90ed6f Increase coverage of clifford protocols to paritygates (#6338) 11ae0bd3 Make RouteCQC errorout on intermediate measurements on 3+ qubits (#6307) aa312bcd Fix flaky behavior of testxebfidelity (#6337) 2f7d7325 Cache Circuit properties between mutations (#6322) 54852270 Run unit tests without affecting user browser session (#6333) fec68ae6 Fix ci-daily pytest failure (#6335) 34e8dab0 Extend Clifford protocol for 2+ qubit operations through analytical check and falling back to decompose (#6332) 17313e71 ci - show 20 slowest tests on Linux, Windows and Mac (#6334) 5556e729 ci - skip slow tests on PR, run them in daily ci instead (#6331) 1eced48d Moved rigetti integration test logic to higher level conftest.py file… (#6328) 15497859 remove default values of InternalGate (#6330) 235a0c6e Add documentation for cirq google's support for google internal gates (#6301) 455f50be Build clifford tableau just once during SingleQubitCliffordGate to PhasedXZGate conversion (#6325) ec84a057 Preserve subcircuits passed to [Frozen]Circuit.frommoments (#6320) 96b38428 Move qubit management transformers from Cirq-FT to Cirq-core (#6319) 105d975a Adds 2q prep for iswap instead of sqrtiswap (#6314) a98fc616 Make ancilla for BiQubitsMixer sided too. (#6313) 9b65f686 Remote problematic terminology from test (#6368) dbbca739 Change master to main in documentation (#6365) ced13835 Restore code coverage (#6364) 3ac43f64 Switch master to main in CI tools and dev tools (#6363) 3c6a305b Deprecate Cirq-FT module in favour of Qualtran (#6362) cf973a53 Remove leftover dummy terms from the Cirq sources (#6358) 9142f6a8 Fix MacOS installation instructions for mactex with brew (#6361) 6aa9d0de Cleanup classical simulator code and fix a couple of bugs (#6344) a55f9626 Fix typos in the documentation. (#6359) a4ba95b6 Break intermediate measurements on 3+ qubits into single qubit measurements in RouteCQC#6293 (#6349) 7f47e133 Created using Colaboratory (#6360) b5b3b748 ProcessorSampler: route runbatch to runsweep (#6357) 2fdb447d Remove dummy from cirq-core (#6356) 3a64ef15 StreamManager: make function params explicit (#6355) 26dbabc6 Speed up hashing for GridQubit, LineQubit, and NamedQubit (#6350) 3c819619 Update docs/tutorials/google/start.pynb (#6346) 9a8298da Update start.ipynb (#6342) 8d07cabc Optimize ParamResolver.valueof (#6341) 392083b9 StreamManager: retry with get result request on already exist errors (#6345) 0e288a75 Bump @babel/traverse from 7.14.5 to 7.23.2 in /cirq-web/cirqts (#6318) 2f702c88 Add classical simulator (#6124) 39bd9269 Change default for streaming feature flag to false (#6310) 0b90ed6f Increase coverage of clifford protocols to paritygates (#6338) 11ae0bd3 Make RouteCQC errorout on intermediate measurements on 3+ qubits (#6307) aa312bcd Fix flaky behavior of testxebfidelity (#6337) 2f7d7325 Cache Circuit properties between mutations (#6322) 54852270 Run unit tests without affecting user browser session (#6333) fec68ae6 Fix ci-daily pytest failure (#6335) 34e8dab0 Extend Clifford protocol for 2+ qubit operations through analytical check and falling back to decompose (#6332) 17313e71 ci - show 20 slowest tests on Linux, Windows and Mac (#6334) 5556e729 ci - skip slow tests on PR, run them in daily ci instead (#6331) 1eced48d Moved rigetti integration test logic to higher level conftest.py file… (#6328) 15497859 remove default values of InternalGate (#6330) 235a0c6e Add documentation for cirq google's support for google internal gates (#6301) 455f50be Build clifford tableau just once during SingleQubitCliffordGate to PhasedXZGate conversion (#6325) ec84a057 Preserve subcircuits passed to [Frozen]Circuit.frommoments (#6320) 96b38428 Move qubit management transformers from Cirq-FT to Cirq-core (#6319) 105d975a Adds 2q prep for iswap instead of sqrtiswap (#6314) a98fc616 Make ancilla for BiQubitsMixer sided too. (#6313) fefe3501 Make SingleQubitCompare output registers directional (#6312) fee056e9 Move GreedyQubitManager from Cirq-FT to Cirq-Core (#6309) 87f77be0 Create separate unary and streaming RPC tests in enginetest.py (#6311) 4dc36d54 Integrate StreamManager with runsweep() (#6285) c6f60bc0 Apply fix from typo scan of quantumai website, cl/570431484 (#6308) bef756e2 Allow specifying settings field from Cirq-ionq (#5817) fd18da57 Make OpIdentifier serializable for all inputs (#6295) 1948e732 Change signature of cirq_ft.And gate to use directional registers like Qualtran (#6302) c6963234 Rename cirq_ft.Registers to cirq_ft.Signature to match data types in Qualtran (#6300) 61d96711 Fix streammanagertest type warnings (#6299) acbc6247 Do not allow creating registers with bitsize 0 (#6298) 8e4e7d14 Add bitsize field to Cirq-FT Registers (#6286) 188bb94a Add registry sweep documentation to cirqgoogle (#6291) 907ec3af Try to make docstring render correctly (#6283) d805d823 Make InternalGate hashable if all gate args are hashable (#6294) 13664940 Apply minor doc fixes (#6289) b630298d Fix matplotlib typing (#6290) f715527b Fix documentation of FSimGate (#6288) 432d57a8 Add serialization support for InsertionNoiseModel (#6282) cf005c2d add to ionq code owners (#6273) 6c14cfa7 StreamManager: Add mechanism to close the request iterator (#6263) deedb453 Changed FakeQuantumRunStream to support arbitrary response and exception timing (#6253) 6fae4097 Delete SelectionRegisters and replace uses of Registers with Tuple[Register, ...] (#6278) e2356428 Variable spacing QROM should depend upon structure of different data sequences and not exact elements (#6280) eddb2d9c Add caching to `valueequalityvaluesdecorator for auto generated methods. (#6275) 0e80fa52 v0.3 API + debiasing (#6077) b70b2fcf Add new processor selector parameters in cirq-google/engine run methods (#6267) b28bfce0 Speed up parameter resolution forcirq.Duration(#6270) c7048f50 codecov - exclude protobuf-generated sources from coverage analysis (#6268) 041ce5df Add tags tocirq.FrozenCircuit` (#6266) 83609ebe Make device parameter units/idx optional (#6264) 8bd21618 Support the new quantum engine processorselector in engineclient (#6254) 56b5db2e add back add/removequbit to density matrix sim state (#6259) ed26d2f7 Fix ordering issue in randomrotationsbetweengridinteractionlayerscircuit (#6261) 7ed95aa3 Speed up cirq.map_operations and cirq.map_operations_and_unroll (#6250) be6218e1 codecov - tolerate small decrease in coverage (#6258) 5bbdc223 Apply variable-spaced optimization to QROM circuits (#6257) 6abc7401 remove extra User-Agent prefix in the ionq API header (#6232) 999fd94a Avoid skipping code lines depending on random seed (#6256) 86f17eb8 Update documentation to prevent markdown rendering of underscores as italics (#6255) 6e38a274 Fix coverage exclusion syntax (#6241) 6b44704a Check if python starts python3 (#6239) 95cb43f5 Remove temporary directories after test done (#6236) 30fa6f59 Fix bug in cirq-ft due to which T-complexity fails for gates with an empty decomposition / no-op (#6252) 95c672ab Support the deprecatedparameter decorator for asynchronous functions. (#6247) 64e1a7fd Fix CI requirements for Changed files test (#6243) 9fbaa054 Fix quoting in shell scripts per shellcheck-0.9 (#6245) 13f05fdf Revert "Integrate StreamManager with runsweep() (#6233)" (#6242) 2fcdeb8d codecov - fix syntax for excluding code lines from coverage (#6240) c193c482 Fix bug in controlled() method of CCX and CCZ gates (#6237) 5e342c2b codecov - evaluate coverage at 0.1% resolution (#6238) 86479ae7 Integrate StreamManager with runsweep() (#6233) 5c36dc00 fix ms gate equality (#6231) 081afab2 Add decomposition for CCZ gate and IonQTargetGateset when qubits are all-to-all connected (#6095) 14baaa59 Add StreamManager (#6199) c5afccea Fix Isolated pytest (#6229) 701538c3 Support empty invertmask in measument gate deserialization (#6224) c510fffb Update requirements.txt (#6226) c15dd038 Fix typo and add more helpful assertion message. (#6221) 1c038c32 Pin mypy-protobuf version and fix failing qasm test (#6222) 91f690d4 Add cirq specific environment variables to ionq (#6216) d81d07c2 Move AsyncioExecutor to separate file. (#6192) c4a2b93f Add Codecov coverage badge to the main README file (#6220) 43f6a7fd create cirqgoogle.api.v2.InternalGate proto (#6212) db1b37b2 Fix notebook failure in CI tests (#6218) 76b8a96e Integrate CI with codecov coverage reports (#6193) 43d03726 Use f-strings in the prmonitor tool (#6208) 6e562e64 Add ResponseDemux (#6190) e16fbf44 Bump word-wrap from 1.2.3 to 1.2.4 in /cirq-web/cirqts (#6209) 8241c4e0 Bump cirq version to 1.3.0 (#6207) edc820a5 Remove flynt dependency (#6205) 344d0206 Simplify StatePreparationAliasSampling tests by relying on Cirq simulators to simulate operations allocating ancillas (#6204) 83ede366 Make Cirq-FT registers multi-dimensional (#6200) a076858a Add Python 3.11 tests to CI (#6191) 45ed2287 Ignore string updates for consider-using-f-string (#6203) 5f5f513e Fix flaky test to make Windows CI runs consistent (#6202) 084e273a Use f-strings instead of percent operator or str.format() (#6198) b72a5328 Create cirqgoogle.InternalGate (#6194) c93224eb Implemented 8n T complexity decomposition of LessThanEqual gate (#6156) cb05a694 Create consistency check for unitary with ancilla (#6196) 8e70f775 Remove dependency on the flynt tool (#6164) 3fe34384 Speed up execution time of merge_single_qubit_moments_to_phxz transformer by avoiding redundant calls to unitary protocol (#6174) d98be50e Delete dependencies pinning done over 2 years ago (#6189) 60508bc3 Update prmonitor/Dockerfile to Python 3.9 (#6188) a041ef80 Handle shape mismatch for cirq.diracnotation (#6179) 9dff0115 Fix failing tests for Python 3.11 (#6181) 5d3e681a Remove unused warnings filter for pytest (#6186) 56259e49 Clean up after getting compatibility with numpy-1.24 (#6187) 8a41b4a0 added ci-daily (#6177) 221d6752 Retire unused Dockerfile (#6184) 5db4af71 Remove references to cirqqubitization in cirqft (#6183) 508677ad Create a unitary to pauli string transformer (#6100) ad6e6494 Handle qubits in the str of StateVectorTrialResult (#6180) 98496955 Decompose protocol must create a context when given None and SimpleQubitManager must add a prefix to its qubits (#6172) 7b753f63 Remove invalid extra commas from json data (#6176) bc09047e Bump minimum python version to 3.9 (#6167) 74cee7e8 Add support for > 32 qudits to cirq.samplestatevector. Fix for #6031 (#6090) af4688df Skip utility sims (#6170) 421d492b copied colabs (#6169) 6565fc5a CI - run pylint checks with dependencies installed (#6163) 228c7e6f Fix LaTeX formatting for arbitrary-angle MS gate (#6166) f4605da7 Set cachetools min version to 5.3 (#6161) dfedcd60 Delete redundant setup.cfg files (#6122) 374947dc Remove overwriteexisting fields in CreateQuantumProgramRequest and CreateQuantumJobRequest (#6160) 6c251a3d Remove numpy<1.24 restriction from requirements.txt (#6149) f3965e82 Add Device Parameter metadata serialization to cirqgoogle (#6113) 3b699a48 BugFix in cirq.map_operations (#6155) b3376590 CI - update GitHub actions (#6153) 1bae5437 Try to fix bz2 issue. (#6151) d2362760 Add units to device parameter (#6140) c5dbb11a Launch Cirq-FT: Cirq for Fault Tolerant Algorithms sub-package (#6138) 26af12ee Allow measuresinglepaulistring to have negative coefficient (#6143) 9a1609ce Make cirq.FREDKIN gate self-inverse (#6135) c08649fb added resolver for Sympy.Float to improve performance (#6128) d7fb8ece Replace usage of functions deprecated in NumPy 1.25 (#6133) 092b9961 Fail early in `strathasstabilizereffectfromunitary` (#6131) 24abfa1d Pin cirqrigetti pyquil dependency to pyquil-3.* (#6129) 0ef302f9 Changed simulators fallback to decompose_once and removed ancilla support from DensityMatrixSimulator (#6127) ebc52d53 Remove references to cirqgoogle.Foxtail (#6126) 3ac3c30d Inconsistent ordering of tags (#6123) cb89f3af Update Density Matrix and State Vector Simulators to work when an operation allocates new qubits as part of its decomposition (#6108) 33934390 Add new subpackage cirq-ft (#6121) 49b2cfb0 Add modulo to _equaluptoglobalphase (#6058) 1ed879d8 Quantum Shannon Decomposition (#6020) 20b3d93e Add _decompose_with_context_ protocol to enable passing qubit manager within decompose (#6118) 91777087 Add support for allocating qubits in decompose to cirq.unitary (#6112) 99e8a137 Ensure that cirq.decompose traverses the yielded OP-TREE in dfs ordering (#6117) b1e09a9e Update cirq.decompose protocol to perform a DFS instead of a BFS on the decomposed OP-TREE (#6116) ebec38b8 Add Parameter to cirqgoogle (#6102) 36d67c15 Make Collector and PauliSumCollector work with AbstractCircuit (#6109) 16ed00d3 Loosen networkx requirements (#6105) 50a49a9c Bump requests from 2.24.0 to 2.31.0 in /devtools/prmonitor (#6104) 97e8b986 Accept allqubits in GridDevice.fromdeviceinformation() to allow isolated qubits (#6103) 683286b9 Add metadata to sweeps (#6099) 0066a530 GridDevice serialization refactor (#6094) 091688da Fix typos in notebooks.md and a plenty of relative links (#6089) da9c4122 Unblock test that requires sympy-1.12 (#6096) a95f0096 Override gate.controlled() for GlobalPhaseGate to return a ZPowGate (#6073) f2cd706e Fix image links (#6085) df3acbed Remove deprecated argument of pyplot.stem (#6086) dc23f873 Keep up with quimb-1.5.0 (#6087) 6d3f27ea Fix cirqdev gitter URL (#6084) d292dcce Apply suggestions from CommonTypos checker (#6082) c5367eb1 Add `Moment.fromopsto more efficiently construct moments (#6078) ae336a65 Fix Default InsertStrategy in Circuits Notebook (#6079) c1d64518 Add ZipLongest to cirq_google (#6074) 2a57894e Access attributes directly in GridQubit instead of using properties (#6075) 03405d1b Fix matplotlib deprecation warning (#6072) 66ae2bca Removing Obsolete json files (#6071) f9ce9baf document json_namespace usage (#6069) a96a98c2 Adds User-Agent header to requests (#6065) 79286a1d Restore weekly cadence for the CI-weekly workflow (#6066) ee2d32a8 add _phase_by_ method to ZZPowGate (#6062) 8ac690d9 Bump webpack from 5.40.0 to 5.76.0 in /cirq-web/cirq_ts (#6035) 5c2bcdaf Use PEP-673 Self type annotations (#6057) 1445f12e Verify error reporting from the CI-weekly run (#6060) e7ef9d4a Update to mypy 1.2 (#6059) 6a5b3ea8 Use hash of all requirements files in cache keys for ci (#6061) 31bf1ac1 Add weekly CI workflow to test all notebooks (#6046) ae622500 Escape both<>characters in SVG test labels (#6056) cde65be8 Update cirq.contrib.svg to escape < and > characters (#6055) 6a97ccaa Refactor and speed upcirq.transformers.stratify(#6013) 663d404f Change dtype repr for Numpy 1.24 (#5991) 6b0c0985 Fix failing CI after Pandas 2.0 update (#6051) f1149962 Install recent version of ply in interop.ipynb (#6033) 0cc0458a Prevent notebook tests from changing the pytest Python environment (#6032) 611edeed pytest - keep "slow" tests deselected after-k EXPRESSION(#6034) 2c51eca3 Ensure compatible version of numpy in isolated_notebook_test.py (#6038) 402260c6 Update and correct pow function for PauliSum (#6019) 4607dd1e Remove outdated workaround for a bug in black formatter (#6045) cc8fc312 Fixed type annotations in _BaseLineQid and _BaseGridQid (#6043) 7335e715 Fixed type annotations in _BaseLineQid and _BaseGridQid (#6043) f636c5f0 Simplify dev_tools.notebooks.utils.rewrite_notebook (#6030) 8b97aa5d Bump node-fetch and puppeteer in /cirq-web/cirq_ts (#5998) c8f7a029 MatrixGate names don't survive serialization (#6026) 18991b5b Speed up parameter resolution by checking if val is parameterized and caching the boolean (#6023) f6a92a09 Adding dimension property to comparison of XPowGate and ZPowGate (#6005) a8275837 Correct invalid URLs found in notebook files (#6022) af6624d5 Bump ipython from 7.31.1 to 8.10.0 in /dev_tools/requirements/deps (#6015) 08fee59a IonQ: Handle 409 errors that are injected by Cloudflare (#5292) 1ad63aaa Pin Node version (#6014) 93545bee Fix an error in qvm_stabilizer_example.ipynb (#6010) 27dd6076 Addcirq_debug` flag and conditionally disable qid validations in gates and operations (#6000) fd491e0f Retry badgateway in cirq-ionq (#6006) dd2667a4 Reducing some code by cleaning up some logic (#6003) 3dc9629e Removing unnecessary return statement in cirq-core/cirq/circuits/moment.py (#6004) a3520bc3 Bump http-cache-semantics from 4.1.0 to 4.1.1 in /cirq-web/cirqts (#5997) 0c523d45 Add M and R aliases for cirq.measure and cirq.reset (#5993) 24a0d2e6 Fix link to noise models (#5990) 25ecba92 Fix bug in documentation of phaseflip and bitflip methods (#5977) 7f0c2789 Bump json5 and tsconfig-paths in /cirq-web/cirq_ts (#5975) b0140366 Add single-qubit detuning parameters to CouplerPulse (#5971) 0c4f7420 Make AsyncioExecutor a shared resource across EngineClients (#5976)

- Python
Published by dstrain115 about 2 years ago

cirq - v1.2.0

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

  • Bump cirq version to 1.2.0 by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5969
  • Make AsyncioExecutor a shared resource across EngineClients by @wcourtney in https://github.com/quantumlib/Cirq/pull/5976
  • Add single-qubit detuning parameters to CouplerPulse by @wcourtney in https://github.com/quantumlib/Cirq/pull/5971
  • Bump json5 and tsconfig-paths in /cirq-web/cirq_ts by @dependabot in https://github.com/quantumlib/Cirq/pull/5975
  • Fix bug in documentation of phaseflip and bitflip methods by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5977
  • Fix link to noise models by @nickdgardner in https://github.com/quantumlib/Cirq/pull/5990
  • Add M and R aliases for cirq.measure and cirq.reset by @maffoo in https://github.com/quantumlib/Cirq/pull/5993
  • Bump http-cache-semantics from 4.1.0 to 4.1.1 in /cirq-web/cirq_ts by @dependabot in https://github.com/quantumlib/Cirq/pull/5997
  • Removing unnecessary return statement in cirq-core/cirq/circuits/moment.py by @joesho112358 in https://github.com/quantumlib/Cirq/pull/6004
  • Reducing some code by cleaning up some logic by @joesho112358 in https://github.com/quantumlib/Cirq/pull/6003
  • Retry bad_gateway in cirq-ionq by @Cynocracy in https://github.com/quantumlib/Cirq/pull/6006
  • Add __cirq_debug__ flag and conditionally disable qid validations in gates and operations by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/6000
  • Fix an error in qvmstabilizerexample.ipynb by @yinghui-hu in https://github.com/quantumlib/Cirq/pull/6010
  • Pin Node version by @vtomole in https://github.com/quantumlib/Cirq/pull/6014
  • IonQ: Handle 409 errors that are injected by Cloudflare by @Cynocracy in https://github.com/quantumlib/Cirq/pull/5292
  • Bump ipython from 7.31.1 to 8.10.0 in /dev_tools/requirements/deps by @dependabot in https://github.com/quantumlib/Cirq/pull/6015
  • Correct invalid URLs found in notebook files by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6022
  • Adding dimension property to comparison of XPowGate and ZPowGate by @joesho112358 in https://github.com/quantumlib/Cirq/pull/6005
  • Speed up parameter resolution by checking if val is parameterized and caching the boolean by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/6023
  • MatrixGate names don't survive serialization by @markedmiston in https://github.com/quantumlib/Cirq/pull/6026
  • Bump node-fetch and puppeteer in /cirq-web/cirq_ts by @dependabot in https://github.com/quantumlib/Cirq/pull/5998
  • Simplify devtools.notebooks.utils.rewritenotebook by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6030
  • Fixed type annotations in _BaseLineQid and _BaseGridQid by @sarahsor in https://github.com/quantumlib/Cirq/pull/6043
  • Remove outdated workaround for a bug in black formatter by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6045
  • Update and correct pow function for PauliSum by @TarunSinghania in https://github.com/quantumlib/Cirq/pull/6019
  • Ensure compatible version of numpy in isolatednotebooktest.py by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6038
  • pytest - keep "slow" tests deselected after -k EXPRESSION by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6034
  • Prevent notebook tests from changing the pytest Python environment by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6032
  • Install recent version of ply in interop.ipynb by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6033
  • Fix failing CI after Pandas 2.0 update by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/6051
  • Change dtype repr for Numpy 1.24 by @bnavigator in https://github.com/quantumlib/Cirq/pull/5991
  • Refactor and speed up cirq.transformers.stratify by @perlinm in https://github.com/quantumlib/Cirq/pull/6013
  • Update cirq.contrib.svg to escape < and > characters by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/6055
  • Escape both <> characters in SVG test labels by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6056
  • Add weekly CI workflow to test all notebooks by @xXnathankerrXx in https://github.com/quantumlib/Cirq/pull/6046
  • Use hash of all requirements files in cache keys for ci by @maffoo in https://github.com/quantumlib/Cirq/pull/6061
  • Update to mypy 1.2 by @maffoo in https://github.com/quantumlib/Cirq/pull/6059
  • Verify error reporting from the CI-weekly run by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6060
  • Use PEP-673 Self type annotations by @maffoo in https://github.com/quantumlib/Cirq/pull/6057
  • Bump webpack from 5.40.0 to 5.76.0 in /cirq-web/cirq_ts by @dependabot in https://github.com/quantumlib/Cirq/pull/6035
  • add phaseby_ method to ZZPowGate by @richrines1 in https://github.com/quantumlib/Cirq/pull/6062
  • Restore weekly cadence for the CI-weekly workflow by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6066
  • Adds User-Agent header to requests by @splch in https://github.com/quantumlib/Cirq/pull/6065
  • Document json_namespace usage by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/6069
  • Removing Obsolete json files by @dstrain115 in https://github.com/quantumlib/Cirq/pull/6071
  • Fix matplotlib deprecation warning by @dstrain115 in https://github.com/quantumlib/Cirq/pull/6072
  • Access _row and _col attributes directly in GridQubit instead of using properties by @maffoo in https://github.com/quantumlib/Cirq/pull/6075
  • Add ZipLongest to cirq_google by @dstrain115 in https://github.com/quantumlib/Cirq/pull/6074
  • Fix Default InsertStrategy in Circuits Notebook by @xXnathankerrXx in https://github.com/quantumlib/Cirq/pull/6079
  • Add Moment.from_ops to more efficiently construct moments by @maffoo in https://github.com/quantumlib/Cirq/pull/6078
  • Apply suggestions from CommonTypos checker by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6082
  • Fix cirqdev gitter URL by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6084
  • Keep up with quimb-1.5.0 by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6087
  • Remove deprecated argument of pyplot.stem by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6086
  • Fix image links by @yinghui-hu in https://github.com/quantumlib/Cirq/pull/6085
  • Override gate.controlled() for GlobalPhaseGate to return a ZPowGate by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/6073
  • Unblock test that requires sympy-1.12 by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6096
  • Fix typos in notebooks.md and a plenty of relative links by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6089
  • GridDevice serialization refactor by @verult in https://github.com/quantumlib/Cirq/pull/6094
  • Add metadata to sweeps by @dstrain115 in https://github.com/quantumlib/Cirq/pull/6099
  • Accept allqubits in GridDevice.fromdeviceinformation() to allow isolated qubits by @verult in https://github.com/quantumlib/Cirq/pull/6103
  • Bump requests from 2.24.0 to 2.31.0 in /devtools/prmonitor by @dependabot in https://github.com/quantumlib/Cirq/pull/6104
  • Loosen networkx requirements by @vtomole in https://github.com/quantumlib/Cirq/pull/6105
  • Make Collector and PauliSumCollector work with AbstractCircuit by @maffoo in https://github.com/quantumlib/Cirq/pull/6109
  • Add Parameter to cirq_google by @dstrain115 in https://github.com/quantumlib/Cirq/pull/6102
  • Update cirq.decompose protocol to perform a DFS instead of a BFS on the decomposed OP-TREE by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/6116
  • Ensure that cirq.decompose traverses the yielded OP-TREE in dfs ordering by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/6117
  • Add support for allocating qubits in decompose to cirq.unitary by @NoureldinYosri in https://github.com/quantumlib/Cirq/pull/6112
  • Add _decompose_with_context_ protocol to enable passing qubit manager within decompose by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/6118
  • Quantum Shannon Decomposition by @uzzzzzzz in https://github.com/quantumlib/Cirq/pull/6020
  • Add modulo to equaluptoglobalphase by @siddharth-mehta in https://github.com/quantumlib/Cirq/pull/6058
  • Add new subpackage cirq-ft by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6121
  • Update Density Matrix and State Vector Simulators to work when an operation allocates new qubits as part of its decomposition by @senecameeks in https://github.com/quantumlib/Cirq/pull/6108
  • Inconsistent ordering of tags by @skushnir123 in https://github.com/quantumlib/Cirq/pull/6123
  • Remove foxtail references by @carthick in https://github.com/quantumlib/Cirq/pull/6126
  • Changed simulators fallback to decompose_once and removed ancilla support from DensityMatrixSimulator by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/6127
  • Pin cirq_rigetti pyquil dependency to pyquil-3.* by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6129
  • Fail early in _strat_has_stabilizer_effect_from_unitary by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/6131
  • Replace functions deprecated in NumPy 1.25 by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6133
  • Improvement in performance of resolve_parameters by @skushnir123 in https://github.com/quantumlib/Cirq/pull/6128
  • Make cirq.FREDKIN gate self-inverse by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/6135
  • Allow measuresinglepaulistring to have negative coefficient by @skushnir123 in https://github.com/quantumlib/Cirq/pull/6143
  • Launch Cirq-FT: Cirq for Fault Tolerant Algorithms sub-package by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/6138
  • Add units to device parameter by @dstrain115 in https://github.com/quantumlib/Cirq/pull/6140
  • Try to fix _bz2 issue. by @dstrain115 in https://github.com/quantumlib/Cirq/pull/6151
  • CI - update GitHub actions by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6153
  • BugFix in cirq.map_operations by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/6155
  • Add Device Parameter metadata serialization to cirq_google by @dstrain115 in https://github.com/quantumlib/Cirq/pull/6113
  • Remove numpy<1.24 restriction from requirements.txt by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/6149
  • Remove overwrite_existing fields in CreateQuantumProgramRequest and CreateQuantumJobRequest by @verult in https://github.com/quantumlib/Cirq/pull/6160
  • Delete redundant setup.cfg files by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6122
  • Set cachetools min version to 5.3 by @verult in https://github.com/quantumlib/Cirq/pull/6161
  • Fix LaTeX formatting for arbitrary-angle MS gate by @jli0108 in https://github.com/quantumlib/Cirq/pull/6166
  • CI - run pylint checks with dependencies installed by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6163
  • Add example colabs by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/6169
  • Skip utility sims by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/6170
  • Add support for > 32 qudits to cirq.samplestatevector. Fix for #6031 by @NoureldinYosri in https://github.com/quantumlib/Cirq/pull/6090
  • Bump minimum python version to 3.9 by @skushnir123 in https://github.com/quantumlib/Cirq/pull/6167
  • Remove invalid extra commas from json data by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6176
  • Decompose protocol must create a context when given None and SimpleQubitManager must add a prefix to its qubits by @NoureldinYosri in https://github.com/quantumlib/Cirq/pull/6172
  • Handle qudits in the __str__ of StateVectorTrialResult by @vtomole in https://github.com/quantumlib/Cirq/pull/6180
  • Create a unitary to pauli string transformer by @NoureldinYosri in https://github.com/quantumlib/Cirq/pull/6100
  • Remove references to cirqqubitization in cirqft by @mpharrigan in https://github.com/quantumlib/Cirq/pull/6183
  • Retire unused Dockerfile by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6184
  • added ci-daily by @jackreeceejini in https://github.com/quantumlib/Cirq/pull/6177
  • Clean up after compatibility with numpy-1.24 by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6187
  • Remove unused warnings filter for pytest by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6186
  • Fix failing tests for Python 3.11 by @navaro1 in https://github.com/quantumlib/Cirq/pull/6181
  • Handle shape mismatch for cirq.dirac_notation by @jeeva2812 in https://github.com/quantumlib/Cirq/pull/6179
  • Update dockerfiles by @jackreeceejini in https://github.com/quantumlib/Cirq/pull/6188
  • Delete dependencies pinning done over 2 years ago by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6189
  • Speed up execution time of merge_single_qubit_moments_to_phxz transformer by avoiding redundant calls to unitary protocol by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/6174
  • Remove dependency on the flynt tool by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6164
  • Create consistency check for unitary with ancilla by @NoureldinYosri in https://github.com/quantumlib/Cirq/pull/6196
  • Implemented 8n T complexity decomposition of LessThanEqual gate by @NoureldinYosri in https://github.com/quantumlib/Cirq/pull/6156
  • Create cirq_google.InternalGate by @NoureldinYosri in https://github.com/quantumlib/Cirq/pull/6194
  • Use f-strings instead of percent operator or str.format() by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6198
  • Fix flaky test to make Windows CI runs consistent by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/6202
  • Ignore string updates for consider-using-f-string by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/6203
  • Add Python 3.11 tests to CI by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/6191
  • Make Cirq-FT registers multi-dimensional by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/6200
  • Simplify StatePreparationAliasSampling tests by relying on Cirq simulators to simulate operations allocating ancillas by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/6204
  • Remove flynt dependency by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/6205

New Contributors

  • @nickdgardner made their first contribution in https://github.com/quantumlib/Cirq/pull/5990
  • @joesho112358 made their first contribution in https://github.com/quantumlib/Cirq/pull/6004
  • @yinghui-hu made their first contribution in https://github.com/quantumlib/Cirq/pull/6010
  • @markedmiston made their first contribution in https://github.com/quantumlib/Cirq/pull/6026
  • @sarahsor made their first contribution in https://github.com/quantumlib/Cirq/pull/6043
  • @TarunSinghania made their first contribution in https://github.com/quantumlib/Cirq/pull/6019
  • @bnavigator made their first contribution in https://github.com/quantumlib/Cirq/pull/5991
  • @xXnathankerrXx made their first contribution in https://github.com/quantumlib/Cirq/pull/6046
  • @richrines1 made their first contribution in https://github.com/quantumlib/Cirq/pull/6062
  • @uzzzzzzz made their first contribution in https://github.com/quantumlib/Cirq/pull/6020
  • @siddharth-mehta made their first contribution in https://github.com/quantumlib/Cirq/pull/6058
  • @senecameeks made their first contribution in https://github.com/quantumlib/Cirq/pull/6108
  • @skushnir123 made their first contribution in https://github.com/quantumlib/Cirq/pull/6123
  • @carthick made their first contribution in https://github.com/quantumlib/Cirq/pull/6126
  • @jli0108 made their first contribution in https://github.com/quantumlib/Cirq/pull/6166
  • @jackreeceejini made their first contribution in https://github.com/quantumlib/Cirq/pull/6177
  • @navaro1 made their first contribution in https://github.com/quantumlib/Cirq/pull/6181
  • @jeeva2812 made their first contribution in https://github.com/quantumlib/Cirq/pull/6179

Full Changelog: https://github.com/quantumlib/Cirq/compare/v1.1.0...v1.2.0

A Huge Thank You

Thank you to all our contributors for this release:

Ben Greiner, Cheng Xing, Doug Strain, Joe Schulte, Jon Donovan, Mark Edmiston, Matthew Harrigan, Matthew Neeley, Michael A. Perlin, Noureldin, Ogah Jackreece Ejini, Orion Martin, Pavol Juhas, Piotr Lewandowski, S Jeeva, Seneca Meeks, Siddharth Mehta, Spence Churchill, Tanuj Khattar, Tarun Singhania, Uzair Faruqui, Victory Omole, William Courtney, carthick, jli0108, nickdgardner, richrines1, sarahsor, skushnir123, xXnathankerrXx, yinghui-hu

- Python
Published by tanujkhattar over 2 years ago

cirq - Cirq v1.1.0

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

7892143d Print multi-qubit circuit with asymmetric depolarizing noise correctly (#5931) by Paige af1267dd 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
  • routedcircuitwith_mapping

What's Changed

  • Support multi-qubit measurements in deferred measurement transformer by @daxfohl in https://github.com/quantumlib/Cirq/pull/5787
  • Avoid warning on complex-to-float conversion by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5795
  • Post 1.0 version policy and release process by @verult in https://github.com/quantumlib/Cirq/pull/5747
  • Add Observables and PauliStrings by @augustehirth in https://github.com/quantumlib/Cirq/pull/5750
  • Add QVM pages and mentions in other pages by @augustehirth in https://github.com/quantumlib/Cirq/pull/5794
  • Update pasqal getting started tutorial to 1.0 by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5798
  • Links and titles by @augustehirth in https://github.com/quantumlib/Cirq/pull/5799
  • Bump Cirq version to v1.1.0 by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5796
  • Revert "Add Cirq 1.0 tab to TP." by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5797
  • Fix README links by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5802
  • Document fix by @thisisjaymehta in https://github.com/quantumlib/Cirq/pull/5807
  • Minor style changes to qvm builder code notebook by @augustehirth in https://github.com/quantumlib/Cirq/pull/5808
  • Add {Frozen}Circuit.from_moments to construct circuit by moments. by @maffoo in https://github.com/quantumlib/Cirq/pull/5805
  • Remove alpha notice. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5811
  • No qudit Y gate by @viathor in https://github.com/quantumlib/Cirq/pull/5814
  • Convert iterator to list to list before looping through moments in def insert by @vtomole in https://github.com/quantumlib/Cirq/pull/5820
  • Add binary literal example to methods of SimulatesAmplitudes class by @Caffetaria in https://github.com/quantumlib/Cirq/pull/5818
  • Add nodestolinequbits method to LineTopology by @Caffetaria in https://github.com/quantumlib/Cirq/pull/5821
  • Created routing utilities subdirectory in cirq-core/transformers and added MappingManager module by @ammareltigani in https://github.com/quantumlib/Cirq/pull/5823
  • Added str and repr for MappingManager and pushed name 'MappingMananger' to 'cirq' namespace by @ammareltigani in https://github.com/quantumlib/Cirq/pull/5828
  • Adds AbstractInitialMapper base class and IdentityInitialMapper by @ammareltigani in https://github.com/quantumlib/Cirq/pull/5829
  • Creates fake grid device for testing qubit connectivity in routing by @ammareltigani in https://github.com/quantumlib/Cirq/pull/5830
  • Fix mypy type check errors due to sympy update by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5836
  • Reduce atol in two qubit isometry analytical decompositions to fix failing tests on CI by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5837
  • Implements the LineInititialMapper strategy by @ammareltigani in https://github.com/quantumlib/Cirq/pull/5831
  • Changed mapping manager to use floyd warshall by @ammareltigani in https://github.com/quantumlib/Cirq/pull/5843
  • Added a public routing swap tag by @ammareltigani in https://github.com/quantumlib/Cirq/pull/5844
  • Potential fix for unclickable sidebar heading by @augustehirth in https://github.com/quantumlib/Cirq/pull/5842
  • Fix docstring for cirq.map_operations by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5849
  • Fix phase in factor by @daxfohl in https://github.com/quantumlib/Cirq/pull/5847
  • Restrict numpy version to unblock inflight PRs from failing by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5853
  • Adds unitary testing for routed circuits by @ammareltigani in https://github.com/quantumlib/Cirq/pull/5846
  • Adds the main transformer to do routing in Cirq by @ammareltigani in https://github.com/quantumlib/Cirq/pull/5838
  • Enable testing of cirq_google notebooks. by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5766
  • Fix typing complaints showing at numpy 1.23 by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5856
  • Change to use virtual engine in cirq_google docs by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5858
  • Fix asv setup and add benchmarks for circuit construction by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5845
  • Fix mypy error on master by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5865
  • Add benchmarks for parameter resolution by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5864
  • Remove TODO markers for fixed issues by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5871
  • Add performance benchmarks for CQC circuit routing by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5869
  • Added visualization for qubit permutations for routed circuits by @ammareltigani in https://github.com/quantumlib/Cirq/pull/5848
  • Replace pure python loops with numpy where possible in channels.py. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5839
  • Tell git to ignore build directories from distutils by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5875
  • Fix docstring typos in cirq.devices submodule by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5876
  • Adds tutorial ipynb for routing as a transformer by @ammareltigani in https://github.com/quantumlib/Cirq/pull/5877
  • Speeds up RouteCQC by encoding qubits as integers by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5872
  • AbstractCircuit.freeze should not reallocate moments by @vtomole in https://github.com/quantumlib/Cirq/pull/5878
  • Use pytest-randomly for reproducible random test parameters by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5868
  • Bump got and gts in /cirq-web/cirq_ts by @dependabot in https://github.com/quantumlib/Cirq/pull/5881
  • Remove a few debug prints from tests by @vtomole in https://github.com/quantumlib/Cirq/pull/5879
  • Use GitHub tarball for tensorflow-docs dependency by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5882
  • Add performance benchmarks for single qubit randomized benchmarking by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5866
  • Generalize filtration of dev requirements that can't be uploaded to pypi by @vtomole in https://github.com/quantumlib/Cirq/pull/5886
  • Bump node-forge and webpack-dev-server in /cirq-web/cirq_ts by @dependabot in https://github.com/quantumlib/Cirq/pull/5854
  • Bump json-schema and jsprim in /cirq-web/cirq_ts by @dependabot in https://github.com/quantumlib/Cirq/pull/5887
  • Address nits in Single Qubit Randomized Benchmarking benchmarks: by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5885
  • Fix failing imports from httpcore by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5891
  • Bump up the minimum required version of ply by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5890
  • untangle entangled tests by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5892
  • Optimize circuit/moment resolution to reuse instances if possible by @maffoo in https://github.com/quantumlib/Cirq/pull/5894
  • Implement the inverse of IonQ native gates by @yitchen-tim in https://github.com/quantumlib/Cirq/pull/5889
  • Speed up circuit construction when contents are a list of moments by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5898
  • Fix test failure on differing precision of float in proto string by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5911
  • Small housekeeping in check/pytest by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5899
  • Fix issues reported by shellcheck by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5910
  • Allow qudits in deferred measurements by @daxfohl in https://github.com/quantumlib/Cirq/pull/5850
  • Handle confusion matrices in deferred measurements by @daxfohl in https://github.com/quantumlib/Cirq/pull/5851
  • Add version compatibility policy guidelines for Cirq by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5897
  • Add applychannel_ optimizations for reset and confusion by @daxfohl in https://github.com/quantumlib/Cirq/pull/5917
  • Remove checks so that hold_time is sweepable by @eliottrosenberg in https://github.com/quantumlib/Cirq/pull/5919
  • Remove id from top-level notebook structure. by @markmcd in https://github.com/quantumlib/Cirq/pull/5874
  • Add support for arbitrary angles to IonQ native MS Gate by @gmauricio in https://github.com/quantumlib/Cirq/pull/5920
  • Add support for repeated keys in result protos by @maffoo in https://github.com/quantumlib/Cirq/pull/5907
  • Allow symbol for coupling_mhz in CouplerPulse gate by @maffoo in https://github.com/quantumlib/Cirq/pull/5908
  • Fix sympy error by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5930
  • Fix typo by @viathor in https://github.com/quantumlib/Cirq/pull/5935
  • Simplify controlled gate for SumOfProducts by @daxfohl in https://github.com/quantumlib/Cirq/pull/5873
  • Bump terser from 5.7.0 to 5.15.1 in /cirq-web/cirq_ts by @dependabot in https://github.com/quantumlib/Cirq/pull/5936
  • Bump ansi-regex in /cirq-web/cirq_ts by @dependabot in https://github.com/quantumlib/Cirq/pull/5937
  • Fix docstring indentation of cirq.PauliString by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5940
  • Add handling for sympy conditions in deferred measurement transformer by @daxfohl in https://github.com/quantumlib/Cirq/pull/5824
  • Add MatrixGate.with_name method. by @maffoo in https://github.com/quantumlib/Cirq/pull/5941
  • Document units expected by QasmUGate by @viathor in https://github.com/quantumlib/Cirq/pull/5945
  • Fix bug in synchronizeterminalmeasurements transformer by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5947
  • fixed XPowGate matrix description by @michaelontiveros in https://github.com/quantumlib/Cirq/pull/5946
  • CI - add job for shellcheck by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5948
  • Mark to_json arguments as optional by @andbe91 in https://github.com/quantumlib/Cirq/pull/5950
  • Fix lint in pylintrc by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5952
  • Bump decode-uri-component from 0.2.0 to 0.2.2 in /cirq-web/cirq_ts by @dependabot in https://github.com/quantumlib/Cirq/pull/5955
  • Bump qs from 6.5.2 to 6.10.3 in /cirq-web/cirq_ts by @dependabot in https://github.com/quantumlib/Cirq/pull/5956
  • CI - check consistency of requirements with pip-compile by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5954
  • Remove redundant 'while True' condition. by @chasesadri in https://github.com/quantumlib/Cirq/pull/5958
  • Fix typos in LaTeX by @viathor in https://github.com/quantumlib/Cirq/pull/5964
  • Restrict numpy version to 1.23 by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5968
  • Add benchmarks for transformer primitives and json serialization by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5957
  • Allow repeated measurements in deferred transformer by @daxfohl in https://github.com/quantumlib/Cirq/pull/5857
  • Print multi-qubit circuit with asymmetric depolarizing noise correctly by @paaige in https://github.com/quantumlib/Cirq/pull/5931
  • Make sure the closefigures fixture is defined by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5970

New Contributors

  • @thisisjaymehta made their first contribution in https://github.com/quantumlib/Cirq/pull/5807
  • @Caffetaria made their first contribution in https://github.com/quantumlib/Cirq/pull/5818
  • @yitchen-tim made their first contribution in https://github.com/quantumlib/Cirq/pull/5889
  • @markmcd made their first contribution in https://github.com/quantumlib/Cirq/pull/5874
  • @gmauricio made their first contribution in https://github.com/quantumlib/Cirq/pull/5920
  • @michaelontiveros made their first contribution in https://github.com/quantumlib/Cirq/pull/5946
  • @chasesadri made their first contribution in https://github.com/quantumlib/Cirq/pull/5958
  • @paaige made their first contribution in https://github.com/quantumlib/Cirq/pull/5931

Full Changelog: https://github.com/quantumlib/Cirq/compare/v1.0.0...v1.1.0

A Huge Thank You

Thank you to all our contributors for this release:

Adam Zalcman, Ammar Eltigani, Andreas Bengtsson, Aria, Cheng Xing, Dax Fohl, Doug Strain, Germán Mauricio Muñoz, Jay Mehta, Mark McDonald, Matthew Neeley, MichaelBroughton, Orion Martin, Paige, Pavol Juhas, Tanuj Khattar, Tim (Yi-Ting), Victory Omole, augustehirth, chasesadri, dependabot[bot], eliottrosenberg, michael

- Python
Published by tanujkhattar about 3 years ago

cirq - Cirq v1.0.0

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

  • Fix for issue #5637 by @mhucka in https://github.com/quantumlib/Cirq/pull/5638
  • Remove stale TODO and fix #5546 by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5643
  • Bump cirq version to 0.16.0 by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5640
  • Change GridDeviceMetadata qubit type to GridQubit by @verult in https://github.com/quantumlib/Cirq/pull/5633
  • Fix small issues in Shor tutorial by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5639
  • Fix CI failure due to incompatible qiskit packages by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5661
  • Fix typing of the protocols.commutes() function by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5651
  • Remove GlobalPhaseOperation and GateSet.acceptsglobalphase by @daxfohl in https://github.com/quantumlib/Cirq/pull/5663
  • Add init.py to make cirq.contrib.hacks a proper package by @maffoo in https://github.com/quantumlib/Cirq/pull/5662
  • Remove tetris_concat by @daxfohl in https://github.com/quantumlib/Cirq/pull/5659
  • Migrate StrategyExecutor to new transformer infrastructure by @ammareltigani in https://github.com/quantumlib/Cirq/pull/5644
  • Add return-type description for cirq.sample by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5649
  • Pin python-rapidjson in cirq-rigetti. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5666
  • Fix typing in numpy function arguments by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5657
  • Minor updates to development page by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5667
  • Replace SwapPermutationReplacer with cirq.map_operations by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5655
  • Engine creator helper function by @augustehirth in https://github.com/quantumlib/Cirq/pull/5658
  • Fix more numpy / mypy typing issues by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5669
  • Deprecate MergeNQubitGates optimizer by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5653
  • DensePauliString and MutableDensePauliString docs and inconsistencies fixes by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5624
  • Missing stubs for mypy --next by @dabacon in https://github.com/quantumlib/Cirq/pull/5670
  • Update docstrings for PauliSum. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5596
  • Change GridDeviceMetadata gate duration property to Mapping type by @verult in https://github.com/quantumlib/Cirq/pull/5656
  • Modify some numpy types to be compatible with numpy>=1.20 by @vtomole in https://github.com/quantumlib/Cirq/pull/5668
  • Revert "Pin python-rapidjson in cirq-rigetti." by @vtomole in https://github.com/quantumlib/Cirq/pull/5671
  • Remove deprecated ArithmeticOperation by @daxfohl in https://github.com/quantumlib/Cirq/pull/5579
  • Remove quantum engine sampler by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5673
  • Remove deprecated experiments by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5674
  • Remove key protocols frozenset conversion by @daxfohl in https://github.com/quantumlib/Cirq/pull/5660
  • Remove PasqalConverter deprecation. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5672
  • Fix remaining mypy/numpy errors by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5677
  • Call cirq.testing.assert_equivalent_repr for cirq.SingleQubitCliffordGate and cirq.CliffordTableau by @vtomole in https://github.com/quantumlib/Cirq/pull/5664
  • Remove ops.Moment deprecation. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5682
  • Remove sim v0.16 deprecations by @daxfohl in https://github.com/quantumlib/Cirq/pull/5645
  • Deprecate classes and paramters in contrib by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5684
  • Refactored and created an abstraction for control values by @NoureldinYosri in https://github.com/quantumlib/Cirq/pull/5362
  • Document dimension of X/ZPowGate by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5648
  • Link out to ParamResolver in resolve_parameters docstring by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5699
  • De-indent channel matrices by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5700
  • Remove deprecated SingleQubitGate by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5686
  • with_probability docstring by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5697
  • A Cauldron of Doc fixes by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5680
  • Fix 5702: prevent confusing error if dev_tools/modules.py is invoked without arguments by @mhucka in https://github.com/quantumlib/Cirq/pull/5706
  • Use @cached_method for FrozenCircuit properties by @maffoo in https://github.com/quantumlib/Cirq/pull/5707
  • Remove deprecated stratify module by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5714
  • Loosen pyquil requirements by @vtomole in https://github.com/quantumlib/Cirq/pull/5681
  • Remove deprecated class PauliTransform by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5703
  • Two more small doc fixes by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5711
  • Remove CrossEntropyResult and CrossEntropyResultDict by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5687
  • Cirq monofsv cleanup by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5685
  • Remove deprecated netural_atoms classes by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5695
  • Remove Deprecated Quil classes by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5710
  • Change exponent asterisks in doc string to carats by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5716
  • Remove remaining quil magic methods by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5723
  • unleash confusion map by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5717
  • Remove finalstatevector deprecations. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5720
  • Dedicated method for creating circuit from op tree with EARLIEST strategy by @daxfohl in https://github.com/quantumlib/Cirq/pull/5332
  • Remove virtual_predicate deprecations. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5724
  • Remove deprecated mergesinglequbit optimizer by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5725
  • Improve common_gates docstrings by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5722
  • remove 2 deprecated createdeviceproto_* methods for v0.16 release by @kmlau in https://github.com/quantumlib/Cirq/pull/5704
  • Remove a batch of deprecated optimizers by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5727
  • Finish removing optimizers by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5729
  • More numpy types by @vtomole in https://github.com/quantumlib/Cirq/pull/5683
  • Improve Fourier Checking tutorial by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5708
  • Remove circuits.CircuitDag by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5733
  • Nitpick on comment after #5724 by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5732
  • Fix 5701: avoid dev_tools/modules.py print_version failing by @mhucka in https://github.com/quantumlib/Cirq/pull/5705
  • Add async methods to AbstractEngine and AbstractJob by @maffoo in https://github.com/quantumlib/Cirq/pull/5555
  • Remove deprecated calls in examples/bcsmeanfield by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5737
  • Eigengate docs: move init to class docs for better rendering by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5735
  • Fix the definition of PhasedFSimGate by @eliottrosenberg in https://github.com/quantumlib/Cirq/pull/5736
  • Add json serialization to sweeps by @dabacon in https://github.com/quantumlib/Cirq/pull/5618
  • Fix reference to run_batch in run_batch_async docs by @maffoo in https://github.com/quantumlib/Cirq/pull/5740
  • Fix incomplete sentences by @augustehirth in https://github.com/quantumlib/Cirq/pull/5741
  • GridDevice: Exclude MeasurementGates in validation of qubit pairs by @verult in https://github.com/quantumlib/Cirq/pull/5654
  • Cache the hash of frozen circuits to avoid recomputing by @maffoo in https://github.com/quantumlib/Cirq/pull/5738
  • Remove gatesets deprecations. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5679
  • Remove deprecated class SerializableDevice by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5743
  • Remove unused method SimulationState.with_qubits by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5748
  • Fix very trivial grammar issues & typos in docs/start/basics by @mhucka in https://github.com/quantumlib/Cirq/pull/5752
  • Re-enable doctest by @dabacon in https://github.com/quantumlib/Cirq/pull/5742
  • json serialize SharedRuntimeInfo.device by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5746
  • Update deprecated pandas in Fourier Checking tutorial by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5751
  • Miscellaneous Doc Fixes by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5754
  • Increase timeout of a flaky speed test by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5756
  • Add cirq.two_qubit_matrix_to_cz_isometry decomposition for single to two qubit isometry using at-most 2CZs. by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5728
  • Remove deprecated classes ConvertToIonGates and IonDevice by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5696
  • Fix the final mypy --next errors by @dabacon in https://github.com/quantumlib/Cirq/pull/5760
  • Return processorid and projectid in getqcsobjectsfornotebooks by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5759
  • Remove mypy --next by @dabacon in https://github.com/quantumlib/Cirq/pull/5763
  • QASM for MatrixGate by @dabacon in https://github.com/quantumlib/Cirq/pull/5731
  • cirq-google: Remove SerializableGateSet by @verult in https://github.com/quantumlib/Cirq/pull/5762
  • Add CliffordTargetGateset and deprecate ConvertToSingleQubitCliffordGates and ConvertToPauliStringPhasor by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5650
  • cirq-google: Remove serializers by @verult in https://github.com/quantumlib/Cirq/pull/5764
  • Remove gate_set arg in CircuitSerializer constructor by @verult in https://github.com/quantumlib/Cirq/pull/5769
  • Simplify reshape(a, prod(a.shape)) to a.reshape(-1) by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5768
  • Google colab tutorial - minor cleanup by @verult in https://github.com/quantumlib/Cirq/pull/5430
  • Fixes #5713: pytest . fails to find cirq module by @mhucka in https://github.com/quantumlib/Cirq/pull/5772
  • Created SumOfProducts subclass of ControlValues by @NoureldinYosri in https://github.com/quantumlib/Cirq/pull/5755
  • Add device specification to QVM by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5771
  • Bump mypy to latest version by @maffoo in https://github.com/quantumlib/Cirq/pull/5767
  • Remove unused method AQTDevice.neighbors_of by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5770
  • Remove unnecessary casts and type: ignores by @maffoo in https://github.com/quantumlib/Cirq/pull/5781
  • Update XEB and Coherent Error Tutorial by @augustehirth in https://github.com/quantumlib/Cirq/pull/5158
  • Run tests against python 3.10 by @maffoo in https://github.com/quantumlib/Cirq/pull/5486
  • Miscellaenous doc fixes by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5779
  • Move AQTTargetGateset to its own module by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5782
  • Fixes #5773: guard against user's ~/.gitconfig setting init.templateDir by @mhucka in https://github.com/quantumlib/Cirq/pull/5774
  • Add AQTDeviceMetadata and clean up AQTDevice by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5789
  • Use Mapping instead of Dict in some grid device helper funcs by @maffoo in https://github.com/quantumlib/Cirq/pull/5790
  • Removing cirq_google.optimizers by @verult in https://github.com/quantumlib/Cirq/pull/5780
  • GoogleCZTargetGateset by @verult in https://github.com/quantumlib/Cirq/pull/5744
  • Handle global phase gate in single-qubit merge transformers by @viathor in https://github.com/quantumlib/Cirq/pull/5786
  • pytest exclude TestNoiseProperties from test discovery by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5791
  • Always return 1D vector from finalstatevector by @maffoo in https://github.com/quantumlib/Cirq/pull/5793
  • Remove unused qid_shape param from DMSimState.init by @daxfohl in https://github.com/quantumlib/Cirq/pull/5792
  • Fix classically controlled op Moment diagram by @daxfohl in https://github.com/quantumlib/Cirq/pull/5777
  • Use GoogleCZTargetGateset; add device gateset as additional gates in target gatesets by @verult in https://github.com/quantumlib/Cirq/pull/5765
  • Suppress matplotlib warnings on non-GUI use of show() by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5749
  • Refactor AbstractControlValues and it's implementations to fix multiple bugs and improve consistency by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5788

New Contributors

  • @mhucka made their first contribution in https://github.com/quantumlib/Cirq/pull/5638
  • @ammareltigani made their first contribution in https://github.com/quantumlib/Cirq/pull/5644
  • @kmlau made their first contribution in https://github.com/quantumlib/Cirq/pull/5704
  • @eliottrosenberg made their first contribution in https://github.com/quantumlib/Cirq/pull/5736

Full Changelog: https://github.com/quantumlib/Cirq/compare/v0.15.0...v1.0.0

A very special thanks to the all the contributors we've had over the years:

Abhik Banerjee, Abhishek Chakraborty, Abraham Asfaw, Adam Zalcman, AJ Hanus, Alapan Chaudhuri, Albert Frisch, Aleksandr Pak, Alexis Shaw, Alex McNamara, Ali Panahi, Ammar Eltigani, Ana Sofia Uzsoy, Andreas Bengtsson, Andrea Skolik, Andrew Hancock, Andriy Kushnarov, Animesh Sinha, Anna Nachesa, Antoine (Tony) Bruguier, Antonio Martinez, asaf david, augustehirth, Balint Pato, balopat, Bao Nguyen, Ben Brady, Bicheng Ying, Billy Lamberta, brett koonce, Bryan A. O'Gorman, Bryan Bonnet, bryano, bt3gl, Casey Duckering, Cheng Xing, Chen Jialin, Cirq Bot, cjcarey, Cody Poole, cognigami, Craig Gidney, crystalzhaizhai, Daniel (Bochen) Tan, Dave Bacon, David Cox, David Yonge-Mallo, Dax Fohl, dependabot[bot], dkafri, Dmytro Fedoriaka, Dominic Widdows, Doug Strain, Drew, eliottrosenberg, Eric Hulburd, Etsuji Nakai, evan, Evan Peters, FallenApart, Freyam Mehta, fvkg, Gaurav Mann, Gregory Clark, Guen Prawiroatmodjo, gwhitehawk, Hannah Sim, harryputterman, Henrique Silvério, Hosseinberg, idk3, Ilja Livenson, ishmum123, Ishmum Jawad Khan, Jack Ceroni, Jae H. Yoo, Jannes Stubbemann, Jimmy Yao, Jintao YU, jitendrs, Jon Donovan, joshp112358, jshede, karlunho, Kevin J. Sung, KevinVillela, Kislay Kishore, K M Lau, Kunal Arya, Laurent AJDNIK, Leonid Kuligin, lilies, lindmarkm, Loïc Henriet, madcpf, Malice, Mark Daoust, Martin Ganahl, Martin Leib, Matteo Pompili, Matthew Harrigan, Matthew McEwen, Matthew Neeley, Max Hettrich, melonwater211, Mia von Steinkirch, Mia von Steinkirch, Ph.D., M.Sc, Michael A. Perlin, Michael Broughton, MichaelBroughton, Mike Hucka, Misha Brukman, m-szalay, Muyuan Li, Nathanael Thompson, Nathan Shammah, Nicholas Rubin, Niko Savola, Noureldin, Oliver O'Brien, Orion Martin, Patrick Nannt, Pavol Juhas, Paweł Pamuła, Peter Karalekas, Philip Massey, Pieter Eendebak, Ping Yeh, pschindler, Purva Thakre, Rhea Parekh, Rishabh, Rishit Vora, Robert Hundt, Ryan Babbush, Ryan Gonzalez, Ryan LaRose, Ryan Levy, Sagar Dollin, Samarth Vadia, sboixo, sebgrijalva, Seb Grijalva, Seun Omonije, Shadab Hussain, Shaswata Das, Shrill Shrestha, smadhuk, smitsanghavi, Smit Sanghavi, Spencer Churchill, stoykojulia, TAKAHASHI Shuuji, Tanuj Khattar, Tim Gates, Timo Eckstein, Timothy Man, Tim Swast, Tony Bruguier, tonybruguier-google, twojno, Unai Corzo, Vamsi Krishna Devabathini, Victory Omole, Walker Willetts, William Courtney, wing, Wojciech Mruczkiewicz, XiaoMiQC, Yash Katariya, YBC, yourball, Yusheng Zhao, Zachary Crockett, Zeeshan Ahmed, Zhang Jiang, Zijun Chen, Zijun "Jimmy" Chen, zoltanegyed

- Python
Published by MichaelBroughton over 3 years ago

cirq - Cirq v0.15.0

Cirq v0.15.0 release

Summary

This Cirq release focuses on fine tuning user APIs and library organization, with no new major feature additions. This release features lots of deprecations and long standing bug fixes in anticipation of the upcoming Cirq 1.0 release as well as a few refactors. This release fixes over 150 oustanding issues in Cirq and stabilizes many of the rough edges in the library. In upgrading to 1.0 it is recommended to first upgrade to this version to receive deprecation warnings for any changed functionality before moving to Cirq 1.0

Breaking changes

f904a09 Roll back the default on unitary to np.complex64, change default for finalstatevector #5636 4594a1f Add qubits to PauliStringPhasor #5565 61fefe6 Lock down CircuitOperation and ParamResolver #5548 b1a5d23 Deprecate PauliTransform #5498 3c8b036 Use np.complexfloating for dtypes that should be complex #5488 39795e1 Move CircuitDag to contrib #5481 2bff437 Measurement confusion maps #5480 9bead0b Remove special CXPowGate.on. #5471 9f37af1 Pass through None during param resolution #5466 95bebae Reject formulas as keys of ParamResolvers #5384 2d84676 Change qubit str representation #5343

Changes to top level objects

cirq-core

New top level objects

  • is_valid_placement
  • ArithmeticGate
  • ISWAP_INV
  • ms
  • q
  • create_transformer_with_kwargs
  • drop_terminal_measurements
  • two_qubit_matrix_to_ion_operations
  • QuantumStateRepresentation
  • CliffordTableauSimulationState
  • DensityMatrixSimulationState
  • SimulationProductState
  • SimulationState
  • SimulationStateBase
  • StabilizerChFormSimulationState
  • StabilizerSimulationState
  • StabilizerStateChForm
  • StateVectorSimulationState
  • ParamMappingType
  • TParamValComplex

Objects or parameters that are marked as deprecated and will be removed in coming releases (too long to list all individual deprecations)

  • Using cirq.ops.Moment has been deprecated in favor of cirq.circuits.Moment. Recommended use is still cirq.Moment.
  • cirq.QuilOutput has moved to cirq_rigetti.quil_output.QuilOutput and will be removed in a future version.
  • Circuit.tetris_concat is moving to Circuit.concat_ragged.
  • Circuit.final_state_vector will no longer support positional arguments and will no longer support qubits_that_should_be_present, instead identity operations should be placed on existing qubits that one wants included in the state vector.
  • SimulationTrialResult.final_step_result along with class mutators will be deprecated in favor of constructing new SimulationTrialResult objects instead.
  • SparseSimulatorStep will no longer use the simulator argument.
  • OperationTarget will be replaced with cirq.SimulationStateBase.
  • SimulationState and children classes (i.e. StabilizerSimulationState) will no longer support positional args and logofmeasurementresults (replaced by `classicaldata` arg).
  • DensityMatrixStepResult will no longer support simulator parameter.
  • StepResult has had mutators deprecated in favor of constructing new objects.
  • SimulationProductState changed argument names to sim_state.
  • StateVectorSimulatorState no longer used.
  • ActOnArgs (and variants) have been replaced by <variant>SimulationState.
  • StateVectorSimulationState swap_target_tensor_for and subspace_index methods will be made private.
  • SimulatorBase mutators are deprecated in favor of constructing a new class instance.
  • cirq.neutral_atom module will be going away. Optimizing for neutral atom gates can be done with the new cirq.optimize_for_target_gateset with a neutral atom gateset. Devices have moved out to respective vendors.
  • cirq.ion module will be going away. Like neutral atom optimizers and devices were moved out to vendors where appropriate.
  • least_squares_xeb_fidelity_from_expectations and least_squares_xeb_fidelity_from_probabilities deprecated in favor of cirq.experiments.xeb_fitting.
  • generate_boixo_2018_supremacy_circuits_v2, generate_boixo_2018_supremacy_circuits_v2_grid and generate_boixo_2018_supremacy_circuits_v2_bristlecone has moved to recirq.beyond_classical module.
  • CrossEntropyResult, cirq.experiments.xeb_fitting.XEBCharacterizationResult deprecated in favor of cirq.experiments.xeb_fitting.XEBCharacterizationResult.
  • build_entangling_layers deprecated in favor of cirq.experiments.random_quantum_circuit_generation.
  • collect_grid_parallel_two_qubit_xeb_data moved to recirq.benchmarks.xeb.collect_grid_parallel_two_qubit_xeb_data.
  • compute_grid_parallel_two_qubit_xeb_results moved to recirq.benchmarks.xeb.compute_grid_parallel_two_qubit_xeb_results.
  • measurement_key_names protcol will use frozensets.
  • act_on protocol will change argument arg name to sim_state.
  • PauliTransform replaced in favor of DensePauliString.
  • GlobalPhaseOperation use global_phase_operation instead.
  • ArithmeticOperation going away in favor of just ArithmeticGate.
  • Gatesets no longer have accept_global_phase_op argument, instead a user must provide the cirq.GlobalPhaseGate.
  • NoiseModelFromNoiseProperties virtual_predicate renamed to is_virtual.
  • QuirkArithmeticOperation deprecated in favor of cirq.QuirkArithmeticGate.

cirq-google

New top level objects

  • prepare_characterization_for_circuits_moments
  • GoogleNoiseProperties
  • GridDevice
  • NoiseModelFromGoogleNoiseProperties
  • EngineResult
  • ProcessorSampler
  • noise_properties_from_calibration
  • HardcodedQubitPlacer

Objects or parameters that are marked as deprecated and will be removed in coming releases

  • 'XMON','FSIM_GATESET','SQRT_ISWAP_GATESET','SYC_GATESET','NAMED_GATESETS' moved toGridDevice.metadata.gateset` if applicable.
  • GateTabulation has moved to cirq-core.
  • SimulatedLocalProcessor.get_device and EngineProcessor.get_device no longer requires a gate_sets parameter.
  • EngineProcessor.list_calibrations parameter names changed from latest_timestamp_seconds to latest_timestamp and earliest_timestamp_seconds to earliest_timestamp.
  • QuantumEngineSampler deprecated in favor of cirq_google.ProcessorSampler.
  • get_engine_sampler now has no arguments needed.
  • create_noiseless_virtual_processor_from_proto, create_noiseless_virtual_engine_from_proto, create_noiseless_virtual_processor_from_template, create_noiseless_virtual_engine_from_templates now no longer require gate_sets parameter.
  • Engine.sampler replaced with Engine.get_sampler.
  • get_engine_device now no longer requires gate_sets parameter.
  • SerializableDevice and SerializableGateset are going away in favor of CircuitSerializer and GridDevice metadata information.
  • optimize_for_{xmon,sycamore} are going away in favor of cirq.optimize_for_target_gateset using the xmon and sycamore gatesets.

What's Changed

  • Add iterator support for AbstractJob by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5136
  • Pin Jinja2 version for build_docs CI. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5138
  • Bump cirq version to 0.15.0 by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5134
  • Bump minimist from 1.2.5 to 1.2.6 in /cirq-web/cirq_ts by @dependabot in https://github.com/quantumlib/Cirq/pull/5140
  • Remove deprecated twoqubitmatrixtodiagonalandoperations and twoqubitmatrixtooperations by @tonybruguier in https://github.com/quantumlib/Cirq/pull/5102
  • Fix broken caching in CliffordGate and add test by @dabacon in https://github.com/quantumlib/Cirq/pull/5142
  • Cleanup docs/noise.ipynb in preparation for Cirq 1.0 launch by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5147
  • Speed up a slow transformer test by @dabacon in https://github.com/quantumlib/Cirq/pull/5146
  • Make pylint parallel by @dabacon in https://github.com/quantumlib/Cirq/pull/5144
  • [workflow] Preliminary timing information by @mpharrigan in https://github.com/quantumlib/Cirq/pull/5021
  • Add docstring for cirq.TRANSFORMER public object by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5149
  • Base class for quantum states by @daxfohl in https://github.com/quantumlib/Cirq/pull/5065
  • Allow any object with supporting protocols to be the action in act_on by @daxfohl in https://github.com/quantumlib/Cirq/pull/5111
  • Fix raiser is not callable. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5155
  • Corrected result.data implementation. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5153
  • Support specific IonQ targets (qpu.generation) by @Cynocracy in https://github.com/quantumlib/Cirq/pull/5141
  • Upgrade black to stable version with format stability guarantees by @maffoo in https://github.com/quantumlib/Cirq/pull/5157
  • Format cirq-core with latest version of black by @maffoo in https://github.com/quantumlib/Cirq/pull/5159
  • Clarify virtual tag docstring by @dabacon in https://github.com/quantumlib/Cirq/pull/5161
  • Format cirq-google with latest version of black by @maffoo in https://github.com/quantumlib/Cirq/pull/5160
  • Ignore large-scale formatting changes for git blame by @maffoo in https://github.com/quantumlib/Cirq/pull/5162
  • Remove --pre from notebooks after release. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5135
  • Update to pylint 2.13 by @maffoo in https://github.com/quantumlib/Cirq/pull/5156
  • Update educators/intro.ipynb in preparation for Cirq 1.0 launch by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5163
  • Disable broken symbols. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5165
  • Autoformat all of engineclienttest.py by @maffoo in https://github.com/quantumlib/Cirq/pull/5164
  • Allow specifying timeout_seconds when constructing an ionq Sampler by @Cynocracy in https://github.com/quantumlib/Cirq/pull/5133
  • Remove reservation colab by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5168
  • Add Google-specific variant for noise properties. by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5082
  • Update docs/transform.ipynb based on new transformer framework. by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5154
  • Enforce same control order in ControlledGate equality check by @daxfohl in https://github.com/quantumlib/Cirq/pull/5131
  • Fix gates.ipynb formatting by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5175
  • Cleaning up cirq/install docs by @verult in https://github.com/quantumlib/Cirq/pull/5178
  • Fix docs/circuits.ipynb as part of docs cleanup for Cirq 1.0 by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5177
  • Update simulator docs by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5182
  • Fix broken link from cirq/tutorials page as part of docs cleanup by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5174
  • Convert start.md to start.ipynb. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5176
  • Update google concepts doc. by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5186
  • Fix docs/qubits.ipynb as part of docs cleanup for Cirq 1.0 by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5179
  • Minor cleanup of QCS tutorial by @verult in https://github.com/quantumlib/Cirq/pull/5184
  • Link fix on start page. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5191
  • Neutral atom update by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5192
  • Remove use of deprecated device behavior from quantumvolumeerrors. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5198
  • Remove BooleanHamiltonian object by @tonybruguier in https://github.com/quantumlib/Cirq/pull/5099
  • Refactor qcs_notebook to use application default creds by @maffoo in https://github.com/quantumlib/Cirq/pull/5045
  • Cirq web supports LineQubits by @tonybruguier in https://github.com/quantumlib/Cirq/pull/5211
  • Import new gapic generated code for quantum engine API by @maffoo in https://github.com/quantumlib/Cirq/pull/5139
  • Fix basics by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5180
  • Deprecate gate_set parameter on engine classes. by @maffoo in https://github.com/quantumlib/Cirq/pull/5207
  • Tweak quantum walks doc by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5212
  • Deprecate jsonserializabledataclass by @maffoo in https://github.com/quantumlib/Cirq/pull/5208
  • Fix error and add test for mutable pauli string by @dabacon in https://github.com/quantumlib/Cirq/pull/5213
  • Fix tutorials/state_histograms.ipynb as part of docs cleanup for Cirq 1.0 by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5206
  • Fix tutorials/heatmaps.ipynb as part of docs cleanup for Cirq 1.0 by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5205
  • Remove some 0.15 items from cirq.sim by @daxfohl in https://github.com/quantumlib/Cirq/pull/5137
  • Add Cynocracy to owners of cirq-ionq by @dabacon in https://github.com/quantumlib/Cirq/pull/5145
  • Fix educators/qaoa_ising.ipynb as part of docs cleanup for Cirq 1.0 by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5204
  • Improve documentation about writing type annotations by @maffoo in https://github.com/quantumlib/Cirq/pull/5218
  • custom_gates.ipynb - minor content cleanup by @verult in https://github.com/quantumlib/Cirq/pull/5215
  • Make commutes consistent by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5217
  • Fix numpy annotations np.array -> np.ndarray by @maffoo in https://github.com/quantumlib/Cirq/pull/5227
  • Delete the target_tensor parameter that was deprecated in 0.15 by @daxfohl in https://github.com/quantumlib/Cirq/pull/5225
  • Deprecate the ActOnArgs.on* methods by @daxfohl in https://github.com/quantumlib/Cirq/pull/5224
  • Allow specifying initial state vector in DensityMatrixSimulator by @maffoo in https://github.com/quantumlib/Cirq/pull/5223
  • Unquote example code in ArithmeticOperation by @maffoo in https://github.com/quantumlib/Cirq/pull/5230
  • Document CircuitOp optimizer best practices by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5221
  • Remove the deprecated mutators in cirq/ops by @daxfohl in https://github.com/quantumlib/Cirq/pull/5201
  • Allow server-side warnings from IonQ by @Cynocracy in https://github.com/quantumlib/Cirq/pull/5222
  • Fix educators/textbook_algorithms.ipynb as part of docs cleanup for Cirq 1.0 by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5199
  • Fix qcvv/xeb_theory.ipynb as part of docs cleanup for Cirq 1.0 by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5202
  • Cleaning up tutorials/variational_algorithm.ipynb by @verult in https://github.com/quantumlib/Cirq/pull/5185
  • Document CIRCUIT_TYPE and hide other typevars/aliases in circuits.py by @maffoo in https://github.com/quantumlib/Cirq/pull/5229
  • Make check scripts run pytest in parallel by @dabacon in https://github.com/quantumlib/Cirq/pull/5143
  • cirq-ionq: Retry non-standard cloudflare errors by @Cynocracy in https://github.com/quantumlib/Cirq/pull/5237
  • Add q helper function for constructing common qubit types. by @maffoo in https://github.com/quantumlib/Cirq/pull/5181
  • Unpin sympy and ignore sympy type errors by @maffoo in https://github.com/quantumlib/Cirq/pull/5226
  • Add calibration-to-noise pipeline by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5187
  • Remove device from circuits by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5189
  • Bump tensorflow-docs version by @maffoo in https://github.com/quantumlib/Cirq/pull/5250
  • Fix tutorials/qaoa.ipynb as part of docs cleanup for Cirq 1.0 by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5200
  • Remove custom cirq_type by @dabacon in https://github.com/quantumlib/Cirq/pull/5249
  • Skip "magic trailing comma" when formatting with black by @maffoo in https://github.com/quantumlib/Cirq/pull/5170
  • Remove deprecated logofmeasurement_results parameters by @daxfohl in https://github.com/quantumlib/Cirq/pull/5233
  • Make the quantum state generic by @daxfohl in https://github.com/quantumlib/Cirq/pull/5255
  • Migrate google/bestpractices.md to google/bestpractices.ipynb as part of docs cleanup for Cirq 1.0 by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5236
  • Format cirq-google with skip-magic-trailing-comma by @maffoo in https://github.com/quantumlib/Cirq/pull/5171
  • Format according to new black rules by @dabacon in https://github.com/quantumlib/Cirq/pull/5259
  • Ignore skip-magic-trailing-comma formatting with git blame by @maffoo in https://github.com/quantumlib/Cirq/pull/5257
  • Use sorted instead of set for random.sample by @dabacon in https://github.com/quantumlib/Cirq/pull/5248
  • Fix Docs: cirq/tutorials/educators/chemistry by @TimoEckstein in https://github.com/quantumlib/Cirq/pull/5251
  • Convenience methods for modifying GoogleNoiseProperties by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5188
  • Deprecate Gateset.acceptglobalphase_op by @daxfohl in https://github.com/quantumlib/Cirq/pull/5239
  • Exclude TYPE_CHECKING from docs by @tonybruguier in https://github.com/quantumlib/Cirq/pull/5261
  • Refactor the single qubit Clifford gate by @ybc1991 in https://github.com/quantumlib/Cirq/pull/5069
  • Re-introduce less idiomatic code for _group_interchangeable_qubits implementation by @vtomole in https://github.com/quantumlib/Cirq/pull/5273
  • Enable CI checks on master push event. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5275
  • Fix push event to fallback to run_id in ci by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5277
  • Update readme file to use new build badge. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5278
  • Extract SV/DM/CliffordSimState from simulators by @daxfohl in https://github.com/quantumlib/Cirq/pull/5260
  • Bump async from 2.6.3 to 2.6.4 in /cirq-web/cirq_ts by @dependabot in https://github.com/quantumlib/Cirq/pull/5276
  • Serialize datetime by @mpharrigan in https://github.com/quantumlib/Cirq/pull/5274
  • Deprecate cirq.SingleQubitGate by @vtomole in https://github.com/quantumlib/Cirq/pull/5272
  • Update ops notebook by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5245
  • [cirqflow] Hardcoded qubit placement by @mpharrigan in https://github.com/quantumlib/Cirq/pull/5194
  • Fix default QuantumStateRepresentation sampler for qudits by @daxfohl in https://github.com/quantumlib/Cirq/pull/5234
  • [WIP] Expose GoogleNoiseProperties at top level by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5209
  • Deprecate the finalstepresult parameter of TrialResult by @daxfohl in https://github.com/quantumlib/Cirq/pull/5281
  • Add parameters for PauliString and GlobalPhase by @daxfohl in https://github.com/quantumlib/Cirq/pull/5089
  • Check that control and target qubits disjoint in ControlledOperations by @daxfohl in https://github.com/quantumlib/Cirq/pull/5286
  • Bump types so that SimulatesIntermediateState isn't bound to ActOnArgs by @daxfohl in https://github.com/quantumlib/Cirq/pull/5283
  • Support complex params in work module by @daxfohl in https://github.com/quantumlib/Cirq/pull/5285
  • Fix one qubit gate docstrings to single standard, start gate zoo by @dabacon in https://github.com/quantumlib/Cirq/pull/5246
  • Use Boolean Hamiltonian gates for QAOA example by @tonybruguier in https://github.com/quantumlib/Cirq/pull/5098
  • GateFamily: tag validation by @verult in https://github.com/quantumlib/Cirq/pull/5101
  • GridDeviceMetadata: allow qubit pairs in both directions by @verult in https://github.com/quantumlib/Cirq/pull/5241
  • format-incremental: Print black version by @verult in https://github.com/quantumlib/Cirq/pull/5295
  • Rename ActOnArgs to SimulationState by @daxfohl in https://github.com/quantumlib/Cirq/pull/5293
  • Fix sympy 1.10 related mypy typing issues by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5263
  • Fix call signature on Gate to show that it takes Qids. by @dabacon in https://github.com/quantumlib/Cirq/pull/5235
  • [cirqflow] runstarttime and runendtime by @mpharrigan in https://github.com/quantumlib/Cirq/pull/5289
  • Remove qid_pairs deprecation. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5290
  • Adjust protocols document by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5297
  • Generalize X and Z to Weyl–Heisenberg gates by @daxfohl in https://github.com/quantumlib/Cirq/pull/4919
  • EngineResult by @mpharrigan in https://github.com/quantumlib/Cirq/pull/5152
  • docfixit: interop format by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5305
  • createdevicefromprocessorid by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5303
  • Minor cleanup of rabi oscillation tutorial. by @verult in https://github.com/quantumlib/Cirq/pull/5308
  • Rename createactonargs to createsimulation_state by @daxfohl in https://github.com/quantumlib/Cirq/pull/5299
  • GridDeviceMetadata: Allow to gate duration keys to be a strict subset of gateset by @verult in https://github.com/quantumlib/Cirq/pull/5309
  • Update Pasqal Tutorial Documentation by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5316
  • Update Neutral Atoms to Transformers by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5311
  • Add json serialization to SycamoreTargetGateset. by @verult in https://github.com/quantumlib/Cirq/pull/5314
  • Gateset: fix invalid repr when gateset is empty by @verult in https://github.com/quantumlib/Cirq/pull/5322
  • Check controlled subgate/op has mixture by @daxfohl in https://github.com/quantumlib/Cirq/pull/5294
  • CompilationTargetGateset support in GridDeviceMetadata by @verult in https://github.com/quantumlib/Cirq/pull/5195
  • Remove qubit_set v0.15 deprecation. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5304
  • Remove ids from notebooks by @dabacon in https://github.com/quantumlib/Cirq/pull/5325
  • Pad inhomogenous result arrays by @daxfohl in https://github.com/quantumlib/Cirq/pull/5319
  • Fix Qubit Placement docs by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5321
  • GateFamily: add tags to str representation by @verult in https://github.com/quantumlib/Cirq/pull/5312
  • Add global_shift parameter to PhasedISwapPowGate by @vtomole in https://github.com/quantumlib/Cirq/pull/5328
  • ArithmeticGate implementation by @daxfohl in https://github.com/quantumlib/Cirq/pull/4702
  • Prevent implicit package search from top level setup.py by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5330
  • Minor (cosmetic changes) by @qcc4cp in https://github.com/quantumlib/Cirq/pull/5329
  • Add native gates for IonQ by @Cynocracy in https://github.com/quantumlib/Cirq/pull/5313
  • Speed up circuit building by not forgetting about cached objects by @dabacon in https://github.com/quantumlib/Cirq/pull/5280
  • Properly use links in docs for external urls by @dabacon in https://github.com/quantumlib/Cirq/pull/5220
  • cirq_google.GridDevice, minus gateset and gate durations by @verult in https://github.com/quantumlib/Cirq/pull/5203
  • Consistent finalstatevector by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5267
  • Api docs simulators by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5333
  • Median device calibrations by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5338
  • [cirqflow] Add target_gateset to QuantumRuntimeConfiguration by @mpharrigan in https://github.com/quantumlib/Cirq/pull/5336
  • Add median calibrations to package by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5340
  • init for calibrations package by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5342
  • Add ability for circuit diagram symbols to depend on transpose by @dabacon in https://github.com/quantumlib/Cirq/pull/5269
  • Update documentation on qudits by @dabacon in https://github.com/quantumlib/Cirq/pull/5196
  • Handle inverse for Quil's SWAP gate by @vtomole in https://github.com/quantumlib/Cirq/pull/5341
  • Encap public fields in cirq.sim by @daxfohl in https://github.com/quantumlib/Cirq/pull/5320
  • Update unitary for IonQ MS Gate by @Cynocracy in https://github.com/quantumlib/Cirq/pull/5335
  • Fix (and test) Diagramming IonQ native circuits by @Cynocracy in https://github.com/quantumlib/Cirq/pull/5346
  • IonQ: Explicitly select lang by @Cynocracy in https://github.com/quantumlib/Cirq/pull/5348
  • Deprecate random circuits in experiments by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5334
  • IonQ: Handle loss of precision in floats by @Cynocracy in https://github.com/quantumlib/Cirq/pull/5350
  • IonQ: Log POST body for job submission when requests fail by @Cynocracy in https://github.com/quantumlib/Cirq/pull/5347
  • Complete gate zoo and fix gate docs by @dabacon in https://github.com/quantumlib/Cirq/pull/5344
  • Minor updates to calibration_faq page by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5357
  • Minor aqt doc fixes by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5358
  • IonQ: Fixup unitary calculation for GPI by @Cynocracy in https://github.com/quantumlib/Cirq/pull/5365
  • Make QASM as consistent as possible by @dabacon in https://github.com/quantumlib/Cirq/pull/5366
  • Add json serialization for PauliSum by @dabacon in https://github.com/quantumlib/Cirq/pull/5367
  • Avoid np._bool by @dabacon in https://github.com/quantumlib/Cirq/pull/5368
  • Change qubit str representation by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5343
  • Add cg.ProcessorSampler by @mpharrigan in https://github.com/quantumlib/Cirq/pull/5361
  • Fix some type errors from mypy --next by @dabacon in https://github.com/quantumlib/Cirq/pull/5369
  • Add missing raises documentation to two_qubit_gate_product_tabulation by @dabacon in https://github.com/quantumlib/Cirq/pull/5351
  • Add json serialization to diagonal gates by @dabacon in https://github.com/quantumlib/Cirq/pull/5356
  • Add entangler errors to median data by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5364
  • Re-add in pylint plugin by @smadhuk in https://github.com/quantumlib/Cirq/pull/5374
  • Test round trip of gate to operation to gate by @dabacon in https://github.com/quantumlib/Cirq/pull/5354
  • Add testing helper for consistent channel/mixture by @dabacon in https://github.com/quantumlib/Cirq/pull/5247
  • Add missing docstrings for miscellaenous functions and classes by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5363
  • Fix lint failure by @dabacon in https://github.com/quantumlib/Cirq/pull/5382
  • Add json serialization for PauliInteractionGate by @dabacon in https://github.com/quantumlib/Cirq/pull/5381
  • verbosify cirq_type deprecation by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5339
  • Remove canaddoperationintomoment deprecation. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5379
  • Reject formulas as keys of ParamResolvers by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5384
  • Keep --pre from installing protobuf 4.x by @dabacon in https://github.com/quantumlib/Cirq/pull/5385
  • Remove decompose_operation deprecation from device. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5380
  • Ignore operations on more than 10 qubits in dropnegligibleoperations transformer by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5386
  • Remove stale condition from assertcontrolledandcontrolledby_identical test by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5391
  • Change Pasqal to use transformers by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5377
  • Fix CCO related nits in cirq.Operation and cirq.TaggedOperation by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5390
  • Fix more mypy --next type errors by @dabacon in https://github.com/quantumlib/Cirq/pull/5392
  • Fix typo in docs/tutorials/state_histograms.ipynb by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5396
  • Fix typos and nits in docs/transform.ipynb by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5398
  • Drop support for python 3.6 by @maffoo in https://github.com/quantumlib/Cirq/pull/5373
  • Fix protobuf version specifiers in cirq-google/requirements.txt by @maffoo in https://github.com/quantumlib/Cirq/pull/5408
  • Major organizational restructure of top level tabs by @augustehirth in https://github.com/quantumlib/Cirq/pull/5394
  • Change switchtonew condition in TwoQubitCompilationTargetGateset to switch only when it's optimal in terms of 2q gate counts by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5405
  • Improve support for CCOs in cirq.merge_operations by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5393
  • Fix docstrings in gate(set|family) by @dabacon in https://github.com/quantumlib/Cirq/pull/5415
  • Make all non-analytical gate decompositions respect global phase by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5420
  • Update release instructions to include Zenodo citation update by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5421
  • Remove unused parameter in test by @dabacon in https://github.com/quantumlib/Cirq/pull/5423
  • Do not generate default repetition ids if userepetitionids=False by @maffoo in https://github.com/quantumlib/Cirq/pull/5419
  • Support prepending noise by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5410
  • Deprecating crossentropybenchmarking and gridparalleltwoqubitxeb by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5424
  • Deprecate leastsquares functions in fidelityestimation by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5428
  • Fix from_diagram docstring on GridQubit. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5307
  • Custom-state-representation simulator infra by @daxfohl in https://github.com/quantumlib/Cirq/pull/5417
  • Simplify cd to the executing script directory by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5412
  • Removing GateSpecification.valid_targets and deprecating some target types by @verult in https://github.com/quantumlib/Cirq/pull/5376
  • Deprecate implementation of baseiterator by @daxfohl in https://github.com/quantumlib/Cirq/pull/5402
  • Rigetti Getting Started Docs Cleanup by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5372
  • Fix tests that break python-repeat by @dabacon in https://github.com/quantumlib/Cirq/pull/5431
  • Bump npm from 7.16.0 to 8.11.0 in /cirq-web/cirq_ts by @dependabot in https://github.com/quantumlib/Cirq/pull/5435
  • Revert "Bump npm from 7.16.0 to 8.11.0 in /cirq-web/cirq_ts" by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5439
  • Avoid subshell executions for $(pwd) by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5436
  • Add CircuitOperation blurb by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5399
  • Add an icon for Heatmaps in Noise overview by @augustehirth in https://github.com/quantumlib/Cirq/pull/5433
  • Deprecate QuantumEngineSampler by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5432
  • Phrasing pass for Circuits by @augustehirth in https://github.com/quantumlib/Cirq/pull/5441
  • Add outputs back into rigetti getting started guide. by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5443
  • Update repr of pauli strings by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5444
  • GridDevice gateset, gateduration, and compilationtarget_gateset support by @verult in https://github.com/quantumlib/Cirq/pull/5315
  • Fix minor grammar issue on specification page. by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5446
  • GridDeviceMetadata gate durations: docstring for looking up gate duration via searching through GateFamilies by @verult in https://github.com/quantumlib/Cirq/pull/5438
  • Document classical control by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5403
  • Add numpy support for Google serialization by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5451
  • Make IonQ native gate docstring format correctly by @dabacon in https://github.com/quantumlib/Cirq/pull/5416
  • IonQ: Include json body of error response when possible by @Cynocracy in https://github.com/quantumlib/Cirq/pull/5349
  • DeviceSpecification serialization implementation by @verult in https://github.com/quantumlib/Cirq/pull/5375
  • cirq.measure - accept list arguments by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5411
  • pr_monitor: post empty string as commit message if PR body is empty by @verult in https://github.com/quantumlib/Cirq/pull/5458
  • Fix more check/mypy --next errors by @dabacon in https://github.com/quantumlib/Cirq/pull/5450
  • Adds missing consistent mixture tests. by @dabacon in https://github.com/quantumlib/Cirq/pull/5454
  • Fix circuit api rendering issues by @dabacon in https://github.com/quantumlib/Cirq/pull/5462
  • Lazily load scipy.linalg by @dabacon in https://github.com/quantumlib/Cirq/pull/5461
  • Remove execution result from notebooks by @dabacon in https://github.com/quantumlib/Cirq/pull/5326
  • The number of exponents is too damn high by @dabacon in https://github.com/quantumlib/Cirq/pull/5456
  • OpenFermion tutorial moved to recirq, delete it by @augustehirth in https://github.com/quantumlib/Cirq/pull/5453
  • Delete QAOA docs moved to ReCirq, remove links by @augustehirth in https://github.com/quantumlib/Cirq/pull/5452
  • Pass through None during param resolution by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5466
  • Remove deprecated qubit_set. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5464
  • Allow choice of subdimension in cirq.apply_unitary by @daxfohl in https://github.com/quantumlib/Cirq/pull/4910
  • Add Visualizing Results section to Basics tutorial, other minor improvements. by @augustehirth in https://github.com/quantumlib/Cirq/pull/5406
  • Remove unnecessary state copy by @daxfohl in https://github.com/quantumlib/Cirq/pull/5469
  • Publish sample Z phase errors by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5378
  • Add private_map to cirq api docs gen. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5468
  • Cleanup cirq.Circuit api docs. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5467
  • Remove special CXPowGate.on. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5471
  • Create a notebook describing parameter sweeps by @dabacon in https://github.com/quantumlib/Cirq/pull/5437
  • Add supported sympy expressions to Google devices documentation by @verult in https://github.com/quantumlib/Cirq/pull/5472
  • Add clarification to notebook external deps in docs by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5473
  • Setup for disabling state_vector copy by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5324
  • Fix WaitGate parameter resolution with multiple qubits by @maffoo in https://github.com/quantumlib/Cirq/pull/5478
  • Prefer range(x) not range(0, x) by @dabacon in https://github.com/quantumlib/Cirq/pull/5484
  • Union[None, X] is Optional[X] by @dabacon in https://github.com/quantumlib/Cirq/pull/5489
  • Add IonQTargetGateset and use it for circuit compilations. by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5479
  • Split the Transformers page into Transformers and Custom Transformers by @augustehirth in https://github.com/quantumlib/Cirq/pull/5414
  • Add information on new vendor setup by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5485
  • Move CircuitDag to contrib by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5481
  • Remove stale comment from jsonserializationtest.py by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5494
  • Update error message when invalid sympy arg is serialized by @verult in https://github.com/quantumlib/Cirq/pull/5487
  • Updated cirq.ionq to cirq_ionq throughout by @dwiddows in https://github.com/quantumlib/Cirq/pull/5496
  • Move cirq.contrib.quil_import to cirq_rigetti.quil_input by @vtomole in https://github.com/quantumlib/Cirq/pull/5493
  • Create a quil_output.py in cirq-rigetti that doesn't call the quil protocol by @vtomole in https://github.com/quantumlib/Cirq/pull/5490
  • [API docs] line_qubit api format. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5501
  • Dont include global phase gate in decomposition of parameterized CCZPow gate when global_shift is 0 by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5504
  • [API docs] Fix Moment API docs. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5506
  • [API docs] Gate api docs cleanup. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5503
  • Move cirq.ion.ion_gates.MSGate to cirq.ops module by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5508
  • Make createtransformerwithkwargs a public method by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5492
  • Move two_qubit_matrix_to_ion_operations to cirq/transformers/analytical_decompositions by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5509
  • The simulate overview page is missing a button. by @augustehirth in https://github.com/quantumlib/Cirq/pull/5513
  • cirq_google GridDevice: set JSON namespace to cirq.google by @verult in https://github.com/quantumlib/Cirq/pull/5512
  • Parameter sweeps polish by @augustehirth in https://github.com/quantumlib/Cirq/pull/5515
  • Deprecate QUIL functionality from cirq-core by @vtomole in https://github.com/quantumlib/Cirq/pull/5511
  • Rabi content has been moved to ReCirq: Delete the items in Cirq by @augustehirth in https://github.com/quantumlib/Cirq/pull/5448
  • Device tutorial rework. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5395
  • Use new quimb TN string format by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5525
  • Measurement confusion maps by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5480
  • Make CircuitOp.fromjson more efficient by @daxfohl in https://github.com/quantumlib/Cirq/pull/5527
  • Set default unitary precision np.complex64 by @dabacon in https://github.com/quantumlib/Cirq/pull/5426
  • Test substring for quimb objects by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5529
  • Deprecate optimizeforsycamore and optimizeforxmon by @verult in https://github.com/quantumlib/Cirq/pull/5531
  • Use async grpc client in EngineClient by @maffoo in https://github.com/quantumlib/Cirq/pull/5526
  • Classical control phrasing by @augustehirth in https://github.com/quantumlib/Cirq/pull/5514
  • Increase test tolerances on some analytical decomposition tests by @maffoo in https://github.com/quantumlib/Cirq/pull/5535
  • Add async support in EngineClient, EngineSampler, etc. by @maffoo in https://github.com/quantumlib/Cirq/pull/5219
  • Move QuantumStateRepresentation to its own file by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5538
  • Phrasing pass for devices by @augustehirth in https://github.com/quantumlib/Cirq/pull/5523
  • Remove Bristlecone and Foxtail deprecated XmonDevices. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5483
  • Deprecate PauliTransform by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5498
  • Add new function shell_tools.run by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5528
  • Guard confusion_map usage by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5534
  • Fix type check of SerializableDevice gate_definitions by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5447
  • Replace shelltools.runshell --> shell_tools.run by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5545
  • Remove ion and NA tutorials from educators. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5539
  • Downgrade master CI checks to nightly cadence. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5540
  • Fix more flakes by @dabacon in https://github.com/quantumlib/Cirq/pull/5537
  • Tools to disable op validation by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5530
  • Change outputof to execute commands with shelltools.run by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5541
  • cirq-core target gatesets: accept additional gates to keep untouched. by @verult in https://github.com/quantumlib/Cirq/pull/5445
  • Move Sycamore and Sycamore23 to GridDevice. by @verult in https://github.com/quantumlib/Cirq/pull/5544
  • Phrasing updates to new vendor doc by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5549
  • Move Engine interfaces to GridDevice by @verult in https://github.com/quantumlib/Cirq/pull/5558
  • Replace shelltools.runcmd --> shell_tools.run by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5550
  • Treat default gate families with tagstoignore or tagstoaccept as custom gate families in Gatesets by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5553
  • Purge shell_tools functions by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5566
  • Overview updates by @augustehirth in https://github.com/quantumlib/Cirq/pull/5567
  • Restructure file relocation by @augustehirth in https://github.com/quantumlib/Cirq/pull/5442
  • Datetime serialization and advice by @mpharrigan in https://github.com/quantumlib/Cirq/pull/5422
  • Deprecate cirq.ion module by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5563
  • Deprecate cirq.neutral_atoms module by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5519
  • Move virtual engine processor to GridDevice by @verult in https://github.com/quantumlib/Cirq/pull/5561
  • Deprecate SerializableDevice by @verult in https://github.com/quantumlib/Cirq/pull/5522
  • Bayesian Networks by @tonybruguier in https://github.com/quantumlib/Cirq/pull/5094
  • Add method to get a Clifford gate and phase global phase from unitary by @maffoo in https://github.com/quantumlib/Cirq/pull/5568
  • Remove deprecated gate_set parameter on various engine classes by @maffoo in https://github.com/quantumlib/Cirq/pull/5551
  • Document policy for python version support. by @maffoo in https://github.com/quantumlib/Cirq/pull/5575
  • Lock down CircuitOperation and ParamResolver by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5548
  • Fix mypy --next complaint on pytest.TempdirFactory by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5576
  • Remove XmonDevice. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5562
  • Rename tetris_concat by @daxfohl in https://github.com/quantumlib/Cirq/pull/5559
  • Fixing some 404ing links and anchors by @augustehirth in https://github.com/quantumlib/Cirq/pull/5580
  • Fix some mypy --next numpy typing errors by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5581
  • Remove deprecated qubits in contrib graphdevice. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5582
  • Document noise representations by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5495
  • Fix up types of common clifford gates by @maffoo in https://github.com/quantumlib/Cirq/pull/5585
  • SerializableGateSet deprecation by @verult in https://github.com/quantumlib/Cirq/pull/5573
  • Use list comprehensions instead of list(filter(...)) by @maffoo in https://github.com/quantumlib/Cirq/pull/5578
  • Raise error instead of warning when downcasting from complex in apply_unitary by @vtomole in https://github.com/quantumlib/Cirq/pull/5542
  • Use np.complexfloating for dtypes that should be complex by @dabacon in https://github.com/quantumlib/Cirq/pull/5488
  • Use LaTeX for r(x|y|z) by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5594
  • backquotes for decompose args by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5595
  • Document CircuitOperation methods. by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5597
  • Deprecate createdeviceprotoforqubits by @verult in https://github.com/quantumlib/Cirq/pull/5592
  • All single-qubit Cliffords by @viathor in https://github.com/quantumlib/Cirq/pull/5584
  • Remove deprecated json functions. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5586
  • Add cached_method decorator for per-instance method caches by @maffoo in https://github.com/quantumlib/Cirq/pull/5570
  • review ionq/getting_started tutorial notebook by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5598
  • Add a deprecation cycle for ArithmeticOp by @daxfohl in https://github.com/quantumlib/Cirq/pull/5599
  • Use frozensets for key protocols by @daxfohl in https://github.com/quantumlib/Cirq/pull/5560
  • Add qubits to PauliStringPhasor by @dabacon in https://github.com/quantumlib/Cirq/pull/5565
  • String or MeasurementKey in measure by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5603
  • Make transformers use higher precision by @dabacon in https://github.com/quantumlib/Cirq/pull/5601
  • Temporary GridDevice.qubits property by @verult in https://github.com/quantumlib/Cirq/pull/5593
  • Deprecate Program.language.gate_set proto field by @verult in https://github.com/quantumlib/Cirq/pull/5591
  • Even more link fixes for 404ing links by @augustehirth in https://github.com/quantumlib/Cirq/pull/5587
  • Serializers deprecation by @verult in https://github.com/quantumlib/Cirq/pull/5589
  • GateFamily: do not serialize gatestoaccept and gatestoignore when empty by @verult in https://github.com/quantumlib/Cirq/pull/5532
  • Add user best practices documentation by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5604
  • Minor updates for the IonQ Service page by @dstrain115 in https://github.com/quantumlib/Cirq/pull/5607
  • Use mapping in cirq/work by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5609
  • Make withmeasurementkey_mapping live up to its name by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5610
  • Add ISWAP_INV constant by @dabacon in https://github.com/quantumlib/Cirq/pull/5613
  • Use more accurate complex128 for testing non-public method by @dabacon in https://github.com/quantumlib/Cirq/pull/5616
  • Engine validator: rename validategateset to validate_program by @verult in https://github.com/quantumlib/Cirq/pull/5600
  • Speed up some over parameterized tests by @dabacon in https://github.com/quantumlib/Cirq/pull/5606
  • Make moment str/text diagrams stable (independent of insertion order) by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5474
  • Add ISWAP_INV to zoo by @dabacon in https://github.com/quantumlib/Cirq/pull/5619
  • Tiny changes to a couple of URLs by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5614
  • FSim calibration to Z phase data by @95-martin-orion in https://github.com/quantumlib/Cirq/pull/5499
  • Raise value error if pauli string passed to cirq.measuresinglepaulistring does not have a coefficient of +1 by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5623
  • PauliString and MutablePauliString docs and inconsistencies fixes by @tanujkhattar in https://github.com/quantumlib/Cirq/pull/5621
  • Deprecate common serializers by @verult in https://github.com/quantumlib/Cirq/pull/5611
  • Import cirq after installation in calibration tutorials by @pavoljuhas in https://github.com/quantumlib/Cirq/pull/5625
  • Update readme CI badge to nightly ci status. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5626
  • Type some methods in noise_model.py by @vtomole in https://github.com/quantumlib/Cirq/pull/5612
  • Fix more mypy --next errors by @dabacon in https://github.com/quantumlib/Cirq/pull/5608
  • Remove Result deprecations by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5627
  • Fix qasm generation/parsing for classical controls by @daxfohl in https://github.com/quantumlib/Cirq/pull/5434
  • More fixes for next version of mypy by @dabacon in https://github.com/quantumlib/Cirq/pull/5628
  • Remove Rigetti from local checks by @dabacon in https://github.com/quantumlib/Cirq/pull/5632
  • Remove deprecations in jsondictwithcirq_type. by @MichaelBroughton in https://github.com/quantumlib/Cirq/pull/5630
  • Roll back the default on unitary to np.complex64, change default for finalstatevector by @dabacon in https://github.com/quantumlib/Cirq/pull/5636

New Contributors

  • @TimoEckstein made their first contribution in https://github.com/quantumlib/Cirq/pull/5251
  • @qcc4cp made their first contribution in https://github.com/quantumlib/Cirq/pull/5329
  • @smadhuk made their first contribution in https://github.com/quantumlib/Cirq/pull/5374
  • @dwiddows made their first contribution in https://github.com/quantumlib/Cirq/pull/5496

Full Changelog: https://github.com/quantumlib/Cirq/compare/v0.14.1...v0.15.0

A Huge Thank You

Thank you to all our contributors for this release:

Adam Zalcman, Antoine (Tony) Bruguier, augustehirth, Bicheng Ying, Cheng Xing, Dave Bacon, Dax Fohl, Dominic Widdows, Doug Strain, Jon Donovan, Matthew Harrigan, Matthew Neeley, MichaelBroughton, Orion Martin, Pavol Juhas, Robert Hundt, smadhuk, Tanuj Khattar, Timo Eckstein, Victory Omole

- Python
Published by MichaelBroughton over 3 years ago

cirq - Cirq v0.14.1

Patch release to fix vendor issue #5210.

No other changes introduced.

- Python
Published by MichaelBroughton over 3 years ago

cirq - Cirq v0.14.0

Cirq v0.14.0 release

Highlights

Transformers

Revamped and deprecated many of the old and buggy optimizers found in cirq.optimizers with new cirq.transformer implementations. New transformers have well defined functionality with CircuitOperations and should be easier to use overall.

Classical Control

Cirq now has support for classical control in NiSQ relevant regimes. Classically controlled operations and measurement feedforward operations are supported. Extension into arbitrary classical logic on top of this is not on the immediate roadmap.

Devices

Devices have undergone a rework. Functionality to: attach a device to a circuit, use a device as a means to decompose a circuit, and exploration related functions have been removed. Devices now validate circuits and carry a DeviceMetaData property if more description of the device is needed.

Misc

In addition to the larger changes mentioned above, this release also includes new experiment utilities for characterizing device readout errors with cirq.measure_confusion_matrix. The cirq.decompose function contract has now been tightened to return a circuit containing just X,Y,Z,C*Z gates (assuming a decomposition is possible). Repeated measurement keys will now store temporal measurements (where previously they would be disallowed). New simulation techniques based on (https://arxiv.org/abs/2112.08499) and more.

Breaking changes

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.optimizefortarget_gateset instead)
  • ConvertToSqrtIswapGates (use cirq.optimizefortarget_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 mergesinglequbitgates* transformers (#5123) 92d19f66 Add support for deep=True to cirq.mergekqubitunitaries 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 tagstoignore + 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 logofmeasurementresult input (#5100) 848bfde6 Add default decomposition for cirq.QubitPermutationGate in terms of adjacent swaps (#5093) e0f74324 Deprecate `cirqgoogle.ConvertToXmonGatesand replace withcirq.CZTargetGateset+cirq.optimizefortargetgateset` (#5096) a7df5790 Replace _PhasedFSimConverter in cirqgoogle 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 todict() 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 assertdecomposeendsatdefaultgateset consistency test (#5079) 083d2e5d Remove reference to deprecated readthedocs documentation in Contribute page (#4988) 701f62c3 Add return type annotation on MeasurementGate.fullinvertmask (#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 twoqubitmatrix related functions (#5070) 2792f384 Call decomposeonce in TaggedOperation (#5071) d967317c Update getting started notebook (#5046) 785c5c12 Change ValueError to assertion in cliffordoptimize (#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 in`cg.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 mergesinglequbitgates* transformers (#5123) 92d19f66 Add support for deep=True to cirq.mergekqubitunitaries 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 tagstoignore + 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 logofmeasurementresult input (#5100) 848bfde6 Add default decomposition for cirq.QubitPermutationGate in terms of adjacent swaps (#5093) e0f74324 Deprecate `cirqgoogle.ConvertToXmonGatesand replace withcirq.CZTargetGateset+cirq.optimizefortargetgateset` (#5096) a7df5790 Replace _PhasedFSimConverter in cirqgoogle 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 todict() 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 assertdecomposeendsatdefaultgateset consistency test (#5079) 083d2e5d Remove reference to deprecated readthedocs documentation in Contribute page (#4988) 701f62c3 Add return type annotation on MeasurementGate.fullinvertmask (#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 twoqubitmatrix related functions (#5070) 2792f384 Call decomposeonce in TaggedOperation (#5071) d967317c Update getting started notebook (#5046) 785c5c12 Change ValueError to assertion in cliffordoptimize (#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 serializeprogram and serializeruncontext into EngineContext (#5034) d5be95ff Recursive subop parameter resolution (#5033) 5ff22ce9 Add `functools.cachedpropertybackport (#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 Addcirq.SqrtIswapTargetGatesetfor (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 Addcirq.CZTargetGatesetto replacecirq.ConvertToCZAndSingleGatesandcirq.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 incirq.mergemomentsto correctly handle new empty moments. (#5013) 31776478 Reject multiplication ofcirq.PauliSuminside incirq.PauliString(#5010) ca4c8e7c Replace fields with properties in ActOnArgs (#5011) 1bbbc9f4 Multiple Qubits Clifford Gate (#4791) 59b72a1e Addcirq.converttotargetgatesettransformer andcirq.CompilationTargetGatesetinterface (#5005) 35173066 Add isolated qubit functionality for gridmetadata. (#5001) 6c2b3766 Update bell_inequality.py (#4998) a2f04f19 Add caching to CI. (#4999) a016e527 Addcleanoperationsflag tocirq.twoqubitmatrixtosqrtiswapoperations(#5002) 7c5ad613 Addcirq.mergekqubitunitariestransformer to replacecirq.MergeSingleQubitGatesoptimizer (#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 Makecircuit.prevmomentavailablea 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 Addcirq.toggletagshelper to apply transformers on specific subsets of operations in a circuit (#4973) 4dc6e25f Rewritecirq.stratifiedcircuit` following new Transformer API and primitives. (#4944) 169db486 Refactor virtualenginefactory (#4909) 0bdc9f1e Deferred measurements transformer (#4849) aed19646 Minor formatting fixes (#4971) 92032c1f Revert "Change TaggedOperation's `powfrom returningOperationto returningTaggedOperation` " (#4966) aadc56d6 Deperecate {ion,neutralatom}.qubitset. (#4943) eb159072 Deprecate device.qubitset in cirqionq. (#4942) c3b1b22b Deprecate device.qubitset in cirqgoogle. (#4940) 5eae221c DeviceMetadata docs update. (#4963) c20c99ba Add `cirq.ejectphasedpaulistransformer to replacecirq.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 Addcirq.ejectztransformer to replacecirq.EjectZ(#4955) 8b64834b Move cirq/ops/moment.py to cirq/circuits/moment.py (#4932) 6806f6ab Adddeep=Trueflag 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 Addexpandcompositetransformer to replaceExpandComposite` optimizer (#4946) 18d19db0 remove codeowners windows. (#4950) 4042204a deprecate device.qubitset in cirqpasqal. (#4938) f18fde4f Use groupinterchangeablequbits for qubit comparison in GateOperation (#4941) a57c5ad8 Missing cirqgoogle import in command line QCS example (#4939) 84b0a289 Bump @npmcli/arborist from 2.6.2 to 2.10.0 in /cirq-web/cirqts (#4937) 8b718904 Fix _compat tests (#4926) ec445753 Deprecate device.decomposeoperation in cirq-core. (#4922) 92878fc5 Add tags_to_ignore flag to mapoperations and mergeoperations transformer primitives (#4933) 57e09200 Rename context.ignoretags to context.tagstoignore (#4931) 2f2c7ca7 Add state conversion logic from _createpartialactonargs to the corresponding ActOnArgs (#4847) c8dc720f Deprecate {ion,neutralatom}.decomposeoperation. (#4930) 610b0d4e Deprecate device.decomposeoperation in cirqionq. (#4925) d3a122b0 Deprecate device.decomposeoperation in cirqpasqal. (#4927) c57d8bf7 Deprecate decomposeoperation in cirqgoogle. (#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 `dropemptymomentsanddropnegligibleoperations` transformers. (#4915) 35e6d21c Deprecate canaddoperationintomoment. (#4902) ab61d7fc Add `synchronizeterminalmeasurementstransformer to replaceSynchronizeTerminalMeasurements(#4911) 8c8ee432 Add asynchronous ability to simulated engine. (#4811) d7a39063 ChangeTaggedOperation'spowfrom returningOperationto returningTaggedOperation(#4916) 275372ed Clean up redundant use ofdeprecateattributes` (#4917) 2dc428b3 Deprecate setstatevector and setdensitymatrix (#4906) 38fcc429 Support adding / deleting operations in (#4912) 2b2a6fed Fix commutation of classical controls (#4872) 4d445c41 Add `alignleft/alignrighttransformers to replaceAlignLeft/AlignRight(#4891) fdf85f0b Support additional**kwargs` with default arguments in Transformer API. (#4890) 8c71ac88 Change enginevalidatortest to be deterministic. (#4908) fd4e834c Deprecate qidpairs (#4900) c4dd879d Add Bravyi-Gosset-Liu sampling (#4848) 6d2221f8 Move blockoverlappingdeps 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 substatevector() (#4877) aa9d1846 Bump ipython from 7.22 to 7.31.1 in /devtools/requirements/deps (#4898) 37ba2713 revert coverage and notebook packages. (#4896) 12ebe83d Add metadata property for cirqgoogle devices. (#4869) ee744bd2 Documentation fix for `cirq.Circuit.prevmomentoperatingon(#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 Addcirq.TensoredConfusionMatricesfor 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.transformerdecorator (#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 forXXPowGateandYYPowGatewhich terminate inCZPowGate. (#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 inmergeoperationsprimitive (#4764) 7ffc77ca [runtime] QubitPlacer 2 - RandomDevicePlacer (#4719) bce3002d Deprecateciruit.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/cirqts (#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 deprecatedsubmodule conflict with importlibmetadata (#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 simplifycommutingcnots (#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/twoqubitstatepreparation.pytotransformers/analyticaldecompositions/twoqubitstatepreparation.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 Movecirq.vismethods to the outer cirq package (#4752) 807a24de Insertion noise model (#4672) ca09f4c2 Upgrade pinnedblackversion (#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 Addmergeoperationsandmergemomentstransformer primitives (#4708) e97768c6 Classical control (#4631) 45fd829c Add missinghas*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 SQRTISWAP (#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 operatorspaces.py::kronbases 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 jsoncirqtype if cirqtype is defined...for now. (#4711) 48397d66 Move "cirqtype" 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 fromsingleparameterset 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 `cirqgoogle.FSimGateFamilyclass. (#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 ofcirq.googlein 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 FixSVGCircuit()forcirq.Circuitwith 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 serializeMSGate` (#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)

- Python
Published by MichaelBroughton almost 4 years ago

cirq - Cirq v0.13.1

This release removes the measurement_key and measurement_keys protocols. These protocols were supposed to be removed in Cirq 0.13.0, but were missed.

Complete list of changes:

7d74e3cff2957ffc165f94020a886ff262d4b55e Flush missed v0.13 backlog items. (#4600)

- Python
Published by MichaelBroughton about 4 years ago

cirq - v0.13.0

Cirq v0.13.0 release

Highlights

ProjectorString + ProjectorSum

Added cirq.ProjectorString and cirq.ProjectorSum for compact representations and calculations involving projection operations.

Gatesets

Construct cirq.GateFamily and cirq.Gateset to test gates and operations for membership in well-defined groups.

NamedTopologies

Basic circuit to device placement routines (get_placements, draw_placements) have been added to Cirq, powered by NamedTopology.

Simulator performance improvements

Cirq's built-in simulators now dynamically factorize the simulated state into non-entangled subsets of qubits (when possible). This dramatically improves performance for circuits consisting of disconnected subsystems, and permits simulation of larger numbers of qubits for such circuits.

Clifford Tableau Decomposition

Upgraded existing clifford operations and circuits to make use of Tableau representation where appropriate and implemented baseline tableau to circuit decomposition using methods outlined in this paper.

Breaking changes

  • Retain logofmeasurement_results throughout simulation (#4465):
    • Step results will include all measurements from previous moments in the simulation.
  • Exponent should be drawn on target qubit in CX and CCX gates (#4462):
    • Tests depending upon diagrams of CX and CCX can now fail.
  • Replace isinstance(op, GateOperation) checks in cirq_google optimizers to support other operation types (#4459):
    • Note that TaggedOperations which were earlier ignored by the optimizers would now be considered, and hence this is potentially a breaking change if people were implicitly relying on TaggedOperations not getting compiled by the optimizers.
  • Resolve inconsistencies in using controlled gates & controlled operations (#4167):
    • gate_operation.controlled_by() can now return a cirq.GateOperation instead of cirq.ControlledOperation in cases where the underlying gates have specialized gate.controlled() implementations.
    • This also leads to a change in diagram of the controlled gates with specialized controlled implementations. For eg: Controlled S gate is now plotted as CZPowGate (@ --- @ ** 0.5) instead of ControlledOperation with Z ** 0.5 as subgate(@ ---- S)
    • op.controlled_by for 3Q gates like CCX, CCZ, CSWAP will now return ControlledOperation with sub_operation = <underlying non-controlled gate>. Eg: CCCX (i.e. sub_gate = X) instead of CTOFFOLI (i.e. sub_gate = TOFFOLI) etc.
    • Diagrams for ControlledOperations will now always have the exponent drawn on the target qubit (in case of multi qubit sub_operation, the exponent will always be on the first qubit if not the underlying gate does not explicitly specify a target index).

Changes to top level objects

cirq-core

New top level objects

  • NamedTopology
  • draw_gridlike
  • LineTopology
  • TiltedSquareLattice
  • get_placements
  • draw_placements
  • estimate_parallel_single_qubit_readout_errors
  • AnyIntegerPowerGateFamily
  • AnyUnitaryGateFamily
  • GateFamily
  • Gateset
  • measure_paulistring_terms
  • measure_single_paulistring
  • ParallelGate
  • ParallelGateFamily
  • parallel_gate_op
  • PauliMeasurementGate
  • StatePreparationChannel
  • ProjectorSum
  • decompose_clifford_tableau_to_operations
  • choi_to_kraus
  • choi_to_superoperator
  • kraus_to_superoperator
  • operation_to_superoperator
  • superoperator_to_choi
  • superoperator_to_kraus
  • state_vector_to_probabilities
  • dataclass_json_dict
  • measurement_key_name
  • measurement_key_obj
  • measurement_key_names
  • measurement_key_objs
  • SupportsKraus

Objects or parameters that are marked as deprecated and will be removed in coming releases

  • cirq.SupportsOnEachGate
  • cirq.TwoQubitGate -> Define numqubits_ manually
  • cirq.ThreeQubitGate -> Define numqubits_ manually
  • cirq.ParallelGateOperation -> Use cirq.ParallelGate(gate, num_copies).on(qubits)
  • cirq.measurementkeynames -> parameter allow_decompose removed
  • cirq.ismeasurement -> parameter allowdecompose removed
  • cirq.kraustochannelmatrix -> Use cirq.krausto_superoperator instead
  • cirq.operationtochannelmatrix -> Use cirq.operationto_superoperator instead
  • cirq.CompletionOrderedAsyncWorkPool -> Use duet.AsyncCollector instead
  • cirq.SerializableGateSet.gatesetname -> Use name instead

cirq-google

New top-level objects

  • Serializer
  • ExecutableSpec
  • KeyValueExecutableSpec
  • QuantumExecutable
  • QuantumExecutableGroup
  • BitstringsMeasurement
  • SharedRuntimeInfo
  • RuntimeInfo
  • ExecutableResult

A Huge Thank You

Thank you to all our contributors for this release:

Adam Zalcman, Alapan Chaudhuri, Ali Panahi, Ana Sofia Uzsoy, Animesh Sinha, Antoine (Tony) Bruguier, Balint Pato, Bicheng Ying, cognigami, Dave Bacon, Dax Fohl, Doug Strain, Eric Hulburd, Guen Prawiroatmodjo, ishmum123, Ishmum Jawad Khan, Mark Daoust, Matthew Harrigan, Matthew Neeley, melonwater211, MichaelBroughton, Nathanael Thompson, Orion Martin, Pieter Eendebak, Ryan LaRose, Shrill Shrestha, Smit Sanghavi, Tanuj Khattar, twojno, Victory Omole, Zeeshan Ahmed

Full change list

8a7d6f84 Removing 0.13.0.dev -> 0.13.0 50271af8 Made the Density Matrix Plotter (#4493) aaf969d8 Allow any qubit type in quimb density matrix (#4547) e4e90197 GateFamily & Gatesets cleanups and bugfixes (#4569) 686e6b1a Removes sections related to experimental features. (#4573) 5aca52d0 Roll forward "Enable CircuitOp serialization" (#4511) 1f14edf6 Fix "tex" -> "text" (#4571) 888aeb7a Make Instance GateFamily check for equality ignoring global phase (#4542) 66c694a9 [cirqflow] Quantum runtime skeleton - part 1 (#4565) 033c604c Remove v0.13 deprecations. (#4567) 9f3034cb Replace isinstance(op, GateOperation) checks in cirqgoogle optimizers to support other operation types. (#4459) bd2e63c0 Boolean Hamiltonian gate yields fewer gates (#4386) 3d509219 [cirqflow] Provide concrete ExecutableSpec (#4559) 978dbacf Add `measurementkeyobjandmeasurementkeyobjs` protocols. (#4497) f11846ec Add copyright notices to conftests (#4561) e66ac537 Document conversion tools between channel representations (#4554) 09da3914 Fix variational algorithm tutorial (#4541) eaa7f333 [cirqflow] QuantumExecutableGroup (#4551) 7e0d5d24 Add Azure Quantum docs and tutorials (#4530) 0d9eb4ef More channel representation conversion tools (#4553) 02b46580 Compute a Kraus representation from the Choi matrix (#4549) 241695a3 Acctually assert in krausprotocoltest.py (#4546) f48efe0f Resolve inconsistencies in using controlled gates & controlled operations (#4167) 9d0ac9cb Add Clifford Tableau decomposition function (#4183) e6dc1e08 Use Gatesets in cirq/neutralatoms (#4525) bd1cdbcd [cirqflow] Quantum Executable (#4527) da635241 Fixed testcliffordcircuit3 (#4534) 5daaec6d Fix resolving integer divisions (#4521) 88be1ef1 Fix broken path instructions in setting up a dev environment (#4519) 004eed10 Add separators argument to tojson function. (#4537) 6d9bbacd Re-add all_measurement_keys and deprecate it (#4540) 34d0f8b5 Replace the underlying representation of SingleCliffordGate by CliffordTableau (#4165) 44e063b9 Code Quality Fixes in StatePreparationChannel (#4503) e2564235 [Named Topologies] LineTopology nodesaslinequbits (#4536) 95916155 Idiomatic use of "segments" in floquet calibration tutorial (#4528) 3a287c28 Use Gatesets in cirq/optimizers/* (#4526) 2868382e Use Gatesets in cirqionq/* (#4524) dfc33a10 Use Gatesets in cirqpasqal/* (#4523) 61718ca2 Use Gatesets in cirq/ion (#4522) 4d1b9c00 Add common gate families as part of adopting gatesets across Cirq. (#4517) f8ffbea1 Fix docstring for fsim gate (#4520) f1964e5b Explicitly throw TimeoutError when job times out (#4514) 9f6c359e Exponent should be drawn on target qubit in CX and CCX gates (#4462) 9f371b0d Consolidate SQRTISWAP gate defs (#4229) cf5b45db Little json things (#4506) 7759c05f Add type annotation on FrozenCircuit.toop (#4505) 0041657c Add cirq.GateFamily and cirq.Gateset (#4491) 464ef048 Fix broken tutorials depending on cirq pre-release (#4504) f1e676fa Fix incorrect index in intro.ipynb (#4502) 3725c6a2 Implemented State Preparation Gate (#4482) b80c2656 Fix broken Floquet tutorial (#4496) 91bfb5c1 [Docs] Add calibration FAQ (#4442) b3fa1bf5 Abstract out auth+device+sampler boilerplate from cirqgoogle tutorials (#4286) 578c956b Bump the proto requirements to match the generated data. (#4473) eb3d84c4 Replace decomposition in measurementkeyprotocol with explicit implementations (#4471) 676431da Adds PauliMeasurementGate (#4444) 9349802d Append list of wrapped finders in `sys.metapathwith list ofnon-wrappedfinders (#4467) 3b6ddfb9 Refactor ActOnArgs.kron/factor/transpose to reduce code duplication (#4463) 7951f84a DeprecateTwo/ThreeQubitGate(#4207) 0dce2c1a [Obs] 4.5 - High-level API (#4392) 2988803b Retain log_of_measurement_results throughout simulation (#4465) 9130e2ab cirq-google: Export Serializer on top-level cirq_google namespace (#4474) d8004c67 Enable missing-param-doc pylint rule. (#4457) 6ce9a06d Upgrade notebook (#4468) b44387aa Bring back nest-asyncio to allow running notebooks with latest release (#4472) de31ee92 Use duet for asynchrony, in particular for Collector (#4009) 58cda7a4 Serialize SingleQubitCliffordGate (#4421) 932f0659 Added r(theta, phi) gate (#4455) 886fc516 dataclass_json_dict (#4391) 6ecaf079 Named Topologies (#4370) 1c2eafb3 Add missing code for ProjectorSum serialization in TFQ (#4456) 454c1a3c Allow initialization of MeasurementKeys with empty strings (#4445) 9ad0db17 install pyquil qvm and compiler (#4435) c8dca6bc Noise validate and docs (#4447) 1532975d Fix typing for Google measurements functions (#4450) 82a76988 Rename kraus.py to kraus_protocol.py (#4454) 743c5bad Fix reference to np.random.poisson (#4452) d4717d89 Do not sort qubits by default in pauli_string to fix inconsistencies with pauli_string.gate (#4446) 91f4c765 Fix repr for MeasurementGate so thateval(repr(g)) == g(#4443) 4f881d71 state vector to probability utility method (#4439) 662de03c Replacefrom numpy.random import poissonwithimport numpy as npincirq-core/cirq/contrib/acquaintance/gatestest.py(#4451) 11f751fa Add ParallelGate and deprecate ParallelGateOperation (#4398) a99fef97 Add tutorial on comparing current performance to latest calibration (#4180) b1db3fa7 Fix MeasurementKey repr s.t.eval(repr(k)) == k(#4441) e0c4a8af Add tutorial on circuit optimization, gate alignment, & spin echoes (#4373) d259a8c2 Add name to circuit serializers (#4422) 739808df ProjectorSum object for TFQ (#4364) e6c584b6 Calibration to fidelity (#4431) aa8184c7 Replace existing calls ofSupportsChanneltoSupportsKraus(#4438) 5ee2288f AddSupportsKraustocirq/init.py` (#4437) 8d02bde2 Change definition of rise time for coupler pulse (#4427) 601a9237 Channel matrix -> superoperator (#4433) ac873c6c Metrics to noise (#4389) cad0c336 Allow ActOnArgsContainer to support protocols.acton (#4371) 9d615c5e Improve speed of random circuit generation (take 2) (#4430) fb4cf437 updated cirq.Circuit to cirq.AbstractCircuit (#4372) 6e5d6844 Add missing-raises-doc rule to the linter and subsequent refactor. (#4345) 04dea0cb Deperecate property test. (#4432) 36904401 Rename measurement_key protocol to measurement_key_str (#4403) 5a248eb6 Revert "Improve speed of random circuit generation" (#4429) 75eccd33 Improve speed of random circuit generation (#4428) 782efcd0 pre-release notebooks -> stable (#4423) 37dfc636 Simultaneous readout (#4415) 28feee1f [Docs] Remove redundant note about cirq pre install in noise guide (#4413) 8e1a08d9 Add modules to book yaml (#4419) e4645d1f Fix XL size labeling everywhere. (#4420) 4aeb719c Size labels (#4402) eb42d4a6 Updates release.md and verification scripts. (#4417) db1b310d Bump dev version to v0.13.0.dev. (#4416)

- Python
Published by 95-martin-orion about 4 years ago

cirq - v0.12.0

Cirq v0.12.0 release

Highlights

All Cirq vendor modules have been extracted

Following the example of cirq-google now we have cirq.aqt, cirq.pasqal and cirq.ionq extracted to their corresponding new cirq modules. These are standalone packages that can be installed on their own with pip install cirq-<module>.

Rigetti support

In collaboration with Rigetti, the cirq-rigetti module is now avaiable to access the Rigetti QVM and Rigetti Quantum Computing Service runtimes.

Two-qubit unitary decomposition for (inverse) sqrt-iSWAP

Arbitrary two-qubit unitaries can be now decomposed to single and two-qubit gates using only 3 sqrt-iSWAP gates, compared to the previous 6 sqrt-iSWAP gates. This is an exact analytical compiler based on https://arxiv.org/abs/2105.06074

Typescript development and 3D Circuits

The cirq-web module adds the framework to develop new, interactive, Typescript based widgets for notebook environments. Two new widgets are added as an example: BlochSphere visualization and 3D Circuits.

Python 3.9 support

We now officially support python 3.9, it is included in our testing suite.

Performance boost for low entanglement circuits

Starting with https://github.com/quantumlib/Cirq/pull/4100 all simulators now dynamically allocate/deallocate memory when entangling between qubits or measuring/resetting qubits. This allows users to simulate larger number of qubits than otherwise would have been possible, with the requirement that not too much entanglement between qubits exist at any given moment in the circuit.

Breaking changes

  • cirq.MergeInteractions behavior change (#4288):
    • MergeInteractions skips merging CZ gates if there are already equal or fewer in a sequence than the synthesized result (to prevent increasing the gate count). Previously, a tagged partial CZ gate could slip through and not be optimized even if allowpartialczs=False.
  • changes in mutability of step_result.get_state(copy=False) (#4110):
    • Manual changes made to a step_result.get_state(copy=False) array are no longer preserved by default. If this behavior is required, it will continue to work if split_untangled_qubits=False, but this PR sets split_untangled_qubits=True.

Changes to top level objects

cirq-core

New top level objects

  • SymmetricalQidPair
  • is_cptp
  • BooleanHamiltonian
  • KrausChannel
  • MixedUnitaryChannel
  • ProjectorString
  • reset_each
  • SQRT_ISWAP
  • SQRT_ISWAP_INV
  • MergeInteractionsToSqrtIswap
  • two_qubit_matrix_to_sqrt_iswap_operations
  • entanglement_fidelity
  • kraus_to_channel_matrix
  • kraus_to_choi
  • operation_to_channel_matrix
  • operation_to_choi
  • ActOnArgsContainer
  • OperationTarget
  • StepResultBase
  • GenericMetaImplementAnyOneOf
  • MEASUREMENT_KEY_SEPARATOR
  • has_kraus
  • kraus
  • SupportsActOnQubits

Objects or parameters that are marked as deprecated and will be removed in coming releases

  • cirq.aqt, deadline v0.14
  • cirq.pasqal, deadline v0.14
  • cirq.ionq, deadline v0.14
  • cirq.channel -> cirq.kraus, deadline v0.13
  • cirq.haschannel -> cirq.haskraus, deadline v0.13
  • cirq.SupportChannel -> cirq.SupportKraus, deadline v0.13
  • cirq.ActOnArgs.axes will be removed, use protocols.act_on instead, deadline v0.13
  • cirqgoogle.GateOpDeserializer.serializedgateid -> serializedid
  • cirqgoogle.SerializableGateSet.serialize parameter useconstantstablefortokens -> useconstants, deadline v0.13
  • cirqgoogle.SerializableGateSet.withaddedgates -> withadded_types, deadline v0.13
  • cirqgoogle.SerializableGateSet.supportedgatetypes -> supportedinteral_types, deadline v0.13

cirq-google

No changes to top level objects.

New modules

  • cirq-aqt
  • cirq-pasqal
  • cirq-ionq
  • cirq-rigetti
  • cirq-web

A Huge Thank You

Thank you to all our contributors for this release:

Adam Zalcman, Ana Sofia Uzsoy, Antoine (Tony) Bruguier, Balint Pato, Bicheng Ying, Casey Duckering, Craig Gidney, Dax Fohl, Dmytro Fedoriaka, Doug Strain, Eric Hulburd, Jannes Stubbemann, Laurent AJDNIK, madcpf, Malice, Mark Daoust, Martin Leib, Matthew Harrigan, Matthew Neeley, Michael Broughton, MichaelBroughton, Nathanael Thompson, Niko Savola, Noureldin, Orion Martin, Ryan LaRose, Seun Omonije, Smit Sanghavi, Tanuj Khattar, Victory Omole, Wojciech Mruczkiewicz

Full change list

8cba3246 Update serialization.md to include deprecation of serializable values (#4411) 1168164c Fix link on jupyter notebook (#4409) abc71590 Revert "Simultaneous readout" (#4406) 66fd2473 implement aspen qubits and devices (#4378) 0d4a31bd 3D circuit visualization using Typescript dev environment (#4334) 10c78c92 Add printversion and replaceversion to module.py (#4399) eb72fb54 Simultaneous readout (#4307) 10b15e07 Fix cirq-core dependencies (#4369) 8c505fb2 update json serialization docs + add module docs (#4397) 9d695c50 Fix BooleanHamiltonian.withqubits() to work with not only NamedQubits (#4396) 3810349a Reorganize serializers (#4385) 78db1026 Add missing import cirq (#4387) c3f9a5d6 T1 decay for simulator (#4326) e56e15d2 Boolean Hamiltonian gate (#4309) 2466bc3a Throw TypeError around any call in `if hasattr(obj, 'iter') and not isinstance(obj, str):` to deal with a numpy special case (#4382) 120eb873 [Obs] 4.4 - Checkpointing (#4352) b1dc9735 Proto serialization v25 (#4333) fb915780 GeneralizedAmplitudeDampingChannel docstring (#4374) f7b882ce Measureable channels and mixtures (#4194) 409a412d Disallow empty measurement keys and fix tests using empty keys (#4060) 9c230536 Lazily create TrialResult.finalsimulatorstate (#4317) 9467ad3c Add iscptp predicate (#4365) 2b1e4070 Updated calls to np.prod to use dtype=np.int64. (#4363) 9a38c2d2 Projectors for TensorFlow quantum (#4331) 2467e390 IdentityGate optimizations for acton and independent states (S) (#4340) 0f9fa3fa Optimize swap gates (#4169) fb43b84c Fix floquet quirk url (#4347) bae702c3 Revert "Enable CircuitOp serialization." (#4355) 809fe66f Revert "Allow CircuitOperations in cirq.optimizedforsycamore" (#4356) ecb02021 [Obs] 4.4 - Readout error mitigation (#4323) 187915d4 Allow CircuitOperations in cirq.optimizedforsycamore (#4336) 0209c651 Complete implementation of the permitmixedmoments option (#4342) 4d956c57 Enable CircuitOp serialization. (#4344) 055db683 Allow intercepting decomposer while preserving structure. (#4343) 912110f2 Adds cirq-rigetti (#4302) 7a279173 Floquet notebook missed review nits (#4341) 093c1715 Fix citation and explanation in Floquet calibration example (#4335) b92f379f Make (cirq.X, cirq.Y, cirq.Z)**1 returned type as _Pauli{X,Y,Z} instead of {X,Y,Z}PowGate (#4330) dc013726 Attempt to Fix PauliSumCollector.collectasync warning under notebook(short-term solution) (#4004) 16dd1bb2 better error messaging when deprecated module can't be imported (#4324) c629c382 Re-alias TrialResult to Result in json. (#4319) b8e05873 Fix cirqweb README from large Typescript development PR merge (#4314) a3109a77 paulisumcollector.estimateenergy() should return float when energy.imag == 0 (#4313) 0d8bf311 Add missing quote in circuits.ipynb (#4320) 68f76980 T1 constant calculation (#4290) d9e1f937 Fix NameError in visualizing calibration metrics tutorial (#4316) d624a55e Add docstyle rule to the linter and subsequent refactor. (#4311) 7407a28b Test deserializer on infinite recursion. (#4315) c28646fe Sample independent qubit sets without merging state space (#4110) 5ca4ab6e Move oneach to Gate, and deprecate SupportsOnEachGate (#4303) 4852c468 Fix automerge checks (#4308) ada1b09c Add an option to build a PauliSum from a Sympy Boolean expression (#4282) b1a35bf5 Revert "Switch to using the incremental pylint. Turn on documentation linters. (#4267)" (#4306) 52aba59a Switch to using the incremental pylint. Turn on documentation linters. (#4267) cea9eece Return self in Operation.withtags if adding no tags (#4301) c8be2069 Add reseteach function by analogy with measureeach (#4294) 418d0678 Remove bazel from repo (#4297) 4ec906d3 Allow oneach for multi-qubit gates (#4281) e2b44774 Use `partialtraceto factor density matrix (#4300) 6cfdda73 [XEB] Cycle depths during analysis (#4278) 5c3125e9 Add py39 testing to CI test matrix. (#4296) d850bd0f Add Circuit Optimizer for sqrt-iSWAP (#4224) 504bdbb9 Fix behavior of MergeInteractions for tagged partial CZ gates (#4288) c80e4637 Add two-qubit unitary decomposition for (inverse) sqrt-iSWAP (#4213) 24bac557 Typescript development in Cirq and prototype Bloch sphere implementation (#4171) 6282c067 SimulatorBase independent qubits optimization (#4100) 6b6fc980 fix for issue #4087 (#4103) 680f8973 Revert "Support qubits inMeasurementKeyand update JSON serialization of keys" (#4277) 14336215 Fix docker (#4230) 55417eea Extract cirq-pasqal (#4241) 608e678b Remove cirq.IonDevice.can_add_operation_into_moment (#4271) 534b9518 Add qubits as a param of PauliSum.matrix() (#4203) d3795718 Refactor private static methods to module functions. (#4231) b1801aba Add coupler pulse gate (#4130) 6d2cd169 No DeprecationWarning deduping during testing (#4239) ff230df1 Update tutorials on calibration (#4258) 36e5f60e Add method to get "mapped_circuit" from CircuitOperations (#4188) 09a2ea5f Support sqrt(iSWAP) and Sycamore gates in Floquet calibration (#4248) aba9fa95 [Docs] Fix dev group link on support page (#4259) 2f07cc9e Fix the CZ ops on the Clifford Tableau Implementation (#4182) 700a6c02 add cancel workflow (#4256) 418e08df Propagate _channel_ from GateOperation to its Gate (#4255) 02f39513 add flynt to pytest-minimal (#4250) fb289677 Add OptionalnametoMatrixGateparameter (#4201) d7a5b9ba Removes direct URL requirements from cirq[dev-env] (#4249) 81d2097d Support decompose protocol oncirq.Moment(#4251) 81436fee Support qubits inMeasurementKeyand update JSON serialization of keys (#4123) 7d9e6035 [4173] Add atol/rtol for unitary checks in MatrixGate (#4220) 42782774 update python version to 3.8 (#4245) 4960e177 Fix extras_require for the cirq metapackage setup.py (#4246) a2f107cd Expand Floquet calibration to arbitrary FSim gates (#4164) ba2cd7fd Removing noise model check in Simulator initialization (#4216) 099fc740 Draw zero-target operations below circuit text diagrams as annotations (#4234) ef5ae035 Qasm for pauli X sqrts (#4113) 65711e10 Remove axes from ActOnArgs, pass qubits explicitly to act_on (#4089) 566ce2bc Extracting cirq-ionq (#4205) 59d80187 Fix EjectPhasedPaulis incorrectly treating X**0 as X**1 (#4219) 87f2961f Addcirq-aqttopip installcommand indevelopment.md(#4221) 73359bf8 fix aqt ref (#4212) 72993b50 Density matrix simulator EVs (#3979) 0d7534a8 Update Google Best Practices (#4168) 1f2328f1 fix AQT link + logo (#4206) b5c0f803 Rename channel.py to kraus.py (#4204) 6af64a27 Fixing isolation in isolated notebook tests (#4202) e151a669 Add two-qubit interaction heatmap to parallel xeb tutorial (#4199) 2dafb29a fixing notebook test errors when no tests collected (#4196) 55873b90 Rename cirq.channel to cirq.kraus (#4195) b43eaaa8 Extract cirq_aqt (#4157) 020008b6 sharding isolated notebook tests (#4192) 1d1f3a8e Triage party config and docs (#3740) 2d7641b8 Allow to pass Circuit to single-qubit gates compensation (#4118) 007a3cdc Fix path inversiondocstring forsetup.pyincirq-google(#4174) 3b315cdf Optimizeismeasurement` protocol (#4140) 8e7e302b GH actions ubuntu 20 04 (#4148) db8baea4 Fix codeowners for docs and modularized folder structure (#4160) 8b5866ff Minor improvements to echoes tutorial (#4128) 66b2102d Fix the typo in cliffordgatetest::testcommutespauli (#4149) 06b34df8 Add edges to device (#3993) 074c4e4a Entanglement fidelity of a quantum channel (#4158) 7065c6d8 Channel matrix (#4146) 0311e174 Update cirqgoogle to import from cirq directly (#4156) bc4123ef Rename _channel_ to _kraus_ (#4139) b95c3657 Fix contrib-requirements (#4155) 3ea9c873 Consistent parameter indentation in README.rst (#4150) 705f37bd Slight speed up to notebook tests (#4147) fec7710b Improve docstring for operationtochoi (#4143) 836bbda9 Consolidate dependencies (#4131) b28b1633 Choi representation (#4132) 6c72b5b9 Fix pathname in misc check tool (#4133) 71285d21 (De-)serialization of CircuitOperations (#3923) 0c0366b3 Add inverse method for Clifford tableau (#4111) 7d1e1685 Add then method for composing two Clifford tableaux (#4096) edbee2c8 bump cirq to v0.12.0.dev (#4121) 51d68847 Add tutorial on selecting qubits and calibrating for an experiment (#4108) 3e06fdf2 Add tophasedxzgate function for SingleQubitCliffordGate (#4050) 38ed9ac2 add binarypaintshop example to ionq (#4101) 83b211b8 floquet.ipynb - idiomatic numpy indexing (#4107) ce58f422 [XEB] Multiprocessing spawn (#4090) 5fdb80d9 [XEB] Theory notebook: fix pauli vs. depol error number (#4097) 115e50ed Remove separate script for nightly devsite diff (#4105) f7c1156c Updating notebook pip installs after v0.11 release (#4102) 849849d5 Provide sweep-iterator API. (#4094) b4c445f3 Use MeasurementKey in CircuitOperation (#4086)

- Python
Published by balopat over 4 years ago

cirq - v0.11.1

This point release fixes the JSON compatibility of cirq.TrialResult and cirq.Result. There are no changes in any other user-facing functionality.

Complete list of changes:

02a45f90 Bumps version to 0.11.1 12b438ac Re-alias TrialResult to Result in json. (#4319)

- Python
Published by MichaelBroughton over 4 years ago

cirq - Cirq v0.11.0

Cirq v0.11.0 release

Warning: Please make sure to uninstall all older (<0.11) versions of Cirq otherwise pip install cirq will result in an invalid installation where cirq is an empty namespace package. If you have older versions, run pip uninstall cirq before upgrading.

Highlights

Modular Cirq

We introduced a new structure, where cirq.google is now extracted to a separate package cirq-google, cirq itself became cirq-core and the cirq metapackage only contains these two subpackages as dependencies. The package extraction was done in a backwards compatible way - existing code that uses cirq.google will still run! However, you will get a DeprecationWarning. In order to switch over, ensure that you have cirq-google installed and change import cirq.google to import cirq_google. Everything else should work!

Histograms

  • We have support for integrated histograms or CDFs to display characterization metrics from quantum chips

image

Breaking changes

  • as mentioned in the top notice, pip install --upgrade cirq will not suffice to upgrade cirq - please run pip uninstall cirq before upgrading.
  • cirq.rx, ry and rz are now returning a new class cirq.Rx, Ry and Rz respectively. This should work in most cases, unless your code explicitly depends on the type of the return value.
  • cirq_google.SQRT_ISWAP_PARAMETERS got renamed to cirq_google.SQRT_ISWAP_INV_PARAMETERS
  • cirq.Heatmap.plot() now takes all valid heatmap config arguments as **kwargs instead of just **collection_options, which is now a nested config argument (dict). Please see the tests / tutorials for more details.

Changes to top level objects

cirq-core

New top level objects

  • get_state_histogram
  • integrated_histogram
  • ActOnArgs
  • ActOnDensityMatrixArgs
  • CliffordTableau
  • DiagonalGate
  • SimulatesExpectationValues
  • SimulatorBase
  • MeasurementKey
  • Rx,Ry,Rz

Removed objects that were deprecated

  • Removed support for the func parameter in Circuit.transform_qubits(), you now must use qubit_map instead
  • TrialResult is now officially unsupported, use cirq.Result instead. If you have old JSONs lying around, you can just search and replace TrialResult to Result
  • If you have old gate implementations with _resolve_parameter that doesn't support the recursive parameter, you will get an error message: TypeError: _resolve_parameters_() takes 2 positional arguments but 3 were given, you will need to add support for the recursive:bool parameter
  • Removed support for the density_matrix parameter in cirq.von_neumann_entropy you now must use state instead
  • stabilizers and destabilizers methods are now removed from the CliffordSimulator class, you can find these on the CliffordTableau instead
  • perform_measurement is now renamed to apply_measurement in CliffordSimulator
  • When implementing a subclass of the Simulator class, _simulator_iterator won't work, you will have to use _base_iterator
  • cirq.vis.heatmap.relative_luminance is now moved to cirq.vis.relative_luminance

Objects or parameters that are marked as deprecated and will be removed in coming releases

  • cirq.study.visualize.plot_state_histogram was moved to cirq.vis.plot_state_histogram
  • cirq.google, deadline v0.14
  • cirq.sim.clifford.CliffordTableau moved to a different package, you should use cirq.CliffordTableau instead
  • cirq.contrib.routing.xmon_device_to_graph is deprecated, use cirq.contrib.grid_qubits_to_graph_device instead
  • cirq.contrib.quantum_volume parameter device_or_qubits is deprecated, use device_graph instead.

cirq-google

New top level objects

  • PhasedFSimCalibrationError
  • PhasedFSimCalibrationOptions
  • XEBPhasedFSimCalibrationOptions
  • XEBPhasedFSimCalibrationRequest
  • LocalXEBPhasedFSimCalibrationOptions
  • LocalXEBPhasedFSimCalibrationRequest
  • prepare_characterization_for_moments
  • prepare_characterization_for_moment
  • prepare_characterization_for_operations

A Huge Thank You

Thank you to all our contributors for this release

  • Andriy Kushnarov
  • Anna Nachesa
  • Antoine (Tony) Bruguier
  • Bicheng Ying
  • Bálint Pató
  • Chen Jialin
  • Craig Gidney
  • Dave Bacon
  • Dax Fohl
  • Doug Strain
  • FallenApart
  • Jimmy Yao
  • Kevin J. Sung
  • Martin Ganahl
  • Matthew Harrigan
  • Matthew Neeley
  • Orion Martin
  • Ryan LaRose
  • Ryan Levy
  • Smit Sanghavi
  • Tanuj Khattar
  • Unai Corzo
  • Victory Omole
  • Wojciech Mruczkiewicz
  • Zijun "Jimmy" Chen

Full change list:

6f9eedca flush deprecation backlog for v0.11 (#4099) 44114ed5 format + added fixes to the release process 5ad517f2 Bump cirq version to 0.12.0 8825c078 fix notebook failure bd02fb68 flush deprecation backlog for v0.11 2f8326c5 [XEB] Allow default angles to be inferred from a gate (#4092) d9baa897 Add tutorial for state histograms (#4024) ca38fa33 Modify heatmaps tutorials to include demo of config params (#4026) 2337bbf8 [XEB] Add LocalXEBPhasedFSimCalibration to cirqgoogle _init_.py (#4091) d485de8d Eliminate simulator boilerplate by pushing iteration into base class (#4035) 226ca20a Move CliffordTableau and add unit test (#4085) 30c337fd Example of stabilizer code (#3935) 2ce47aee Allow to pass a list of circuits to Floquet preparation method (#4058) 642fc97f Fix tetrisconcat docstring align arg and restore FIRST alignment option (#4084) a41df7f9 Store job identifiers in calibration results (#4053) 97ce418d Speed up notebook tests by adding extra replacements file (#4077) 8db1515d Update documentation on parallel readout errors (#4076) 97f9f3ef import networkx (#4073) db801bbf [XEB] Local wrapper for characterization functionality (#4047) 8e90bd6d A few more numpy warning squashes (#4072) b8334a19 Fix flakey test in enginesimulatortest (#4069) dd364466 pylint recognizes cirqgoogle as known thirdparty (#4071) 902e737d Narrow pytest execution check in deprecation warning (#4032) 83e0bd3a Add option to manipulate Floquet readout thresholds. (#4052) 9d9eeb32 Raise calibration exception for calibration failures (#4070) 5693c6da Make PhasedFSimCalibrationOptions public (#4061) fbd9c1e1 Fix numpy warnings (#4065) 64fa7d44 Implement automatic inference of qid shape for quantum states (#3789) d448a359 Fix indentation in docs (#3974) 6c99f0b2 Fix google notebooks (#4056) 7bdf41d8 Set default remote host for IonQ API (#4062) ebf8fa38 Speed up MPS simulator test (#4063) 5f51fffa Update floquet notebook to the latest changes (#4057) 58bebc82 Allow using plain qubits as keys for single-qubit heatmaps (#4028) ebce56cf Add a MeasurementKey class and make it the internal representation in MeasurementGate (#4039) b2f8d43a Forrelation (#3748) 08bce1e5 Add IonQ to list of quantum service providers (#4055) 7aeab3b1 Fix naming of sqrt(iswap) gate constants (#4051) 0df0cdcc Use sampler instead of engine as a primary runcalibrations runner (#4054) b61d1c90 Fix pytest-changed-files-and-incremental-coverage (#4046) 81de7251 Speed up cirq import by removing scipy.stats import (#4041) cafe985a Factorise circuit into parallelizable components (will fix #3409) (#3873) 8fc6a2f7 Add and cleanup some gate docs (#4044) 18a66048 adding editable installs to development.md (#4043) 336ab46a fix bad import (#4042) 6188c646 [XEB] Generalize cirq.google.calibration for XEB (#3881) d923a0f8 Fix omitted coverage (#4036) 3953052d Add multi-module version of buildapidocs.py (#4038) 574652c9 Fix cirqgoogle notebooks (#4037) 5919a17b fix versioning of new modules (#4033) 1514cecb Split the simulators' creation of ActOnArgs and iteration (#3970) d995a9c5 Include py.typed files in cirq-core and cirq-google (#4031) 12530f15 Merge pull request #3957 from balopat/master 5589c318 extracted cirqgoogle. 0cd59ea7 cirq.google -> cirqgoogle renames a9768d82 creating compatibility tests for cirqgoogle JSON files 5de9bdad new files before moving cirq.google package fd257e6c in-place changes before actually moving the cirq.google package 51b56288 Add @rmlarose as a maintainer for cirq/docs/* (#4027) bbaf47a1 Fix links in calibration visualization tutorial (#4025) 310f579f Add tutorial on qubit picking with Loschmidt echoes (#4021) 40757b8f Support passing config params in heatmap.plot() (#4018) b47b8b95 Some minor doc reorganizing (#3966) 83238b1f fix networkx / decorator dependency issue (#4019) 4799246c Improve plotstatehistogram configuration options. (#4015) 76edeb13 Better import for sometimes failing mypy test (#4016) eff9583b [obs] 4.3 - Stopping criteria (#3969) 83d163ef Fix DepolarizingChannel documentation (#4011) 9c710fb6 Fix most numpy type errors in cirq/linalg (#4000) 845836ac Fix most numpy errors in cirq/qis and friends (#4002) 259dd91e Fix most numpy type errors in cirq/ops (#3997) aaa13851 Fix Rounding error while printing solution of "Exercise: Custom Controlled Rx gate" in docs/tutorials/educators/intro.ipynb (#4006) 71c7467b Skip measurement gates in DropNegligible optimizer (#4003) c9c6d1f5 minor fixes to cirq intro (#3994) ff516d00 Fix numpy mypy and add mypy-next (#3995) e3fc5743 Update docstring to fix href to MSGate. (#3992) e0365e4c patch fixing a serialization issue with rx,ry and rz gates. (#3837) ff8fb574 Fix qid dimension conflict (#3983) 0a29dc23 minor updates to cirq intro (#3981) c791db7a Change the remaining format string to f-string (#3973) eccc219a Fix docstring for wait helper function (#3978) 150f95c3 Fix and add docstrings to setstatevector() (#3972) 4bb484ae Coefficient fix (#3971) c162e10c Migrate MPS to acton protocol (#3961) 24e98fa9 [obs] 4.2 - Basic sampling loop (#3855) f12e221e Improve Cirq Intro Tutorial (#3967) 96a639ab Update visualizing calibration metrics tutorial (#3956) 8fb3efe0 Make EqualsTester notice incorrect delegation (#3809) ce9fde6b Type annotations for optimization_pass (#3962) 966fc02d Remove go/ link from colab.ipynb (#3963) 46efaaef Refactor state histograms (#3953) 40bc8565 Add link to Jupyter Notebooks in README.rst (#3959) 51dc0966 Fix loadmodule wrapping (#3948) c27dcffc Simulator doc update (#3955) 13908f6a Allow deprecation for freezegun (#3950) f7ccb4ca Fix name collision in program proto (#3949) 985b411c Return type annotations for `def _eigencomponents()(#3924) 7aff0dd2 Add docstring for cirq.QasmOutput (#3934) b190b40f filter pre-release job for only main repo (#3945) 4f50559e support pytest.skip() in subprocess tests in _compat_test.py (#3947) bee1a448 Add integrated histogram visualizations (#3942) cfb25594 Adds git-blame-ignore-rev and instructions (#3940) 0d371281 Fix a bug in module deprecator (#3937) 0baadeb5 Fix calibration API timestamp (#3931) f49ab35b Removed unused param in DFE example (#3936) 916e3558 Module deprecator (#3917) 06e0f1c8 Pytest without cirq.google (#3894) 2128257e remove cirq.google dependency from three qubit gates test (#3928) fa55cbba Add Rx, Ry, Rz gates (#3920) 3d369a00 Simplify type annotations in mps_simulator.py (#3926) 47f5908b Clean up _resolve_parameters_ method signatures (#3925) 9c7a862d Make SimulatesExpectationValues public (#3927) 584b221e Adds a tutorial for single/two qubit heatmaps (#3880) 2b591a54 decompose_preserving_structure (#3899) d27b9a4c Fix for issue #2777: it makes no sense to call simulator.run when ignore_measurement_results has been set to True (#3618) aa6ec849 Change type signature of cirq.resolve_parameters to preserve types (#3922) 38cb2f27 Allow custom definition for _sympy_pass_through (#3921) 229b2041 CircuitOperation proto (#3891) 06e48928 Density Matrix Simulator ActOn migration (#3841) 8cf78255 Add seconds to engine program id generation (#3906) 9465afcd Make assert_logs levels interval based (#3914) 39faafc4 Pin pandas version to >= 1.1.4 (#3918) 504d4679 assert_deprecated improvements (#3919) 69daec18 [Docs] Fix links in Floquet tutorial (#3911) 08c4b9bd Diagonal gate (#3890) 8301dfcd cleanup _assert_equivalent_op_tree (#3909) 4d46863a cleanup _assert_equivalent_op_tree (#3909) bfb7aa31 make flynt incremental (#3905) 745790e4 Remove cirq.google reference from contrib.quantum_volume and contrib.routing (#3888) 05a499c0 Propagate global phase in diagram from sub circuits (#3892) 3f90c62c [Docs] Patch multiplicative group in Shor tutorial (#3819) 7a335e3e Format automatically covered lines with flynt (#3786) 2b948baa fixing small issues (#3896) 0c2a65c9 Update codeowners test following #3877 (#3878) d4f3fc9e Replace _get_op_circuit with op.untagged (#3893) eab2b489 narrow qiskit dependency (#3889) 2ef656c0 Add approximate equality for all common_channels exceptResetChannel` (#3887) 8cef3d9d Version bump 0.11.0 (#3882)

- Python
Published by balopat over 4 years ago

cirq - Cirq v0.10.0

Cirq v0.10.0 release

Major usability changes

Cirq core

  • We now have support for TwoQubitHeatmaps. Single qubit Heatmaps are also easier to use.
  • Add PauliSumExponential for commuting Pauli terms (#3427)
  • Circuit transformations:
    • realign operations: cirq.AlignLeft, cirq.AlignRight
    • concatenate multiple circuits via cirq.Circuit.tetris_add
  • You can now decompose arbitrary 3 qubit unitaries with cirq.three_qubit_matrix_to_operations
  • JSON serialization now supports GZIP
  • Create more structure in your circuits by using subcircuits with cirq.CircuitOperation

Platforms

  • cirq.ionq (NEW!):
    • We proudly announce our IonQ integration - Have a look at the tutorials!
  • cirq.google:

Contrib

  • [new!] We introduced a new matrix product state representation based simulator: cirq.contrib.quimb.MPSSimulator

Breaking changes

  • Heatmap is redesigned and configuration parameters are now passed via **kwargs instead of setter/getter functions.
  • cirq.experiments changes: the default value of the parameter two_qubit_op_factory in random_rotations_between_grid_interaction_layers_circuit and random_rotations_between_two_qubit_circuit changed to cirq.CZ instead of cirq.google.SYC
  • cirq.google.api.v2.results.MeasureInfo is now a dataclass which also contains tags corresponding to the circuit passed to cirq.google.api.v2.find_measurements.
  • cirq.CliffordSimulator behavior changed: if you relied on the old (incorrect) ability to mutate the simulator state from a step result, your workflow would be broken by this. (see #3664 for details)
  • measurement_keys protocol now returns AbstractSet[str] instead of Tuple[str, ...]
  • cirq.resolve_parameters changes - in most cases you should not see a change (see #3546 for details):
    • Parameter resolution no longer depends on alphabetization of parameters involved - see #3544 for an example
    • Cirq will raise a RecursionError when encountering a loop in parameter resolution
    • Resolver is more zealous in its conversion of int to float
  • cirq.protocols.json_serialization.RESOLVER_CACHE goes away -- you should not see a change in most cases is it was not a part of the public API.

New protocols

  • read_json_gzip
  • resolve_parameters_once
  • SerializableByKey
  • to_json_gzip

Changes to top level objects

New top level objects

  • AbstractCircuit
  • Alignment
  • CircuitOperation
  • ionq
  • FrozenCircuit
  • PauliSumExponential
  • PhasedFSimGate
  • wait
  • AlignLeft
  • AlignRight
  • two_qubit_matrix_to_diagonal_and_operations
  • three_qubit_matrix_to_operations
  • density_matrix
  • QUANTUM_STATE_LIKE
  • QuantumState
  • quantum_state
  • validate_density_matrix
  • read_json_gzip
  • resolve_parameters_once
  • SerializableByKey
  • to_json_gzip
  • with_measurement_key_mapping
  • TwoQubitInteractionHeatmap

Removed top level objects that were deprecated - subwavefunction - wavefunction_partial_trace_as_mixture - QFT - decompose_two_qubit_interaction_into_four_fsim_gates_via_b - validate_normalized_state - final_wavefunction - SimulatesIntermediateWaveFunction - WaveFunctionSimulatorState - WaveFunctionStepResult - WaveFunctionTrialResult - has_mixture_channel - mixture_channel

Top level objects or parameters that are marked as deprecated and will be removed in coming releases

  • parameter deprecation:cirq.Circuit.transform_qubits Use qubit_map instead of func
  • parameter deprecation:cirq.Moment.transform_qubits Use qubit_map instead of func
  • parameter deprecation:cirq.Operation.transform_qubits Use qubit_map instead of func
  • parameter deprecation:cirq.von_neumann_entropy Use state instead of density_matrix
  • cirq.CliffordState.perform_measurement
  • cirq.SimulatesIntermediateState._simulator_iterator
  • cirq.vis.heatmap.relative_luminance

A Huge Thank You

Thank you to all our contributors for this release

  • Adam Zalcman
  • Albert Frisch
  • Andriy Kushnarov
  • Antoine (Tony) Bruguier
  • Balint Pato
  • Bao Nguyen
  • Billy Lamberta
  • Craig Gidney
  • Dave Bacon
  • Dax Fohl
  • Doug Strain
  • Henrique Silvério
  • Kevin J. Sung
  • Matthew Harrigan
  • Matthew Neeley
  • Orion Martin
  • Paweł Pamuła
  • Purva Thakre
  • Rhea Parekh
  • Ryan LaRose
  • Sagar Dollin
  • Seun Omonije
  • Spencer Churchill
  • Tanuj Khattar
  • Tim Gates
  • Victory Omole
  • Wojciech Mruczkiewicz
  • YBC
  • gwhitehawk
  • lilies
  • m-szalay
  • smitsanghavi
  • wing

Full change list: 77de283b Bump cirq version to 0.11.0 41fcc6a1 Add empty results fallback for Result.repetitions (#3875) 3da5fa92 Ensure density matrix doesn't restart at zero between repetitions (#3851) 8d17c738 [Docs] Add support page for issues, requests, and questions (#3835) 3435a2ce Add PauliSumExponential for commuting Pauli terms (#3427) d890784b Exclude names from concise serialization. (#3863) 1a614232 fail cirq's use of deprecated features in tests (#3860) e937b199 Add two qubit interaction heatmaps (#3861) 59d9e73d Remove unused performmeasurements argument from sparse simulator (#3869) 4ca1c1da Add support for using physical-Z phase matching on 2-qubit gates (#3862) af0d9f30 Add circuit Alignment and use it for zip and tetrisconcat (#3821) d4a12a22 Update reference link in readme (#3859) 7fe025f1 Refactor MPS simulator to add noise, after #3829 (#3857) 2105e0c2 Deprecate 0.9 deprecated items (#3856) a7f7129a Deprecate 0.10.0 deprecated items (#3854) 3df8aa3d Documentation for accessing the IonQ API (#3755) 9a88acfa [obs] 4.1 - Pre-requisites (#3792) 0679a128 fix grpcio-tools version (#3849) 384b9a28 [XEB] Enable characterizing other gates (#3842) 5977bf39 Allow noise on sparse simulator (#3829) 4b068e69 circuit = circuit.freeze() (#3845) f3d89826 [XEB] Generate calibrations from circuits (#3834) 94724fa5 Task, design discussion, project health issue templates (#3839) d7bd940b Airspeed Velocity (asv) performance benchmarks setup: part-1 (#3822) f2bf60f3 Expose new calibration methods (#3830) aa2af6f2 Fixes for older envs (#3836) a938495c Fix measurementkeys_ in repeated CircuitOperation and update the separator (#3823) 9ab0f6d0 [XEB] Optimize/characterize by pair (#3795) e3c673fa Ensure only measured subcircuits cause full simulator sweeps (#3827) f9a82f18 Move google noisemodel to cirq.google (#3824) c0600fb4 Add option to do per-operation compensation (#3812) 31f44ec0 Add preparefloquetcharacterizationforoperations function (#3813) 31c3728e [Docs] Move Floquet calibration docs to tutorials/google (#3826) 38a6c983 Allow quantum engine timeslots to handle missing start/end values (#3796) 7b2abd80 Improve type safety with generics on simulators (#3818) e46f62eb Don't serialize GridQubit hash when pickling (#3791) 6ea7c76f Add Floquet calibration docs (#3765) a616ae87 Add Circuit.tetrisconcat and FrozenCircuit.tetrisconcat (#3805) 6bad7bfe Adding two options for the MPS simulator: maxbond and method (#3793) 6aa46d7c adding standard header to characterization notebooks (#3817) a276f9fe Improve naming and docstrings of characterization methods (#3810) 98d950a9 pylint print version + verbose mode (#3811) 3f965a4b Fix Result constructing a pandas dataframe to compute repetitions (#3801) 0677d608 Enforce unique serialization keys (#3673) 1e9323c3 Revert "Drop python 3.6 support" (#3798) 2959dcc0 Add frommoment to PhasedFSimCalibrationRequest (#3720) 1590ff13 [XEB] Split into three files (#3794) bbf6245e Notebooks guide (#3781) e8697ded [XEB] Support parallel execution (#3760) bc108f94 Add key/value type annotations to cirq.PauliString.items() (#3790) 2e5c45bc Remove cirq.google references from circuittest and circuitdagtest (#3738) 2c904da8 Add support for WaitGate and inverse of sqrt(iSWAP) to characterization and compilation (#3750) 18e11b38 Add the ability to do hybrid MPS/dense/inbetween simulations by having qubit grouping (#3735) e8824756 Fix DepolarizingChannel.circuitdiagraminfo_ assuming it is a single qubit gate (#3780) 942b2c9b Modular JSON serialization protocol (#3539) 64af70f3 adding wojtek to the codeowners in cirq.experiments (#3776) ca65d5de Updated, Multi-Stage Dockerfile (#3553) 2aa20b3d Add ISWAP and its inverse to FSIMGATESET (#3743) 387ad42d Add and use QuantumState class (#3419) 3882d593 Accept qubit maps in transformqubits (#3727) 7088690f refactor: move relative luminance (#3757) 90bf207e [XEB] Faster and more extensible simulation (#3753) e9b802ae removing cirq.google references from random circuit generation (#3764) 1958f2e1 Revert "Updated secretmanager ref to v1 (#3762)" (#3770) 1e49f88a Rename calibration methods (#3752) f08b3444 Avoid runsweepsample when subcircuits exist (#3745) d57fa67b Updated secretmanager ref to v1 (#3762) 451b2f16 Repetition IDs for CircuitOperation (#3741) d14eb7c5 Notebook tests against both released Cirq and PRs (#3751) c24e2b9a [XEB] Optimize two qubit circuits (#3739) a163a39b Backwards-compatibility behavior for resolveparameters. (#3719) abfa2af0 Add ability to overwrite characterized parameters with a fixed value (#3746) 0f87bb3d Remove unused imports (#3747) d4a18746 Add functionality that compensate (calibrate out) for a single-qubit phases of the circuit's PhasedFSimGates (#3731) bbaacd35 update the zenodo metadata + removing confusing bibtex (#3742) 5571b76d Update build status badge (#3744) 03f3a2f5 Add guide on operators and observables (#3654) 1ed3176e Cross Entropy Benchmarking sample and simulate two qubits (#3706) 4f9eb60c Add ability to construct service via environment variables (#3707) 65b86386 import os before using os (#3733) 2a121ecd Fix a bug in Depol channel with multi qubits (#3715) c626db04 Add PhasedFSimEngineSimulator which allows to simulate calibration requests and unitary shifts of the PhasedFSimGate (#3725) 7eb27cfb make three qubit decomposition tests scipy version dependent (#3726) d8598dcd Support even powers of SWAP gate in CliffordSimulator (#3661) 3c566d27 Support gzip serialization (#3662) 97e9a915 Sync _hasstabilizereffect implementations and use that for Clifford checks (#3656) fa9d941d Fix: tutorial index headings do not match tutorial content page (#3724) b0023c24 Add utilities that allow to characterize circuits using Floquet calibration (#3711) c52e52f5 MPS simulator can handle any topology (still required to have 1- or 2-qubit gates) (#3670) 239936db only test notebooks that are checked into git (#3713) 18c97b3f Fix bug of in IonQ result conversion (#3710) ed07465b SimulatesExpectationValues (#3698) 6036851f Remove unused imports that were triggering pylint failures (#3718) 141f9571 Add IonQ API device (#3665) 373f1546 Add more test for heatmap colorbar (#3689) 2f9864b0 Cross entropy benchmarking spruce up (#3669) 32a806ee Add a convenience interface that allows to issue Floquet calibration requests on cirq.google.Engine (#3690) c5c2d954 Proposed fix for #3529 (Functionality decoupling for stratcommutes… (#3548) 1e849cb5 Add hash values to tags in cirq.google (#3701) 59cd7be2 Pin codeowners to 0.1.2 (#3703) fbafbd5a Add tags to MeasureInfo (#3694) 680ae219 Add Circuit.areanymatchesterminal() (#3697) 1ec80807 Observable Measurement - 3.5 - Readout Correction (#3649) 014514c3 Copy instead of assign input state for ProductState multiplication (#3692) e9c09d35 Add PhasedFSimCharacterization container that describes cirq.PhasedFSimGate unitary angles (#3646) 057382cf Remove extraneous copies in StabilizerStateChForm JSON parsing (#3680) 187cc238 Remove CliffordTableau from CliffordState (#3645) df12015f Add align-left and align-right optimizers (#3643) dd966902 Wrap input jsondict entries in np.array to avoid wrong type deduction (#3679) dae89114 Simplify recursive sweepable cast (#3644) 3a882342 Fix for issue #1622: Some QASM annotations missing (#3637) 71cdf331 Fix assumption about order in MPSSimulator (#3671) 5fa8a3b3 Push redundant simulator iterator code into base classes (#3650) 989abada An MPS (approximate) simulator (#3630) 2a9fff78 Copy states in Clifford simulator (#3664) e6a89fb0 Fix TaggedOperation not delegating _acton_ to its suboperation (#3660) 1a9ee180 Fix SWAP and ResetChannel not working with CliffordSimulator (#3659) 6dfa6280 Add qasm output support to ResetChannel (#3657) 1fbcd9a8 Validate that CircuitOperation is provided a FrozenCircuit (#3653) bd3d95a2 Update chemistry tutorial docs for OpenFermion 1.0 (#3635) ae9c7bdf Fix quantum volume notebooks (#3604) 9bad962c Perform CliffordState measurements via method dispatch (#3503) 47cfc790 Observable Measurement - 3 - Data (#3374) 19497154 Add sampler to IonQ Service (#3607) 0ff2894e add JSON serialization to ParallelGateOperation (#3632) bd8801c9 docs: fix simple typo, sigificant -> significant (#3631) 2188c07e Add transformqubits/neg/pos to MutablePauliString (#3629) f98ece88 Avoid going through CliffordSimulator to test StabilizerStateChForm (#3628) 0b58a1a4 Add measurement support to ActOnStabilizerChFormArgs and use it in MeasurementGate (#3610) 888d535c temporary fix for chemistry notebook (#3626) a70cb529 Three qubit decomposition (#2873) 2d647f70 CircuitOperation (#3580) 4b08f85d Add list calibrations to IonQ service (#3606) e20099e6 Remove repetition number in calibration calls (#3615) 9edf75a7 Add concise serialization tools. (#3601) 56160e4b Measure using StabilizerStateChForm (#3564) 2e211332 Update tutorial links on readme (#3609) 06a2bd72 Circuits can now be multiplied by numpy ints (#3590) 905083cf Directly use Clifford tableaux for direct fidelity estimation (#3571) dd332325 Refactor cirq.Moment to support efficiently finding operations by qubit (#3592) 70b08f06 Update noise docs (#3598) 5369b9ba Add list jobs to IonQ service (#3602) 7fabf03b Make string for powered gates consistent (#3521) b31d2d81 Add run method to IonQ service (#3600) 3440836a Format links in simulation docs (#3596) 7dad8359 Remove unused dependency (#3595) 4f24415c Add get current calibration to IonQ service (#3570) baddb11a Serialize measurement keys through IonQ metadata (#3562) 9885e432 Remove stale rtddocs/docscoveragetest.py references from check/* scripts (#3593) 4c98d376 Retire ReadTheDocs (#3587) a0ee113f Docs: update notebook buttons (#3591) 8f9d8597 Add module docstrings and fix formatting (#3589) 3a095e98 JSON Serialization for CalibrationResult and CalibrationLayer (#3540) 86661594 [docs] Fixes in install.md, rabi tutorial, variational algo and reservations tutorial (#3585) ae6509b4 Remove bad delete char from docstring (#3583) 0701327b Polish noise docs (#3569) 1409d686 Fixes indentations on development.md (#3579) b4e958ef [docs] small formatting errors (#3578) 9d7ba9c0 Fix formatter on deleted or moved files (#3576) a4740353 Avoid triggering KeyError to check key presence in dicts (#3568) 09bb8ebc ParamResolver composition. (#3538) e99fe921 Drop python 3.6 support (#3574) 2219adec Switching to pre-releases instead of cirq-unstable (#3527) ed37d2f8 Provide one-step and recursive parameter resolution (#3546) 0276ea0c Allow strings as targets of metrics in Calibration objects. (#3536) cdfa4bcd Remove print debugs from tests (#3563) d6c6f9b1 [doc] Fix a newline in the Google Getting started tutorial. (#3558) 150f5c37 Adds alfrisch to AQT codeowners (#3557) 28764bef Fix adjacent string literals (#3559) fda14a5f Remove todos from protocols documentation (#3485) 226d52f5 Update requirements.txt (#3551) 556dcda7 Docs nits (#3545) a61e51b5 Format 2496fc9a Switch to black for formatting 1bd083a8 [doc] remove CircuitDag methods from API doc that are inherited from networkx (#3531) 5b99b856 [3 qubit decomposition] Extract diagonal (#3472) ff36e02a Reorganize tutorials landing page (#3522) c429a027 Canonicalize theta and phi for the FSimGate (#3543) d6005ff0 Fix WAITGATESERIALIZER to work with multi-qubit waits (#3537) 47d34182 Refactor how we generate default json resolver (#3532) 92e928e5 Fix type error in (X/Y)PowGate.acton (#3533) c5b58f8e Tweak formatting to prepare for switching to black (#3534) baef78da Tweak coverage to prepare for switching to black (#3535) 16a906d5 Complete serializer for IonQ gates (#3520) cf556d35 Add command to track upstream repo. (#3530) c425c8a1 Add JSON serialization for Calibration metrics (#3508) 0693f797 Fix symmetry of PhasedFSimGate under qubit exchange (#3524) 69cc1b89 Implement cirq.commute for Moment and Operation (#3519) 0de53fb0 aqt, pasqal, ionq owners (#3526) e6de69cd codeowners file (#3525) ed5cbffa Add cancel and delete to IonQ job (#3523) 8a828258 Fixes runbatch requiring param list (#3507) 8cc0befa Add PhasedFSimGate (#3505) 269af717 Make WaitGate variadic and add wait helper function (#3514) cdb62eba Generalize types for basic qubit experiments (#3513) 8e884b8f Update/polish neutral atom device tutorial. (#3491) 1f638b3f Update/polish QAOA educators tutorial. (#3486) 7cd4cc15 Adding missing ecosystem nav (#3510) 956845e8 New landing page for tutorials (#3506) 7d737500 Initial IonQ service (#3500) 00f29904 Fixes transform.ipynb and adds notebook testing (#3497) b12ddf3c Add measurement key remapping protocol. (#3495) 0c2ee9f3 update code of conduct steward (#3496) 359a1023 Add initial Engine client for Calibration API (#3474) 8bf262e9 Make dtype optional in state validation routines (#3428) 4d15fd7c Remove "python" symbolic link (#3489) 979025bd moving freezegun dependency to dev dependencies (#3487) f9588f5b Change initial backoff in engine client. (#3488) 58f139a0 Fix notebook authentication (#3484) debc6fb5 AbstractCircuits and FrozenCircuits (#3481) 512d2568 Modify EngineProgram.getcircuit() to work with BatchPrograms (#3483) e937268a Update/polish textbook algorithms tutorial from educators workshop (#3476) 4fc8a851 Add serialization of tokens (#3480) fcabf198 Fix a typo in basics.ipynb (#3482) 0c36d621 Fix iterator name in channel docstrings (#3477) 51000046 Reorder const methods in Circuit (#3478) 03155955 Update and polish educators workshop intro notebook (#3473) 28048eee Delete docs index.yaml file. (#3470) 825adc4b Restructure tutorials into beginner, intermediate, and advanced sections (#3469) a913530b Fix typo in custom gates guide (#3468) ae3de3ff fix educators links in book.yaml (#3465) 3045bd06 Pasqal access file (#3466) d8c07aa5 Update basics.ipynb (#3467) 862ba0a0 Add educators workshop heading and contents (#3464) 4a3274c1 Move to method dispatch using acton for CliffordState, Tableau and ChForm (#3456) 4676aa9b placeholder for protocols docs (#3461) be9d1473 Qubits docs (#3463) 78222c2c adds circuit transformations page (#3462) ce4ff472 mention hardware/simulation options in Devices page (#3455) c4c8f29d Add ion device tutorial. (#3450) d000355f Fix equation rendering in custom gates guide (#3460) a9b1549a Polish QAOA tutorial (#3457) 690f0eed First steps docs (#3449) 98ce452d Fix Tableau acton for GlobalPhaseOp (#3458) 1f27aa2d Document Cirq ecosystem (#3446) a7810c84 Make argsfromproto public (#3453) 37196ab9 Adds guide on custom gates. (#3442) 699bd641 Fix StabilizerStateChForm omega data type (#3451) 786822bc Change measurementkeys protocol to return AbstractSetstr c04dd6e2 Add acton_ for StabilizerStateChForm to GlobalPhaseOp (#3448) e4c191d5 Support ActOnStabilizerCHFormArgs in the common gates and testing (#3203) e1754ecb Replace Study with sweep in docs (#3439) 5253f54e Document private protocol methods for devsite (#3440) 70aad196 Standardize notebook pip installs (#3431) 47189e59 fix some cirq.google missing coverage issues (#3434) a9040d62 Fix typos in quantum computing service start guide (#3436) be5fb906 Docs nav fixes (#3437) cfce4490 Fix engine processor test (#3435) 382db24b Address doc-cleanup items (#3432) 6a151afc Observable Measurement - 2 - Grouping (#3372) 7a41a70d Removing Quantum chess tutorial from cirq (#3430) 4a278469 fix AQT access & authentication nav (#3424) 73ce7ad7 Dedup noise doc (#3426) 87bb1d4e Update README.rst (#3425) d787f5a2 AQT doc devices and getting started tutorial (#3420) ae6172f0 Fix all latex expressions without enclosing $ signs (#3407) 94984893 Observable Measurement - 1 - Settings (#3371) 9811ce80 Add CalibrationTag (#3423) 3d5c323c Add access and authentication page for Google doc (#3422) 36aa4958 New left nav for devsite (#3416) 784cbfcd Adding citation doc for devsite (#3418) 657188a6 Verify that Cliffords fix Pauli group (#3417) 96abdcd7 Add Moment.totextdiagram (#3403) a07b0d20 Update single-qubit cliffords to fix XZ decomposition. (#3414) f3948921 Add SerializableGateSet.issupported (#3410) ca307cd7 Add optional arguments to calibration API (#3395) 50d9be88 fix readme (#3405) 6ddbfd94 strip license info for RTD pages (#3404) ffc5352c Remove unnecessary conditional (#3401) 0b610391 adds zenodo config (#3392) 3468b27e fix protobuf serialization test issue (#3400) 415babee Fix freezegun related issues (#3399) cfa2f101 fixing stale issue action (#3396) 497c19fb Docs frontmatter and some cleanup (#3393) a2942236 Add mock to envconfig_test (#3398) c15990f8 Adds the stale issue Github Actions workflow (#3389) b8e8d2f1 upgrade to pylint 2.6 (#3387) 13375da8 Fix duration documentation for Physical Z (#3385) 72c1a543 remove accidental print (#3383) 7c8c959e Fix TrialResult deprecation (#3381) 3e86ad63 Bump cirq version to 0.10.0 (#3379)

- Python
Published by tanujkhattar almost 5 years ago

cirq - Cirq v0.9.1

This point release fixes the deprecation of cirq.TrialResult to cirq.Result in a backward compatible way with regards to the JSON parsing as well. There are no changes in any other user-facing functionality.

No other changes to cirq functionality. No protocol changes, top-level changes or other changes.

Complete list of changes:

804c3381 Merge branch 'v0.9.1-dev' of github.com:quantumlib/Cirq into v0.9.1-dev d58423a3 remove accidental print (#3384) a7790f22 remove accidental print a95a2e35 Fix TrialResult deprecation (#3381) (#3382) 785ffafd Bump cirq version to 0.9.1

- Python
Published by balopat over 5 years ago

cirq - Cirq v0.9.0

Major usability changes:

  • Batching support in Google's Quantum Engine API as well as in Samplers in general
  • Faster parameter resolution for a wider set of types
  • You can now use cirq.parameter_names, cirq.parameter_symbols to extract parameter names from your circuit
  • Default values for Arg serializers are being introduced in two steps: first the deserializer (#3280), later the serializer will be introduced
  • Extensive documentation on Pasqal
  • Extensive documentation on Google's Quantum Computing Service
  • Google Quantum Engine can list jobs and programs
  • Python 3.7 and 3.8 are now continuously tested and dependency issues are resolved
  • Experimental support for Quimb Tensor Network Simulators (#3129)
  • We removed wavefunction, wave_function, or state - now, state_vector is consistently used instead

Breaking changes: - cirq.approx_eq now raises an AttributeError if the symbolic evaluation can't unambiguously decide the equality, before it returned False #3195 - cirq.google.Engine methods run, run_sweep and create_program now raise ValueError if gate_set is not specified #3138 - cirq.google.Engine constructor signature change: context is now last to signal that direct usage isn't recommended #3151 - cirq.google.is_native_xmon_gate, cirq.google.is_native_xmon_op, cirq.google.pack_results, cirq.google.unpack_results are now removed, they are still accessible but through the deprecated cirq.google.api.v1.programs module #3204 - circuit + gate behavior changed, it won't create an extra moment, instead packs the new gate efficiently #3364

New protocols: - cirq.acton - cirq.pauliexpansion

New top level objects:

Top level objects that are marked as deprecated and will be removed in coming releases:

  • cirq.QFT
  • cirq.final_wavefunction
  • cirq.hasmixturechannel
  • cirq.mixture_channel
  • cirq.subwavefunction
  • cirq.validatenormalizedstate
  • cirq.wavefunctionpartialtraceasmixture
  • cirq.SimulatesIntermediateWaveFunction
  • cirq.TrialResult
  • cirq.WaveFunctionSimulatorState
  • cirq.WaveFunctionStepResult
  • cirq.WaveFunctionTrialResult
  • cirq.google.enginefromenvironment

A Huge Thank You to all our contributors for this release:

  • AJ Hanus
  • Abhik Banerjee
  • Adam Zalcman
  • Alexis Shaw
  • Animesh Sinha
  • Billy Lamberta
  • Bálint Pató
  • Craig Gidney
  • Dave Bacon
  • David Yonge-Mallo
  • Dmytro Fedoriaka
  • Doug Strain
  • Henrique Silvério
  • Kevin J. Sung
  • KevinVillela
  • Mark Daoust
  • Matteo Pompili
  • Matthew Harrigan
  • Matthew Neeley
  • MichaelBroughton
  • Oliver O'Brien
  • Orion Martin
  • Peter Karalekas
  • Ryan LaRose
  • Samarth Vadia
  • Seb Grijalva
  • Shadab Hussain
  • Shaswata Das
  • Tanuj Khattar
  • Tony Bruguier
  • Yash Katariya
  • Yusheng Zhao
  • Zachary Crockett
  • crystalzhaizhai
  • karlunho
  • smitsanghavi
  • tonybruguier-google
  • yourball

Full change list:

65abd007 releasing v0.9.0 2c0c4817 Fix quimb version checking (#3378) ddb40716 Fix np.pad issue in numpy 1.16 (#3377) 67444ea2 Fixing sympy imports (#3376) 8d5a3af0 Improve GridQubit dictionary lookup performance 3x (#3375) 88026853 Un-invert B gate (#3373) 5029af4e Do not perform extra optimizations in "via B" decomposition (#3370) 0d961ad3 Python 3.8 support (#3365) 0bb9239d Change names of focused calibration protos for consistency. (#3369) be1d024a Greedy router (#3360) 46f8df7d Extending types for symbol resolution fast pass-through (#3366) fa80d4ca Add extensions to document public constants (#3367) e852d58d Add cirq.StabilizerSampler (#3355) b65e0b4e Adjust Circuit.__add__ behavior to match Circuit.__iadd__ (#3364) 83c1f234 Docs for listing jobs and programs (#3362) fb164bb0 Adds cirq.numcnotsrequired and cirq.tospecial (#2892) bba01532 Execute TODO to have the prob mass auto added (#3363) fa995853 Add symmetric depol (#3361) 730cc242 Adding default values to op serializers and deserializers (#3280) fa433c39 s|TrialResult|Result (#3344) 43aed78e ignore q in gridqubit ids (#3357) e0a078af Fix NumPy 0.19 related issues (#3358) 89d33836 feat(cirq): Add greedy implementation of aligning 1-qubit, and 2-qubit gates optimizer (#2869) 37f5cb20 Generalize asymmetric depolarization channel to multiple qubits (#3262) 8a69e8e7 Make PauliString's key type generic (#3325) 4406b2db Various updates to automerge script deployment (#3334) 9bb96d2d adds pasqal pages to devsite (#3352) b73a53b7 adding 3.7 to the tests (#3348) 7c63a42d Added Moment operation at (#3339) 4298a97f Refactor toresolvers to use tosweeps (#3343) 77eed438 added NamedQid and GridQid to the qudit concept page (#3338) 64939e53 Explaining Engine API access (#3337) 01058084 Add methods for converting dict to product or zip sweep and deprecate implicit cartesian product (#3333) b5a42690 pygment 2.6.1 to fix readthedocs (#3336) 85114262 Moving style.md to the developer documentation (#3335) 896c03ad Add ActOnStabilizerCHFormArgs (#3326) d95682b8 Implement cphase (#3332) c2c7d609 Automerge bot on GCP (#3317) 1a3c53cc Fix link to RFC process in CONTRIBUTING.md (#3331) 11933d1a Improve parameter-related types and documentation (#3330) 946665d1 Change _book.yaml to point to /reference/python (#3328) 50eba00d Add TensorProductState, a state-vector-like object (#3171) b0f42a1e List Engine jobs (#3322) a0247877 Update book for api gen changes (cl/331666270) (#3321) dd3df775 Change MutablePauliString from private to public (#3299) bfedcbca List programs (#3320) 0f29faeb cleanup engine docstrings (#3319) c53ef33e Improve initialstate handling for CliffordTableau and StabilizerStateChForm (#3309) 20df07e7 Add cirq.QubitPermutationGate (#3298) 054fa07e Add CPMG to T2 experiment (#3255) e2f1ec54 Add docs for batchedresult (#3314) 01ae4726 Implement speckle purity benchmarking as part of grid XEB (#3291) a98808a6 Add runbatch to Sampler and QuantumEngineSampler (#3265) 09dc1782 moving cirq-unstable publishing to Github Actions (#3311) c652c88c Update gates.ipynb (#3312) 6b1422a4 Add parameternames and parametersymbols protocols. (#3273) ae590932 Adjust docs for Getting started guide (#3307) f0666bfa Adding documentation on Request for proposals (#3097) dca2cb4e Fix a bug in validating computational basis limits (#3306) 55502f1a Split right multiplication into separate methods in StabilizerStateCHForm (#3259) ecd53266 Add batchedresults() to retrieve BatchResult (#3303) 61321290 Add Moment.withoperations and use in Circuit.batchinsertinto (#3282) 60b4ad30 Fix command-line engine start up guide (#3304) e61e277a Add information on downloading historical results (#3300) a97479e9 Add a few extra links to documentation (#3301) 0c17bc95 Add information about batching restrictions (#3296) 0fc057a8 Update documentation on bellinequality.py example (#3281) e04187cd Quantum Engine documentation (#3283) 1a41835c Add more information about gates and best practices (#3287) a62ed8be removing readthedocs.io references (#3294) 65876a9b fix hanging docs build + bad cleanup logic (#3284) 1699cb33 Minimum required version of quimb. (#3272) 431d986b Add SupportsPauliExpansion (#3270) 39e6fb8a docstrings for type aliases in devsite API docs (#3275) 749468b0 Update book/index (#3268) 52a2c499 Give mypy a hint (#3271) 898a1ff9 Add allowdecompose flag on haschannel (#3249) 77d01700 Fix copyright notes: Google LLC -> The Cirq Developers (#3264) 40413621 Added qid version of Named Qubit (#3187) e0fbadcd [automerge/cirqbot] paging for PR events (#3251) dbf0bcf1 Calibration proto fixes (#3261) b38b8d16 Add shortcut for getenginecalibration (#3258) df755d9f Use numqubits protocol in ActOnCliffordTableauArgs (#3260) 3a08c52d Add protos for Focused Calibration (#3222) 2a4222e0 Fix documentation of [Engine, EngineProgram].runbatch (#3254) ac21df5f Fixing a bunch of typos (#3252) 826db476 [qpolish] dev-site & readthedocs hybrid (#3227) 140fb95b Add pow function to argfunclang (#3218) a77bec69 Feature request template (#3236) b9c47029 Upgrade to sphinx 3.2.* and fix warnings (#3247) 1e2c30e4 Add getenginedevice shortcut (#3225) 3e008964 A example of Qec using Shor's Code (#2922) 656e3887 Escape special characters in Jupyter circuit diagram (#3221) 29e6c524 Add JsonResolver mypy type for custom json resolvers (#3223) aff27b8b Add Moment.sub_ and generalize Moment.add (#3216) 72c2a9ff Minor Correction to Dev Docs. (#3217) d244bf71 Disable cirq v1 api docs (#3215) 1aabcb7d Add initial support for converting Quil programs into Cirq circuits (#3211) 193c35d3 Add jupyter-compatible repr for SerializableDevice (#3207) b878d061 Add missing factor of pi to parameterized Quil gate output (#3206) 0caaeb59 Remove cirq v1 programs from namespace (#3204) 9de43905 Rewrite sympy in 20 lines (#3205) 059006d9 Qc render fix (#3186) 4bab2d2f Approximately equal circuits with symbols not detected by cirq.approxeq (#3195) 3c7fc5da Document matrices for parity gates (#3199) 4e9681fa Fix docs build (#3201) 143ac083 Quimb Tensor Network Simulators (#3129) 4539bb9c Adding Pasqal documentation (#3193) 335aba84 Cosmetics: e.g. vs i.e. (#3191) d8486111 [Pasqal updates] Adding PasqalVirtualDevice (#3181) cf272309 Fix signs of rotation gates in gate tutorial (#3180) b21baea2 [Pasqal updates] Updated gate set (#3160) 4f30b573 Fixed Issue #3178 (#3179) f3acfbdd Adding a DFE Jupyter notebook (#2932) c5584c08 adding rstcheck for rst files (#3177) 2bc99732 Fix readme section headers (#3176) 53fe161b fixing broken deprecation namings (#3174) d16f3a16 Preserve (and resolve) tags when resolving TaggedOperation (#3172) 3577ea2e Add Hidden Shift Algorithm example (#3052) a7a8689b cirq-dev and other updates to README.rst (#3167) 75e5f749 Unit test for Clifford check skipping multi-qubit unitaries (#3168) 7bf16e1b Use device instead of gateset validation in ZerosSampler (#3142) 6f24531b Test the right order finder (#3166) 7a4ccaf2 Skip unitary in Clifford check (#3165) 09529581 Remove q from calibrations.py (#3163) 74c0aa82 Add getengine and deprecate enginefromenvironment (#3151) 3076bbad [Pasqal updates] Removing ThreeDGridQubit (#3161) a7b13170 Adding Quantum Chess tutorial (#3162) a16824f7 CI check for uncommitted generated proto files (#3159) 4bf14c18 Fix calibration metric names in docs (#3155) 65f2b16e fix bug in deprecated collapsewavefunction (#3156) ea20a181 Adding documentation about big endian values (#3146) d1b374ca checkout@v1 to v2 (#3158) 4f20b008 [Pasqal updates] PasqalDevice class generalization (#3141) 4abff182 Propose a bug report issue (#3119) ee35ee98 Remove ProtoVersion.V1 from Engine (#3147) 88779d48 Create doubleval in oneof for program (#3140) 8ad51869 getenginesampler (#2767) 8ccca1bd Modify PointOptimizer to handle multiple modified gates acting on the same qubit in a moment (#3016) 12a2a9a8 std dev on fidelity (#2977) 8afb02c4 Add ZerosSampler (#2912) b3728aaf release process nits (#3137) 72808f36 [Pasqal updates] New qubit classes (#3133) 8071b0cb Remove XMON as engine default (#3138) 12492761 Add docs for circuit batching (#3134) fb9fbac0 Add ActOnCliffordTableauArgs. Support it in acton_ for common gates and measurements. (#3063) adc89646 Bump protobuf requirement to 3.12.x (#3132) c869e0e5 Support adding numpy arrays to GridQubits (#3131) 190e842b Add getitem to EngineJob (#3128) 1a6c6f6a Add grid parallel two-qubit XEB (#2834) 62ef7f7a Fix some test incompatibilities with latest numpy (#3107) b21294ba Add batch support to cirq Engine client (#3114) df52d1c6 Add KakDecomposition.decompose by fixing factor of 2 error in exp(PauliString) (#3125) 4e444468 Add MeasurementGate.withkey to change measurement key (#3123) b37f2260 Improve docstrings for controlled common gate overrides (#3117) 76472fdb Add a code of conduct (#3118) a06be715 Defensively copy state vector in simulator (#3115) a610aab5 Only override control when global phase is zero (#3113) 5934b5a0 Defensively copy density matrices in simulator (#3109) bbd8a2d7 Change Operation.withqubits return type to match self type (#3112) 7cfef7ac Preserve external simulator recommendations. (#3108) f3fec914 Expose methods in contrib.noisemodels (#3102) a69b82f0 Reduce numpy version d75467de Implement unitary protocol for linear combinations (#3096) b0a4599a Fix splitintounitarythengeneral not spreading blocks across operation (#3095) 037afff4 Fix cirq.Simulator assuming a reset is safe to cache before sampling (#3093) b0b398e0 Add _circuitdiagraminfo to cirq.PauliString (#3094) 7f0bb626 Api builds (#3090) c866d236 Fix Quirk import extra gates bug d3ce7cc4 Fix flakes in randomcircuittest (#3084) 2b5e1766 Add generated code for batch.proto (#3086) f55090a1 Support multi-qubit measurement in plotstatehistogram (#3054) 20fb7175 [SVG] Noise hack and font fix (#3076) e1e00384 Make LinearDict json serializable (#3072) c69af97e Fix build-doc github action failure (#3082) 8cc7d93e Add Circuit.zip method (#3075) 2b8b0851 Fix IdentityGate.oneach failing when given a qubit that is iterable (#3036) 03a7dc82 Disentangle MS gate and XXPowGate. (#3015) d998b3af Add Batched requests to Google's cirq messages (#3064) 4860f5c1 Add missing methods to cirq namespace (#3070) 369ed548 Use FromString classmethod for protos (#3066) d9c02211 Add .gitattributes file to hide proto generated code in PRs (#3065) 7191cb57 Adds pylint on only changed files. (#3038) 008eab47 Fix VirtualTag (#3051) caab356e Fix methods missing from doc strings (#3048) eb4ad794 Add a docstring to testing default gate domain constant (#3047) fd625307 Fix empty gate domain problem in randomcircuit (#3037) b45b7ef4 Heed deprecation notice for hasmixturechannel (#3040) e301b404 Add support for monte carlo channel simulation (quantum trajectories) (#3043) 79d83e04 Add mixture support to Controlled{Operation,Gate} (#3042) 0068c4ea Deprecate QFT to qft (#3039) 9f0b49b5 Add increment proto build and use in CI (#3012) 804c8e56 Deprecate mixturechannel in favor of just mixture (#3026) 28962e6d Updates randomcircuit for single qubit circuits (#3029) 127fdae8 Fix Gate.oneach failing when a Qid class has an _iter__ method (#3030) e9ac2ba2 Deprecation: Statevector not wavefunction, wavefunction, or state. (#3022) e697284a Add with_probability modifier to Gate and Operation (#3024) a344fb71 Add acton protocol (#3019) 77efcbc5 Add support for PhasedXZ in EjectZ optimizer (#2951) 36314604 Fix local lint warnings in textdiagramdrawer.py (#3025) f48e0c61 ContextManager for testing logs (#3009) 5c76c2c3 Generalize `measurementkeytomeasurementkeys` protocol (#2944) 70dc5eff No longer need to install asteroid in CI 505ee1f6 Bump pytest-asyncio version to remove warning (#3014) 93ecd240 [SVG Circuits] Give up gracefully on gates with big labels (#3007) 5d6b8bc1 Fix an equation which does not display correctly in nbsphinx. (#3008) 1d21e960 Fixes obvious typo (#3005) e907109a Update contributing markdown links 6d72b981 Fix some documentation for engine 3d645b7e Enable serialization of non-GridQubits. (#2966) 6bdcb1c8 Initial T2 experiment (#2725) c7a8c190 Add the release procedure to the markdown file in cirq (#2992) 17e27e6e Add timeout to engine object (#2996) 8e30cf68 Add tests for module wrapping in _compat 047421d9 set _dict__ when wrapping module e5af689f Fix PauliString exponentiation (#2989) f532a862 Harden arg function serialization 03a91feb Enforce argument types in engine client a98041d0 First iteration of the outputting to Quil. (#2903) 4a0ded7c Add TwoQubitDiagonalGate (#2891) f0be329e Doctest fix. (#2987) 32c769ff Make circuit rendering of swap-like gates consistent (#2945) 502a5f34 Decompose cphase to two fSim gates (#2955) 6aa0a025 Update protobuf version 720ea341 Pipe seed into quantum teleportation example 2899c1f5 Update asteroid version (#2976) 78fc4c22 Cleanup TODOs and corresponding Github issues 0915ac20 Fix Problem with Y gates in Clifford Simulator (#2960) 8e980fd0 Bump version of master to 0.9.0.dev

- Python
Published by balopat over 5 years ago

cirq - Cirq v0.8.2

This point release fixes a dependency conflict with protobuf.

No other changes to cirq functionality. No protocol changes, top-level changes or other changes.

Complete list of changes:

1b05c0ec Bump protobuf requirement to 3.12.x (#3132) 503bf5a5 Set version to v0.8.2 on release branch

- Python
Published by balopat over 5 years ago

cirq - Cirq v0.8.1

This point release fixes method signatures in documentation and does not change any user-facing functionality.

No other changes to cirq functionality. No protocol changes, top-level changes or other changes.

Complete list of changes:

6dd74847 Fix methods missing from doc strings (#3048) 0567d33d Change version to 0.8.1.dev on 0.8.1 release branch 3fded886 Remove dev version on release branch

- Python
Published by dstrain115 over 5 years ago

cirq - Cirq v0.8.0

Major usability changes:

  • Reorganize and improve documentation and examples
  • Standardize CXPowGate, CCXPowGate, CNotPowGate, CCNotPowGate
  • Add and improve Clifford Simulator
  • Operations can now be "tagged" to support custom functionality.
  • Additional compilation methods added to optimizers
  • New noise models based on calibration metrics
  • Random quantum circuits to experiments
  • Moved measures and states to new qis sub-package
  • Added Pasqal API integration
  • Updates for Google API integration

New protocols:

  • SupportsCommutes (polish of cirq.definitely_commutes)

New top level objects:

  • cirq.pasqal sub-package
  • cirq.qis sub-package

  • cirq.CIRCUIT_LIKE

  • cirq.CXPowGate

  • cirq.decomposemulticontrolled_x

  • cirq.decomposemulticontrolled_rotation

  • cirq.finaldensitymatrix

  • cirq.GridQid

  • cirq.is_normal

  • cirq.jsonserializabledataclass

  • cirq.mergesinglequbitgatesinto_phxz

  • cirq.RANDOMSTATEORSEEDLIKE

  • cirq.singlequbitmatrixtophxz

  • cirq.stratified_circuit

Full change list:

a759e41b Add getdevice for engineprocessor (#2954) f907314f Update xmon gate times (#2952) d2d3356d Accept empty list of whitelistedusers when updating reservations. (#2950) b67ef87b Add Example: Simon's Algorithm (#2649) 33194ad3 Create qis subpackage and move some existing code to qis.states and qis.measures (#2808) e9b881ae Speed up clifford simulator by short circuiting on known gates (#2919) 71df1703 Fix time bugs in EngineProcessor.getschedule (#2878) 4e86982c Remove deprecated methods and improve reprs (#2717) b4c40667 Ensure exponent in eigen gate is real. (#2881) a3af71f4 Add assert_specifies_has_unitary_if_unitary to consistency tests (#1759) d147dda8 Add allmeasurementkeys method to circuit (#2868) 675e4f0f Rename RANDOMSTATELIKE to RANDOMSTATEORSEEDLIKE and expose at top level (#2942) e34f8d14 Add shell:bash to run bash script on Windows. (#2943) f2631ac8 Add more type annotations and f-strings (#2937) 46327bdd Check 2x2 unitary in hasstabilizereffect (#2938) 06f34f87 Allow creating device proto for specified qubits and pairs (#2934) e08f94a7 Some more type annotations and format strings (#2935) 10fc655e Make fromjsondict return global Pauli instance so they commute(#2911) 9208613a Remove exponent parameter from Pauli{X,Y,Z} (#2924) 0b050f7f Move studies to Tutorials (#2931) 23ce11c1 DFE with exhaustive sampling for exhaustive Clifford Pauli strings (#2918) d0ec8917 Fix pytest for mac by replacing grep with perl (#2930) aa2a40ac Update noise model to new metrics. (#2927) 9208cb3b Fix indentation on markdown (#2929) 67cd74bf Add JSON serialization for CliffordState and CliffordTableau (#2894) 3bd420ea Add JSON Serialization for GateTabulation. (#2883) 97701b18 More type annotations and format strings (#2914) 86bf42af Add notebook on Hidden Linear Function Problem (#2857) 7ec9e6f7 Loosen tolerance restrictions in Quantum Engine (#2921) beaa782f DRY radian formatting (#2907) 3132f970 Actually test zip sweep with duplicate keys (#2913) 68bf2994 Replace Travis with Github workflow except for script that performs devbuilds (#2859) 4c0cb2c9 Remove explicit object superclass (#2910) 110dd4a3 Add interop docs and optimizers (#2884) 4df6919a Add more missing type annotations (#2908) 1640175c Intermediate examples had the wrong header (#2909) 4792e8fc Add some missing type annotations (#2906) 740ef6c8 Reorganize examples page to better list out examples (#2897) 32a4162b Add function to compute fidelity (#2797) eef41052 Add ability to do exhaustive Clifford trial (#2837) 11b1433e Add return values to directfidelityestimation() (#2889) 9b8eb8b1 Shortening titles of tutorials (#2901) baa718ef Fix invalid argument in listprocessors. (#2899) b1b09a08 upgrade pytest to version 5.4.1 (#2895) ad6b8220 Fix examples link (#2893) 1daad398 Fix links in github view (#2890) 4320e524 Fix column axis rename in pandas 1.0 (#2886) 76b26896 Reorder TOC and move development to dev/ (#2882) 230249cc Define moment+moment operation to return a combined moment (#2879) 3fee6d5b Fix image links and headers (#2880) d2a8fa19 Add CXPowGate and CCNotPowGate for completeness and consistency. (#2874) 1e50e4ad Refactor DFE to run samplers (#2870) d1d203e2 Fix images in cirq docs (#2876) c769af85 Move notebooks from examples to docs (#2877) 41b8e8b2 Add new tutorial (#2865) 4521a9bf Add CZ to combined FSim gate set (#2875) 3659c7ff fix pytest changed files script for mac (#2871) 25e1668d Handle all possible 1-qubit Clifford gates in Clifford simulator (#2803) 0fccaae9 Add stratifiedcircuit method (#2852) 459f6440 Add hasstabilizereffect protocol and support native Clifford simulator gates (#2760) 08ee1065 Add CZ serializer (#2866) 2a3f7e9b Restore single-Clifford inversion in RB benchmarking. (#2851) 6c57f2ee Expand SWEEPLIKE to work for {'t': [0, 1, 3]} (#2786) 2dd6e2e8 Add GridQid class (#2861) eb9b13c8 Use UTC time for reservation interactions. (#2860) 4d044cf2 Use random seed in CliffordSimulator (#2845) 5a52d971 Upgraded Gate documentation (#2790) 825aa573 Add Pauli expansion for PhasedXZ (#2856) ad87c579 Add circuits notebook back in (#2855) 6271cb62 Convert documentation to use nbsphinx (#2850) 2cb97875 Implement filtering by time slot type (#2849) fa07ce3a Fix typo (#2854) 36f32620 Add preliminary doc on calibration metrics (#2761) 76a07c78 Support readout errors modeling in noise-from-metrics utility. (#2715) e151dc7a Fix filters to include time slots that do not start within the window. (#2848) 61fd6f17 Pasqal api (#2751) 5c60a587 Reservation Client API for cirq google EngineProcessor (#2838) afad82b6 Fix error message from cirq.finalwavefunction to cirq.finaldensitymatrix #2778 (#2844) 626e16e4 Added BB84example (#2395) 61b4259d Fix quantum engine gRPC path (#2833) 4561991e Update google gRPC Client to include reservation calls (#2830) 9b14d2f4 More gates aqt (#2801) 4efcb74a Issue #2829 - moved Jupyter notebooks into examples/notebooks (#2831) 5d0ac1d6 Added Quantum Walks Tutorial (#2825) 2e80ac32 Restore deprecated noise models. (#2827) a8c7ed26 docs: minor spelling tweaks (#2823) 9718bd7c Add symbol capability to LIMITEDFSIM gate set (#2822) 61ce1c30 Add EngineProcessorTimeSlot to cirq.google.engine (#2794) 9422f5c2 Speed up GridQubit _eq__ (#2815) 41273977 Document external simulators. (#2811) cdb24ea8 Slightly speed up comparison and hashes for GridQubit (#2814) 58bdb815 Speed up direct fidelity estimation for Clifford circuits (Issue #2639) (#2709) 86b89fb2 Fit depolarizing model to XEB result (#2784) 007f858d Add a limited FSIM gateset (#2804) 329765a9 Convert single-qubit gates to single-gate PhasedXZ for sycamore (#2796) 5da8f0f2 Add test for non-string tag for TaggedOperation circuit diagrams (#2800) cc457d34 Add support for indexing circuits and moments by qubits (#2773) 5d9a4648 In unitaryeig, check preconditions before performing computing eigenvalues (#2795) f6b484a5 Updated Dev Documentation (#2792) dec73130 Refactor and clean up of engine client and helper objects. (#2720) 3a6ad8d8 Accept FSim(pi/2, pi/6) in ConvertToSycamoreGates (#2788) 875132cf Attempt to fix flaky test by fixing random seed in nqubittomographytest.py (#2758) c8beade4 unitary eigenvalue decomposition (#2736) 17d2b05b Apply 'virtual' tag in noise models. (#2734) d8c85475 Enable optimizedforsycamore with single qubit MatrixGates (#2766) 736e7ac9 Make automerge script use new update-branch API call (#2782) 343682dc Add tags and untagged properties on cirq.Operation (#2783) 0915f949 Make GridInteractionLayer a JSON serializable dataclass (#2779) 5e81be85 Fix density matrix simulation of noise (#2776) 0cefd75c Add function to generate random density matrix (#2780) 9d926d6e Serialization for PhysicalZ gates (#2770) a1d2fb16 Increase tolerance in nqubittomographytest' (#2774) 82d4fb3e Add tags to circuit diagrams (#2759) 37a222f5 Improves semantics of Circuit.findalloperationsuntilblocked (#1916) 6a4fbfbc Added QAOA and Rabi Demo notebooks. (#2768) 645af19e Save repetitions in CrossEntropyResult and make it into a JSON serializable dataclass (#2765) c0a1b552 Speed up single qubit gate layer generation for random quantum circuit (#2764) 89653aaa Add PhysicalZTag (#2753) ce13a733 Add random quantum circuit generation (#2621) 1b37885d Return unrecognized random state unmodified (#2622) 6ba76b86 Add algorithm for decomposing multi-controlled rotation (#2716) 926751de Make LineQubit and GridQubit immutable (#2756) 68ca8431 Make Best Practices its own page (#2754) 1d35492f Remove Google index page and link directly to Google pages (#2752) 27154175 Add Tags and TaggedOperation class (#2670) 1e5bf55f Fix sign error in PhasedXZGate.canonical (#2744) 8a0339bd Add documentation for Engine (#2663) 4b91b2cc Adding, shifting, and stacking for TextDiagramDrawer (#1236) e257e31e Add jsonserializabledataclass decorator (#2706) 4dae9b2c Fix n-qubit state tomography (#2739) 8612933e Fix ordering bug in fsim decomposition (#2732) fa74b05c Turn off --actually-quiet for Windows (#2731) 8179aa2d Add more specialized controlled implementations (#2597) d5ce4044 Draw ket labels for both real and imaginary parts of density matrix (#2722) db9a9ed7 requirements: remove sympy pin (#2721) 04e2a1b9 Pin pandas (#2724) 0882abb7 Add cirq.finaldensitymatrix utility method (#2487) 9293779c Use captions in TOC (#2703) c54066b5 Unpin networkx (#2718) e69a1acd Fix slow tests (#2714) df15b9b5 Convert documentation in docs/ to jupyter notebooks (new PR) (#2713) 1bda2725 Fix special new line characters in a file (#2708) 8f946e3a removing deprecated functions with v0.7 deadline (#2707) 0494323a Update the engine code to use gRPC instead of REST (#2675) bc858fc9 Plumb gate tabulation through optimizedforsycamore (#2697) d470089c Fix occasional bug in gateproducttabulation (#2700) 3d9d2df5 Make n-qubit tomography code available under cirq.experiments (#2699) 28e39030 Add CliffordSimulator to cirq.Sample (#2600) 9065d4e8 Fix deprecation warnings coming from tests (#2658) 7a04b8f7 Polish commutes protocol (#2659) 79b9b2ca DFE with physical simulations (#2523) d1916426 Update osx check from 3.6 to 3.7 (#2694) 6781fb91 Remove pip upgrade on Windows check in Travis (#2693) 7fc4d956 Add versioned branches to the travis file (#2689) 1c52d18b Add jsontestdata to cirq package (#2688) cc61838b Update master to 0.8.0.dev (#2686)

- Python
Published by dstrain115 over 5 years ago

cirq - Cirq v0.7.0

Major usability changes:

  • Added new gates: PhasedXZGate, WaitGate, givens, ISwapRotation, IdentityGate, MatrixGate
  • cirq.Rx cirq.Ry cirq.Rz cirq.MS changing to cirq.rx, cirq.ry, cirq.rz cirq.ms
  • Added commutes protocol
  • Added import capability from Quirk
  • Improved JSON serialization support
  • Many speed up and performance improvements.
  • Added Sycamore Devices and optimizers to cirq.google
  • Added many engine-related improvements to cirq.google
  • Deleted Schedules

New protocols: - cirq.applymixture - cirq.definitelycommutes

New top level objects: - cirq.givens - cirq.quirkjsontocircuit - cirq.quirkurltocircuit - cirq.estimatesinglequbitreadouterrors - cirq.ISwapRotation - cirq.MatrixGate - cirq.PAULIGATELIKE - cirq.PhasedXZGate - cirq.riswap - cirq.rx - cirq.ry - cirq.rz - cirq.decomposetwoqubitinteractionintofourfsimgatesviab - cirq.STATEVECTOR_LIKE

Full change list:

f56e6fbf Add testjsondata files to package 266491ae Create add method for Moment (#2665) de6ca2db Better decomposition of SWAP into ISWAP ** 0.5 (#2682) 575ae934 Make gridqubits addable (#2681) 58741a1a Add gate duration for xyz gate (#2680) 91e919ad Delete cirq.api.google (#2667) 3469e5c9 (t2experiments) Change symbols in phasediswaptest (#2672) f306544b Remove code for GCS locations since they are no longer used. (#2668) 02ee2852 Add PhasedXZ gate to standard single qubit (de)serializers (#2661) 86e059af Add devicespecification to engine code (#2640) f7f224c5 Fix typo in SerializableDevice print out (#2660) 2c8914b7 Quantum Volume: Add the ability to specify the device graph to compile the model circuit onto (#2645) 7fb1a498 Add documentation for cirq.google devices (#2636) ed6188b0 Add commutes protocol (#1853) 1017bae7 Add `tracebackhide_ = Trueto several test methods (#2653) 1309e99e Add optional qubit_set property to cirq.Device (#2605) 5968ccd1 Adds basic PhasedISwapPow gate to Sycamore decomposition function (#2629) 933329b8 Fix automerge script not seeing PRs on second page (#2654) b928a871 Fix instability in _decompose_interaction_into_two_b_gates_ignoring_single_qubit_ops (#2609) 9a5a09e9 Fix serialization breakage due to sympy.Rational now being a numbers.Number (#2655) c78d345d Add optimized_for_gmon to optimize circuits for Sycamore devices (#2627) 58d7722d Fix documentation and key error in calibration (#2633) da513ac6 adds max_num_empty_steps parameter (#2631) a038bd39 Mark test that sometimes fails on windows as xfail. (#2630) 32171355 Add pretty __str__ for devices with grid qubits (#2616) 6d81ddbb fix of router hanging #2282 (#2619) 2b88d34d Add optional tabulation to ConvertToSycamoreGates (#2615) 18a677d1 Update Alpha Disclaimer (#2611) 31b5436d Fix doc build by removing tensorflow dependency (#2610) 3a32a401 Add support for u1(lambda) gate (#2608) 42f9a377 Add explicit JSON resolver function in contrib (#2559) 07955c58 Detect duplicate mesurement keys. (#2604) 912c82a1 Add (de)serializer for PhasedXZGate (#2598) 7f8a4ffa Add WaitGate to gate sets (#2601) 690b5f7c lengthen randomly generated program id (#2599) 993fa1e2 Delete things marked as deprecated-until-v0.7 (#2594) 6d986e63 Implement TrialResult JSON serialization (#2576) 55c15907 Make 'async def' tests work (#2583) d963a025 Add Conversion optimizers to cirq.google __init__ (#2593) 5dcab586 Fix parametrized -> parameterized typos (#2592) 29632853 Initial draft of ConvertToSycamore (#2516) 1c5084a8 Delete schedules (#2589) 89028207 Use warnings.warn for deprecation warnings (#2586) ebd0b36b Add cirq.PhasedXPowZPowGate (#2566) 35c64e40 Move deprecated functions to deprecated docs section (#2585) 8beef6d1 Implement decompose_two_qubit_interaction_into_four_fsim_gates_via_b (#2574) 29208045 Rename Rx, Ry and Rz factories (#2580) e76e36af Add Sycamore23 device (#2547) 2201aa0c AQT: Improve documentation, Add Z operations and rename AQTRemoteSimulator to AQTSamplerLocalSimulator (#2578) 8408f895 Fix pytest (#2584) 96f5f548 Make pytest-changed-files include api tests when an __init__ file is changed (#2575) e2446d47 Update ZPow.controlled specialization (#2572) 52b14db9 Fix __radd__ losing device (#2451) f14ed205 Support arbitrary exponents when exporting X/Y/ZPowGate to quirk url (#2513) 06821343 Zlib fix (#2573) 837c4e45 Initial draft for convert_to_sqrt_iswap (#2528) d2f6344b Test gate being added multiple times. (#2560) 907f990b Add CircuitDiagramInfoArgs.format_real (#2569) ad98557b Add Gate and Operation Guidelines dev docs (#2558) a8c6ca2d Don't run async methods on other threads by default (#2562) fab633d0 Fix several dozen relative type annotations (#2568) 4be5578c Make QuantumEngineSampler engine accessible through property (#2564) c055eea1 Fix NoisySingleQubitReadoutSampler test class (#2563) a90051e1 Turn off flaky build-protos check (#2571) e9043059 Define cirq.PAULI_GATE_LIKE (#2557) dac7814c Add single qubit readout calibration (#2532) bb0afb30 Fixes "Mention the difference between stable docs and latest docs." (#2549) 3a4d8a78 Add optional readout error correction to Quantum Volume (#2522) 26cadfb6 Implement JSON serialization for ParamResolver (#2555) 2bf4826d Add a special case for WaitGate in known devices (#2545) 8a8696f3 Fix MatrixGate __pow__ and __repr__ failing for non-qubit shapes (#2556) a4025d12 Add developer doc explaining serialization (#2548) 781e84c9 make resolver repr evaluatable (#2554) d0fc17e7 Rename givens rotation factory (#2519) 08df3b49 Rename Mølmer–Sørensen gate factory (#2518) d6f65c2b Deprecate IdentityOperation obsoleted by IdentityGate (#2546) 23ce7cab Fix ParamResolver.param_dict type (#2550) 4ff38cf6 Refactor json_test's TEST_OBJECTS value into test data files (#2527) 6d5087cd Rename iswap rotation (#2526) 7a15f02e Fix typo in contrib noise models (#2529) c90644eb Update path toCirqlogocolor.png` to make it appear in the README. (#2540) 0a5d3d49 Add check/pytest-changed-files-and-incremental-coverage (#2510) a167b648 Client change google api (#2530) d7927cb4 use RANDOMSTATELIKE in simulators (#2531) 15c142df Fix timings for Google devices (#2521) 390cc4a9 Use sum instead of einsum in QAOA example (#2507) e2373e63 Make circuit rendering of PhasedISwapPowGate consistent with other gates (#2524) d60cd5b1 identity operation -> gate property (#2515) 990be613 Simplify logic in PhasedXPowGate.circuitdiagraminfo (#2525) 8f1c30a3 Add EigenGate.equaluptoglobalphase (#1840) 52079003 Add support for serializing linear combinations of symbols (#2358) 95a14f2e Move quirk url importing out of contrib into interop (#2512) a1ba3f94 Add 2-qubit gate decomp based on randomly filling the Weyl chamber to contrib (#2420) 07d8cd2b Specialize ZPow.controlled() to return CZPow for single qubit control. (#2402) 17d94cf4 Add docstrings for additional methods in #2480 (#2489) aade1f39 Bump qiskit version used during qasm compatibility test (#2511) 1cdf3434 Add support for importing custom gates in Quirk URLS (#2473) ad490a71 Sycamore Device (#2485) 46701736 Add a documentation coverage test (#2498) 9b51176e Use @dataclass for cirq.google.[De]SerializingArg (#2494) de2039da Increase prominence of doc links in readme (#2490) 0d08c9fa Add logo(s) to the docs (#2491) 4a96e045 use python -m install everywhere in travis.yml (#2500) 94f7fd2a Allow creating new gatesets with added gates (#2458) 58a794ff Define cirq.STATEVECTORLIKE (#2376) efb3afee Fix various protocols and result types not being exported (#2496) 5d9b9bb4 Various doc improvements in cirq/ops (#2495) 9becde4b Various doc fixes (#2497) 5c13dea6 ISwapRotation (#2488) d7fefa8e PointOptimizerSummary option to avoid flattening (#2461) 9c0eb4c0 Associate docstrings with public constants (#2471) 0df878c2 Skip install step in misc check (#2483) cd84155a CliffordTableau stabilizers and destabilizers methods return list of DensePauliString (#2480) 190c41fb Extract generic MatrixGate, deprecate SingleQubit/TwoQubitMatrixGate (#2381) 93a93129 SVG circuit drawing updates (#2414) 1df09790 Speed up QAOA example (#2470) 0b483188 use testing assert function for more readable output (#2469) b221c522 add atol parameter to tests (#2467) be0615d3 Gate.controlled(0) return self (#2465) 1ec8a688 Speed up sampling in the case of measuring all qudits (#2463) e54f0f13 Speed up density matrix sampling (#2462) ef86e7a5 Speed up wavefunction sampling (#2460) c266da8e Add random_state argument to linalg testing functions for seeded randomness (#2459) d3cfe3f1 Implement JSON serialization for numpy dtypes (#2456) dffd4ea8 Add WaitGate proto serialization (#2437)

- Python
Published by dstrain115 almost 6 years ago

cirq - Cirq v0.6.0

Major usability changes:

  • Pandas. cirq.TrialResult now has a data property that returns results as a pandas.DataFrame, providing access to all of pandas' convenience methods for working with data.
  • Qudit support. Added cirq.Qid.dimension and cirq.Operation._qid_shape_, as well as validation and simulator support.
  • Packaging. Package variant cirq[contrib] with requirements for cirq.contrib. Unstable package cirq-unstable tracking master.
  • Serialization. cirq.to_json and cirq.from_json methods can serialize (..almost) any cirq object.
  • Deterministic randomness. Almost all methods with random behavior now take a seed or numpy.Random instance.
  • Dropped support for python 2.7 and python 3.5.

New protocols:

  • cirq.equal_up_to_global_phase / _equal_up_to_global_phase_
  • cirq.qid_shape / _qid_shape_
  • cirq.num_qubits / _num_qubits_

New top level objects:

  • cirq.reset / cirq.ResetChannel
  • cirq.WaitGate
  • cirq.FSimGate
  • cirq.GlobalPhasedOperation (the first operation with no qubits)
  • cirq.ThreeQubitDiagonalGate
  • cirq.DensePauliString
  • cirq.MutableDensePauliString
  • cirq.ArithmeticOperation (helper class for defining arithmetic operations)
  • cirq.CCNOT = cirq.TOFFOLI alias
  • cirq.CX = cirq.CNOT alias
  • cirq.final_wavefunction
  • cirq.subwavefunction
  • cirq.wavefunction_partial_trace
  • cirq.von_neumann_entropy
  • cirq.apply_mixture
  • cirq.one_hot
  • cirq.axis_angle / cirq.AxisAngleDecomposition
  • cirq.apply_unitaries
  • cirq.approx_pauli_string_expectation
  • cirq.flatten[/_with_params/_with_sweep] for inlining complicated sympy expressions into sweeps
  • cirq.LinearCombinationOfOperations
  • cirq.PauliSum
  • cirq.SampleCollector
  • cirq.op_gate_of_type
  • cirq.op_gate_isinstance
  • cirq.NOISE_MODEL_LIKE (flexible argument type for specifying noise models)
  • cirq.PAULI_STRING_LIKE (flexible argument type for specifying pauli string arguments)
  • cirq.CliffordSimulator, cirq.StabilizerStateChForm, cirq.CliffordTableau, cirq.CliffordState, cirq.CliffordTrialResult (all still rough)
  • cirq.StabilizerStateChForm (still rough)
  • cirq.SimulatesAmplitudes interface
  • cirq.DepolarizingNoiseModel
  • cirq.DepolarizingWithReadoutNoiseModel
  • cirq.DepolarizingWithDampedReadoutNoiseModel
  • cirq.pow_pauli_combination

New sub package objects:

  • Added cirq.aqt package, which contains code to run cirq circuits on AQT's service.
  • cirq.experiments.cross_entropy_benchmarking
  • cirq.experiments.linear_xeb_fidelity
  • cirq.experiments.log_xeb_fidelity
  • cirq.experiments.log_xeb_fidelity_from_probabilities
  • cirq.experiments.t1_decay
  • cirq.experiments.xeb_fidelity
  • cirq.contrib.qasm_import.circuit_from_qasm
  • cirq.contrib.quirk.quirk_url_to_circuit
  • cirq.contrib.quirk.quirk_json_to_circuit
  • cirq.contrib.SVGCircuit
  • cirq.contrib.circuit_to_svg

Other changes (partial list):

  • Deprecated cirq.Circuit.from_ops in favor of cirq.Circuit.__init__
  • Deprecated cirq.Circuit.to_unitary_matrix in favor of cirq.Circuit.unitary
  • Deprecated cirq.Circuit.apply_unitary_effect_to_state in favor of cirq.Circuit.final_wavefunction
  • Deleted cirq.google.XmonSimulator (use cirq.Simulator instead)
  • cirq.approx_eq now recursively compares the items of iterables
  • cirq.resolve_parameters now recursively resolves the items of iterables
  • cirq.is_parameterized now recursively checks the items of iterables
  • Added cirq.TrialResult.data method
  • Added cirq.Sampler.sample method which returns a pandas.DataFrame
  • cirq.ControlledGate.on now returns a cirq.ControlledOperation instead of a cirq.GateOperation
  • simulator_state method on simulators is now private _simulator_state
  • cirq.QasmUGate.__init__ now takes operations in the same order as defined in QASM spec
  • cirq.PhasedXPowGate now longer auto-transforms itself into cirq.XPowGate or cirq.YPowGate at special phase angles
  • Attempting to sample a circuit with no measurements now raises an error
  • Fixed cirq.kak_canonicalize_vector not ensuring z>=0 when x=pi/4.
  • Added cirq.PauliString.__add__/__sub__ methods
  • Added cirq.PauliString.conjugated_by method
  • Added cirq.PauliString.dense method
  • Added cirq.X/Y/ZPowGate.__add__/__sub__ methods
  • Generalized cirq.Circuit.__init__ to take any tree of moments/operations.
  • Added cirq.PauliString._unitary_ methods
  • Added DensityMatrixTrialResult.__str__
  • Added a py.typed file telling mypy it can use cirq's inline type annotations
  • Added cirq.PeriodicValue.__repr__
  • cirq.GateOperation._pauli_expansion_
  • Controlling by nothing (operation.controlled_by()) now has no effect instead of unnecessarily wrapping
  • Added cirq.PauliString._decompose_
  • Added cirq.GridQubit.square static method
  • Added cirq.GridQubit.rect static method
  • Added cirq.GridQubit.from_pic static method
  • Added cirq.Circuit.__iadd__
  • Added cirq.PauliString.__bool__
  • Density matrix simulator now uses apply_channel when possible
  • Fixed cirq.AsymmetricDepolarizingChannel._circuit_diagram_info_ ignoring precision argument
  • cirq.SingleQubitGate.on_each method now takes any tree of qids
  • Added cirq.SimulationTrialResult.qubit_map method
  • Added cirq.KakDecomposition.__str__ method
  • Added cirq.control.UndirectedGraphDevice
  • Added CircuitDag.all_qubits
  • Added CircuitDag.is_topologically_sorted
  • Added CircuitDag.get_logical_operations
  • Added CircuitDag.random_circuit_dag
  • Added CircuitDag.random_topological_sort
  • Added examples/swap_networks.py
  • Added examples/qaoa.py
  • Added cirq.X/Y/ZPowGate.in_su2
  • Added cirq.X/Y/ZPowGate.with_canonical_global_phase
  • Added cirq.GridQubit.__add__/__sub__
  • Added cirq.LineQubit.__add__/__sub__
  • Added Circuit.with_noise method
  • Added cirq.Moment.__pow__
  • Added cirq.Sweep.__getitem__ with slice support
  • Added cirq.SynchronizeTerminalMeasurements.
  • cirq.experiments.RabiResult.plot now sets y axis range to [0, 1].
  • Fixed backwards qubit ordering in cirq.experiments.two_qubit_state_tomography
  • Fixed Circuit.findall_operations_until_blocked double counting operations
  • Added cirq.Sampler.run_sweep_async
  • Generalized cirq.PauliString.__init__ to take any tree of Pauli operations or dictionary from qubit to Pauli operation or complex number
  • cirq.EjectZ optimizer can now commute Z gates through swap-like gates
  • Continued development on cirq.google.QuantumEngine related classes, e.g. defined more flexible v2 proto serialization format
  • Fixed several instances of checking for sympy.Symbol instead of sympy.Basic
  • Added cirq.vis.Heatmap
  • cirq.EjectZ optimizer copes better in the presence of symbolic parameters
  • cirq.EjectPhasedPaulis optimizer copes better in the presence of symbolic parameters
  • Fixed several cases of simulators ignoring cirq.MeasurementGate.invert_mask
  • Fixed cirq.CSwapGate now supporting equality comparisons
  • cirq.Sweepable type union now allows dictionaries and lists of dictionaries
  • Added cirq.scatter_plot_normalized_kak_interaction_coefficients method
  • cirq.Moment.__eq__ no longer cares about operation order
  • Added cirq.TrialResult.__add__ method
  • Renamed cirq.experiments.generate_supremancy_circuit[...] to cirq.google.generate_boixo_2018_supremacy_circuits_[...]
  • Added cirq.Circuit.transform_qubits method
  • Fixed cirq.approx_eq hanging when given strings
  • Added cirq.kak_vector method for quickly computing many kak coefficients
  • cirq.Duration.__init__ now accepts timedelta and sympy.Basic values
  • Added ConstantQubitNoiseModel.__eq__
  • Added ConstantQubitNoiseModel.__repr__
  • Re-arranged some files within the cirq.ops package
  • Fixed cirq.SWAP and cirq.ISWAP decompositions not preserving global phase

Notable dev changes:

  • Defined development package variant cirq[dev-env] which includes development environment requirements
  • We have gradually begun deprecating things instead of simply deleting them.
  • Auto deploy to cirq-dev on push to master.
  • Continuous integration on Windows, OSX, and Linux instances instead of just Linux.
  • Incremental build tools compare against mergebase master instead of master itself
  • Added cirq.value.ABCMetaImplementAnyOneOf metaclass with cirq.value.alternative decorator
  • We have started adding doctest-ed Examples section to some doc strings
  • Added --actually_quiet parameter to the pytest check script
  • _compat.proper_repr now also works on pandas data frames.
  • Deleted continuous-integration/ in favor of check/ scripts

- Python
Published by Strilanc about 6 years ago

cirq - Cirq v0.5.0

Themes:

  • Noisy simulation.
  • Experiments.
  • Symbols via sympy.
  • Algebraic manipulation of gates.
  • Support for other hardware.

Notable new functionality:

  • Added cirq.controlled_by protocol. Gates and operations now have a controlled_by method. ControlledGate and ControlledOperation support arbitrary numbers of controls.
  • Added cirq.channel and cirq.mixture protocols for defining noisy evolution.
  • Added cirq.DensityMatrixSimulator.
  • Added cirq.NoiseModel/cirq.NO_NOISE/cirq.ConstantQubitNoiseModel classes. Some simulate and sample methods now take noise models.
  • Added cirq.amplitude_damp, cirq.phase_damp, and other noise channels.
  • Added convenience methods cirq.sample and cirq.sample_sweep for sampling from circuits without having to explicitly pick a simulator.
  • Added cirq.experiments package with rabi_oscillations, single_qubit_randomized_benchmarking, and other predefined experiments.
  • cirq.X, cirq.Y, and cirq.Z are now cirq.Pauli instances, whose operations can be multiplied together to produce cirq.PauliStrings.
  • Added cirq.pauli_expansion protocol
  • cirq.PauliString now supports exponentiation and raising to a power. The expression np.exp(1j * np.pi / 3 * cirq.X(q1) * cirq.Y(q2)) produces an operation you can append into a circuit.
  • Added cirq.LinearDict for representing linear combinations.
  • cirq.Gate instances can now be scaled and added together, producing a cirq.LinearCombinationOfGates.
  • The unitary protocol now falls back to decompose, allowing gates to be defined using only a _decompose_ method.
  • cirq.approx_eq now works on circuits and gates
  • cirq.value_equality now has an approximate flag, and there is now cirq.PeriodicValue for handling approximate angles.
  • All methods that take a parameter resolver can now take a raw dictionary and default to the empty resolver.
  • Gates can now be parameterized using arbitrary sympy expressions.
  • Added cirq.testing.random_superposition
  • Added cirq.NamedQubit.range.
  • Added cirq.IdentityGate and the single-qubit identity gate cirq.I.
  • Added cirq.IonDevice and cirq.NeutralAtomDevice and related helper methods.

Notable breaking changes:

  • cirq.QubitId has been renamed to cirq.Qid.
  • SingleQubitGate.on_each now takes a varargs *targets instead of a targets list.
  • All cirq.Gate instances must now implement a num_qubits method. cirq.MeasurementGate's first argument is now the number of qubits. Use cirq.measure instead.
  • cirq.Tolerance has been deleted, replaced by explicit atol/rtol arguments.
  • cirq.Symbol has been deleted, replaced by sympy.Symbol.
  • cirq.google.XmonSimulator no longer does automatic decomposition of circuits, which was hidden from and surprising to users. Circuits given to the xmon simulator must now only use supported operations. Use cirq.Simulator or cirq.sample instead.
  • Deleted cirq.contrib.jobs package, which was obsoleted by the introduction of cirq.NoiseModel.

- Python
Published by Strilanc over 6 years ago

cirq - Cirq v0.4.0

Themes:

  • Making the API more pythonic and more consistent (a.k.a. breaking changes and refactoring)
  • Faster simulation

Notable new functionality:

  • cirq.Rx, cirq.Ry, and cirq.Rz
  • cirq.XX, cirq.YY, cirq.ZZ, and cirq.MS (Mølmer–Sørensen gate)
  • cirq.Simulator
  • cirq.SupportsApplyUnitary protocol for specifying fast simulation methods
  • cirq.Circuit.reachable_frontier_from and cirq.Circuit.findall_operations_between
  • cirq.decompose
  • sorted(qubits) is now equivalent to cirq.QubitOrder.DEFAULT.order_for(qubits)
  • cirq.experiments.generate_supremacy_circuit_[...]
  • dtype parameters to control precision-vs-speed of simulations
  • cirq.TrialResult helper methods (dirac_notation / bloch_vector / density_matrix)
  • cirq.TOFFOLI and cirq.CCZ can now be raised to powers

Notable breaking changes:

  • Most gate classes have been standardized to take an exponent argument and have a name of the form NamePowGate. For example, RotXGate is now XPowGate and no longer takes rads, degs, or half_turns.
  • The xmon gate set has been merged into the common gate set.
  • Capability marker classes have been replaced by magic method protocols. For example, gates now just implement a _unitary_ method instead of inheriting from KnownMatrix.
  • cirq.Extensions and cirq.PotentialImplementation are gone.
  • Several decomposition classes and methods have been moved from cirq.google.* to cirq.*. For example,cirq.google.EjectFullW is now cirq.EjectPhasedPaulis.
  • Moved classes and methods related to line placement into cirq.google.

Notable bug fixes:

  • Two qubit gate decomposition no longer produces a glut of single qubit gates.
  • Circuit diagrams stay aligned when given multi-line entries, and now include "same moment" indicators.
  • Fixed false-positives and false-negatives in cirq.testing.assert_circuits_with_terminal_measurements_are_equivalent.
  • Fixed many repr methods returning code that assumed from cirq import * instead of import cirq.
  • Example code now runs in both python 2 and python 3 without transpilation.

Notable dev changes:

  • Test files now import cirq instead of specific modules.
  • Better testing and packaging scripts.
  • No longer using different package versions for python 2 and python 3
  • cirq.value_equality decorator.
  • New cirq.testing methods and classes.

Additions to contrib:

  • cirq.contrib.acquaintance: utilities for defining permutation gates
  • cirq.contrib.paulistring: utilities for optimizing non-Clifford operations separated by Clifford operations
  • cirq.contrib.tpu: utilities for converting circuits into a form executable on cloud TPUs (requires tensorflow)

- Python
Published by Strilanc about 7 years ago

cirq - Cirq v0.3.1

Minor package polish.

  • Now requiring python 3.5.3+ instead of 3.5+ (#710)
  • Added a description and long description to the package
  • Various doc fixes

- Python
Published by Strilanc over 7 years ago

cirq - Cirq v0.3

First release of Cirq with a publicly available pypi package.

Notable changes from v0.1:

  • Burned the 0.2 version number while testing pypi packages.
  • Massive breaking changes, both in terms of renaming things and changing how things behave.
  • Circuits now have an optional device.
  • Placement code for converting from LineQubit to GridQubit targeting a device.
  • More methods for querying/editing circuits (e.g. to_unitary_matrix(), batch_insert).
  • Notable increase in the amount of documentation and tooling.
  • Encapsulated optimizers behind cirq.google.optimized_for_xmon.
  • QASM output support.
  • Suggestive but inactive code for calling the engine.
  • Simulator support for specifying/receiving wavefunctions.
  • LineQubit and GridQubit.

- Python
Published by Strilanc over 7 years ago

cirq - Cirq v0.1

First release of Cirq.

This release is an initial development release, the public API should not be considered stable (it will become stable at a v1.0 release).

- Python
Published by dabacon over 7 years ago