|View source on GitHub|
An effect applied to a collection of qubits.
cirq.ops.PauliString) -> None
The most common kind of Operation is a GateOperation, which separates its effect into a qubit-independent Gate and the qubits it should be applied to.
||Returns a tuple of the operation's tags.|
||Returns the underlying operation without any tags.|
controlled_by( control_values: Optional[Sequence[Union[int, Collection[int]]]] = None, *control_qubits ) -> "cirq.Operation"
Returns a controlled version of this operation. If no control_qubits are specified, returns self.
||Qubits to control the operation by. Required.|
For which control qubit values to apply the
operation. A sequence of the same length as
map_qubits( qubit_map: Dict[
cirq.ops.Qid] ) ->
Return an equivalent operation on new qubits with its Pauli string mapped to new qubits.
new_pauli_string = self.pauli_string.map_qubits(qubit_map)
transform_qubits( qubit_map: Union[Dict['cirq.Qid', 'cirq.Qid'], Callable[['cirq.Qid'], 'cirq.Qid']] ) ->
Returns the same operation, but with different qubits.
||A function or a dict mapping each current qubit into a desired new qubit.|
|The receiving operation but with qubits transformed by the given function.|
||qubit_map was not a function or dict mapping qubits to qubits.|
validate_args( qubits: Sequence[
cirq.ops.Qid] ) -> None
Raises an exception if the
qubits don't match this operation's qid
Call this method from a subclass's
||The new qids for the operation.|
||The operation had qids that don't match it's qid shape.|
with_probability( probability: "cirq.TParamVal" ) -> "cirq.Operation"
with_qubits( *new_qubits ) ->
Returns the same operation, but applied to different qubits.
The new qubits to apply the operation to. The order must
exactly match the order of qubits returned from the operation's
with_tags( *new_tags ) -> "cirq.TaggedOperation"
Creates a new TaggedOperation, with this op and the specified tags.
This method can be used to attach meta-data to specific operations without affecting their functionality. The intended usage is to attach classes intended for this purpose or strings to mark operations for specific usage that will be recognized by consumers. Specific examples include ignoring this operation in optimization passes, hardware-specific functionality, or circuit diagram customizability.
Tags can be a list of any type of object that is useful to identify this operation as long as the type is hashable. If you wish the resulting operation to be eventually serialized into JSON, you should also restrict the operation to be JSON serializable.
||The tags to wrap this operation in.|