cirq.ZPowGate¶
-
class
cirq.ZPowGate(*, exponent: Union[cirq.value.symbol.Symbol, float] = 1.0, global_shift: float = 0.0)[source]¶ A gate that rotates around the Z axis of the Bloch sphere.
The unitary matrix of
ZPowGate(exponent=t)is:[[1, 0], [0, g]]
where:
g = exp(i·π·t).
Note in particular that this gate has a global phase factor ofe^{i·π·t/2} vs the traditionally defined rotation matricesabout the Pauli Z axis. Seecirq.Rzfor rotations without the globalphase. The global phase factor can be adjusted by using theglobal_shiftparameter when initializing.cirq.Z, the Pauli Z gate, is an instance of this gate at exponent=1.-
__init__(*, exponent: Union[cirq.value.symbol.Symbol, float] = 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_componentsmethod:θ 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
on(*qubits)Returns an application of this gate to the given qubits. on_each(targets)Returns a list of operations apply this gate to each of the targets. validate_args(qubits)Checks if this gate can be applied to the given qubits. Attributes
exponent-