Releases: quantumlib/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.apply_mixture
- cirq.definitely_commutes
New top level objects:
- cirq.givens
- cirq.quirk_json_to_circuit
- cirq.quirk_url_to_circuit
- cirq.estimate_single_qubit_readout_errors
- cirq.ISwapRotation
- cirq.MatrixGate
- cirq.PAULI_GATE_LIKE
- cirq.PhasedXZGate
- cirq.riswap
- cirq.rx
- cirq.ry
- cirq.rz
- cirq.decompose_two_qubit_interaction_into_four_fsim_gates_via_b
- cirq.STATE_VECTOR_LIKE
Full change list:
f56e6fb Add test_json_data files to package
266491a Create add method for Moment (#2665)
de6ca2d Better decomposition of SWAP into ISWAP ** 0.5 (#2682)
575ae93 Make grid_qubits addable (#2681)
58741a1 Add gate duration for xyz gate (#2680)
91e919a Delete cirq.api.google (#2667)
3469e5c (t2_experiments) Change symbols in phased_iswap_test (#2672)
f306544 Remove code for GCS locations since they are no longer used. (#2668)
02ee285 Add PhasedXZ gate to standard single qubit (de)serializers (#2661)
86e059a Add device_specification to engine code (#2640)
f7f224c Fix typo in SerializableDevice print out (#2660)
2c8914b Quantum Volume: Add the ability to specify the device graph to compile the model circuit onto (#2645)
7fb1a49 Add documentation for cirq.google devices (#2636)
ed6188b Add commutes protocol (#1853)
1017bae Add __tracebackhide__ = True
to several test methods (#2653)
1309e99 Add optional qubit_set property to cirq.Device (#2605)
5968ccd Adds basic PhasedISwapPow gate to Sycamore decomposition function (#2629)
933329b Fix automerge script not seeing PRs on second page (#2654)
b928a87 Fix instability in _decompose_interaction_into_two_b_gates_ignoring_single_qubit_ops (#2609)
9a5a09e Fix serialization breakage due to sympy.Rational now being a numbers.Number (#2655)
c78d345 Add optimized_for_gmon to optimize circuits for Sycamore devices (#2627)
58d7722 Fix documentation and key error in calibration (#2633)
da513ac adds max_num_empty_steps parameter (#2631)
a038bd3 Mark test that sometimes fails on windows as xfail. (#2630)
3217135 Add pretty str for devices with grid qubits (#2616)
6d81ddb fix of router hanging #2282 (#2619)
2b88d34 Add optional tabulation to ConvertToSycamoreGates (#2615)
18a677d Update Alpha Disclaimer (#2611)
31b5436 Fix doc build by removing tensorflow dependency (#2610)
3a32a40 Add support for u1(lambda) gate (#2608)
42f9a37 Add explicit JSON resolver function in contrib (#2559)
07955c5 Detect duplicate mesurement keys. (#2604)
912c82a Add (de)serializer for PhasedXZGate (#2598)
7f8a4ff Add WaitGate to gate sets (#2601)
690b5f7 lengthen randomly generated program id (#2599)
993fa1e Delete things marked as deprecated-until-v0.7 (#2594)
6d986e6 Implement TrialResult JSON serialization (#2576)
55c1590 Make 'async def' tests work (#2583)
d963a02 Add Conversion optimizers to cirq.google init (#2593)
5dcab58 Fix parametrized -> parameterized typos (#2592)
2963285 Initial draft of ConvertToSycamore (#2516)
1c5084a Delete schedules (#2589)
8902820 Use warnings.warn for deprecation warnings (#2586)
ebd0b36 Add cirq.PhasedXPowZPowGate (#2566)
35c64e4 Move deprecated functions to deprecated docs section (#2585)
8beef6d Implement decompose_two_qubit_interaction_into_four_fsim_gates_via_b (#2574)
2920804 Rename Rx, Ry and Rz factories (#2580)
e76e36a Add Sycamore23 device (#2547)
2201aa0 AQT: Improve documentation, Add Z operations and rename AQTRemoteSimulator to AQTSamplerLocalSimulator (#2578)
8408f89 Fix pytest (#2584)
96f5f54 Make pytest-changed-files include api tests when an init file is changed (#2575)
e2446d4 Update ZPow.controlled specialization (#2572)
52b14db Fix radd losing device (#2451)
f14ed20 Support arbitrary exponents when exporting X/Y/ZPowGate to quirk url (#2513)
0682134 Zlib fix (#2573)
837c4e4 Initial draft for convert_to_sqrt_iswap (#2528)
d2f6344 Test gate being added multiple times. (#2560)
907f990 Add CircuitDiagramInfoArgs.format_real (#2569)
ad98557 Add Gate and Operation Guidelines dev docs (#2558)
a8c6ca2 Don't run async methods on other threads by default (#2562)
fab633d Fix several dozen relative type annotations (#2568)
4be5578 Make QuantumEngineSampler engine accessible through property (#2564)
c055eea Fix NoisySingleQubitReadoutSampler test class (#2563)
a90051e Turn off flaky build-protos check (#2571)
e904305 Define cirq.PAULI_GATE_LIKE (#2557)
dac7814 Add single qubit readout calibration (#2532)
bb0afb3 Fixes "Mention the difference between stable docs and latest docs." (#2549)
3a4d8a7 Add optional readout error correction to Quantum Volume (#2522)
26cadfb Implement JSON serialization for ParamResolver (#2555)
2bf4826 Add a special case for WaitGate in known devices (#2545)
8a8696f Fix MatrixGate pow and repr failing for non-qubit shapes (#2556)
a4025d1 Add developer doc explaining serialization (#2548)
781e84c make resolver repr evaluatable (#2554)
d0fc17e Rename givens rotation factory (#2519)
08df3b4 Rename Mølmer–Sørensen gate factory (#2518)
d6f65c2 Deprecate IdentityOperation obsoleted by IdentityGate (#2546)
23ce7ca Fix ParamResolver.param_dict type (#2550)
4ff38cf Refactor json_test's TEST_OBJECTS value into test data files (#2527)
6d5087c Rename iswap rotation (#2526)
7a15f02 Fix typo in contrib noise models (#2529)
c90644e Update path to Cirq_logo_color.png
to make it appear in the README. (#2540)
0a5d3d4 Add check/pytest-changed-files-and-incremental-coverage (#2510)
a167b64 Client change google api (#2530)
d7927cb use RANDOM_STATE_LIKE in simulators (#2531)
15c142d Fix timings for Google devices (#2521)
390cc4a Use sum instead of einsum in QAOA example (#2507)
e2373e6 Make circuit rendering of PhasedISwapPowGate consistent with other gates (#2524)
d60cd5b identity operation -> gate property (#2515)
990be61 Simplify logic in PhasedXPowGate.circuit_diagram_info (#2525)
8f1c30a Add EigenGate.equal_up_to_global_phase (#1840)
5207900 Add support for serializing linear combinations of symbols (#2358)
95a14f2 Move quirk url importing out of contrib into interop (#2512)
a1ba3f9 Add 2-qubit gate decomp based on randomly filling the Weyl chamber to contrib (#2420)
07d8cd2 Specialize ZPow.controlled() to return CZPow for single qubit control. (#2402)
17d94cf Add docstrings for additional methods in #2480 (#2489)
aade1f3 Bump qiskit version used during qasm compatibility test (#2511)
1cdf343 Add support for importing custom gates in Quirk URLS (#2473)
ad490a7 Sycamore Device (#2485)
4670173 Add a documentation coverage test (#2498)
9b51176 Use @DataClass for cirq.google.[De]SerializingArg (#2494)
de2039d Increase prominence of doc links in readme (#2490)
0d08c9f Add logo(s) to the docs (#2491)
4a96e04 use python -m install everywhere in travis.yml (#2500)
94f7fd2 Allow creating new gatesets with added gates (#2458)
58a794f Define cirq.STATE_VECTOR_LIKE (#2376)
efb3afe Fix various protocols and result types not being exported (#2496)
5d9b9bb Various doc improvements in cirq/ops (#2495)
9becde4 Various doc fixes (#2497)
5c13dea ISwapRotation (#2488)
d7fefa8 PointOptimizerSummary option to avoid flattening (#2461)
9c0eb4c Associate docstrings with public constants (#2471)
0df878c Skip install step in misc check (#2483)
cd84155 CliffordTableau stabilizers and destabilizers methods return list of DensePauliString (#2480)
190c41f Extract generic MatrixGate, deprecate SingleQubit/TwoQubitMatrixGate (#2381)
93a9312 SVG circuit drawing updates (#2414)
1df0979 Speed up QAOA example (#2470)
0b48318 use testing assert function for more readable output (#2469)
b221c52 add atol parameter to tests (#2467)
be0615d Gate.controlled(0) return self (#2465)
1ec8a68 Speed up sampling in the case of measuring all qudits (#2463)
e54f0f1 Speed up density matrix sampling (#2462)
ef86e7a Speed up wavefunction sampling (#2460)
c266da8 Add random_state argument to linalg testing functions for seeded randomness (#2459)
d3cfe3f Implement JSON serialization for numpy dtypes (#2456)
dffd4ea Add WaitGate proto serialization (#2437)
Cirq v0.6.0
Major usability changes:
- Pandas.
cirq.TrialResult
now has adata
property that returns results as apandas.DataFrame
, providing access to all of pandas' convenience methods for working with data. - Qudit support. Added
cirq.Qid.dimension
andcirq.Operation._qid_shape_
, as well as validation and simulator support. - Packaging. Package variant
cirq[contrib]
with requirements forcirq.contrib
. Unstable packagecirq-unstable
tracking master. - Serialization.
cirq.to_json
andcirq.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
aliascirq.CX = cirq.CNOT
aliascirq.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 sweepscirq.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
interfacecirq.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 ofcirq.Circuit.__init__
- Deprecated
cirq.Circuit.to_unitary_matrix
in favor ofcirq.Circuit.unitary
- Deprecated
cirq.Circuit.apply_unitary_effect_to_state
in favor ofcirq.Circuit.final_wavefunction
- Deleted
cirq.google.XmonSimulator
(usecirq.Simulator
instead) cirq.approx_eq
now recursively compares the items of iterablescirq.resolve_parameters
now recursively resolves the items of iterablescirq.is_parameterized
now recursively checks the items of iterables- Added
cirq.TrialResult.data
method - Added
cirq.Sampler.sample
method which returns apandas.DataFrame
cirq.ControlledGate.on
now returns acirq.ControlledOperation
instead of acirq.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 speccirq.PhasedXPowGate
now longer auto-transforms itself intocirq.XPowGate
orcirq.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 tellingmypy
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 ofsympy.Basic
- Added
cirq.vis.Heatmap
cirq.EjectZ
optimizer copes better in the presence of symbolic parameterscirq.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[...]
tocirq.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 acceptstimedelta
andsympy.Basic
values- Added
ConstantQubitNoiseModel.__eq__
- Added
ConstantQubitNoiseModel.__repr__
- Re-arranged some files within the
cirq.ops
package - Fixed
cirq.SWAP
andcirq.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 withcirq.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 ofcheck/
scripts
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 acontrolled_by
method.ControlledGate
andControlledOperation
support arbitrary numbers of controls. - Added
cirq.channel
andcirq.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
andcirq.sample_sweep
for sampling from circuits without having to explicitly pick a simulator. - Added
cirq.experiments
package withrabi_oscillations
,single_qubit_randomized_benchmarking
, and other predefined experiments. cirq.X
,cirq.Y
, andcirq.Z
are nowcirq.Pauli
instances, whose operations can be multiplied together to producecirq.PauliString
s.- Added
cirq.pauli_expansion
protocol cirq.PauliString
now supports exponentiation and raising to a power. The expressionnp.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 acirq.LinearCombinationOfGates
.- The
unitary
protocol now falls back todecompose
, allowing gates to be defined using only a_decompose_
method. cirq.approx_eq
now works on circuits and gatescirq.value_equality
now has anapproximate
flag, and there is nowcirq.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 gatecirq.I
. - Added
cirq.IonDevice
andcirq.NeutralAtomDevice
and related helper methods.
Notable breaking changes:
cirq.QubitId
has been renamed tocirq.Qid
.SingleQubitGate.on_each
now takes a varargs*targets
instead of atargets
list.- All
cirq.Gate
instances must now implement anum_qubits
method.cirq.MeasurementGate
's first argument is now the number of qubits. Usecirq.measure
instead. cirq.Tolerance
has been deleted, replaced by explicitatol
/rtol
arguments.cirq.Symbol
has been deleted, replaced bysympy.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. Usecirq.Simulator
orcirq.sample
instead.- Deleted
cirq.contrib.jobs
package, which was obsoleted by the introduction ofcirq.NoiseModel
.
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
, andcirq.Rz
cirq.XX
,cirq.YY
,cirq.ZZ
, andcirq.MS
(Mølmer–Sørensen gate)cirq.Simulator
cirq.SupportsApplyUnitary
protocol for specifying fast simulation methodscirq.Circuit.reachable_frontier_from
andcirq.Circuit.findall_operations_between
cirq.decompose
sorted(qubits)
is now equivalent tocirq.QubitOrder.DEFAULT.order_for(qubits)
cirq.experiments.generate_supremacy_circuit_[...]
dtype
parameters to control precision-vs-speed of simulationscirq.TrialResult
helper methods (dirac_notation
/bloch_vector
/density_matrix
)cirq.TOFFOLI
andcirq.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 formNamePowGate
. For example,RotXGate
is nowXPowGate
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 fromKnownMatrix
. cirq.Extensions
andcirq.PotentialImplementation
are gone.- Several decomposition classes and methods have been moved from
cirq.google.*
tocirq.*
. For example,cirq.google.EjectFullW
is nowcirq.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 assumedfrom cirq import *
instead ofimport 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 gatescirq.contrib.paulistring
: utilities for optimizing non-Clifford operations separated by Clifford operationscirq.contrib.tpu
: utilities for converting circuits into a form executable on cloud TPUs (requirestensorflow
)
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
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
toGridQubit
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.