Skip to main contentIBM Quantum Documentation
You are viewing the API reference for an old version of Qiskit SDK. Switch to latest version

U3Gate

class U3Gate(theta, phi, lam, label=None)

GitHub(opens in a new tab)

Generic single-qubit rotation gate with 3 Euler angles.

Implemented using two X90 pulses on IBM Quantum systems:

U3(θ,ϕ,λ)=RZ(ϕπ/2)RX(π/2)RZ(πθ)RX(π/2)RZ(λπ/2)U3(\theta, \phi, \lambda) = RZ(\phi - \pi/2) RX(\pi/2) RZ(\pi - \theta) RX(\pi/2) RZ(\lambda - \pi/2)

Circuit symbol:

     ┌───────────┐
q_0:U3(ϴ,φ,λ)
     └───────────┘

Matrix Representation:

U3(θ,ϕ,λ)=(cos(θ2)eiλsin(θ2)eiϕsin(θ2)ei(ϕ+λ)cos(θ2))\providecommand{\th}{\frac{\theta}{2}}\\\begin{split}U3(\theta, \phi, \lambda) = \begin{pmatrix} \cos(\th) & -e^{i\lambda}\sin(\th) \\ e^{i\phi}\sin(\th) & e^{i(\phi+\lambda)}\cos(\th) \end{pmatrix}\end{split}

Examples:

U3(θ,π2,pi2)=RX(θ)U3(\theta, -\frac{\pi}{2}, \frac{pi}{2}) = RX(\theta)U3(θ,0,0)=RY(θ)U3(\theta, 0, 0) = RY(\theta)

Create new U3 gate.


Attributes

decompositions

Get the decompositions of the instruction from the SessionEquivalenceLibrary.

definition

Return definition in terms of other basic gates.

label

Type: str

Return gate label

Return type

str

params

return instruction params.


Methods

add_decomposition

U3Gate.add_decomposition(decomposition)

Add a decomposition of the instruction to the SessionEquivalenceLibrary.

assemble

U3Gate.assemble()

Assemble a QasmQobjInstruction

Return type

Instruction

broadcast_arguments

U3Gate.broadcast_arguments(qargs, cargs)

Validation and handling of the arguments and its relationship.

For example, cx([q[0],q[1]], q[2]) means cx(q[0], q[2]); cx(q[1], q[2]). This method yields the arguments in the right grouping. In the given example:

in: [[q[0],q[1]], q[2]],[]
outs: [q[0], q[2]], []
      [q[1], q[2]], []

The general broadcasting rules are:

  • If len(qargs) == 1:

    [q[0], q[1]] -> [q[0]],[q[1]]
  • If len(qargs) == 2:

    [[q[0], q[1]], [r[0], r[1]]] -> [q[0], r[0]], [q[1], r[1]]
    [[q[0]], [r[0], r[1]]]       -> [q[0], r[0]], [q[0], r[1]]
    [[q[0], q[1]], [r[0]]]       -> [q[0], r[0]], [q[1], r[0]]
  • If len(qargs) >= 3:

    [q[0], q[1]], [r[0], r[1]],  ...] -> [q[0], r[0], ...], [q[1], r[1], ...]

Parameters

  • qargs (List) – List of quantum bit arguments.
  • cargs (List) – List of classical bit arguments.

Return type

Tuple[List, List]

Returns

A tuple with single arguments.

Raises

CircuitError – If the input is not valid. For example, the number of arguments does not match the gate expectation.

c_if

U3Gate.c_if(classical, val)

Add classical condition on register classical and value val.

control

U3Gate.control(num_ctrl_qubits=1, label=None, ctrl_state=None)

Return a (mutli-)controlled-U3 gate.

Parameters

  • num_ctrl_qubits (int) – number of control qubits.
  • label (str or None) – An optional label for the gate [Default: None]
  • ctrl_state (int or str or None) – control state expressed as integer, string (e.g. ‘110’), or None. If None, use all 1s.

Returns

controlled version of this gate.

Return type

ControlledGate

copy

U3Gate.copy(name=None)

Copy of the instruction.

Parameters

name (str) – name to be given to the copied circuit, if None then the name stays the same.

Returns

a copy of the current instruction, with the name

updated if it was provided

Return type

qiskit.circuit.Instruction

inverse

U3Gate.inverse()

Return inverted U3 gate.

U3(θ,ϕ,λ)=U3(θ,ϕ,λ)U3(\theta,\phi,\lambda)^{\dagger} =U3(-\theta,-\phi,-\lambda))

is_parameterized

U3Gate.is_parameterized()

Return True .IFF. instruction is parameterized else False

mirror

U3Gate.mirror()

For a composite instruction, reverse the order of sub-gates.

This is done by recursively mirroring all sub-instructions. It does not invert any gate.

Returns

a fresh gate with sub-gates reversed

Return type

qiskit.circuit.Instruction

power

U3Gate.power(exponent)

Creates a unitary gate as gate^exponent.

Parameters

exponent (float) – Gate^exponent

Returns

To which to_matrix is self.to_matrix^exponent.

Return type

qiskit.extensions.UnitaryGate

Raises

CircuitError – If Gate is not unitary

qasm

U3Gate.qasm()

Return a default OpenQASM string for the instruction.

Derived instructions may override this to print in a different format (e.g. measure q[0] -> c[0];).

repeat

U3Gate.repeat(n)

Creates an instruction with gate repeated n amount of times.

Parameters

n (int) – Number of times to repeat the instruction

Returns

Containing the definition.

Return type

qiskit.circuit.Instruction

Raises

CircuitError – If n < 1.

to_matrix

U3Gate.to_matrix()

Return a Numpy.array for the U3 gate.

Was this page helpful?
Report a bug or request content on GitHub.