# cirq.ops.Rx

A gate, with matrix e^{-i X rads/2}, that rotates around the X axis of the Bloch sphere.

The unitary matrix of `Rx(rads=t)` is:

exp(-i X t/2) = [ cos(t/2) -isin(t/2)] [-isin(t/2) cos(t/2) ]

The gate corresponds to the traditionally defined rotation matrices about the Pauli X axis.

`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.

`exponent`

`global_shift`

`phase_exponent`

## Methods

### `controlled`

View source

Returns a controlled `XPowGate`, using a `CXPowGate` where possible.

The `controlled` method of the `Gate` class, of which this class is a child, returns a `ControlledGate`. This method overrides this behavior to return a `CXPowGate` or a `ControlledGate` of a `CXPowGate`, when this is possible.

The conditions for the override to occur are:

``````* The `global_shift` of the `XPowGate` is 0.
* The `control_values` and `control_qid_shape` are compatible with
the `CXPowGate`:
* The last value of `control_qid_shape` is a qubit.
* The last value of `control_values` corresponds to the
control being satisfied if that last qubit is 1 and
not satisfied if the last qubit is 0.
``````

If these conditions are met, then the returned object is a `CXPowGate` or, in the case that there is more than one controlled qudit, a `ControlledGate` with the `Gate` being a `CXPowGate`. In the latter case the `ControlledGate` is controlled by one less qudit than specified in `control_values` and `control_qid_shape` (since one of these, the last qubit, is used as the control for the `CXPowGate`).

If the above conditions are not met, a `ControlledGate` of this gate will be returned.

### `in_su2`

View source

Returns an equal-up-global-phase gate from the group SU2.

### `num_qubits`

View source

The number of qubits this gate acts on.

### `on`

View source

Returns an application of this gate to the given qubits.

Args
`*qubits` The collection of qubits to potentially apply the gate to.

### `on_each`

View source

Returns a list of operations applying the gate to all targets.

Args
`*targets` The qubits to apply this gate to.

Returns
Operations applying this gate to the target qubits.

Raises
ValueError if targets are not instances of Qid or List[Qid]. ValueError if the gate operates on two or more Qids.

### `validate_args`

View source

Checks if this gate can be applied to the given qubits.

By default checks that:

• inputs are of type `Qid`
• len(qubits) == num_qubits()
• qubit_i.dimension == qid_shape[i] for all qubits

Child classes can override. The child implementation should call `super().validate_args(qubits)` then do custom checks.

Args
`qubits` The sequence of qubits to potentially apply the gate to.

#### Throws:

• `ValueError`: The gate can't be applied to the qubits.

### `with_canonical_global_phase`

View source

Returns an equal-up-global-phase standardized form of the gate.

View source

View source

View source

### `__call__`

View source

Call self as a function.

View source

View source

View source

View source

View source

View source

View source

### `__truediv__`

View source

[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Missing the information I need" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Too complicated / too many steps" },{ "type": "thumb-down", "id": "outOfDate", "label":"Out of date" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Samples / code issue" },{ "type": "thumb-down", "id": "otherDown", "label":"Other" }]
[{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Easy to understand" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Solved my problem" },{ "type": "thumb-up", "id": "otherUp", "label":"Other" }]