# cirq.ZPowGate¶

class cirq.ZPowGate(*, exponent: Union[float, sympy.core.basic.Basic] = 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 of
e^{i·π·t/2} vs the traditionally defined rotation matrices
about the Pauli Z axis. See cirq.rz for rotations without the global
phase. The global phase factor can be adjusted by using the global_shift
parameter when initializing.

cirq.Z, the Pauli Z gate, is an instance of this gate at exponent=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

1. Starting with an angle in half turns as returned by the gate’s
_eigen_components method:
θ

2. Shifting the angle by global_shift:

θ + s

3. Scaling the angle by exponent:

(θ + s) * e

4. 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, …]) Constructs CZPowGate from controlled ZPowGate when applicable. Returns an equal-up-global-phase gate from the group SU2. The number of qubits this gate acts on. on(*qubits) Returns an application of this gate to the given qubits. on_each(*targets) Returns a list of operations applying the gate to all targets. validate_args(qubits) Checks if this gate can be applied to the given qubits. Returns an equal-up-global-phase standardized form of the gate. wrap_in_linear_combination([coefficient])

Attributes