|
1 | | -qfunc inplace_binary_to_one_hot_expanded___0(one_hot: qbit[4]) { |
2 | | - temp_0: qbit; |
3 | | - temp_1: qbit; |
4 | | - temp_2: qbit; |
5 | | - temp_3: qbit; |
6 | | - one_hot -> {temp_0, temp_1, temp_2, temp_3}; |
7 | | - {temp_2, temp_0, temp_3, temp_1} -> one_hot; |
8 | | - X(one_hot[0]); |
9 | | - CX(one_hot[1], one_hot[0]); |
10 | | - control (one_hot[3]) { |
11 | | - SWAP(one_hot[0], one_hot[2]); |
12 | | - } |
13 | | - CX(one_hot[2], one_hot[3]); |
14 | | - CX(one_hot[3], one_hot[1]); |
| 1 | +qperm inplace_binary_to_one_hot_expanded___0(qvar: qbit[4]) { |
| 2 | + x0: qbit; |
| 3 | + x1: qbit; |
| 4 | + x2: qbit; |
| 5 | + x3: qbit; |
| 6 | + qvar -> {x0, x1, x2, x3}; |
| 7 | + {x2, x0, x3, x1} -> qvar; |
| 8 | + X(qvar[0]); |
| 9 | + CX(qvar[1], qvar[0]); |
| 10 | + control (qvar[3]) { |
| 11 | + SWAP(qvar[0], qvar[2]); |
| 12 | + } |
| 13 | + CX(qvar[2], qvar[3]); |
| 14 | + CX(qvar[3], qvar[1]); |
15 | 15 | } |
16 | 16 |
|
17 | | -qfunc binary_to_one_hot_expanded___0(input binary: qnum<2, False, 0>, output one_hot: qbit[4]) { |
| 17 | +qperm binary_to_one_hot_expanded___0(input binary: qnum<2, False, 0>, output one_hot: qbit[4]) { |
18 | 18 | extension: qbit[2]; |
19 | 19 | allocate(2, extension); |
20 | 20 | {binary, extension} -> one_hot; |
21 | 21 | inplace_binary_to_one_hot_expanded___0(one_hot); |
22 | 22 | } |
23 | 23 |
|
24 | | -qfunc inplace_one_hot_to_unary_expanded___0(qvar: qbit[4]) { |
| 24 | +qperm inplace_one_hot_to_unary_expanded___0(qvar: qbit[4]) { |
25 | 25 | repeat (i: 3) { |
26 | 26 | CX(qvar[(4 - i) - 1], qvar[(4 - i) - 2]); |
27 | 27 | } |
28 | 28 | X(qvar[0]); |
29 | 29 | } |
30 | 30 |
|
31 | | -qfunc one_hot_to_unary_expanded___0(input one_hot: qbit[4], output unary: qbit[3]) { |
| 31 | +qperm one_hot_to_unary_expanded___0(input one_hot: qbit[4], output unary: qbit[3]) { |
32 | 32 | inplace_one_hot_to_unary_expanded___0(one_hot); |
33 | 33 | lsb: qbit; |
34 | 34 | one_hot -> {lsb, unary}; |
35 | 35 | free(lsb); |
36 | 36 | } |
37 | 37 |
|
38 | | -qfunc binary_to_unary_expanded___0(input binary: qnum<2, False, 0>, output unary: qbit[3]) { |
| 38 | +qperm binary_to_unary_expanded___0(input binary: qnum<2, False, 0>, output unary: qbit[3]) { |
39 | 39 | one_hot: qbit[4]; |
40 | 40 | binary_to_one_hot_expanded___0(binary, one_hot); |
41 | 41 | one_hot_to_unary_expanded___0(one_hot, unary); |
42 | 42 | } |
43 | 43 |
|
44 | | -qfunc pad_zeros_expanded___0(input qvar: qbit[3], output qvar_padded: qbit[6]) { |
| 44 | +qperm pad_zeros_expanded___0(input qvar: qbit[3], output padded: qbit[6]) { |
45 | 45 | extension: qbit[3]; |
46 | 46 | allocate(3, extension); |
47 | | - {qvar, extension} -> qvar_padded; |
| 47 | + {qvar, extension} -> padded; |
48 | 48 | } |
49 | 49 |
|
50 | 50 | qfunc _dicke_split_cycle_shift_expanded___0(qvar: qbit[6]) { |
@@ -125,32 +125,28 @@ qfunc _dicke_split_cycle_shift_expanded___4(qvar: qbit[2]) { |
125 | 125 | } |
126 | 126 | } |
127 | 127 |
|
128 | | -qfunc prepare_dick_state_unary_input_expanded___0(qvar: qbit[1]) { |
129 | | -} |
130 | | - |
131 | | -qfunc prepare_dick_state_unary_input_expanded___1(qvar: qbit[2]) { |
| 128 | +qfunc prepare_dicke_state_unary_input_expanded___0(qvar: qbit[2]) { |
132 | 129 | _dicke_split_cycle_shift_expanded___4(qvar); |
133 | | - prepare_dick_state_unary_input_expanded___0(qvar[1:2]); |
134 | 130 | } |
135 | 131 |
|
136 | | -qfunc prepare_dick_state_unary_input_expanded___2(qvar: qbit[3]) { |
| 132 | +qfunc prepare_dicke_state_unary_input_expanded___1(qvar: qbit[3]) { |
137 | 133 | _dicke_split_cycle_shift_expanded___3(qvar); |
138 | | - prepare_dick_state_unary_input_expanded___1(qvar[1:3]); |
| 134 | + prepare_dicke_state_unary_input_expanded___0(qvar[1:3]); |
139 | 135 | } |
140 | 136 |
|
141 | | -qfunc prepare_dick_state_unary_input_expanded___3(qvar: qbit[4]) { |
| 137 | +qfunc prepare_dicke_state_unary_input_expanded___2(qvar: qbit[4]) { |
142 | 138 | _dicke_split_cycle_shift_expanded___2(qvar); |
143 | | - prepare_dick_state_unary_input_expanded___2(qvar[1:4]); |
| 139 | + prepare_dicke_state_unary_input_expanded___1(qvar[1:4]); |
144 | 140 | } |
145 | 141 |
|
146 | | -qfunc prepare_dick_state_unary_input_expanded___4(qvar: qbit[5]) { |
| 142 | +qfunc prepare_dicke_state_unary_input_expanded___3(qvar: qbit[5]) { |
147 | 143 | _dicke_split_cycle_shift_expanded___1(qvar); |
148 | | - prepare_dick_state_unary_input_expanded___3(qvar[1:5]); |
| 144 | + prepare_dicke_state_unary_input_expanded___2(qvar[1:5]); |
149 | 145 | } |
150 | 146 |
|
151 | | -qfunc prepare_dick_state_unary_input_expanded___5(qvar: qbit[6]) { |
| 147 | +qfunc prepare_dicke_state_unary_input_expanded___4(qvar: qbit[6]) { |
152 | 148 | _dicke_split_cycle_shift_expanded___0(qvar); |
153 | | - prepare_dick_state_unary_input_expanded___4(qvar[1:6]); |
| 149 | + prepare_dicke_state_unary_input_expanded___3(qvar[1:6]); |
154 | 150 | } |
155 | 151 |
|
156 | 152 | qfunc vector_product_phase_expanded___0(v: int[], y: qbit[6]) { |
@@ -253,7 +249,7 @@ qfunc dqi_max_xor_sat_expanded___0(output y: qbit[6], output solution: qbit[6]) |
253 | 249 | k_unary: qbit[3]; |
254 | 250 | binary_to_unary_expanded___0(k_num_errors, k_unary); |
255 | 251 | pad_zeros_expanded___0(k_unary, y); |
256 | | - prepare_dick_state_unary_input_expanded___5(y); |
| 252 | + prepare_dicke_state_unary_input_expanded___4(y); |
257 | 253 | vector_product_phase_expanded___0([1.0, 1.0, 1.0, 1.0, 1.0, 1.0], y); |
258 | 254 | matrix_vector_product_expanded___0(y, solution); |
259 | 255 | syndrome_decode_lookuptable_expanded___0(solution, y); |
|
0 commit comments