N/M standard library reference
Built-in circuit and observable modules rendered from the same registry used by imports, runtime expansion, exports, and editor tooling.
std.bellcircuitv0.1bell
Two-qubit Bell-pair preparation.
use std.bell; bell(q);bell
1circuit bell(q: QReg<2>) {2 H(q[0]);3 CNOT(q[0], q[1]);4}std.ghzcircuitv0.1ghz
Three-qubit GHZ preparation.
use std.ghz; ghz(q);ghz
1circuit ghz(q: QReg<3>) {2 H(q[0]);3 CNOT(q[0], q[1]);4 CNOT(q[1], q[2]);5}std.hadamard_statecircuitv0.1hadamard_state
Single-qubit |+> state preparation for superposition experiments.
use std.hadamard_state; hadamard_state(q);hadamard_state
1circuit hadamard_state(q: QReg<1>) {2 H(q[0]);3}std.qft2circuitv0.1qft2
Two-qubit quantum Fourier transform helper.
use std.qft2; qft2(q);qft2
1circuit qft2(q: QReg<2>) {2 H(q[0]);3 CP(q[0], q[1], PI / 2);4 H(q[1]);5 SWAP(q[0], q[1]);6}algorithms.grover2circuitv0.1grover2
Two-qubit Grover iteration with a |11> phase oracle and diffusion step.
use algorithms.grover2; grover2(q);grover2
1circuit grover2(q: QReg<2>) {2 H(q[0]);3 H(q[1]);4 CZ(q[0], q[1]);5 H(q[0]);6 H(q[1]);7 X(q[0]);8 X(q[1]);9 CZ(q[0], q[1]);10 X(q[0]);11 X(q[1]);12 H(q[0]);13 H(q[1]);14}algorithms.phase_kickbackcircuitv0.1phase_kickback
Prepare a control superposition and a |-> ancilla, then demonstrate CNOT phase kickback.
use algorithms.phase_kickback; phase_kickback(q);phase_kickback
1circuit phase_kickback(q: QReg<2>) {2 H(q[0]);3 X(q[1]);4 H(q[1]);5 CNOT(q[0], q[1]);6}algorithms.deutsch_jozsa2circuitv0.2deutsch_jozsa2
Two-qubit Deutsch-Jozsa circuit for a fixed balanced f(x)=x oracle.
use algorithms.deutsch_jozsa2@0.2; deutsch_jozsa2(q);deutsch_jozsa2
1circuit deutsch_jozsa2(q: QReg<2>) {2 X(q[1]);3 H(q[0]);4 H(q[1]);5 CNOT(q[0], q[1]);6 H(q[0]);7}algorithms.bernstein_vazirani3circuitv0.2bernstein_vazirani3
Four-qubit Bernstein-Vazirani circuit that recovers the fixed three-bit secret 101.
use algorithms.bernstein_vazirani3@0.2; bernstein_vazirani3(q);bernstein_vazirani3
1circuit bernstein_vazirani3(q: QReg<4>) {2 X(q[3]);3 H(q[0]);4 H(q[1]);5 H(q[2]);6 H(q[3]);7 CNOT(q[0], q[3]);8 CNOT(q[2], q[3]);9 H(q[0]);10 H(q[1]);11 H(q[2]);12}algorithms.swap_testcircuitv0.2swap_test
Three-qubit destructive-free overlap test for states prepared on q[1] and q[2].
use algorithms.swap_test@0.2; swap_test(q);swap_test
1circuit swap_test(q: QReg<3>) {2 H(q[0]);3 CSWAP(q[0], q[1], q[2]);4 H(q[0]);5}algorithms.hadamard_testcircuitv0.2hadamard_test
Two-qubit Hadamard test for the real expectation of Z on a caller-prepared target.
use algorithms.hadamard_test@0.2; hadamard_test(q);hadamard_test
1circuit hadamard_test(q: QReg<2>) {2 H(q[0]);3 CZ(q[0], q[1]);4 H(q[0]);5}algorithms.phase_estimation2circuitv0.2phase_estimation2
Two-counting-qubit phase estimation for the fixed P(PI/2) eigenphase on |1>.
use algorithms.phase_estimation2@0.2; phase_estimation2(q);phase_estimation2
1circuit phase_estimation2(q: QReg<3>) {2 X(q[2]);3 H(q[0]);4 H(q[1]);5 CP(q[0], q[2], PI);6 CP(q[1], q[2], PI / 2);7 SWAP(q[0], q[1]);8 H(q[1]);9 CP(q[0], q[1], -PI / 2);10 H(q[0]);11}algorithms.simon2circuitv0.3simon2
Bounded Simon circuit for the fixed hidden XOR mask 11 with one compressed output qubit.
use algorithms.simon2@0.3; simon2(q);simon2
1circuit simon2(q: QReg<3>) {2 H(q[0]);3 H(q[1]);4 CNOT(q[0], q[2]);5 CNOT(q[1], q[2]);6 H(q[0]);7 H(q[1]);8}algorithms.superdense11circuitv0.3superdense11
Two-qubit superdense-coding circuit that encodes and decodes the fixed classical message 11.
use algorithms.superdense11@0.3; superdense11(q);superdense11
1circuit superdense11(q: QReg<2>) {2 H(q[0]);3 CNOT(q[0], q[1]);4 X(q[0]);5 Z(q[0]);6 CNOT(q[0], q[1]);7 H(q[0]);8}algorithms.chsh_paircircuitv0.3chsh_pair
Parameterized Bell-pair preparation and local Y rotations for a bounded CHSH expectation witness.
use algorithms.chsh_pair@0.3; chsh_pair(q, aliceAngle, bobAngle);chsh_pair
1circuit chsh_pair(q: QReg<2>, aliceAngle: Angle, bobAngle: Angle) {2 H(q[0]);3 CNOT(q[0], q[1]);4 Ry(q[0], aliceAngle);5 Ry(q[1], bobAngle);6}algorithms.coined_walk_step3circuitv0.3coined_walk_step3
One bounded coined-walk step that entangles a coin qubit with two one-hot direction qubits.
use algorithms.coined_walk_step3@0.3; coined_walk_step3(q);coined_walk_step3
1circuit coined_walk_step3(q: QReg<3>) {2 H(q[0]);3 CNOT(q[0], q[1]);4 X(q[0]);5 CNOT(q[0], q[2]);6 X(q[0]);7}algorithms.teleportation3circuitv0.4teleportation3
Three-qubit teleportation unitary prefix; the caller performs the two final measurements and verified X/Z feed-forward corrections.
use algorithms.teleportation3@0.4; teleportation3(q);teleportation3
1circuit teleportation3(q: QReg<3>) {2 H(q[1]);3 CNOT(q[1], q[2]);4 CNOT(q[0], q[1]);5 H(q[0]);6}algorithms.entanglement_swap4circuitv0.4entanglement_swap4
Four-qubit entanglement-swapping unitary prefix with outer qubits q[0..1] and measured inner qubits q[2..3].
use algorithms.entanglement_swap4@0.4; entanglement_swap4(q);entanglement_swap4
1circuit entanglement_swap4(q: QReg<4>) {2 H(q[0]);3 CNOT(q[0], q[2]);4 H(q[3]);5 CNOT(q[3], q[1]);6 CNOT(q[2], q[3]);7 H(q[2]);8}qec.perfect5_codecircuitv0.4perfect5_code
Prepare the logical |0> state of the [[5,1,3]] perfect code on five data qubits while reserving four syndrome qubits for the caller.
use qec.perfect5_code@0.4; perfect5_code(q);perfect5_code
1circuit perfect5_code(q: QReg<9>) {2 H(q[0]);3 H(q[1]);4 H(q[2]);5 H(q[3]);6 H(q[4]);7 CZ(q[0], q[1]);8 CZ(q[0], q[2]);9 CZ(q[0], q[3]);10 CZ(q[0], q[4]);11 CZ(q[1], q[3]);12 CZ(q[2], q[3]);13 CZ(q[2], q[4]);14 H(q[0]);15 X(q[1]);16 X(q[2]);17 X(q[3]);18 X(q[4]);19}qec.steane7_codecircuitv0.4steane7_code
Prepare the logical |0> state of the [[7,1,3]] Steane code on seven data qubits while reserving six syndrome qubits for the caller.
use qec.steane7_code@0.4; steane7_code(q);steane7_code
1circuit steane7_code(q: QReg<13>) {2 H(q[0]);3 H(q[1]);4 H(q[2]);5 H(q[3]);6 H(q[4]);7 H(q[5]);8 H(q[6]);9 CZ(q[0], q[3]);10 CZ(q[0], q[5]);11 CZ(q[0], q[6]);12 CZ(q[1], q[3]);13 CZ(q[1], q[5]);14 CZ(q[2], q[3]);15 CZ(q[2], q[6]);16 CZ(q[4], q[5]);17 CZ(q[4], q[6]);18 H(q[0]);19 H(q[1]);20 H(q[2]);21 H(q[4]);22}qec.surface_d3_patchcircuitv0.4surface_d3_patch
Prepare a logical |0> state for the fixed [[9,1,3]] rotated surface-code patch while reserving eight syndrome qubits.
use qec.surface_d3_patch@0.4; surface_d3_patch(q);surface_d3_patch
1circuit surface_d3_patch(q: QReg<17>) {2 H(q[0]);3 H(q[1]);4 H(q[2]);5 H(q[3]);6 H(q[4]);7 H(q[5]);8 H(q[6]);9 H(q[7]);10 H(q[8]);11 CZ(q[0], q[3]);12 CZ(q[0], q[7]);13 CZ(q[1], q[5]);14 CZ(q[1], q[8]);15 CZ(q[2], q[5]);16 CZ(q[2], q[8]);17 CZ(q[4], q[5]);18 CZ(q[4], q[7]);19 CZ(q[4], q[8]);20 CZ(q[6], q[7]);21 H(q[0]);22 H(q[1]);23 H(q[2]);24 H(q[4]);25 H(q[6]);26}qec.repetition_code25circuitv0.4repetition_code25
Prepare the logical |0> state of the fixed 13-data-qubit repetition code while reserving twelve syndrome qubits.
use qec.repetition_code25@0.4; repetition_code25(q);repetition_code25
1circuit repetition_code25(q: QReg<25>) {2 Z(q[0]);3 Z(q[0]);4}states.ghz100circuitv0.4ghz100
Prepare the fixed 100-qubit GHZ stabilizer state with one Hadamard and a 99-CNOT chain.
use states.ghz100@0.4; ghz100(q);ghz100
1circuit ghz100(q: QReg<100>) {2 H(q[0]);3 CNOT(q[0], q[1]);4 CNOT(q[1], q[2]);5 CNOT(q[2], q[3]);6 CNOT(q[3], q[4]);7 CNOT(q[4], q[5]);8 CNOT(q[5], q[6]);9 CNOT(q[6], q[7]);10 CNOT(q[7], q[8]);11 CNOT(q[8], q[9]);12 CNOT(q[9], q[10]);13 CNOT(q[10], q[11]);14 CNOT(q[11], q[12]);15 CNOT(q[12], q[13]);16 CNOT(q[13], q[14]);17 CNOT(q[14], q[15]);18 CNOT(q[15], q[16]);19 CNOT(q[16], q[17]);20 CNOT(q[17], q[18]);21 CNOT(q[18], q[19]);22 CNOT(q[19], q[20]);23 CNOT(q[20], q[21]);24 CNOT(q[21], q[22]);25 CNOT(q[22], q[23]);26 CNOT(q[23], q[24]);27 CNOT(q[24], q[25]);28 CNOT(q[25], q[26]);29 CNOT(q[26], q[27]);30 CNOT(q[27], q[28]);31 CNOT(q[28], q[29]);32 CNOT(q[29], q[30]);33 CNOT(q[30], q[31]);34 CNOT(q[31], q[32]);35 CNOT(q[32], q[33]);36 CNOT(q[33], q[34]);37 CNOT(q[34], q[35]);38 CNOT(q[35], q[36]);39 CNOT(q[36], q[37]);40 CNOT(q[37], q[38]);41 CNOT(q[38], q[39]);42 CNOT(q[39], q[40]);43 CNOT(q[40], q[41]);44 CNOT(q[41], q[42]);45 CNOT(q[42], q[43]);46 CNOT(q[43], q[44]);47 CNOT(q[44], q[45]);48 CNOT(q[45], q[46]);49 CNOT(q[46], q[47]);50 CNOT(q[47], q[48]);51 CNOT(q[48], q[49]);52 CNOT(q[49], q[50]);53 CNOT(q[50], q[51]);54 CNOT(q[51], q[52]);55 CNOT(q[52], q[53]);56 CNOT(q[53], q[54]);57 CNOT(q[54], q[55]);58 CNOT(q[55], q[56]);59 CNOT(q[56], q[57]);60 CNOT(q[57], q[58]);61 CNOT(q[58], q[59]);62 CNOT(q[59], q[60]);63 CNOT(q[60], q[61]);64 CNOT(q[61], q[62]);65 CNOT(q[62], q[63]);66 CNOT(q[63], q[64]);67 CNOT(q[64], q[65]);68 CNOT(q[65], q[66]);69 CNOT(q[66], q[67]);70 CNOT(q[67], q[68]);71 CNOT(q[68], q[69]);72 CNOT(q[69], q[70]);73 CNOT(q[70], q[71]);74 CNOT(q[71], q[72]);75 CNOT(q[72], q[73]);76 CNOT(q[73], q[74]);77 CNOT(q[74], q[75]);78 CNOT(q[75], q[76]);79 CNOT(q[76], q[77]);80 CNOT(q[77], q[78]);81 CNOT(q[78], q[79]);82 CNOT(q[79], q[80]);83 CNOT(q[80], q[81]);84 CNOT(q[81], q[82]);85 CNOT(q[82], q[83]);86 CNOT(q[83], q[84]);87 CNOT(q[84], q[85]);88 CNOT(q[85], q[86]);89 CNOT(q[86], q[87]);90 CNOT(q[87], q[88]);91 CNOT(q[88], q[89]);92 CNOT(q[89], q[90]);93 CNOT(q[90], q[91]);94 CNOT(q[91], q[92]);95 CNOT(q[92], q[93]);96 CNOT(q[93], q[94]);97 CNOT(q[94], q[95]);98 CNOT(q[95], q[96]);99 CNOT(q[96], q[97]);100 CNOT(q[97], q[98]);101 CNOT(q[98], q[99]);102}states.graph_state100circuitv0.4graph_state100
Prepare the fixed 100-node line graph state with textual exact adjacency available in the stabilizer scale view.
use states.graph_state100@0.4; graph_state100(q);graph_state100
1circuit graph_state100(q: QReg<100>) {2 H(q[0]);3 H(q[1]);4 H(q[2]);5 H(q[3]);6 H(q[4]);7 H(q[5]);8 H(q[6]);9 H(q[7]);10 H(q[8]);11 H(q[9]);12 H(q[10]);13 H(q[11]);14 H(q[12]);15 H(q[13]);16 H(q[14]);17 H(q[15]);18 H(q[16]);19 H(q[17]);20 H(q[18]);21 H(q[19]);22 H(q[20]);23 H(q[21]);24 H(q[22]);25 H(q[23]);26 H(q[24]);27 H(q[25]);28 H(q[26]);29 H(q[27]);30 H(q[28]);31 H(q[29]);32 H(q[30]);33 H(q[31]);34 H(q[32]);35 H(q[33]);36 H(q[34]);37 H(q[35]);38 H(q[36]);39 H(q[37]);40 H(q[38]);41 H(q[39]);42 H(q[40]);43 H(q[41]);44 H(q[42]);45 H(q[43]);46 H(q[44]);47 H(q[45]);48 H(q[46]);49 H(q[47]);50 H(q[48]);51 H(q[49]);52 H(q[50]);53 H(q[51]);54 H(q[52]);55 H(q[53]);56 H(q[54]);57 H(q[55]);58 H(q[56]);59 H(q[57]);60 H(q[58]);61 H(q[59]);62 H(q[60]);63 H(q[61]);64 H(q[62]);65 H(q[63]);66 H(q[64]);67 H(q[65]);68 H(q[66]);69 H(q[67]);70 H(q[68]);71 H(q[69]);72 H(q[70]);73 H(q[71]);74 H(q[72]);75 H(q[73]);76 H(q[74]);77 H(q[75]);78 H(q[76]);79 H(q[77]);80 H(q[78]);81 H(q[79]);82 H(q[80]);83 H(q[81]);84 H(q[82]);85 H(q[83]);86 H(q[84]);87 H(q[85]);88 H(q[86]);89 H(q[87]);90 H(q[88]);91 H(q[89]);92 H(q[90]);93 H(q[91]);94 H(q[92]);95 H(q[93]);96 H(q[94]);97 H(q[95]);98 H(q[96]);99 H(q[97]);100 H(q[98]);101 H(q[99]);102 CZ(q[0], q[1]);103 CZ(q[1], q[2]);104 CZ(q[2], q[3]);105 CZ(q[3], q[4]);106 CZ(q[4], q[5]);107 CZ(q[5], q[6]);108 CZ(q[6], q[7]);109 CZ(q[7], q[8]);110 CZ(q[8], q[9]);111 CZ(q[9], q[10]);112 CZ(q[10], q[11]);113 CZ(q[11], q[12]);114 CZ(q[12], q[13]);115 CZ(q[13], q[14]);116 CZ(q[14], q[15]);117 CZ(q[15], q[16]);118 CZ(q[16], q[17]);119 CZ(q[17], q[18]);120 CZ(q[18], q[19]);121 CZ(q[19], q[20]);122 CZ(q[20], q[21]);123 CZ(q[21], q[22]);124 CZ(q[22], q[23]);125 CZ(q[23], q[24]);126 CZ(q[24], q[25]);127 CZ(q[25], q[26]);128 CZ(q[26], q[27]);129 CZ(q[27], q[28]);130 CZ(q[28], q[29]);131 CZ(q[29], q[30]);132 CZ(q[30], q[31]);133 CZ(q[31], q[32]);134 CZ(q[32], q[33]);135 CZ(q[33], q[34]);136 CZ(q[34], q[35]);137 CZ(q[35], q[36]);138 CZ(q[36], q[37]);139 CZ(q[37], q[38]);140 CZ(q[38], q[39]);141 CZ(q[39], q[40]);142 CZ(q[40], q[41]);143 CZ(q[41], q[42]);144 CZ(q[42], q[43]);145 CZ(q[43], q[44]);146 CZ(q[44], q[45]);147 CZ(q[45], q[46]);148 CZ(q[46], q[47]);149 CZ(q[47], q[48]);150 CZ(q[48], q[49]);151 CZ(q[49], q[50]);152 CZ(q[50], q[51]);153 CZ(q[51], q[52]);154 CZ(q[52], q[53]);155 CZ(q[53], q[54]);156 CZ(q[54], q[55]);157 CZ(q[55], q[56]);158 CZ(q[56], q[57]);159 CZ(q[57], q[58]);160 CZ(q[58], q[59]);161 CZ(q[59], q[60]);162 CZ(q[60], q[61]);163 CZ(q[61], q[62]);164 CZ(q[62], q[63]);165 CZ(q[63], q[64]);166 CZ(q[64], q[65]);167 CZ(q[65], q[66]);168 CZ(q[66], q[67]);169 CZ(q[67], q[68]);170 CZ(q[68], q[69]);171 CZ(q[69], q[70]);172 CZ(q[70], q[71]);173 CZ(q[71], q[72]);174 CZ(q[72], q[73]);175 CZ(q[73], q[74]);176 CZ(q[74], q[75]);177 CZ(q[75], q[76]);178 CZ(q[76], q[77]);179 CZ(q[77], q[78]);180 CZ(q[78], q[79]);181 CZ(q[79], q[80]);182 CZ(q[80], q[81]);183 CZ(q[81], q[82]);184 CZ(q[82], q[83]);185 CZ(q[83], q[84]);186 CZ(q[84], q[85]);187 CZ(q[85], q[86]);188 CZ(q[86], q[87]);189 CZ(q[87], q[88]);190 CZ(q[88], q[89]);191 CZ(q[89], q[90]);192 CZ(q[90], q[91]);193 CZ(q[91], q[92]);194 CZ(q[92], q[93]);195 CZ(q[93], q[94]);196 CZ(q[94], q[95]);197 CZ(q[95], q[96]);198 CZ(q[96], q[97]);199 CZ(q[97], q[98]);200 CZ(q[98], q[99]);201}nonlocality.mermin_ghz3circuitv0.4mermin_ghz3
Prepare a three-qubit GHZ state for the exact local XXX/XYY/YXY/YYX Mermin witness.
use nonlocality.mermin_ghz3@0.4; mermin_ghz3(q);mermin_ghz3
1circuit mermin_ghz3(q: QReg<3>) {2 H(q[0]);3 CNOT(q[0], q[1]);4 CNOT(q[1], q[2]);5}benchmark.stabilizer_rb100circuitv0.4stabilizer_rb100
Apply a deterministic 398-gate Clifford round trip on 100 qubits as a simulator regression workload, not a hardware RB fidelity estimate.
use benchmark.stabilizer_rb100@0.4; stabilizer_rb100(q);stabilizer_rb100
1circuit stabilizer_rb100(q: QReg<100>) {2 H(q[0]);3 H(q[1]);4 H(q[2]);5 H(q[3]);6 H(q[4]);7 H(q[5]);8 H(q[6]);9 H(q[7]);10 H(q[8]);11 H(q[9]);12 H(q[10]);13 H(q[11]);14 H(q[12]);15 H(q[13]);16 H(q[14]);17 H(q[15]);18 H(q[16]);19 H(q[17]);20 H(q[18]);21 H(q[19]);22 H(q[20]);23 H(q[21]);24 H(q[22]);25 H(q[23]);26 H(q[24]);27 H(q[25]);28 H(q[26]);29 H(q[27]);30 H(q[28]);31 H(q[29]);32 H(q[30]);33 H(q[31]);34 H(q[32]);35 H(q[33]);36 H(q[34]);37 H(q[35]);38 H(q[36]);39 H(q[37]);40 H(q[38]);41 H(q[39]);42 H(q[40]);43 H(q[41]);44 H(q[42]);45 H(q[43]);46 H(q[44]);47 H(q[45]);48 H(q[46]);49 H(q[47]);50 H(q[48]);51 H(q[49]);52 H(q[50]);53 H(q[51]);54 H(q[52]);55 H(q[53]);56 H(q[54]);57 H(q[55]);58 H(q[56]);59 H(q[57]);60 H(q[58]);61 H(q[59]);62 H(q[60]);63 H(q[61]);64 H(q[62]);65 H(q[63]);66 H(q[64]);67 H(q[65]);68 H(q[66]);69 H(q[67]);70 H(q[68]);71 H(q[69]);72 H(q[70]);73 H(q[71]);74 H(q[72]);75 H(q[73]);76 H(q[74]);77 H(q[75]);78 H(q[76]);79 H(q[77]);80 H(q[78]);81 H(q[79]);82 H(q[80]);83 H(q[81]);84 H(q[82]);85 H(q[83]);86 H(q[84]);87 H(q[85]);88 H(q[86]);89 H(q[87]);90 H(q[88]);91 H(q[89]);92 H(q[90]);93 H(q[91]);94 H(q[92]);95 H(q[93]);96 H(q[94]);97 H(q[95]);98 H(q[96]);99 H(q[97]);100 H(q[98]);101 H(q[99]);102 H(q[0]);103 H(q[1]);104 H(q[2]);105 H(q[3]);106 H(q[4]);107 H(q[5]);108 H(q[6]);109 H(q[7]);110 H(q[8]);111 H(q[9]);112 H(q[10]);113 H(q[11]);114 H(q[12]);115 H(q[13]);116 H(q[14]);117 H(q[15]);118 H(q[16]);119 H(q[17]);120 H(q[18]);121 H(q[19]);122 H(q[20]);123 H(q[21]);124 H(q[22]);125 H(q[23]);126 H(q[24]);127 H(q[25]);128 H(q[26]);129 H(q[27]);130 H(q[28]);131 H(q[29]);132 H(q[30]);133 H(q[31]);134 H(q[32]);135 H(q[33]);136 H(q[34]);137 H(q[35]);138 H(q[36]);139 H(q[37]);140 H(q[38]);141 H(q[39]);142 H(q[40]);143 H(q[41]);144 H(q[42]);145 H(q[43]);146 H(q[44]);147 H(q[45]);148 H(q[46]);149 H(q[47]);150 H(q[48]);151 H(q[49]);152 H(q[50]);153 H(q[51]);154 H(q[52]);155 H(q[53]);156 H(q[54]);157 H(q[55]);158 H(q[56]);159 H(q[57]);160 H(q[58]);161 H(q[59]);162 H(q[60]);163 H(q[61]);164 H(q[62]);165 H(q[63]);166 H(q[64]);167 H(q[65]);168 H(q[66]);169 H(q[67]);170 H(q[68]);171 H(q[69]);172 H(q[70]);173 H(q[71]);174 H(q[72]);175 H(q[73]);176 H(q[74]);177 H(q[75]);178 H(q[76]);179 H(q[77]);180 H(q[78]);181 H(q[79]);182 H(q[80]);183 H(q[81]);184 H(q[82]);185 H(q[83]);186 H(q[84]);187 H(q[85]);188 H(q[86]);189 H(q[87]);190 H(q[88]);191 H(q[89]);192 H(q[90]);193 H(q[91]);194 H(q[92]);195 H(q[93]);196 H(q[94]);197 H(q[95]);198 H(q[96]);199 H(q[97]);200 H(q[98]);201 H(q[99]);202 CZ(q[0], q[1]);203 CZ(q[1], q[2]);204 CZ(q[2], q[3]);205 CZ(q[3], q[4]);206 CZ(q[4], q[5]);207 CZ(q[5], q[6]);208 CZ(q[6], q[7]);209 CZ(q[7], q[8]);210 CZ(q[8], q[9]);211 CZ(q[9], q[10]);212 CZ(q[10], q[11]);213 CZ(q[11], q[12]);214 CZ(q[12], q[13]);215 CZ(q[13], q[14]);216 CZ(q[14], q[15]);217 CZ(q[15], q[16]);218 CZ(q[16], q[17]);219 CZ(q[17], q[18]);220 CZ(q[18], q[19]);221 CZ(q[19], q[20]);222 CZ(q[20], q[21]);223 CZ(q[21], q[22]);224 CZ(q[22], q[23]);225 CZ(q[23], q[24]);226 CZ(q[24], q[25]);227 CZ(q[25], q[26]);228 CZ(q[26], q[27]);229 CZ(q[27], q[28]);230 CZ(q[28], q[29]);231 CZ(q[29], q[30]);232 CZ(q[30], q[31]);233 CZ(q[31], q[32]);234 CZ(q[32], q[33]);235 CZ(q[33], q[34]);236 CZ(q[34], q[35]);237 CZ(q[35], q[36]);238 CZ(q[36], q[37]);239 CZ(q[37], q[38]);240 CZ(q[38], q[39]);241 CZ(q[39], q[40]);242 CZ(q[40], q[41]);243 CZ(q[41], q[42]);244 CZ(q[42], q[43]);245 CZ(q[43], q[44]);246 CZ(q[44], q[45]);247 CZ(q[45], q[46]);248 CZ(q[46], q[47]);249 CZ(q[47], q[48]);250 CZ(q[48], q[49]);251 CZ(q[49], q[50]);252 CZ(q[50], q[51]);253 CZ(q[51], q[52]);254 CZ(q[52], q[53]);255 CZ(q[53], q[54]);256 CZ(q[54], q[55]);257 CZ(q[55], q[56]);258 CZ(q[56], q[57]);259 CZ(q[57], q[58]);260 CZ(q[58], q[59]);261 CZ(q[59], q[60]);262 CZ(q[60], q[61]);263 CZ(q[61], q[62]);264 CZ(q[62], q[63]);265 CZ(q[63], q[64]);266 CZ(q[64], q[65]);267 CZ(q[65], q[66]);268 CZ(q[66], q[67]);269 CZ(q[67], q[68]);270 CZ(q[68], q[69]);271 CZ(q[69], q[70]);272 CZ(q[70], q[71]);273 CZ(q[71], q[72]);274 CZ(q[72], q[73]);275 CZ(q[73], q[74]);276 CZ(q[74], q[75]);277 CZ(q[75], q[76]);278 CZ(q[76], q[77]);279 CZ(q[77], q[78]);280 CZ(q[78], q[79]);281 CZ(q[79], q[80]);282 CZ(q[80], q[81]);283 CZ(q[81], q[82]);284 CZ(q[82], q[83]);285 CZ(q[83], q[84]);286 CZ(q[84], q[85]);287 CZ(q[85], q[86]);288 CZ(q[86], q[87]);289 CZ(q[87], q[88]);290 CZ(q[88], q[89]);291 CZ(q[89], q[90]);292 CZ(q[90], q[91]);293 CZ(q[91], q[92]);294 CZ(q[92], q[93]);295 CZ(q[93], q[94]);296 CZ(q[94], q[95]);297 CZ(q[95], q[96]);298 CZ(q[96], q[97]);299 CZ(q[97], q[98]);300 CZ(q[98], q[99]);301 CZ(q[0], q[1]);302 CZ(q[1], q[2]);303 CZ(q[2], q[3]);304 CZ(q[3], q[4]);305 CZ(q[4], q[5]);306 CZ(q[5], q[6]);307 CZ(q[6], q[7]);308 CZ(q[7], q[8]);309 CZ(q[8], q[9]);310 CZ(q[9], q[10]);311 CZ(q[10], q[11]);312 CZ(q[11], q[12]);313 CZ(q[12], q[13]);314 CZ(q[13], q[14]);315 CZ(q[14], q[15]);316 CZ(q[15], q[16]);317 CZ(q[16], q[17]);318 CZ(q[17], q[18]);319 CZ(q[18], q[19]);320 CZ(q[19], q[20]);321 CZ(q[20], q[21]);322 CZ(q[21], q[22]);323 CZ(q[22], q[23]);324 CZ(q[23], q[24]);325 CZ(q[24], q[25]);326 CZ(q[25], q[26]);327 CZ(q[26], q[27]);328 CZ(q[27], q[28]);329 CZ(q[28], q[29]);330 CZ(q[29], q[30]);331 CZ(q[30], q[31]);332 CZ(q[31], q[32]);333 CZ(q[32], q[33]);334 CZ(q[33], q[34]);335 CZ(q[34], q[35]);336 CZ(q[35], q[36]);337 CZ(q[36], q[37]);338 CZ(q[37], q[38]);339 CZ(q[38], q[39]);340 CZ(q[39], q[40]);341 CZ(q[40], q[41]);342 CZ(q[41], q[42]);343 CZ(q[42], q[43]);344 CZ(q[43], q[44]);345 CZ(q[44], q[45]);346 CZ(q[45], q[46]);347 CZ(q[46], q[47]);348 CZ(q[47], q[48]);349 CZ(q[48], q[49]);350 CZ(q[49], q[50]);351 CZ(q[50], q[51]);352 CZ(q[51], q[52]);353 CZ(q[52], q[53]);354 CZ(q[53], q[54]);355 CZ(q[54], q[55]);356 CZ(q[55], q[56]);357 CZ(q[56], q[57]);358 CZ(q[57], q[58]);359 CZ(q[58], q[59]);360 CZ(q[59], q[60]);361 CZ(q[60], q[61]);362 CZ(q[61], q[62]);363 CZ(q[62], q[63]);364 CZ(q[63], q[64]);365 CZ(q[64], q[65]);366 CZ(q[65], q[66]);367 CZ(q[66], q[67]);368 CZ(q[67], q[68]);369 CZ(q[68], q[69]);370 CZ(q[69], q[70]);371 CZ(q[70], q[71]);372 CZ(q[71], q[72]);373 CZ(q[72], q[73]);374 CZ(q[73], q[74]);375 CZ(q[74], q[75]);376 CZ(q[75], q[76]);377 CZ(q[76], q[77]);378 CZ(q[77], q[78]);379 CZ(q[78], q[79]);380 CZ(q[79], q[80]);381 CZ(q[80], q[81]);382 CZ(q[81], q[82]);383 CZ(q[82], q[83]);384 CZ(q[83], q[84]);385 CZ(q[84], q[85]);386 CZ(q[85], q[86]);387 CZ(q[86], q[87]);388 CZ(q[87], q[88]);389 CZ(q[88], q[89]);390 CZ(q[89], q[90]);391 CZ(q[90], q[91]);392 CZ(q[91], q[92]);393 CZ(q[92], q[93]);394 CZ(q[93], q[94]);395 CZ(q[94], q[95]);396 CZ(q[95], q[96]);397 CZ(q[96], q[97]);398 CZ(q[97], q[98]);399 CZ(q[98], q[99]);400}qec.repetition3circuitv0.1repetition3
Encode the first qubit into the three-qubit repetition code against a single bit flip.
use qec.repetition3; repetition3(q);repetition3
1circuit repetition3(q: QReg<3>) {2 CNOT(q[0], q[1]);3 CNOT(q[0], q[2]);4}qec.phase_flip3circuitv0.2phase_flip3
Encode q[0] into the three-qubit repetition code in the X basis against one phase flip.
use qec.phase_flip3@0.2; phase_flip3(q);phase_flip3
1circuit phase_flip3(q: QReg<3>) {2 CNOT(q[0], q[1]);3 CNOT(q[0], q[2]);4 H(q[0]);5 H(q[1]);6 H(q[2]);7}qec.shor9_codecircuitv0.2shor9_code
Encode q[0] into the nine-qubit Shor error-correcting code; this is not Shor factoring.
use qec.shor9_code@0.2; shor9_code(q);shor9_code
1circuit shor9_code(q: QReg<9>) {2 CNOT(q[0], q[3]);3 CNOT(q[0], q[6]);4 H(q[0]);5 H(q[3]);6 H(q[6]);7 CNOT(q[0], q[1]);8 CNOT(q[0], q[2]);9 CNOT(q[3], q[4]);10 CNOT(q[3], q[5]);11 CNOT(q[6], q[7]);12 CNOT(q[6], q[8]);13}algorithms.grover_primitivescircuitv0.2mcz2
Frozen ancilla-free phase-gadget primitives for generic Grover widths two through five.
use package.algorithms.grover_primitives@0.2; mcz2(q); diffusion2(q);mcz2
1circuit mcz2(q: QReg<2>) {2 CP(q[0], q[1], PI);3}4 5circuit diffusion2(q: QReg<2>) {6 H(q[0]);7 H(q[1]);8 X(q[0]);9 X(q[1]);10 CP(q[0], q[1], PI);11 X(q[0]);12 X(q[1]);13 H(q[0]);14 H(q[1]);15}16 17circuit mcz3(q: QReg<3>) {18 P(q[0], PI / 4);19 P(q[1], PI / 4);20 CNOT(q[0], q[1]);21 P(q[1], -PI / 4);22 CNOT(q[0], q[1]);23 P(q[2], PI / 4);24 CNOT(q[0], q[2]);25 P(q[2], -PI / 4);26 CNOT(q[0], q[2]);27 CNOT(q[1], q[2]);28 P(q[2], -PI / 4);29 CNOT(q[1], q[2]);30 CNOT(q[0], q[2]);31 CNOT(q[1], q[2]);32 P(q[2], PI / 4);33 CNOT(q[1], q[2]);34 CNOT(q[0], q[2]);35}36 37circuit diffusion3(q: QReg<3>) {38 H(q[0]);39 H(q[1]);40 H(q[2]);41 X(q[0]);42 X(q[1]);43 X(q[2]);44 P(q[0], PI / 4);45 P(q[1], PI / 4);46 CNOT(q[0], q[1]);47 P(q[1], -PI / 4);48 CNOT(q[0], q[1]);49 P(q[2], PI / 4);50 CNOT(q[0], q[2]);51 P(q[2], -PI / 4);52 CNOT(q[0], q[2]);53 CNOT(q[1], q[2]);54 P(q[2], -PI / 4);55 CNOT(q[1], q[2]);56 CNOT(q[0], q[2]);57 CNOT(q[1], q[2]);58 P(q[2], PI / 4);59 CNOT(q[1], q[2]);60 CNOT(q[0], q[2]);61 X(q[0]);62 X(q[1]);63 X(q[2]);64 H(q[0]);65 H(q[1]);66 H(q[2]);67}68 69circuit mcz4(q: QReg<4>) {70 P(q[0], PI / 8);71 P(q[1], PI / 8);72 CNOT(q[0], q[1]);73 P(q[1], -PI / 8);74 CNOT(q[0], q[1]);75 P(q[2], PI / 8);76 CNOT(q[0], q[2]);77 P(q[2], -PI / 8);78 CNOT(q[0], q[2]);79 CNOT(q[1], q[2]);80 P(q[2], -PI / 8);81 CNOT(q[1], q[2]);82 CNOT(q[0], q[2]);83 CNOT(q[1], q[2]);84 P(q[2], PI / 8);85 CNOT(q[1], q[2]);86 CNOT(q[0], q[2]);87 P(q[3], PI / 8);88 CNOT(q[0], q[3]);89 P(q[3], -PI / 8);90 CNOT(q[0], q[3]);91 CNOT(q[1], q[3]);92 P(q[3], -PI / 8);93 CNOT(q[1], q[3]);94 CNOT(q[0], q[3]);95 CNOT(q[1], q[3]);96 P(q[3], PI / 8);97 CNOT(q[1], q[3]);98 CNOT(q[0], q[3]);99 CNOT(q[2], q[3]);100 P(q[3], -PI / 8);101 CNOT(q[2], q[3]);102 CNOT(q[0], q[3]);103 CNOT(q[2], q[3]);104 P(q[3], PI / 8);105 CNOT(q[2], q[3]);106 CNOT(q[0], q[3]);107 CNOT(q[1], q[3]);108 CNOT(q[2], q[3]);109 P(q[3], PI / 8);110 CNOT(q[2], q[3]);111 CNOT(q[1], q[3]);112 CNOT(q[0], q[3]);113 CNOT(q[1], q[3]);114 CNOT(q[2], q[3]);115 P(q[3], -PI / 8);116 CNOT(q[2], q[3]);117 CNOT(q[1], q[3]);118 CNOT(q[0], q[3]);119}120 121circuit diffusion4(q: QReg<4>) {122 H(q[0]);123 H(q[1]);124 H(q[2]);125 H(q[3]);126 X(q[0]);127 X(q[1]);128 X(q[2]);129 X(q[3]);130 P(q[0], PI / 8);131 P(q[1], PI / 8);132 CNOT(q[0], q[1]);133 P(q[1], -PI / 8);134 CNOT(q[0], q[1]);135 P(q[2], PI / 8);136 CNOT(q[0], q[2]);137 P(q[2], -PI / 8);138 CNOT(q[0], q[2]);139 CNOT(q[1], q[2]);140 P(q[2], -PI / 8);141 CNOT(q[1], q[2]);142 CNOT(q[0], q[2]);143 CNOT(q[1], q[2]);144 P(q[2], PI / 8);145 CNOT(q[1], q[2]);146 CNOT(q[0], q[2]);147 P(q[3], PI / 8);148 CNOT(q[0], q[3]);149 P(q[3], -PI / 8);150 CNOT(q[0], q[3]);151 CNOT(q[1], q[3]);152 P(q[3], -PI / 8);153 CNOT(q[1], q[3]);154 CNOT(q[0], q[3]);155 CNOT(q[1], q[3]);156 P(q[3], PI / 8);157 CNOT(q[1], q[3]);158 CNOT(q[0], q[3]);159 CNOT(q[2], q[3]);160 P(q[3], -PI / 8);161 CNOT(q[2], q[3]);162 CNOT(q[0], q[3]);163 CNOT(q[2], q[3]);164 P(q[3], PI / 8);165 CNOT(q[2], q[3]);166 CNOT(q[0], q[3]);167 CNOT(q[1], q[3]);168 CNOT(q[2], q[3]);169 P(q[3], PI / 8);170 CNOT(q[2], q[3]);171 CNOT(q[1], q[3]);172 CNOT(q[0], q[3]);173 CNOT(q[1], q[3]);174 CNOT(q[2], q[3]);175 P(q[3], -PI / 8);176 CNOT(q[2], q[3]);177 CNOT(q[1], q[3]);178 CNOT(q[0], q[3]);179 X(q[0]);180 X(q[1]);181 X(q[2]);182 X(q[3]);183 H(q[0]);184 H(q[1]);185 H(q[2]);186 H(q[3]);187}188 189circuit mcz5(q: QReg<5>) {190 P(q[0], PI / 16);191 P(q[1], PI / 16);192 CNOT(q[0], q[1]);193 P(q[1], -PI / 16);194 CNOT(q[0], q[1]);195 P(q[2], PI / 16);196 CNOT(q[0], q[2]);197 P(q[2], -PI / 16);198 CNOT(q[0], q[2]);199 CNOT(q[1], q[2]);200 P(q[2], -PI / 16);201 CNOT(q[1], q[2]);202 CNOT(q[0], q[2]);203 CNOT(q[1], q[2]);204 P(q[2], PI / 16);205 CNOT(q[1], q[2]);206 CNOT(q[0], q[2]);207 P(q[3], PI / 16);208 CNOT(q[0], q[3]);209 P(q[3], -PI / 16);210 CNOT(q[0], q[3]);211 CNOT(q[1], q[3]);212 P(q[3], -PI / 16);213 CNOT(q[1], q[3]);214 CNOT(q[0], q[3]);215 CNOT(q[1], q[3]);216 P(q[3], PI / 16);217 CNOT(q[1], q[3]);218 CNOT(q[0], q[3]);219 CNOT(q[2], q[3]);220 P(q[3], -PI / 16);221 CNOT(q[2], q[3]);222 CNOT(q[0], q[3]);223 CNOT(q[2], q[3]);224 P(q[3], PI / 16);225 CNOT(q[2], q[3]);226 CNOT(q[0], q[3]);227 CNOT(q[1], q[3]);228 CNOT(q[2], q[3]);229 P(q[3], PI / 16);230 CNOT(q[2], q[3]);231 CNOT(q[1], q[3]);232 CNOT(q[0], q[3]);233 CNOT(q[1], q[3]);234 CNOT(q[2], q[3]);235 P(q[3], -PI / 16);236 CNOT(q[2], q[3]);237 CNOT(q[1], q[3]);238 CNOT(q[0], q[3]);239 P(q[4], PI / 16);240 CNOT(q[0], q[4]);241 P(q[4], -PI / 16);242 CNOT(q[0], q[4]);243 CNOT(q[1], q[4]);244 P(q[4], -PI / 16);245 CNOT(q[1], q[4]);246 CNOT(q[0], q[4]);247 CNOT(q[1], q[4]);248 P(q[4], PI / 16);249 CNOT(q[1], q[4]);250 CNOT(q[0], q[4]);251 CNOT(q[2], q[4]);252 P(q[4], -PI / 16);253 CNOT(q[2], q[4]);254 CNOT(q[0], q[4]);255 CNOT(q[2], q[4]);256 P(q[4], PI / 16);257 CNOT(q[2], q[4]);258 CNOT(q[0], q[4]);259 CNOT(q[1], q[4]);260 CNOT(q[2], q[4]);261 P(q[4], PI / 16);262 CNOT(q[2], q[4]);263 CNOT(q[1], q[4]);264 CNOT(q[0], q[4]);265 CNOT(q[1], q[4]);266 CNOT(q[2], q[4]);267 P(q[4], -PI / 16);268 CNOT(q[2], q[4]);269 CNOT(q[1], q[4]);270 CNOT(q[0], q[4]);271 CNOT(q[3], q[4]);272 P(q[4], -PI / 16);273 CNOT(q[3], q[4]);274 CNOT(q[0], q[4]);275 CNOT(q[3], q[4]);276 P(q[4], PI / 16);277 CNOT(q[3], q[4]);278 CNOT(q[0], q[4]);279 CNOT(q[1], q[4]);280 CNOT(q[3], q[4]);281 P(q[4], PI / 16);282 CNOT(q[3], q[4]);283 CNOT(q[1], q[4]);284 CNOT(q[0], q[4]);285 CNOT(q[1], q[4]);286 CNOT(q[3], q[4]);287 P(q[4], -PI / 16);288 CNOT(q[3], q[4]);289 CNOT(q[1], q[4]);290 CNOT(q[0], q[4]);291 CNOT(q[2], q[4]);292 CNOT(q[3], q[4]);293 P(q[4], PI / 16);294 CNOT(q[3], q[4]);295 CNOT(q[2], q[4]);296 CNOT(q[0], q[4]);297 CNOT(q[2], q[4]);298 CNOT(q[3], q[4]);299 P(q[4], -PI / 16);300 CNOT(q[3], q[4]);301 CNOT(q[2], q[4]);302 CNOT(q[0], q[4]);303 CNOT(q[1], q[4]);304 CNOT(q[2], q[4]);305 CNOT(q[3], q[4]);306 P(q[4], -PI / 16);307 CNOT(q[3], q[4]);308 CNOT(q[2], q[4]);309 CNOT(q[1], q[4]);310 CNOT(q[0], q[4]);311 CNOT(q[1], q[4]);312 CNOT(q[2], q[4]);313 CNOT(q[3], q[4]);314 P(q[4], PI / 16);315 CNOT(q[3], q[4]);316 CNOT(q[2], q[4]);317 CNOT(q[1], q[4]);318 CNOT(q[0], q[4]);319}320 321circuit diffusion5(q: QReg<5>) {322 H(q[0]);323 H(q[1]);324 H(q[2]);325 H(q[3]);326 H(q[4]);327 X(q[0]);328 X(q[1]);329 X(q[2]);330 X(q[3]);331 X(q[4]);332 P(q[0], PI / 16);333 P(q[1], PI / 16);334 CNOT(q[0], q[1]);335 P(q[1], -PI / 16);336 CNOT(q[0], q[1]);337 P(q[2], PI / 16);338 CNOT(q[0], q[2]);339 P(q[2], -PI / 16);340 CNOT(q[0], q[2]);341 CNOT(q[1], q[2]);342 P(q[2], -PI / 16);343 CNOT(q[1], q[2]);344 CNOT(q[0], q[2]);345 CNOT(q[1], q[2]);346 P(q[2], PI / 16);347 CNOT(q[1], q[2]);348 CNOT(q[0], q[2]);349 P(q[3], PI / 16);350 CNOT(q[0], q[3]);351 P(q[3], -PI / 16);352 CNOT(q[0], q[3]);353 CNOT(q[1], q[3]);354 P(q[3], -PI / 16);355 CNOT(q[1], q[3]);356 CNOT(q[0], q[3]);357 CNOT(q[1], q[3]);358 P(q[3], PI / 16);359 CNOT(q[1], q[3]);360 CNOT(q[0], q[3]);361 CNOT(q[2], q[3]);362 P(q[3], -PI / 16);363 CNOT(q[2], q[3]);364 CNOT(q[0], q[3]);365 CNOT(q[2], q[3]);366 P(q[3], PI / 16);367 CNOT(q[2], q[3]);368 CNOT(q[0], q[3]);369 CNOT(q[1], q[3]);370 CNOT(q[2], q[3]);371 P(q[3], PI / 16);372 CNOT(q[2], q[3]);373 CNOT(q[1], q[3]);374 CNOT(q[0], q[3]);375 CNOT(q[1], q[3]);376 CNOT(q[2], q[3]);377 P(q[3], -PI / 16);378 CNOT(q[2], q[3]);379 CNOT(q[1], q[3]);380 CNOT(q[0], q[3]);381 P(q[4], PI / 16);382 CNOT(q[0], q[4]);383 P(q[4], -PI / 16);384 CNOT(q[0], q[4]);385 CNOT(q[1], q[4]);386 P(q[4], -PI / 16);387 CNOT(q[1], q[4]);388 CNOT(q[0], q[4]);389 CNOT(q[1], q[4]);390 P(q[4], PI / 16);391 CNOT(q[1], q[4]);392 CNOT(q[0], q[4]);393 CNOT(q[2], q[4]);394 P(q[4], -PI / 16);395 CNOT(q[2], q[4]);396 CNOT(q[0], q[4]);397 CNOT(q[2], q[4]);398 P(q[4], PI / 16);399 CNOT(q[2], q[4]);400 CNOT(q[0], q[4]);401 CNOT(q[1], q[4]);402 CNOT(q[2], q[4]);403 P(q[4], PI / 16);404 CNOT(q[2], q[4]);405 CNOT(q[1], q[4]);406 CNOT(q[0], q[4]);407 CNOT(q[1], q[4]);408 CNOT(q[2], q[4]);409 P(q[4], -PI / 16);410 CNOT(q[2], q[4]);411 CNOT(q[1], q[4]);412 CNOT(q[0], q[4]);413 CNOT(q[3], q[4]);414 P(q[4], -PI / 16);415 CNOT(q[3], q[4]);416 CNOT(q[0], q[4]);417 CNOT(q[3], q[4]);418 P(q[4], PI / 16);419 CNOT(q[3], q[4]);420 CNOT(q[0], q[4]);421 CNOT(q[1], q[4]);422 CNOT(q[3], q[4]);423 P(q[4], PI / 16);424 CNOT(q[3], q[4]);425 CNOT(q[1], q[4]);426 CNOT(q[0], q[4]);427 CNOT(q[1], q[4]);428 CNOT(q[3], q[4]);429 P(q[4], -PI / 16);430 CNOT(q[3], q[4]);431 CNOT(q[1], q[4]);432 CNOT(q[0], q[4]);433 CNOT(q[2], q[4]);434 CNOT(q[3], q[4]);435 P(q[4], PI / 16);436 CNOT(q[3], q[4]);437 CNOT(q[2], q[4]);438 CNOT(q[0], q[4]);439 CNOT(q[2], q[4]);440 CNOT(q[3], q[4]);441 P(q[4], -PI / 16);442 CNOT(q[3], q[4]);443 CNOT(q[2], q[4]);444 CNOT(q[0], q[4]);445 CNOT(q[1], q[4]);446 CNOT(q[2], q[4]);447 CNOT(q[3], q[4]);448 P(q[4], -PI / 16);449 CNOT(q[3], q[4]);450 CNOT(q[2], q[4]);451 CNOT(q[1], q[4]);452 CNOT(q[0], q[4]);453 CNOT(q[1], q[4]);454 CNOT(q[2], q[4]);455 CNOT(q[3], q[4]);456 P(q[4], PI / 16);457 CNOT(q[3], q[4]);458 CNOT(q[2], q[4]);459 CNOT(q[1], q[4]);460 CNOT(q[0], q[4]);461 X(q[0]);462 X(q[1]);463 X(q[2]);464 X(q[3]);465 X(q[4]);466 H(q[0]);467 H(q[1]);468 H(q[2]);469 H(q[3]);470 H(q[4]);471}algorithms.fouriercircuitv0.5qft1
Frozen QFT and inverse-QFT specializations for statevector widths one through five.
use package.algorithms.fourier@0.5; qft<N>(q); iqft<N>(q);qft1
1circuit qft1(q: QReg<1>) {2 H(q[0]);3}4 5circuit iqft1(q: QReg<1>) {6 H(q[0]);7}8 9circuit qft2(q: QReg<2>) {10 H(q[0]);11 CP(q[0], q[1], PI / 2);12 H(q[1]);13 SWAP(q[0], q[1]);14}15 16circuit iqft2(q: QReg<2>) {17 SWAP(q[0], q[1]);18 H(q[1]);19 CP(q[0], q[1], -(PI / 2));20 H(q[0]);21}22 23circuit qft3(q: QReg<3>) {24 H(q[0]);25 CP(q[0], q[1], PI / 2);26 CP(q[0], q[2], PI / 4);27 H(q[1]);28 CP(q[1], q[2], PI / 2);29 H(q[2]);30 SWAP(q[0], q[2]);31}32 33circuit iqft3(q: QReg<3>) {34 SWAP(q[0], q[2]);35 H(q[2]);36 CP(q[1], q[2], -(PI / 2));37 H(q[1]);38 CP(q[0], q[2], -(PI / 4));39 CP(q[0], q[1], -(PI / 2));40 H(q[0]);41}42 43circuit qft4(q: QReg<4>) {44 H(q[0]);45 CP(q[0], q[1], PI / 2);46 CP(q[0], q[2], PI / 4);47 CP(q[0], q[3], PI / 8);48 H(q[1]);49 CP(q[1], q[2], PI / 2);50 CP(q[1], q[3], PI / 4);51 H(q[2]);52 CP(q[2], q[3], PI / 2);53 H(q[3]);54 SWAP(q[0], q[3]);55 SWAP(q[1], q[2]);56}57 58circuit iqft4(q: QReg<4>) {59 SWAP(q[1], q[2]);60 SWAP(q[0], q[3]);61 H(q[3]);62 CP(q[2], q[3], -(PI / 2));63 H(q[2]);64 CP(q[1], q[3], -(PI / 4));65 CP(q[1], q[2], -(PI / 2));66 H(q[1]);67 CP(q[0], q[3], -(PI / 8));68 CP(q[0], q[2], -(PI / 4));69 CP(q[0], q[1], -(PI / 2));70 H(q[0]);71}72 73circuit qft5(q: QReg<5>) {74 H(q[0]);75 CP(q[0], q[1], PI / 2);76 CP(q[0], q[2], PI / 4);77 CP(q[0], q[3], PI / 8);78 CP(q[0], q[4], PI / 16);79 H(q[1]);80 CP(q[1], q[2], PI / 2);81 CP(q[1], q[3], PI / 4);82 CP(q[1], q[4], PI / 8);83 H(q[2]);84 CP(q[2], q[3], PI / 2);85 CP(q[2], q[4], PI / 4);86 H(q[3]);87 CP(q[3], q[4], PI / 2);88 H(q[4]);89 SWAP(q[0], q[4]);90 SWAP(q[1], q[3]);91}92 93circuit iqft5(q: QReg<5>) {94 SWAP(q[1], q[3]);95 SWAP(q[0], q[4]);96 H(q[4]);97 CP(q[3], q[4], -(PI / 2));98 H(q[3]);99 CP(q[2], q[4], -(PI / 4));100 CP(q[2], q[3], -(PI / 2));101 H(q[2]);102 CP(q[1], q[4], -(PI / 8));103 CP(q[1], q[3], -(PI / 4));104 CP(q[1], q[2], -(PI / 2));105 H(q[1]);106 CP(q[0], q[4], -(PI / 16));107 CP(q[0], q[3], -(PI / 8));108 CP(q[0], q[2], -(PI / 4));109 CP(q[0], q[1], -(PI / 2));110 H(q[0]);111}chemistry.h2_minimalobservablev0.1H2Minimal
Minimal two-qubit H2-style Hamiltonian for VQE and expectation demos.
use chemistry.h2_minimal; expect H2MinimalH2Minimal
1observable H2Minimal = {2 -1.0 * I,3 0.4 * Z(q[0]),4 -0.4 * Z(q[1]),5 -0.1 * Z(q[0]) Z(q[1]),6 0.18 * X(q[0]) X(q[1]),7};chemistry.heisenberg2observablev0.1Heisenberg2
Two-spin isotropic Heisenberg Hamiltonian with XX, YY, and ZZ interactions.
use chemistry.heisenberg2; expect Heisenberg2Heisenberg2
1observable Heisenberg2 = {2 1.0 * X(q[0]) X(q[1]),3 1.0 * Y(q[0]) Y(q[1]),4 1.0 * Z(q[0]) Z(q[1]),5};chemistry.ising_trotter2circuitv0.2ising_trotter2
One first-order two-qubit Ising Trotter layer with ZZ interaction and transverse-X mixing.
use chemistry.ising_trotter2@0.2; ising_trotter2(q, gamma, beta);ising_trotter2
1circuit ising_trotter2(q: QReg<2>, gamma: Angle, beta: Angle) {2 RZZ(q[0], q[1], gamma);3 Rx(q[0], beta);4 Rx(q[1], beta);5}optimization.maxcut2observablev0.1MaxCut2
Two-node MaxCut cost Hamiltonian, (I - Z0 Z1) / 2, for QAOA lessons.
use optimization.maxcut2; expect MaxCut2MaxCut2
1observable MaxCut2 = {2 0.5 * I,3 -0.5 * Z(q[0]) Z(q[1]),4};ml.vqc_layercircuitv0.1vqc_layer
Two-qubit hardware-efficient variational layer.
use ml.vqc_layer; vqc_layer(q, t1, t2);vqc_layer
1circuit vqc_layer(q: QReg<2>, t1: Angle, t2: Angle) {2 Ry(q[0], t1);3 Ry(q[1], t2);4 CNOT(q[0], q[1]);5}ml.vqc_layer3circuitv0.1vqc_layer3
Three-qubit hardware-efficient variational layer.
use ml.vqc_layer3; vqc_layer3(q, t1, t2, t3);vqc_layer3
1circuit vqc_layer3(q: QReg<3>, t1: Angle, t2: Angle, t3: Angle) {2 Ry(q[0], t1);3 Ry(q[1], t2);4 Ry(q[2], t3);5 CNOT(q[0], q[1]);6 CNOT(q[1], q[2]);7}ml.reupload_blockcircuitv0.1reupload_block
Single-qubit data re-uploading block.
use ml.reupload_block; reupload_block(q, x, w);reupload_block
1circuit reupload_block(q: QReg<1>, x: Angle, w: Angle) {2 Ry(q[0], x);3 Ry(q[0], w);4}ml.entangle_linear2circuitv0.1entangle_linear2
Two-qubit linear entangler.
use ml.entangle_linear2; entangle_linear2(q);entangle_linear2
1circuit entangle_linear2(q: QReg<2>) {2 CNOT(q[0], q[1]);3}ml.entangle_linear3circuitv0.1entangle_linear3
Three-qubit linear entangler.
use ml.entangle_linear3; entangle_linear3(q);entangle_linear3
1circuit entangle_linear3(q: QReg<3>) {2 CNOT(q[0], q[1]);3 CNOT(q[1], q[2]);4}ml.iqp_map2circuitv0.1iqp_map2
Two-qubit depth-one IQP feature map.
use ml.iqp_map2; iqp_map2(q, x1, x2);iqp_map2
1circuit iqp_map2(q: QReg<2>, x1: Angle, x2: Angle) {2 H(q[0]);3 H(q[1]);4 Rz(q[0], x1);5 Rz(q[1], x2);6 RZZ(q[0], q[1], x1 * x2);7}ml.zz_observableobservablev0.1ZZObservable
Two-qubit ZZ correlation observable.
use ml.zz_observable; expect ZZObservableZZObservable
1observable ZZObservable = {2 1.0 * Z(q[0]) Z(q[1]),3};