Skip to content

Broadcast

cx

cx(controls: IList[Qubit, N], targets: IList[Qubit, N])

Apply a controlled-X gate on a pairs of qubits.

Parameters:

Name Type Description Default
controls IList[Qubit, N]

Control qubits.

required
targets IList[Qubit, N]

Target qubits.

required
Source code in .venv/lib/python3.12/site-packages/bloqade/native/stdlib/broadcast.py
247
248
249
250
251
252
253
254
255
256
257
@kernel
def cx(controls: ilist.IList[qubit.Qubit, N], targets: ilist.IList[qubit.Qubit, N]):
    """Apply a controlled-X gate on a pairs of qubits.

    Args:
        controls (ilist.IList[qubit.Qubit, N]): Control qubits.
        targets (ilist.IList[qubit.Qubit, N]): Target qubits.
    """
    sqrt_y_adj(targets)
    cz(controls, targets)
    sqrt_y(targets)

cy

cy(controls: IList[Qubit, N], targets: IList[Qubit, N])

Apply a controlled-Y gate on a pairs of qubits.

Parameters:

Name Type Description Default
controls IList[Qubit, N]

Control qubits.

required
targets IList[Qubit, N]

Target qubits.

required
Source code in .venv/lib/python3.12/site-packages/bloqade/native/stdlib/broadcast.py
260
261
262
263
264
265
266
267
268
269
270
@kernel
def cy(controls: ilist.IList[qubit.Qubit, N], targets: ilist.IList[qubit.Qubit, N]):
    """Apply a controlled-Y gate on a pairs of qubits.

    Args:
        controls (ilist.IList[qubit.Qubit, N]): Control qubits.
        targets (ilist.IList[qubit.Qubit, N]): Target qubits.
    """
    sqrt_x(targets)
    cz(controls, targets)
    sqrt_x_adj(targets)

cz

cz(controls: IList[Qubit, N], qubits: IList[Qubit, N])

Apply a controlled-Z gate on a pairs of qubits.

Parameters:

Name Type Description Default
controls IList[Qubit, N]

Control qubits.

required
qubits IList[Qubit, N]

Target qubits.

required
Source code in .venv/lib/python3.12/site-packages/bloqade/native/stdlib/broadcast.py
236
237
238
239
240
241
242
243
244
@kernel
def cz(controls: ilist.IList[qubit.Qubit, N], qubits: ilist.IList[qubit.Qubit, N]):
    """Apply a controlled-Z gate on a pairs of qubits.

    Args:
        controls (ilist.IList[qubit.Qubit, N]): Control qubits.
        qubits (ilist.IList[qubit.Qubit, N]): Target qubits.
    """
    native.cz(controls, qubits)

h

h(qubits: IList[Qubit, Any])

Apply a Hadamard gate on a group of qubits.

Parameters:

Name Type Description Default
qubits IList[Qubit, Any]

Target qubits.

required
Source code in .venv/lib/python3.12/site-packages/bloqade/native/stdlib/broadcast.py
171
172
173
174
175
176
177
178
179
180
@kernel
def h(qubits: ilist.IList[qubit.Qubit, Any]):
    """Apply a Hadamard gate on a group of qubits.

    Args:
        qubits (ilist.IList[qubit.Qubit, Any]): Target qubits.
    """
    s(qubits)
    sqrt_x(qubits)
    s(qubits)

rx

rx(angle: float, qubits: IList[Qubit, Any])

Apply an RX rotation gate on a group of qubits.

Parameters:

Name Type Description Default
angle float

Rotation angle in radians.

required
qubits IList[Qubit, Any]

Target qubits.

required
Source code in .venv/lib/python3.12/site-packages/bloqade/native/stdlib/broadcast.py
48
49
50
51
52
53
54
55
56
@kernel
def rx(angle: float, qubits: ilist.IList[qubit.Qubit, Any]):
    """Apply an RX rotation gate on a group of qubits.

    Args:
        angle (float): Rotation angle in radians.
        qubits (ilist.IList[qubit.Qubit, Any]): Target qubits.
    """
    _rx_turns(_radian_to_turn(angle), qubits)

ry

ry(angle: float, qubits: IList[Qubit, Any])

Apply an RY rotation gate on a group of qubits.

Parameters:

Name Type Description Default
angle float

Rotation angle in radians.

required
qubits IList[Qubit, Any]

Target qubits.

required
Source code in .venv/lib/python3.12/site-packages/bloqade/native/stdlib/broadcast.py
89
90
91
92
93
94
95
96
97
@kernel
def ry(angle: float, qubits: ilist.IList[qubit.Qubit, Any]):
    """Apply an RY rotation gate on a group of qubits.

    Args:
        angle (float): Rotation angle in radians.
        qubits (ilist.IList[qubit.Qubit, Any]): Target qubits.
    """
    _ry_turns(_radian_to_turn(angle), qubits)

rz

rz(angle: float, qubits: IList[Qubit, Any])

Apply an RZ rotation gate on a group of qubits.

Parameters:

