cirq_rigetti.aspen_device.RigettiQCSAspenDevice

A cirq.Qid supporting Rigetti QCS Aspen device topology.

isa The InstructionSetArchitecture retrieved from the QCS api.

UnsupportedRigettiQCSQuantumProcessor If the isa does not define an Aspen device.

qubit_topology Return qubit topology indices with nx.Graph.

Methods

can_add_operation_into_moment

Determines if it's possible to add an operation into a moment.

For example, on the XmonDevice two CZs shouldn't be placed in the same moment if they are on adjacent qubits.

Args
operation The operation being added.
moment The moment being transformed.

Returns
Whether or not the moment will validate after adding the operation.

decompose_operation

Returns a device-valid decomposition for the given operation.

This method is used when adding operations into circuits with a device specified, to avoid spurious failures due to e.g. using a Hadamard gate that must be decomposed into native gates.

qid_pairs

Returns a set of qubit edges on the device, if possible.

This property can be overridden in child classes for special handling. The default handling is: GridQids and LineQids will have neighbors as edges, and others will be fully connected.

Returns
If the device has a finite set of qubits, then a set of all edges on the device is returned.

If the device has no well defined finite set of qubits (e.g. cirq.UnconstrainedDevice has this property), then None is returned.

qubit_set

Returns a set or frozenset of qubits on the device, if possible.

Returns
If the device has a finite set of qubits, then a set or frozen set of all qubits on the device is returned.

If the device has no well defined finite set of qubits (e.g. cirq.UnconstrainedDevice has this property), then None is returned.

qubits

View source

Return list of AspenQubits within device topology.

Returns
List of AspenQubits within device topology.

validate_circuit

Raises an exception if a circuit is not valid.

Args
circuit The circuit to validate.

Raises
ValueError The circuit isn't valid for this device.

validate_moment

Raises an exception if a moment is not valid.

Args
moment The moment to validate.

Raises
ValueError The moment isn't valid for this device.

validate_operation

View source

Raises an exception if an operation does not satisfy the topological constraints of the device.

Note, in case the operation is invalid, you can still use the Quil compiler to rewire qubits and decompose the operation to this device's topology.

Additionally, this method will not attempt to decompose the operation into this device's native gate set. This integration, by default, uses the Quil compiler to do so.

Please see the Quil Compiler documentation for more information.

Args
operation The operation to validate.

Raises
UnsupportedRigettiQCSOperation The operation isn't valid for this device.

validate_qubit

View source

Raises an exception if the qubit does not satisfy the topological constraints of the RigettiQCSAspenDevice.

Args
qubit The qubit to validate.

Raises
UnsupportedQubit The operation isn't valid for this device.

__eq__

__ne__