Skip to content

Commit 481c2c5

Browse files
authored
Add c and a to diffuser
1 parent 5f1786d commit 481c2c5

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

cmd/counting/main.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
// The number of solutions `M` is 2.
1313
func controlledG(qsim *q.Q, r, s []q.Qubit, c, a q.Qubit) {
1414
oracle(qsim, r, s, c, a)
15-
diffuser(qsim, r)
15+
diffuser(qsim, r, c, a)
1616
}
1717

1818
func oracle(qsim *q.Q, r, s []q.Qubit, c, a q.Qubit) {
@@ -27,7 +27,7 @@ func oracle(qsim *q.Q, r, s []q.Qubit, c, a q.Qubit) {
2727
xor(r[1], r[3], s[3]) // b != d
2828

2929
// apply Z if s and c are all 1
30-
qsim.ControlledZ([]q.Qubit{s[0], s[1], s[2], s[3], c}, []q.Qubit{a})
30+
qsim.ControlledZ([]q.Qubit{c, s[0], s[1], s[2], s[3]}, []q.Qubit{a})
3131

3232
// uncompute
3333
xor(r[1], r[3], s[3])
@@ -36,10 +36,10 @@ func oracle(qsim *q.Q, r, s []q.Qubit, c, a q.Qubit) {
3636
xor(r[0], r[1], s[0])
3737
}
3838

39-
func diffuser(qsim *q.Q, r []q.Qubit) {
39+
func diffuser(qsim *q.Q, r []q.Qubit, c, a q.Qubit) {
4040
qsim.H(r...)
4141
qsim.X(r...)
42-
qsim.ControlledZ(r[:len(r)-1], []q.Qubit{r[len(r)-1]})
42+
qsim.ControlledZ(append([]q.Qubit{c}, r...), []q.Qubit{a})
4343
qsim.X(r...)
4444
qsim.H(r...)
4545
}

0 commit comments

Comments
 (0)