(register_size=4)
| 49 | theta = 2*math.asin(self.C * self.N * self.t / (2*math.pi * k)) |
| 50 | return cirq.ry(theta) |
| 51 | def main(register_size=4): |
| 52 | ancilla = cirq.LineQubit(0) |
| 53 | register = [cirq.LineQubit(i + 1) for i in range(register_size)] |
| 54 | print(register) |
| 55 | memory = cirq.LineQubit(register_size + 1) |
| 56 | t = 0.358166*math.pi |
| 57 | C = 2 * math.pi / (2 ** register_size * t) |
| 58 | print(math.asin(C*t)) |
| 59 | circuit = cirq.Circuit() |
| 60 | #circuit.append(cirq.H(register[i]) for i in range(register_size)) |
| 61 | circuit.append(cirq.X(register[-3])) |
| 62 | circuit.append(EigenRotation(register_size + 1, C, t)(*(register + [ancilla]))) |
| 63 | #circuit.append(cirq.measure(*(register + [ancilla]),key='m')) |
| 64 | sim = cirq.Simulator() |
| 65 | result = sim.simulate(circuit) |
| 66 | #result = sim.run(circuit,repetitions=1000) |
| 67 | print(result) |
| 68 | print(circuit) |
| 69 | #print(result.histogram(key='m')) |
| 70 | |
| 71 | |
| 72 |
no test coverage detected