|View source on GitHub|
A unitary, channel, mixture or other object that operates on a known number qubits/qudits/qids, each with a specific number of quantum levels.
cirq.SupportsExplicitQidShape( *args, **kwargs )
_qid_shape_() -> Union[Tuple[int, ...], NotImplementedType]
A tuple specifying the number of quantum levels of each qid this object operates on, e.g. (2, 2, 2) for a three-qubit gate.
This method is used by the global
cirq.qid_shape method (and by
_num_qubits_ is not defined). If this
method is not present, or returns NotImplemented, it is assumed that the
receiving object operates on qubits. (The ability to return
NotImplemented is useful when a class cannot know if it has a shape
The order of values in the tuple is always implicit with respect to the
object being called. For example, for gates the tuple must be ordered
with respect to the list of qubits that the gate is applied to. For
operations, the tuple is ordered to match the list returned by its
|The qid shape of this value, or NotImplemented if the shape is unknown.|