Update app.py
Browse files
app.py
CHANGED
|
@@ -196,11 +196,28 @@ with gr.Blocks(theme=theme, css=CSS, title="Quread.ai — State Vector Studio")
|
|
| 196 |
gr.Markdown("<div class='section-title'>Gate Palette</div>")
|
| 197 |
with gr.Row():
|
| 198 |
gate_H = gr.Button("H")
|
|
|
|
|
|
|
| 199 |
gate_X = gr.Button("X")
|
|
|
|
| 200 |
gate_Y = gr.Button("Y")
|
| 201 |
gate_Z = gr.Button("Z")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 202 |
gate_S = gr.Button("S")
|
| 203 |
-
|
|
|
|
| 204 |
|
| 205 |
target = gr.Dropdown(choices=[0, 1], value=0, label="Target qubit")
|
| 206 |
|
|
@@ -283,11 +300,29 @@ with gr.Blocks(theme=theme, css=CSS, title="Quread.ai — State Vector Studio")
|
|
| 283 |
)
|
| 284 |
|
| 285 |
gate_H.click(fn=lambda: set_gate("H"), outputs=[selected_gate_state, status])
|
|
|
|
|
|
|
|
|
|
| 286 |
gate_X.click(fn=lambda: set_gate("X"), outputs=[selected_gate_state, status])
|
| 287 |
gate_Y.click(fn=lambda: set_gate("Y"), outputs=[selected_gate_state, status])
|
| 288 |
gate_Z.click(fn=lambda: set_gate("Z"), outputs=[selected_gate_state, status])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 289 |
gate_S.click(fn=lambda: set_gate("S"), outputs=[selected_gate_state, status])
|
| 290 |
-
|
|
|
|
| 291 |
|
| 292 |
apply_gate_btn.click(
|
| 293 |
fn=apply_selected_gate,
|
|
|
|
| 196 |
gr.Markdown("<div class='section-title'>Gate Palette</div>")
|
| 197 |
with gr.Row():
|
| 198 |
gate_H = gr.Button("H")
|
| 199 |
+
gate_T = gr.Button("T")
|
| 200 |
+
gate_Tdg = gr.Button("T†")
|
| 201 |
gate_X = gr.Button("X")
|
| 202 |
+
with gr.Row():
|
| 203 |
gate_Y = gr.Button("Y")
|
| 204 |
gate_Z = gr.Button("Z")
|
| 205 |
+
gate_sx = gr.Button("√X")
|
| 206 |
+
gate_sz = gr.Button("√Z")
|
| 207 |
+
with gr.Row():
|
| 208 |
+
gate_rx_pi = gr.Button("Rx(π)")
|
| 209 |
+
gate_rx_pi2 = gr.Button("Rx(π/2)")
|
| 210 |
+
gate_ry_pi = gr.Button("Ry(π)")
|
| 211 |
+
gate_ry_pi2 = gr.Button("Ry(π/2)")
|
| 212 |
+
with gr.Row():
|
| 213 |
+
gate_rz_pi = gr.Button("Rz(π)")
|
| 214 |
+
gate_rz_pi2 = gr.Button("Rz(π/2)")
|
| 215 |
+
gate_I = gr.Button("I")
|
| 216 |
+
gate_Idg = gr.Button("I†") # will map to I
|
| 217 |
+
with gr.Row():
|
| 218 |
gate_S = gr.Button("S")
|
| 219 |
+
gate_Sdg = gr.Button("S†")
|
| 220 |
+
|
| 221 |
|
| 222 |
target = gr.Dropdown(choices=[0, 1], value=0, label="Target qubit")
|
| 223 |
|
|
|
|
| 300 |
)
|
| 301 |
|
| 302 |
gate_H.click(fn=lambda: set_gate("H"), outputs=[selected_gate_state, status])
|
| 303 |
+
gate_T.click(fn=lambda: set_gate("T"), outputs=[selected_gate_state, status])
|
| 304 |
+
gate_Tdg.click(fn=lambda: set_gate("T†"), outputs=[selected_gate_state, status])
|
| 305 |
+
|
| 306 |
gate_X.click(fn=lambda: set_gate("X"), outputs=[selected_gate_state, status])
|
| 307 |
gate_Y.click(fn=lambda: set_gate("Y"), outputs=[selected_gate_state, status])
|
| 308 |
gate_Z.click(fn=lambda: set_gate("Z"), outputs=[selected_gate_state, status])
|
| 309 |
+
|
| 310 |
+
gate_sx.click(fn=lambda: set_gate("√X"), outputs=[selected_gate_state, status])
|
| 311 |
+
gate_sz.click(fn=lambda: set_gate("√Z"), outputs=[selected_gate_state, status])
|
| 312 |
+
|
| 313 |
+
gate_rx_pi.click(fn=lambda: set_gate("RX(π)"), outputs=[selected_gate_state, status])
|
| 314 |
+
gate_rx_pi2.click(fn=lambda: set_gate("RX(π/2)"), outputs=[selected_gate_state, status])
|
| 315 |
+
gate_ry_pi.click(fn=lambda: set_gate("RY(π)"), outputs=[selected_gate_state, status])
|
| 316 |
+
gate_ry_pi2.click(fn=lambda: set_gate("RY(π/2)"), outputs=[selected_gate_state, status])
|
| 317 |
+
gate_rz_pi.click(fn=lambda: set_gate("RZ(π)"), outputs=[selected_gate_state, status])
|
| 318 |
+
gate_rz_pi2.click(fn=lambda: set_gate("RZ(π/2)"), outputs=[selected_gate_state, status])
|
| 319 |
+
|
| 320 |
+
gate_I.click(fn=lambda: set_gate("I"), outputs=[selected_gate_state, status])
|
| 321 |
+
gate_Idg.click(fn=lambda: set_gate("I"), outputs=[selected_gate_state, status]) # treat I† as I
|
| 322 |
+
|
| 323 |
gate_S.click(fn=lambda: set_gate("S"), outputs=[selected_gate_state, status])
|
| 324 |
+
gate_Sdg.click(fn=lambda: set_gate("S†"), outputs=[selected_gate_state, status])
|
| 325 |
+
|
| 326 |
|
| 327 |
apply_gate_btn.click(
|
| 328 |
fn=apply_selected_gate,
|