Name Type Description Default
angle float

Rotation angle in radians.

required
qubits IList[Qubit, Any]

Target qubits.

required
Source code in .venv/lib/python3.12/site-packages/bloqade/native/stdlib/broadcast.py
130
131
132
133
134
135
136
137
138
@kernel
def rz(angle: float, qubits: ilist.IList[qubit.Qubit, Any]):
    """Apply an RZ rotation gate on a group of qubits.

    Args:
        angle (float): Rotation angle in radians.
        qubits (ilist.IList[qubit.Qubit, Any]): Target qubits.
    """
    _rz_turns(_radian_to_turn(angle), qubits)

s

s(qubits: IList[Qubit, Any])

Apply an S gate on a group of qubits.

Parameters:

Name Type Description Default
qubits IList[Qubit, Any]

Target qubits.

required
Source code in .venv/lib/python3.12/site-packages/bloqade/native/stdlib/broadcast.py
151
152
153
154
155
156
157
158
@kernel
def s(qubits: ilist.IList[qubit.Qubit, Any]):
    """Apply an S gate on a group of qubits.

    Args:
        qubits (ilist.IList[qubit.Qubit, Any]): Target qubits.
    """
    rz(math.pi / 2.0, qubits)

s_adj

s_adj(qubits: IList[Qubit, Any])

Apply the adjoint of the S gate on a group of qubits.

Parameters:

Name Type Description Default
qubits IList[Qubit, Any]

Target qubits.

required
Source code in .venv/lib/python3.12/site-packages/bloqade/native/stdlib/broadcast.py
161
162
163
164
165
166
167
168
@kernel
def s_adj(qubits: ilist.IList[qubit.Qubit, Any]):
    """Apply the adjoint of the S gate on a group of qubits.

    Args:
        qubits (ilist.IList[qubit.Qubit, Any]): Target qubits.
    """
    rz(-math.pi / 2.0, qubits)

shift

shift(angle: float, qubits: IList[Qubit, Any])

Apply a phase shift to the |1> state on a group of qubits.

Parameters:

Name Type Description Default
angle float

Phase shift angle in radians.

required
qubits IList[Qubit, Any]

Target qubits.

required
Source code in .venv/lib/python3.12/site-packages/bloqade/native/stdlib/broadcast.py
203
204
205
206
207
208
209
210
211
@kernel
def shift(angle: float, qubits: ilist.IList[qubit.Qubit, Any]):
    """Apply a phase shift to the |1> state on a group of qubits.

    Args:
        angle (float): Phase shift angle in radians.
        qubits (ilist.IList[qubit.Qubit, Any]): Target qubits.
    """
    rz(angle / 2.0, qubits)

sqrt_x

sqrt_x(qubits: IList[Qubit, Any])

Apply a sqrt(X) gate on a group of qubits.

Parameters:

Name Type Description Default
qubits IList[Qubit, Any]

Target qubits.

required
Source code in .venv/lib/python3.12/site-packages/bloqade/native/stdlib/broadcast.py
69
70
71
72
73
74
75
76
@kernel
def sqrt_x(qubits: ilist.IList[qubit.Qubit, Any]):
    """Apply a sqrt(X) gate on a group of qubits.

    Args:
        qubits (ilist.IList[qubit.Qubit, Any]): Target qubits.
    """
    rx(math.pi / 2.0, qubits)

sqrt_x_adj

sqrt_x_adj(qubits: IList[Qubit, Any])

Apply the adjoint of sqrt(X) on a group of qubits.

Parameters:

Name Type Description Default
qubits IList[Qubit, Any]

Target qubits.

required
Source code in .venv/lib/python3.12/site-packages/bloqade/native/stdlib/broadcast.py
79
80
81
82
83
84
85
86
@kernel
def sqrt_x_adj(qubits: ilist.IList[qubit.Qubit, Any]):
    """Apply the adjoint of sqrt(X) on a group of qubits.

    Args:
        qubits (ilist.IList[qubit.Qubit, Any]): Target qubits.
    """
    rx(-math.pi / 2.0, qubits)

sqrt_y

sqrt_y(qubits: IList[Qubit, Any])

Apply a sqrt(Y) gate on a group of qubits.

Parameters:

Name Type Description Default
qubits IList[Qubit, Any]

Target qubits.

required
Source code in .venv/lib/python3.12/site-packages/bloqade/native/stdlib/broadcast.py
110
111
112
113
114
115
116
117
@kernel
def sqrt_y(qubits: ilist.IList[qubit.Qubit, Any]):
    """Apply a sqrt(Y) gate on a group of qubits.

    Args:
        qubits (ilist.IList[qubit.Qubit, Any]): Target qubits.
    """
    ry(-math.pi / 2.0, qubits)

sqrt_y_adj

sqrt_y_adj(qubits: IList[Qubit, Any])

Apply the adjoint of sqrt(Y) on a group of qubits.

Parameters:

Name Type Description Default
qubits IList[Qubit, Any]

Target qubits.

