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
223
224
225
226
227
228
229
230
231
232
233
@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
236
237
238
239
240
241
242
243
244
245
246
@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
212
213
214
215
216
217
218
219
220
@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
147
148
149
150
151
152
153
154
155
156
@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)

rot

rot(
    phi: float,
    theta: float,
    omega: float,
    qubits: IList[Qubit, Any],
)

Apply a general single-qubit rotation on a group of qubits.

Parameters:

Name Type Description Default
phi float

Z rotation before Y (radians).

required
theta float

Y rotation (radians).

required
omega float

Z rotation after Y (radians).

required
qubits IList[Qubit, Any]

Target qubits.

required
Source code in .venv/lib/python3.12/site-packages/bloqade/native/stdlib/broadcast.py
180
181
182
183
184
185
186
187
188
189
190
191
192
@kernel
def rot(phi: float, theta: float, omega: float, qubits: ilist.IList[qubit.Qubit, Any]):
    """Apply a general single-qubit rotation on a group of qubits.

    Args:
        phi (float): Z rotation before Y (radians).
        theta (float): Y rotation (radians).
        omega (float): Z rotation after Y (radians).
        qubits (ilist.IList[qubit.Qubit, Any]): Target qubits.
    """
    rz(phi, qubits)
    ry(theta, qubits)
    rz(omega, 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
24
25
26
27
28
29
30
31
32
@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.
    """
    native.r(qubits, 0.0, _radian_to_turn(angle))

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
65
66
67
68
69
70
71
72
73
@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.
    """
    native.r(qubits, 0.25, _radian_to_turn(angle))

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
106
107
108
109
110
111
112
113
114
@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.
    """
    native.rz(qubits, _radian_to_turn(angle))

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
127
128
129
130
131
132
133
134
@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
137
138
139
140
141
142
143
144
@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
169
170
171
172
173
174
175
176
177
@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
45
46
47
48
49
50
51
52
@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
55
56
57
58
59
60
61
62
@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
86
87
88
89
90
91
92
93
@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
 96
 97
 98
 99
100
101
102
103
@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
159
160
161
162
163
164
165
166
@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)

u3

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

Apply the U3 gate on a group of qubits.

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
195
196
197
198
199
200
201
202
203
204
205
206
@kernel
def u3(theta: float, phi: float, lam: float, qubits: ilist.IList[qubit.Qubit, Any]):
    """Apply the U3 gate on a group of qubits.

    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.
    """
    rot(lam, theta, -lam, qubits)
    shift(phi + 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
35
36
37
38
39
40
41
42
@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
76
77
78
79
80
81
82
83
@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
117
118
119
120
121
122
123
124
@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)