cirq.google.SerializableDevice

Device object generated from a device specification proto.

Inherits From: Device

Given a device specification proto and a gate_set to translate the serialized gate_ids to cirq Gates, this will generate a Device that can verify operations and circuits for the hardware specified by the device.

Expected usage is through constructing this class through a proto using the static function call from_proto().

This class only supports GridQubits and NamedQubits. NamedQubits with names that conflict (such as "4_3") may be converted to GridQubits on deserialization.

qubits A list of valid Qid for the device.
gate_definitions Maps cirq gates to device properties for that gate.

Methods

can_add_operation_into_moment

View source

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

View source

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.

duration_of

View source

from_proto

View source

Args: proto: A proto describing the qubits on the device, as well as the supported gates and timing information. gate_set: A SerializableGateSet that can translate the gate_ids into cirq Gates.

qubit_set

View source

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.

validate_circuit

View source

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

View source

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 is not valid.

Args
operation The operation to validate.

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