cirq.CNotPowGate¶
-
class
cirq.
CNotPowGate
(*, exponent: Union[float, sympy.core.basic.Basic] = 1.0, global_shift: float = 0.0)[source]¶ A gate that applies a controlled power of an X gate.
When applying CNOT (controlled-not) to qubits, you can either usepositional arguments CNOT(q1, q2), where q2 is toggled when q1 is on,or named arguments CNOT(control=q1, target=q2).(Mixing the two is not permitted.)The unitary matrix of
CNotPowGate(exponent=t)
is:[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, g·c, -i·g·s], [0, 0, -i·g·s, g·c]]
where:
c = cos(π·t/2) s = sin(π·t/2) g = exp(i·π·t/2).
cirq.CNOT
, the controlled NOT gate, is an instance of this gate atexponent=1
.-
__init__
(*, exponent: Union[float, sympy.core.basic.Basic] = 1.0, global_shift: float = 0.0) → None¶ Initializes the parameters used to compute the gate’s matrix.
The eigenvalue of each eigenspace of a gate is computed by
- Starting with an angle in half turns as returned by the gate’s
_eigen_components
method:θ
Shifting the angle by
global_shift
:θ + s
Scaling the angle by
exponent
:(θ + s) * e
Converting from half turns to a complex number on the unit circle:
exp(i * pi * (θ + s) * e)
- Parameters
exponent – The t in gate**t. Determines how much the eigenvalues of the gate are scaled by. For example, eigenvectors phased by -1 when gate**1 is applied will gain a relative phase of e^{i pi exponent} when gate**exponent is applied (relative to eigenvectors unaffected by gate**1).
global_shift –
Offsets the eigenvalues of the gate at exponent=1. In effect, this controls a global phase factor on the gate’s unitary matrix. The factor is:
exp(i * pi * global_shift * exponent)
For example, cirq.X**t uses a global_shift of 0 but cirq.rx(t) uses a global_shift of -0.5, which is why cirq.unitary(cirq.rx(pi)) equals -iX instead of X.
Methods
controlled
([num_controls, control_values, …])Returns a controlled version of this gate. If no arguments areThe number of qubits this gate acts on.
on
(*args, **kwargs)Returns an application of this gate to the given qubits.
validate_args
(qubits)Checks if this gate can be applied to the given qubits.
wrap_in_linear_combination
([coefficient])Attributes
-