A generic Pasqal device.
Inherits From: Device
cirq.pasqal.PasqalDevice(
qubits: Sequence[cirq.ops.Qid
]
) -> None
The most general of Pasqal devices, enforcing only restrictions expected to
be shared by all future devices. Serves as the parent class of all Pasqal
devices, but can also be used on its own for hosting a nearly unconstrained
device. When used as a circuit's device, the qubits have to be of the type
cirq.NamedQubit and assumed to be all connected, the idea behind it being
that after submission, all optimization and transpilation necessary for its
execution on the specified device are handled internally by Pasqal.
Args |
qubits (NamedQubit): Qubits on the device, exclusively unrelated to
a physical position.
|
Raises |
TypeError
|
if the wrong qubit type is provided.
|
Attributes |
maximum_qubit_number
|
|
supported_qubit_type
|
|
Methods
can_add_operation_into_moment
View source
can_add_operation_into_moment(
operation: cirq.ops.Operation
,
moment: cirq.ops.Moment
) -> bool
Determines if it's possible to add an operation into a moment.
An operation can be added if the moment with the operation added is
valid.
Args |
operation
|
The operation being added.
|
moment
|
The moment being transformed.
|
Returns |
Whether or not the moment will validate after adding the operation.
|
Raises |
ValueError
|
If either of the given moment or operation is invalid
|
decompose_operation
View source
decompose_operation(
operation: cirq.ops.Operation
) -> "cirq.OP_TREE"
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.
is_pasqal_device_op
View source
is_pasqal_device_op(
op: cirq.ops.Operation
) -> bool
qubit_list
View source
qubit_list()
qubit_set
View source
qubit_set() -> FrozenSet[cirq.ops.Qid
]
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
validate_circuit(
circuit: "cirq.Circuit"
) -> None
Raises an error if the given circuit is invalid on this device.
A circuit is invalid if any of its moments are invalid or if there
is a non-empty moment after a moment with a measurement.
Args |
circuit
|
The circuit to validate
|
Raises |
ValueError
|
If the given circuit can't be run on this device
|
validate_moment
View source
validate_moment(
moment: "cirq.Moment"
) -> None
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
validate_operation(
operation: cirq.ops.Operation
)
Raises an error if the given operation is invalid on this device.
Args |
operation
|
the operation to validate
|
Raises |
ValueError
|
If the operation is not valid
|
__eq__
View source
__eq__(
other: _SupportsValueEquality
) -> bool
__ne__
View source
__ne__(
other: _SupportsValueEquality
) -> bool