Skip to content

Commit dceb5a5

Browse files
authored
Merge pull request #6 from dlyongemallo/master
Major upgrade: support latest version of Cirq (v1.3.0).
2 parents 9143b9a + 99466d4 commit dceb5a5

15 files changed

+1086
-1077
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.venv
2+
.ipynb_checkpoints/
3+
__pycache__/

cirq_version/00_Course_Introduction.ipynb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
],
6666
"metadata": {
6767
"kernelspec": {
68-
"display_name": "Python 3",
68+
"display_name": "Python 3 (ipykernel)",
6969
"language": "python",
7070
"name": "python3"
7171
},
@@ -79,9 +79,9 @@
7979
"name": "python",
8080
"nbconvert_exporter": "python",
8181
"pygments_lexer": "ipython3",
82-
"version": "3.7.3"
82+
"version": "3.10.12"
8383
}
8484
},
8585
"nbformat": 4,
86-
"nbformat_minor": 2
86+
"nbformat_minor": 4
8787
}

cirq_version/00_Introduction_to_Cirq.ipynb

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
"\n",
4040
"Once we define our algorithm in terms of gates and measurements, we need to execute the circuit. In Cirq, the simulators make a distinction between a \"run\" and a \"simulation\". A \"run\" mimics the actual quantum hardware and does not allow access to the amplitudes of the wave function of the system. A \"simulation\" allows for operations which would not be possible on hardware, such as examining the wave function.\n",
4141
"\n",
42-
"Cirq comes with a simulator for generic gates that implements their unitary matrix, and there is also another simulator which is customized for the native gate set of Google's Xmon hardware:"
42+
"Cirq comes with a simulator for generic gates that implements their unitary matrix, and which can also be adapted to specific devices using a gate set:"
4343
]
4444
},
4545
{
@@ -48,8 +48,7 @@
4848
"metadata": {},
4949
"outputs": [],
5050
"source": [
51-
"from cirq import Simulator\n",
52-
"from cirq.google import XmonSimulator"
51+
"from cirq import Simulator"
5352
]
5453
},
5554
{
@@ -84,7 +83,7 @@
8483
"outputs": [],
8584
"source": [
8685
"q = GridQubit(0,0)\n",
87-
"circuit = Circuit.from_ops(\n",
86+
"circuit = Circuit(\n",
8887
" cirq.measure(q, key='m')\n",
8988
")"
9089
]
@@ -123,11 +122,11 @@
123122
"metadata": {},
124123
"outputs": [],
125124
"source": [
126-
"circuit = Circuit.from_ops(\n",
127-
" cirq.SingleQubitMatrixGate(np.array([[1, 0], [0, 1]])).on(q)\n",
125+
"circuit = Circuit(\n",
126+
" cirq.MatrixGate(np.array([[1, 0], [0, 1]])).on(q)\n",
128127
")\n",
129128
"result = simulator.simulate(circuit)\n",
130-
"print(result.final_state)"
129+
"print(result.final_state_vector)"
131130
]
132131
},
133132
{
@@ -158,7 +157,7 @@
158157
"outputs": [],
159158
"source": [
160159
"q = GridQubit(0,0)\n",
161-
"circuit = Circuit.from_ops(\n",
160+
"circuit = Circuit(\n",
162161
" cirq.measure(q, key='m')\n",
163162
")\n",
164163
"print(circuit.to_text_diagram())"
@@ -289,11 +288,11 @@
289288
"metadata": {},
290289
"outputs": [],
291290
"source": [
292-
"circuit = Circuit.from_ops(\n",
291+
"circuit = Circuit(\n",
293292
" cirq.measure(q, key='m')\n",
294293
")\n",
295294
"result = simulator.simulate(circuit)\n",
296-
"plot_quantum_state(result.final_state)"
295+
"plot_quantum_state(result.final_state_vector)"
297296
]
298297
},
299298
{
@@ -309,13 +308,13 @@
309308
"metadata": {},
310309
"outputs": [],
311310
"source": [
312-
"circuit = Circuit.from_ops(\n",
311+
"circuit = Circuit(\n",
313312
" cirq.H(q),\n",
314313
" cirq.measure(q, key='m')\n",
315314
")\n",
316315
"result = simulator.simulate(circuit)\n",
317316
"print(\"After a Hadamard gate\")\n",
318-
"plot_quantum_state(result.final_state)"
317+
"plot_quantum_state(result.final_state_vector)"
319318
]
320319
},
321320
{
@@ -353,7 +352,7 @@
353352
"metadata": {},
354353
"outputs": [],
355354
"source": [
356-
"circuit = Circuit.from_ops(\n",
355+
"circuit = Circuit(\n",
357356
" cirq.measure(q, key='m')\n",
358357
")\n",
359358
"results = simulator.run(circuit, repetitions=1000)\n",
@@ -373,7 +372,7 @@
373372
"metadata": {},
374373
"outputs": [],
375374
"source": [
376-
"circuit = Circuit.from_ops(\n",
375+
"circuit = Circuit(\n",
377376
" cirq.H(q),\n",
378377
" cirq.measure(q, key='m')\n",
379378
")\n",
@@ -391,7 +390,7 @@
391390
],
392391
"metadata": {
393392
"kernelspec": {
394-
"display_name": "Python 3",
393+
"display_name": "Python 3 (ipykernel)",
395394
"language": "python",
396395
"name": "python3"
397396
},
@@ -405,7 +404,7 @@
405404
"name": "python",
406405
"nbconvert_exporter": "python",
407406
"pygments_lexer": "ipython3",
408-
"version": "3.6.5"
407+
"version": "3.10.12"
409408
},
410409
"varInspector": {
411410
"cols": {
@@ -438,5 +437,5 @@
438437
}
439438
},
440439
"nbformat": 4,
441-
"nbformat_minor": 2
440+
"nbformat_minor": 4
442441
}

cirq_version/01_Classical_and_Quantum_Probability_Distributions.ipynb

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@
271271
"\n",
272272
"q = GridQubit(0,0)\n",
273273
"circuit = Circuit()\n",
274-
"circuit.append(cirq.SingleQubitMatrixGate(np.array([[1, 0], [0, 1]])).on(q))"
274+
"circuit.append(cirq.MatrixGate(np.array([[1, 0], [0, 1]])).on(q))"
275275
]
276276
},
277277
{
@@ -322,11 +322,11 @@
322322
"metadata": {},
323323
"outputs": [],
324324
"source": [
325-
"circuit = Circuit.from_ops(\n",
325+
"circuit = Circuit(\n",
326326
" cirq.measure(q, key='m')\n",
327327
")\n",
328328
"result = simulator.simulate(circuit)\n",
329-
"plot_quantum_state(result.final_state)"
329+
"plot_quantum_state(result.final_state_vector)"
330330
]
331331
},
332332
{
@@ -344,8 +344,8 @@
344344
"metadata": {},
345345
"outputs": [],
346346
"source": [
347-
"circuit = Circuit.from_ops(\n",
348-
" cirq.Ry(π/2).on(q),\n",
347+
"circuit = Circuit(\n",
348+
" cirq.Ry(rads=π/2).on(q),\n",
349349
" cirq.measure(q, key='m')\n",
350350
")\n",
351351
"results = simulator.run(circuit, repetitions=100)\n",
@@ -365,11 +365,11 @@
365365
"metadata": {},
366366
"outputs": [],
367367
"source": [
368-
"circuit = Circuit.from_ops(\n",
369-
" cirq.Ry(π/2).on(q)\n",
368+
"circuit = Circuit(\n",
369+
" cirq.Ry(rads=π/2).on(q)\n",
370370
")\n",
371371
"result = simulator.simulate(circuit)\n",
372-
"plot_quantum_state(result.final_state)"
372+
"plot_quantum_state(result.final_state_vector)"
373373
]
374374
},
375375
{
@@ -387,12 +387,12 @@
387387
"metadata": {},
388388
"outputs": [],
389389
"source": [
390-
"circuit = Circuit.from_ops(\n",
390+
"circuit = Circuit(\n",
391391
" cirq.X(q),\n",
392-
" cirq.Ry(π/2).on(q)\n",
392+
" cirq.Ry(rads=π/2).on(q)\n",
393393
")\n",
394394
"result = simulator.simulate(circuit)\n",
395-
"plot_quantum_state(result.final_state)"
395+
"plot_quantum_state(result.final_state_vector)"
396396
]
397397
},
398398
{
@@ -408,9 +408,9 @@
408408
"metadata": {},
409409
"outputs": [],
410410
"source": [
411-
"circuit = Circuit.from_ops(\n",
411+
"circuit = Circuit(\n",
412412
" cirq.X(q),\n",
413-
" cirq.Ry(π/2).on(q),\n",
413+
" cirq.Ry(rads=π/2).on(q),\n",
414414
" cirq.measure(q, key='m')\n",
415415
")\n",
416416
"results = simulator.run(circuit, repetitions=100)\n",
@@ -430,9 +430,9 @@
430430
"metadata": {},
431431
"outputs": [],
432432
"source": [
433-
"circuit = Circuit.from_ops(\n",
434-
" cirq.Ry(π/2).on(q),\n",
435-
" cirq.Ry(π/2).on(q),\n",
433+
"circuit = Circuit(\n",
434+
" cirq.Ry(rads=π/2).on(q),\n",
435+
" cirq.Ry(rads=π/2).on(q),\n",
436436
" cirq.measure(q, key='m')\n",
437437
")\n",
438438
"results = simulator.run(circuit, repetitions=100)\n",
@@ -498,7 +498,7 @@
498498
"q0 = GridQubit(0,0)\n",
499499
"q1 = GridQubit(0,1)\n",
500500
"\n",
501-
"circuit = Circuit.from_ops(\n",
501+
"circuit = Circuit(\n",
502502
" cirq.H(q0),\n",
503503
" cirq.CNOT(q0, q1),\n",
504504
" cirq.measure(q0, q1, key='m')\n",
@@ -526,7 +526,7 @@
526526
],
527527
"metadata": {
528528
"kernelspec": {
529-
"display_name": "Python 3",
529+
"display_name": "Python 3 (ipykernel)",
530530
"language": "python",
531531
"name": "python3"
532532
},
@@ -540,9 +540,9 @@
540540
"name": "python",
541541
"nbconvert_exporter": "python",
542542
"pygments_lexer": "ipython3",
543-
"version": "3.6.5"
543+
"version": "3.10.12"
544544
}
545545
},
546546
"nbformat": 4,
547-
"nbformat_minor": 2
547+
"nbformat_minor": 4
548548
}

cirq_version/02_Measurements_and_Mixed_States.ipynb

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@
123123
"\n",
124124
"simulator = Simulator()\n",
125125
"q = GridQubit(0, 0)\n",
126-
"circuit = Circuit.from_ops(\n",
126+
"circuit = Circuit(\n",
127127
" cirq.H(q),\n",
128128
" cirq.measure(q, key='m')\n",
129129
")\n",
@@ -167,7 +167,7 @@
167167
"metadata": {},
168168
"outputs": [],
169169
"source": [
170-
"circuit = Circuit.from_ops(\n",
170+
"circuit = Circuit(\n",
171171
" cirq.H(q),\n",
172172
" cirq.measure(q, key='m0'),\n",
173173
" cirq.measure(q, key='m1')\n",
@@ -199,7 +199,7 @@
199199
"outputs": [],
200200
"source": [
201201
"q = [GridQubit(x, 0) for x in range(2)]\n",
202-
"circuit = Circuit.from_ops(\n",
202+
"circuit = Circuit(\n",
203203
" cirq.H(q[0]),\n",
204204
" cirq.measure(q[0], key='m0'),\n",
205205
" cirq.measure(q[1], key='m1')\n",
@@ -222,7 +222,7 @@
222222
"outputs": [],
223223
"source": [
224224
"q = [GridQubit(x, 0) for x in range(2)]\n",
225-
"circuit = Circuit.from_ops(\n",
225+
"circuit = Circuit(\n",
226226
" cirq.H(q[0]),\n",
227227
" cirq.CNOT(q[0], q[1]),\n",
228228
" cirq.measure(q[0], key='m0'),\n",
@@ -317,7 +317,7 @@
317317
],
318318
"metadata": {
319319
"kernelspec": {
320-
"display_name": "Python 3",
320+
"display_name": "Python 3 (ipykernel)",
321321
"language": "python",
322322
"name": "python3"
323323
},
@@ -331,9 +331,9 @@
331331
"name": "python",
332332
"nbconvert_exporter": "python",
333333
"pygments_lexer": "ipython3",
334-
"version": "3.7.3"
334+
"version": "3.10.12"
335335
}
336336
},
337337
"nbformat": 4,
338-
"nbformat_minor": 2
338+
"nbformat_minor": 4
339339
}

cirq_version/03_Evolution_in_Closed_and_Open_Systems.ipynb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,13 +89,13 @@
8989
"\n",
9090
"simulator = Simulator()\n",
9191
"q = GridQubit(0, 0)\n",
92-
"circuit = Circuit.from_ops(\n",
92+
"circuit = Circuit(\n",
9393
" cirq.X(q),\n",
9494
" cirq.X(q),\n",
9595
" cirq.measure(q, key='m')\n",
9696
")\n",
9797
"result = simulator.simulate(circuit)\n",
98-
"print(result.final_state)"
98+
"print(result.final_state_vector)"
9999
]
100100
},
101101
{
@@ -201,7 +201,7 @@
201201
],
202202
"metadata": {
203203
"kernelspec": {
204-
"display_name": "Python 3",
204+
"display_name": "Python 3 (ipykernel)",
205205
"language": "python",
206206
"name": "python3"
207207
},
@@ -215,9 +215,9 @@
215215
"name": "python",
216216
"nbconvert_exporter": "python",
217217
"pygments_lexer": "ipython3",
218-
"version": "3.6.4"
218+
"version": "3.10.12"
219219
}
220220
},
221221
"nbformat": 4,
222-
"nbformat_minor": 2
222+
"nbformat_minor": 4
223223
}

0 commit comments

Comments
 (0)