|
17 | 17 | " Installing build dependencies ... \u001b[?25ldone\n", |
18 | 18 | "\u001b[?25h Getting requirements to build wheel ... \u001b[?25ldone\n", |
19 | 19 | "\u001b[?25h Preparing metadata (pyproject.toml) ... \u001b[?25ldone\n", |
20 | | - "\u001b[?25hCollecting numpy>=1.16.6 (from qutip-qip==0.4.0.dev0+018e2c2)\n", |
| 20 | + "\u001b[?25hCollecting numpy>=1.16.6 (from qutip-qip==0.4.0.dev0+5b192a4)\n", |
21 | 21 | " Using cached numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl.metadata (114 kB)\n", |
22 | | - "Collecting scipy>=1.0 (from qutip-qip==0.4.0.dev0+018e2c2)\n", |
| 22 | + "Collecting scipy>=1.0 (from qutip-qip==0.4.0.dev0+5b192a4)\n", |
23 | 23 | " Using cached scipy-1.12.0-cp311-cp311-macosx_12_0_arm64.whl.metadata (165 kB)\n", |
24 | | - "Collecting qutip>=4.6 (from qutip-qip==0.4.0.dev0+018e2c2)\n", |
| 24 | + "Collecting qutip>=4.6 (from qutip-qip==0.4.0.dev0+5b192a4)\n", |
25 | 25 | " Using cached qutip-4.7.5-cp311-cp311-macosx_14_0_arm64.whl\n", |
26 | | - "Collecting packaging (from qutip-qip==0.4.0.dev0+018e2c2)\n", |
| 26 | + "Collecting packaging (from qutip-qip==0.4.0.dev0+5b192a4)\n", |
27 | 27 | " Using cached packaging-24.0-py3-none-any.whl.metadata (3.2 kB)\n", |
28 | 28 | "Using cached numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl (14.0 MB)\n", |
29 | 29 | "Using cached scipy-1.12.0-cp311-cp311-macosx_12_0_arm64.whl (31.4 MB)\n", |
30 | 30 | "Using cached packaging-24.0-py3-none-any.whl (53 kB)\n", |
31 | 31 | "Building wheels for collected packages: qutip-qip\n", |
32 | 32 | " Building wheel for qutip-qip (pyproject.toml) ... \u001b[?25ldone\n", |
33 | | - "\u001b[?25h Created wheel for qutip-qip: filename=qutip_qip-0.4.0.dev0+018e2c2-py3-none-any.whl size=132405 sha256=69a59382c932aa9ef961feebec61e472c2f88fc44936bdbdb0fce496e32dc52a\n", |
| 33 | + "\u001b[?25h Created wheel for qutip-qip: filename=qutip_qip-0.4.0.dev0+5b192a4-py3-none-any.whl size=131675 sha256=02b80c0fc05d1e2e368adfc88567c451165d30da2877083e27bfab73fe927f41\n", |
34 | 34 | " Stored in directory: /Users/churchill/Library/Caches/pip/wheels/9a/16/a2/f9c88fc86676e21805aa95320fa839b4e72041d5d251271ac3\n", |
35 | 35 | "Successfully built qutip-qip\n", |
36 | 36 | "Installing collected packages: packaging, numpy, scipy, qutip, qutip-qip\n", |
|
51 | 51 | " Uninstalling qutip-4.7.5:\n", |
52 | 52 | " Successfully uninstalled qutip-4.7.5\n", |
53 | 53 | " Attempting uninstall: qutip-qip\n", |
54 | | - " Found existing installation: qutip-qip 0.4.0.dev0+018e2c2\n", |
55 | | - " Uninstalling qutip-qip-0.4.0.dev0+018e2c2:\n", |
56 | | - " Successfully uninstalled qutip-qip-0.4.0.dev0+018e2c2\n", |
57 | | - "Successfully installed numpy-1.26.4 packaging-24.0 qutip-4.7.5 qutip-qip-0.4.0.dev0+018e2c2 scipy-1.12.0\n", |
58 | | - "Requirement already satisfied: qiskit in ./venv/lib/python3.11/site-packages (1.0.2)\n", |
59 | | - "Requirement already satisfied: qiskit-ionq in ./venv/lib/python3.11/site-packages (0.5.0)\n", |
60 | | - "Requirement already satisfied: matplotlib in ./venv/lib/python3.11/site-packages (3.8.3)\n", |
61 | | - "Requirement already satisfied: rustworkx>=0.14.0 in ./venv/lib/python3.11/site-packages (from qiskit) (0.14.2)\n", |
62 | | - "Requirement already satisfied: numpy<2,>=1.17 in ./venv/lib/python3.11/site-packages (from qiskit) (1.26.4)\n", |
63 | | - "Requirement already satisfied: scipy>=1.5 in ./venv/lib/python3.11/site-packages (from qiskit) (1.12.0)\n", |
64 | | - "Requirement already satisfied: sympy>=1.3 in ./venv/lib/python3.11/site-packages (from qiskit) (1.12)\n", |
65 | | - "Requirement already satisfied: dill>=0.3 in ./venv/lib/python3.11/site-packages (from qiskit) (0.3.8)\n", |
66 | | - "Requirement already satisfied: python-dateutil>=2.8.0 in ./venv/lib/python3.11/site-packages (from qiskit) (2.9.0.post0)\n", |
67 | | - "Requirement already satisfied: stevedore>=3.0.0 in ./venv/lib/python3.11/site-packages (from qiskit) (5.2.0)\n", |
68 | | - "Requirement already satisfied: typing-extensions in ./venv/lib/python3.11/site-packages (from qiskit) (4.10.0)\n", |
69 | | - "Requirement already satisfied: symengine>=0.11 in ./venv/lib/python3.11/site-packages (from qiskit) (0.11.0)\n", |
70 | | - "Requirement already satisfied: decorator>=5.1.0 in ./venv/lib/python3.11/site-packages (from qiskit-ionq) (5.1.1)\n", |
71 | | - "Requirement already satisfied: requests>=2.24.0 in ./venv/lib/python3.11/site-packages (from qiskit-ionq) (2.31.0)\n", |
72 | | - "Requirement already satisfied: retry>=0.9.0 in ./venv/lib/python3.11/site-packages (from qiskit-ionq) (0.9.2)\n", |
73 | | - "Requirement already satisfied: importlib-metadata>=4.11.4 in ./venv/lib/python3.11/site-packages (from qiskit-ionq) (7.0.2)\n", |
74 | | - "Requirement already satisfied: contourpy>=1.0.1 in ./venv/lib/python3.11/site-packages (from matplotlib) (1.2.0)\n", |
75 | | - "Requirement already satisfied: cycler>=0.10 in ./venv/lib/python3.11/site-packages (from matplotlib) (0.12.1)\n", |
76 | | - "Requirement already satisfied: fonttools>=4.22.0 in ./venv/lib/python3.11/site-packages (from matplotlib) (4.50.0)\n", |
77 | | - "Requirement already satisfied: kiwisolver>=1.3.1 in ./venv/lib/python3.11/site-packages (from matplotlib) (1.4.5)\n", |
78 | | - "Requirement already satisfied: packaging>=20.0 in ./venv/lib/python3.11/site-packages (from matplotlib) (24.0)\n", |
79 | | - "Requirement already satisfied: pillow>=8 in ./venv/lib/python3.11/site-packages (from matplotlib) (10.2.0)\n", |
80 | | - "Requirement already satisfied: pyparsing>=2.3.1 in ./venv/lib/python3.11/site-packages (from matplotlib) (3.1.2)\n", |
81 | | - "Requirement already satisfied: zipp>=0.5 in ./venv/lib/python3.11/site-packages (from importlib-metadata>=4.11.4->qiskit-ionq) (3.18.1)\n", |
82 | | - "Requirement already satisfied: six>=1.5 in ./venv/lib/python3.11/site-packages (from python-dateutil>=2.8.0->qiskit) (1.16.0)\n", |
83 | | - "Requirement already satisfied: charset-normalizer<4,>=2 in ./venv/lib/python3.11/site-packages (from requests>=2.24.0->qiskit-ionq) (3.3.2)\n", |
84 | | - "Requirement already satisfied: idna<4,>=2.5 in ./venv/lib/python3.11/site-packages (from requests>=2.24.0->qiskit-ionq) (3.6)\n", |
85 | | - "Requirement already satisfied: urllib3<3,>=1.21.1 in ./venv/lib/python3.11/site-packages (from requests>=2.24.0->qiskit-ionq) (2.2.1)\n", |
86 | | - "Requirement already satisfied: certifi>=2017.4.17 in ./venv/lib/python3.11/site-packages (from requests>=2.24.0->qiskit-ionq) (2024.2.2)\n", |
87 | | - "Requirement already satisfied: py<2.0.0,>=1.4.26 in ./venv/lib/python3.11/site-packages (from retry>=0.9.0->qiskit-ionq) (1.11.0)\n", |
88 | | - "Requirement already satisfied: pbr!=2.1.0,>=2.0.0 in ./venv/lib/python3.11/site-packages (from stevedore>=3.0.0->qiskit) (6.0.0)\n", |
89 | | - "Requirement already satisfied: mpmath>=0.19 in ./venv/lib/python3.11/site-packages (from sympy>=1.3->qiskit) (1.3.0)\n" |
| 54 | + " Found existing installation: qutip-qip 0.4.0.dev0+5b192a4\n", |
| 55 | + " Uninstalling qutip-qip-0.4.0.dev0+5b192a4:\n", |
| 56 | + " Successfully uninstalled qutip-qip-0.4.0.dev0+5b192a4\n", |
| 57 | + "Successfully installed numpy-1.26.4 packaging-24.0 qutip-4.7.5 qutip-qip-0.4.0.dev0+5b192a4 scipy-1.12.0\n", |
| 58 | + "Note: you may need to restart the kernel to use updated packages.\n" |
90 | 59 | ] |
91 | 60 | } |
92 | 61 | ], |
93 | 62 | "source": [ |
94 | 63 | "# pip install the current directory, overwriting any existing installation\n", |
95 | | - "!pip install --upgrade --force-reinstall . && pip install qiskit qiskit-ionq matplotlib" |
| 64 | + "%pip install --upgrade --force-reinstall ." |
96 | 65 | ] |
97 | 66 | }, |
98 | 67 | { |
99 | 68 | "cell_type": "markdown", |
100 | 69 | "metadata": {}, |
101 | 70 | "source": [ |
102 | | - "## Qiskit Integration" |
| 71 | + "## IonQ Integration using Qiskit" |
103 | 72 | ] |
104 | 73 | }, |
105 | 74 | { |
106 | 75 | "cell_type": "code", |
107 | 76 | "execution_count": 2, |
108 | 77 | "metadata": {}, |
109 | 78 | "outputs": [ |
| 79 | + { |
| 80 | + "name": "stderr", |
| 81 | + "output_type": "stream", |
| 82 | + "text": [ |
| 83 | + "/Users/churchill/GitHub/qutip-qip/venv/lib/python3.11/site-packages/qutip/qip/circuit.py:242: UserWarning: Unknown gate H\n", |
| 84 | + " warnings.warn(\"Unknown gate %s\" % name)\n" |
| 85 | + ] |
| 86 | + }, |
110 | 87 | { |
111 | 88 | "data": { |
| 89 | + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJcAAABkCAQAAAAhkGpFAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAACYktHRAD/h4/MvwAAAAlwSFlzAAAAZAAAAGQAD5bF3QAAAAd0SU1FB+gDExAjDwH/eG4AAAL7SURBVHja7dw/a1NRHMbx708qLhWNFlyESMDZP3F3uZuLDnF3SV9C8hLSNyA0o5vNoC8gL8DBDs7SQMHBqVexCE7HwST2j0Keck5LL8+nQ5NwOSf3m5tz25LbYECL0h7wqfgcf7X5xvcyQ0c6x/24/K5c9BO4XJxL4lwS55I4l8S5JM4lcS6Jc0mcS+JcEueSOJfEuSTOJXEuiXNJnEviXBLnkjiXxLkkziVxLolzSZxL4lwS55I4l8S5JM4lcS6Jc0mcS+JcEueSOJekYbmiFweRYi+6hcanew6fq7/P5+JzAKzzhusAfOFViQnWqBp0GUJ7Hgvu8oxf+Sdo1GUI0eJgfrNOt0rM0Ki1K9VsAvBj/j27Rh1dANHiNW/T+zKjN+roAkg1+xyWGr1xucpyLolzSZxL4lwS55I4l8S5JM4lcS6Jc0mcS+JcEueSOJfEuSTOJXEuiXNJnEviXBLnkjiXxLkkziVxLolzSZxL4lwS55I4l8S5JM4lcS6Jc0nW8g4XD9lYcdP1Uh+3LSlzLgbA/kpbPg0uX7DcufaZpukqG8ao3OeTy/HaJcl9dF2w6NOlx4t4xyTt5h+/aK7o0AdglsbRpwPAVqqLzbZNzZiaD1xlJyZpmHuOom/GNEtDBkzTGNKYFqRhqVjADpP0Mk2BwzThCa0YXapcEBX1cumvKPD2WM40+vOyLKSaIb3o5J2l9FJfMY8VHTqsdM48ox5bxx9INVvzxSCbtch7tWyb9WP3u8yiAqBi99gb8QaPIueeJLqxeA6LkX/yPLK+RLmvlr13Ile1vLKwe+LYusljbmeceYNq+RyYj3yNO8tH80hZvxhRHblXcbC8vUfv/1tmmHnv9Mj0GOXdv7Jr1/mtXDCNwanH+rnnLJuruzwXnly58hvSP/7vEGJw5KycSbFcUcWIik5UECP6tP7x6meUajbZWcwRndg5sm5mnKbg2pVnS2H2Ftvs8ZUZH+nnHj2RmvU74/JK/2L8FwlJ7qNr9R8+2xe962fxG0g2oKzcZUZvAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDI0LTAzLTE5VDE2OjM1OjE1KzAwOjAwdQUKEQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyNC0wMy0xOVQxNjozNToxNSswMDowMARYsq0AAAAodEVYdGRhdGU6dGltZXN0YW1wADIwMjQtMDMtMTlUMTY6MzU6MTUrMDA6MDBTTZNyAAAAE3RFWHRwZGY6VmVyc2lvbgBQREYtMS41UzZawQAAAABJRU5ErkJggg==", |
112 | 90 | "text/plain": [ |
113 | | - "<qiskit.circuit.instructionset.InstructionSet at 0x12104c4c0>" |
| 91 | + "<IPython.core.display.Image object>" |
114 | 92 | ] |
115 | 93 | }, |
116 | 94 | "execution_count": 2, |
|
119 | 97 | } |
120 | 98 | ], |
121 | 99 | "source": [ |
122 | | - "from qiskit import QuantumCircuit\n", |
| 100 | + "from qutip.qip.circuit import QubitCircuit\n", |
123 | 101 | "\n", |
124 | | - "circ = QuantumCircuit(2,2)\n", |
125 | | - "circ.h(0)\n", |
126 | | - "circ.h(1)\n", |
127 | | - "circ.measure(0,0)\n", |
128 | | - "circ.measure(1,1)" |
129 | | - ] |
130 | | - }, |
131 | | - { |
132 | | - "cell_type": "raw", |
133 | | - "metadata": {}, |
134 | | - "source": [ |
135 | | - "from qutip_qip.qiskit import QiskitCircuitSimulator\n", |
136 | | - "backend = QiskitCircuitSimulator()\n", |
137 | | - "job = backend.run(circ)\n", |
138 | | - "result = job.result()" |
139 | | - ] |
140 | | - }, |
141 | | - { |
142 | | - "cell_type": "raw", |
143 | | - "metadata": {}, |
144 | | - "source": [ |
145 | | - "from qiskit.visualization import plot_histogram\n", |
146 | | - "plot_histogram(result.get_counts())" |
147 | | - ] |
148 | | - }, |
149 | | - { |
150 | | - "cell_type": "markdown", |
151 | | - "metadata": {}, |
152 | | - "source": [ |
153 | | - "## IonQ Integration using Qiskit" |
| 102 | + "qc = QubitCircuit(N=2, num_cbits=1)\n", |
| 103 | + "qc.add_gate(\"H\", targets=0)\n", |
| 104 | + "qc.add_gate(\"CNOT\", controls=1, targets=0)\n", |
| 105 | + "\n", |
| 106 | + "qc.png" |
154 | 107 | ] |
155 | 108 | }, |
156 | 109 | { |
157 | 110 | "cell_type": "code", |
158 | 111 | "execution_count": 3, |
159 | 112 | "metadata": {}, |
160 | | - "outputs": [], |
161 | | - "source": [ |
162 | | - "from qutip_qip.ionq import Provider, IonQSimulator\n", |
163 | | - "provider = Provider()\n", |
164 | | - "backend = IonQSimulator(provider=provider)\n", |
165 | | - "job = backend.run(circ)\n", |
166 | | - "result = job.result()" |
167 | | - ] |
168 | | - }, |
169 | | - { |
170 | | - "cell_type": "code", |
171 | | - "execution_count": 5, |
172 | | - "metadata": {}, |
173 | 113 | "outputs": [ |
174 | 114 | { |
175 | | - "data": { |
176 | | - "text/plain": [ |
177 | | - "{'00': 232, '01': 267, '10': 258, '11': 267}" |
178 | | - ] |
179 | | - }, |
180 | | - "execution_count": 5, |
181 | | - "metadata": {}, |
182 | | - "output_type": "execute_result" |
| 115 | + "name": "stdout", |
| 116 | + "output_type": "stream", |
| 117 | + "text": [ |
| 118 | + "{'0': 512, '3': 512}\n" |
| 119 | + ] |
183 | 120 | } |
184 | 121 | ], |
185 | 122 | "source": [ |
186 | | - "result.get_counts()" |
| 123 | + "from qutip_qip.ionq import Provider, IonQSimulator\n", |
| 124 | + "\n", |
| 125 | + "provider = Provider()\n", |
| 126 | + "backend = IonQSimulator(provider=provider)\n", |
| 127 | + "\n", |
| 128 | + "job = backend.run(qc)\n", |
| 129 | + "results = job.get_results()\n", |
| 130 | + "print(results)" |
187 | 131 | ] |
188 | | - }, |
189 | | - { |
190 | | - "cell_type": "code", |
191 | | - "execution_count": null, |
192 | | - "metadata": {}, |
193 | | - "outputs": [], |
194 | | - "source": [] |
195 | 132 | } |
196 | 133 | ], |
197 | 134 | "metadata": { |
|
0 commit comments