Skip to content

Commit d6b4921

Browse files
Adapt Bernstein Vazirani notebook to uncomputation
1 parent c1f0bb6 commit d6b4921

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

algorithms/bernstein_vazirani/bernstein_vazirani.ipynb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -141,12 +141,12 @@
141141
"@qfunc\n",
142142
"def bv_function(a: CInt, x: QArray):\n",
143143
" aux = QBit()\n",
144+
" allocate(aux)\n",
144145
" within_apply(\n",
145146
" lambda: hadamard_transform(x),\n",
146-
" lambda: within_apply(\n",
147-
" lambda: (allocate(aux), X(aux), H(aux)), lambda: bv_predicate(a, x, aux)\n",
148-
" ),\n",
149-
" )"
147+
" lambda: within_apply(lambda: (X(aux), H(aux)), lambda: bv_predicate(a, x, aux)),\n",
148+
" )\n",
149+
" free(aux)"
150150
]
151151
},
152152
{

algorithms/bernstein_vazirani/bernstein_vazirani.qmod

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,18 @@ qperm bv_predicate(a: int, const x: qbit[], res: qbit) {
88

99
qfunc bv_function(a: int, x: qbit[]) {
1010
aux: qbit;
11+
allocate(aux);
1112
within {
1213
hadamard_transform(x);
1314
} apply {
1415
within {
15-
allocate(aux);
1616
X(aux);
1717
H(aux);
1818
} apply {
1919
bv_predicate(a, x, aux);
2020
}
2121
}
22+
free(aux);
2223
}
2324

2425
qfunc main(output x: qnum<5>) {

0 commit comments

Comments
 (0)