cirq.ControlledOperation

class cirq.ControlledOperation(controls: Sequence[cirq.ops.raw_types.Qid], sub_operation: cirq.ops.raw_types.Operation, control_values: Optional[Sequence[Union[int, Collection[int]]]] = None)[source]

Augments existing operations to have one or more control qubits.

This object is typically created via operation.controlled_by(*qubits).

__init__(controls: Sequence[cirq.ops.raw_types.Qid], sub_operation: cirq.ops.raw_types.Operation, control_values: Optional[Sequence[Union[int, Collection[int]]]] = None)[source]

Initialize self. See help(type(self)) for accurate signature.

Methods

controlled_by(*control_qubits[, control_values])

Returns a controlled version of this operation. If no control_qubits

transform_qubits(func)

Returns the same operation, but with different qubits.

validate_args(qubits)

Raises an exception if the qubits don’t match this operation’s qid

with_qubits(*new_qubits)

Returns the same operation, but applied to different qubits.

Attributes

gate

qubits