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
282
283
284
285
286
287
288
289
290
291
292
@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(targets)
    cz(controls, targets)
    sqrt_y_adj(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
295
296
297
298
299
300
301
302
303
304
305
@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
271
272
273
274
275
276
277
278
279
@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
206
207
208
209
210
211
212
213
214
215
@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)

phased_xz

phased_xz(
    x_rad: float,
    z_rad: float,
    axis_phase_rad: float,
    qubits: IList[Qubit, Any],
)

Apply a PhasedXZ gate on a group of qubits using radian inputs.

Parameters:

Name Type Description Default
x_rad float

X rotation angle in radians.

required
z_rad float

Z rotation angle in radians.

required
axis_phase_rad float

Axis phase in radians.

required
qubits IList[Qubit, Any]

Target qubits.

required
Source code in .venv/lib/python3.12/site-packages/bloqade/native/stdlib/broadcast.py
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
@kernel
def phased_xz(
    x_rad: float,
    z_rad: float,
    axis_phase_rad: float,
    qubits: ilist.IList[qubit.Qubit, Any],
):
    """Apply a PhasedXZ gate on a group of qubits using radian inputs.

    Args:
        x_rad (float): X rotation angle in radians.
        z_rad (float): Z rotation angle in radians.
        axis_phase_rad (float): Axis phase in radians.
        qubits (ilist.IList[qubit.Qubit, Any]): Target qubits.
    """
    _phased_xz_turns(
        2.0 * _radian_to_turn(x_rad),
        2.0 * _radian_to_turn(z_rad),
        2.0 * _radian_to_turn(axis_phase_rad),
        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
83
84
85
86
87
88
89
90
91
@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
124
125
126
127
128
129
130
131
132
@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
165
166
167
168
169
170
171
172
173
@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
186
187
188
189
190
191
192
193
@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
196
197
198
199
200
201
202
203
@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
238
239
240
241
242
243
244
245
246
@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
104
105
106
107
108
109
110
111
@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
114
115
116
117
118
119
120
121
@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
145
146
147
148
149
150
151
152
@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
155
156
157
158
159
160
161
162
@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
218
219
220
221
222
223
224
225
@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
228
229
230
231
232
233
234
235
@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
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
@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
 94
 95
 96
 97
 98
 99
100
101
@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
135
136
137
138
139
140
141
142
@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
176
177
178
179
180
181
182
183
@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)