required
Source code in .venv/lib/python3.12/site-packages/bloqade/native/stdlib/broadcast.py
120
121
122
123
124
125
126
127
@kernel
def sqrt_y_adj(qubits: ilist.IList[qubit.Qubit, Any]):
    """Apply the adjoint of sqrt(Y) on a group of qubits.

    Args:
        qubits (ilist.IList[qubit.Qubit, Any]): Target qubits.
    """
    ry(math.pi / 2.0, qubits)

t

t(qubits: IList[Qubit, Any])

Apply a T gate on a group of qubits.

Parameters:

Name Type Description Default
qubits IList[Qubit, Any]

Target qubits.

required
Source code in .venv/lib/python3.12/site-packages/bloqade/native/stdlib/broadcast.py
183
184
185
186
187
188
189
190
@kernel
def t(qubits: ilist.IList[qubit.Qubit, Any]):
    """Apply a T gate on a group of qubits.

    Args:
        qubits (ilist.IList[qubit.Qubit, Any]): Target qubits.
    """
    rz(math.pi / 4.0, qubits)

t_adj

t_adj(qubits: IList[Qubit, Any])

Apply the adjoint of aT gate on a group of qubits.

Parameters:

Name Type Description Default
qubits IList[Qubit, Any]

Target qubits.

required
Source code in .venv/lib/python3.12/site-packages/bloqade/native/stdlib/broadcast.py
193
194
195
196
197
198
199
200
@kernel
def t_adj(qubits: ilist.IList[qubit.Qubit, Any]):
    """Apply the adjoint of aT gate on a group of qubits.

    Args:
        qubits (ilist.IList[qubit.Qubit, Any]): Target qubits.
    """
    rz(-math.pi / 4.0, qubits)

u3

u3(
    theta: float,
    phi: float,
    lam: float,
    qubits: IList[Qubit, Any],
)

Apply the U3 gate on a group of qubits.

The applied gate is represented by the unitary matrix given by:

\[ U3(\theta, \phi, \lambda) = R_z(\phi)R_y(\theta)R_z(\lambda) \]

Parameters:

Name Type Description Default
theta float

Rotation around Y axis (radians).

required
phi float

Global phase shift component (radians).

required
lam float

Z rotations in decomposition (radians).

required
qubits IList[Qubit, Any]

Target qubits.

required
Source code in .venv/lib/python3.12/site-packages/bloqade/native/stdlib/broadcast.py
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
@kernel
def u3(theta: float, phi: float, lam: float, qubits: ilist.IList[qubit.Qubit, Any]):
    """Apply the U3 gate on a group of qubits.

    The applied gate is represented by the unitary matrix given by:

    $$ U3(\\theta, \\phi, \\lambda) = R_z(\\phi)R_y(\\theta)R_z(\\lambda) $$

    Args:
        theta (float): Rotation around Y axis (radians).
        phi (float): Global phase shift component (radians).
        lam (float): Z rotations in decomposition (radians).
        qubits (ilist.IList[qubit.Qubit, Any]): Target qubits.
    """
    _u3_turns(
        _radian_to_turn(theta), _radian_to_turn(phi), _radian_to_turn(lam), qubits
    )

x

x(qubits: IList[Qubit, Any])

Apply a Pauli-X gate on a group of qubits.

Parameters:

Name Type Description Default
qubits IList[Qubit, Any]

Target qubits.

required
Source code in .venv/lib/python3.12/site-packages/bloqade/native/stdlib/broadcast.py
59
60
61
62
63
64
65
66
@kernel
def x(qubits: ilist.IList[qubit.Qubit, Any]):
    """Apply a Pauli-X gate on a group of qubits.

    Args:
        qubits (ilist.IList[qubit.Qubit, Any]): Target qubits.
    """
    rx(math.pi, qubits)

y

y(qubits: IList[Qubit, Any])

Apply a Pauli-Y gate on a group of qubits.

Parameters:

Name Type Description Default
qubits IList[Qubit, Any]

Target qubits.

required
Source code in .venv/lib/python3.12/site-packages/bloqade/native/stdlib/broadcast.py
100
101
102
103
104
105
106
107
@kernel
def y(qubits: ilist.IList[qubit.Qubit, Any]):
    """Apply a Pauli-Y gate on a group of qubits.

    Args:
        qubits (ilist.IList[qubit.Qubit, Any]): Target qubits.
    """
    ry(math.pi, qubits)

z

z(qubits: IList[Qubit, Any])

Apply a Pauli-Z gate on a group of qubits.

Parameters:

Name Type Description Default
qubits IList[Qubit, Any]

Target qubits.

required
Source code in .venv/lib/python3.12/site-packages/bloqade/native/stdlib/broadcast.py
141
142
143
144
145
146
147
148
@kernel
def z(qubits: ilist.IList[qubit.Qubit, Any]):
    """Apply a Pauli-Z gate on a group of qubits.

    Args:
        qubits (ilist.IList[qubit.Qubit, Any]): Target qubits.
    """
    rz(math.pi, qubits)