Show More
The requested changes are too big and content was truncated. Show full diff
@@ -0,0 +1,157 b'' | |||||
|
1 | { | |||
|
2 | "metadata": { | |||
|
3 | "name": "Frontend-Kernel Model" | |||
|
4 | }, | |||
|
5 | "nbformat": 3, | |||
|
6 | "nbformat_minor": 0, | |||
|
7 | "worksheets": [ | |||
|
8 | { | |||
|
9 | "cells": [ | |||
|
10 | { | |||
|
11 | "cell_type": "heading", | |||
|
12 | "level": 1, | |||
|
13 | "metadata": {}, | |||
|
14 | "source": [ | |||
|
15 | "The Frontend/Kernel Model" | |||
|
16 | ] | |||
|
17 | }, | |||
|
18 | { | |||
|
19 | "cell_type": "markdown", | |||
|
20 | "metadata": {}, | |||
|
21 | "source": [ | |||
|
22 | "The traditional IPython (`ipython`) consists of a single process that combines a terminal based UI with the process that runs the users code.\n", | |||
|
23 | "\n", | |||
|
24 | "While this traditional application still exists, the modern IPython consists of two processes:\n", | |||
|
25 | "\n", | |||
|
26 | "* Kernel: this is the process that runs the users code.\n", | |||
|
27 | "* Frontend: this is the process that provides the user interface where the user types code and sees results.\n", | |||
|
28 | "\n", | |||
|
29 | "IPython currently has 3 frontends:\n", | |||
|
30 | "\n", | |||
|
31 | "* Terminal Console (`ipython console`)\n", | |||
|
32 | "* Qt Console (`ipython qtconsole`)\n", | |||
|
33 | "* Notebook (`ipython notebook`)\n", | |||
|
34 | "\n", | |||
|
35 | "The Kernel and Frontend communicate over a ZeroMQ/JSON based messaging protocol, which allows multiple Frontends (even of different types) to communicate with a single Kernel. This opens the door for all sorts of interesting things, such as connecting a Console or Qt Console to a Notebook's Kernel. For example, you may want to connect a Qt console to your Notebook's Kernel and use it as a help\n", | |||
|
36 | "browser, calling `??` on objects in the Qt console (whose pager is more flexible than the\n", | |||
|
37 | "one in the notebook). \n", | |||
|
38 | "\n", | |||
|
39 | "This Notebook describes how you would connect another Frontend to a Kernel that is associated with a Notebook." | |||
|
40 | ] | |||
|
41 | }, | |||
|
42 | { | |||
|
43 | "cell_type": "heading", | |||
|
44 | "level": 2, | |||
|
45 | "metadata": {}, | |||
|
46 | "source": [ | |||
|
47 | "Manual connection" | |||
|
48 | ] | |||
|
49 | }, | |||
|
50 | { | |||
|
51 | "cell_type": "markdown", | |||
|
52 | "metadata": {}, | |||
|
53 | "source": [ | |||
|
54 | "To connect another Frontend to a Kernel manually, you first need to find out the connection information for the Kernel using the `%connect_info` magic:" | |||
|
55 | ] | |||
|
56 | }, | |||
|
57 | { | |||
|
58 | "cell_type": "code", | |||
|
59 | "collapsed": false, | |||
|
60 | "input": [ | |||
|
61 | "%connect_info" | |||
|
62 | ], | |||
|
63 | "language": "python", | |||
|
64 | "metadata": {}, | |||
|
65 | "outputs": [ | |||
|
66 | { | |||
|
67 | "output_type": "stream", | |||
|
68 | "stream": "stdout", | |||
|
69 | "text": [ | |||
|
70 | "{\n", | |||
|
71 | " \"stdin_port\": 52858, \n", | |||
|
72 | " \"ip\": \"127.0.0.1\", \n", | |||
|
73 | " \"hb_port\": 52859, \n", | |||
|
74 | " \"key\": \"7efd45ca-d8a2-41b0-9cea-d9116d0fb883\", \n", | |||
|
75 | " \"shell_port\": 52856, \n", | |||
|
76 | " \"iopub_port\": 52857\n", | |||
|
77 | "}\n", | |||
|
78 | "\n", | |||
|
79 | "Paste the above JSON into a file, and connect with:\n", | |||
|
80 | " $> ipython <app> --existing <file>\n", | |||
|
81 | "or, if you are local, you can connect with just:\n", | |||
|
82 | " $> ipython <app> --existing kernel-b3bac7c1-8b2c-4536-8082-8d1df24f99ac.json \n", | |||
|
83 | "or even just:\n", | |||
|
84 | " $> ipython <app> --existing \n", | |||
|
85 | "if this is the most recent IPython session you have started.\n" | |||
|
86 | ] | |||
|
87 | } | |||
|
88 | ], | |||
|
89 | "prompt_number": 6 | |||
|
90 | }, | |||
|
91 | { | |||
|
92 | "cell_type": "markdown", | |||
|
93 | "metadata": {}, | |||
|
94 | "source": [ | |||
|
95 | "You can see that this magic displays everything you need to connect to this Notebook's Kernel." | |||
|
96 | ] | |||
|
97 | }, | |||
|
98 | { | |||
|
99 | "cell_type": "heading", | |||
|
100 | "level": 2, | |||
|
101 | "metadata": {}, | |||
|
102 | "source": [ | |||
|
103 | "Automatic connection using a new Qt Console" | |||
|
104 | ] | |||
|
105 | }, | |||
|
106 | { | |||
|
107 | "cell_type": "markdown", | |||
|
108 | "metadata": {}, | |||
|
109 | "source": [ | |||
|
110 | "You can also start a new Qt Console connected to your current Kernel by using the `%qtconsole` magic. This will detect the necessary connection\n", | |||
|
111 | "information and start the Qt Console for you automatically." | |||
|
112 | ] | |||
|
113 | }, | |||
|
114 | { | |||
|
115 | "cell_type": "code", | |||
|
116 | "collapsed": false, | |||
|
117 | "input": [ | |||
|
118 | "a = 10" | |||
|
119 | ], | |||
|
120 | "language": "python", | |||
|
121 | "metadata": {}, | |||
|
122 | "outputs": [], | |||
|
123 | "prompt_number": 1 | |||
|
124 | }, | |||
|
125 | { | |||
|
126 | "cell_type": "code", | |||
|
127 | "collapsed": false, | |||
|
128 | "input": [ | |||
|
129 | "%qtconsole" | |||
|
130 | ], | |||
|
131 | "language": "python", | |||
|
132 | "metadata": {}, | |||
|
133 | "outputs": [], | |||
|
134 | "prompt_number": 2 | |||
|
135 | }, | |||
|
136 | { | |||
|
137 | "cell_type": "heading", | |||
|
138 | "level": 2, | |||
|
139 | "metadata": {}, | |||
|
140 | "source": [ | |||
|
141 | "The kernel's `raw_input` and `%debug`" | |||
|
142 | ] | |||
|
143 | }, | |||
|
144 | { | |||
|
145 | "cell_type": "markdown", | |||
|
146 | "metadata": {}, | |||
|
147 | "source": [ | |||
|
148 | "The one feature the notebook currently doesn't support as a Frontend is the ability to send data to the Kernel's standard input socket. That is, if the Kernel requires information to be typed interactively by calling the builtin `raw_input` function, the Notebook will be blocked. This happens for example if you run a script that queries interactively for parameters, and very importantly, is how the interactive IPython debugger that activates when you type `%debug` works.\n", | |||
|
149 | "\n", | |||
|
150 | "So, in order to be able to use `%debug` or anything else that requires `raw_input`, you can either use a Terminal Console or Qt Console connected to a Notebook's Kernel as described above.\n" | |||
|
151 | ] | |||
|
152 | } | |||
|
153 | ], | |||
|
154 | "metadata": {} | |||
|
155 | } | |||
|
156 | ] | |||
|
157 | } No newline at end of file |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
@@ -0,0 +1,54 b'' | |||||
|
1 | { | |||
|
2 | "metadata": { | |||
|
3 | "name": "Local Files" | |||
|
4 | }, | |||
|
5 | "nbformat": 3, | |||
|
6 | "nbformat_minor": 0, | |||
|
7 | "worksheets": [ | |||
|
8 | { | |||
|
9 | "cells": [ | |||
|
10 | { | |||
|
11 | "cell_type": "markdown", | |||
|
12 | "metadata": {}, | |||
|
13 | "source": [ | |||
|
14 | "## Local Files\n", | |||
|
15 | "\n", | |||
|
16 | "The above examples embed images and video from the notebook filesystem in the output\n", | |||
|
17 | "areas of code cells. It is also possible to request these files directly in markdown cells\n", | |||
|
18 | "if they reside in the notebook directory via relative urls prefixed with `files/`:\n", | |||
|
19 | "\n", | |||
|
20 | " files/[subdirectory/]<filename>\n", | |||
|
21 | "\n", | |||
|
22 | "\n", | |||
|
23 | "For example, in the example notebook folder, we have the Python logo, addressed as:\n", | |||
|
24 | "\n", | |||
|
25 | " <img src=\"files/python-logo.svg\" />\n", | |||
|
26 | "\n", | |||
|
27 | "<img src=\"/files/python-logo.svg\" />\n", | |||
|
28 | "\n", | |||
|
29 | "and a video with the HTML5 video tag:\n", | |||
|
30 | "\n", | |||
|
31 | " <video controls src=\"files/animation.m4v\" />\n", | |||
|
32 | "\n", | |||
|
33 | "<video controls src=\"/files/animation.m4v\" />\n", | |||
|
34 | "\n", | |||
|
35 | "These do not embed the data into the notebook file,\n", | |||
|
36 | "and require that the files exist when you are viewing the notebook.\n", | |||
|
37 | "\n", | |||
|
38 | "### Security of local files\n", | |||
|
39 | "\n", | |||
|
40 | "Note that this means that the IPython notebook server also acts as a generic file server\n", | |||
|
41 | "for files inside the same tree as your notebooks. Access is not granted outside the\n", | |||
|
42 | "notebook folder so you have strict control over what files are visible, but for this\n", | |||
|
43 | "reason it is highly recommended that you do not run the notebook server with a notebook\n", | |||
|
44 | "directory at a high level in your filesystem (e.g. your home directory).\n", | |||
|
45 | "\n", | |||
|
46 | "When you run the notebook in a password-protected manner, local file access is restricted\n", | |||
|
47 | "to authenticated users unless read-only views are active." | |||
|
48 | ] | |||
|
49 | } | |||
|
50 | ], | |||
|
51 | "metadata": {} | |||
|
52 | } | |||
|
53 | ] | |||
|
54 | } No newline at end of file |
This diff has been collapsed as it changes many lines, (1156 lines changed) Show them Hide them | |||||
@@ -0,0 +1,1156 b'' | |||||
|
1 | { | |||
|
2 | "metadata": { | |||
|
3 | "name": "Part 2 - Basic Output" | |||
|
4 | }, | |||
|
5 | "nbformat": 3, | |||
|
6 | "nbformat_minor": 0, | |||
|
7 | "worksheets": [ | |||
|
8 | { | |||
|
9 | "cells": [ | |||
|
10 | { | |||
|
11 | "cell_type": "heading", | |||
|
12 | "level": 1, | |||
|
13 | "metadata": {}, | |||
|
14 | "source": [ | |||
|
15 | "Basic Output" | |||
|
16 | ] | |||
|
17 | }, | |||
|
18 | { | |||
|
19 | "cell_type": "markdown", | |||
|
20 | "metadata": {}, | |||
|
21 | "source": [ | |||
|
22 | "When a cell is run, it can generate *output*. In IPython, the definition of output is quite general; it can be text, images, LaTeX, HTML or JSON. All output is displayed below the code that generated it, in the *output area*.\n", | |||
|
23 | "\n", | |||
|
24 | "This Notebook describes the basics of output and shows how the `stdout/stderr` streams are handled." | |||
|
25 | ] | |||
|
26 | }, | |||
|
27 | { | |||
|
28 | "cell_type": "heading", | |||
|
29 | "level": 2, | |||
|
30 | "metadata": {}, | |||
|
31 | "source": [ | |||
|
32 | "Displayhook" | |||
|
33 | ] | |||
|
34 | }, | |||
|
35 | { | |||
|
36 | "cell_type": "markdown", | |||
|
37 | "metadata": {}, | |||
|
38 | "source": [ | |||
|
39 | "When a Python object is returned by an expression, Python's `displayhook` mechanism is triggered. In IPython, this results in an output prompt, such as `Out[2]`. These objects are then available under the variables:\n", | |||
|
40 | "\n", | |||
|
41 | "* `_` (last output)\n", | |||
|
42 | "* `__` (second to last output)\n", | |||
|
43 | "* `_N` (`Out[N]`)" | |||
|
44 | ] | |||
|
45 | }, | |||
|
46 | { | |||
|
47 | "cell_type": "code", | |||
|
48 | "collapsed": false, | |||
|
49 | "input": [ | |||
|
50 | "import numpy as np" | |||
|
51 | ], | |||
|
52 | "language": "python", | |||
|
53 | "metadata": {}, | |||
|
54 | "outputs": [], | |||
|
55 | "prompt_number": 24 | |||
|
56 | }, | |||
|
57 | { | |||
|
58 | "cell_type": "code", | |||
|
59 | "collapsed": false, | |||
|
60 | "input": [ | |||
|
61 | "numpy.random.rand(10)" | |||
|
62 | ], | |||
|
63 | "language": "python", | |||
|
64 | "metadata": {}, | |||
|
65 | "outputs": [ | |||
|
66 | { | |||
|
67 | "output_type": "pyout", | |||
|
68 | "prompt_number": 27, | |||
|
69 | "text": [ | |||
|
70 | "array([ 0.94311014, 0.03500265, 0.59873731, 0.63411734, 0.03642486,\n", | |||
|
71 | " 0.22090049, 0.33132549, 0.24439398, 0.80084185, 0.25114916])" | |||
|
72 | ] | |||
|
73 | } | |||
|
74 | ], | |||
|
75 | "prompt_number": 27 | |||
|
76 | }, | |||
|
77 | { | |||
|
78 | "cell_type": "code", | |||
|
79 | "collapsed": false, | |||
|
80 | "input": [ | |||
|
81 | "np.sin(_)" | |||
|
82 | ], | |||
|
83 | "language": "python", | |||
|
84 | "metadata": {}, | |||
|
85 | "outputs": [ | |||
|
86 | { | |||
|
87 | "output_type": "pyout", | |||
|
88 | "prompt_number": 28, | |||
|
89 | "text": [ | |||
|
90 | "array([ 0.80938852, 0.0349955 , 0.56359988, 0.59246668, 0.0364168 ,\n", | |||
|
91 | " 0.21910832, 0.32529671, 0.24196836, 0.71794236, 0.24851724])" | |||
|
92 | ] | |||
|
93 | } | |||
|
94 | ], | |||
|
95 | "prompt_number": 28 | |||
|
96 | }, | |||
|
97 | { | |||
|
98 | "cell_type": "heading", | |||
|
99 | "level": 2, | |||
|
100 | "metadata": {}, | |||
|
101 | "source": [ | |||
|
102 | "sys.stdout and sys.stderr" | |||
|
103 | ] | |||
|
104 | }, | |||
|
105 | { | |||
|
106 | "cell_type": "markdown", | |||
|
107 | "metadata": {}, | |||
|
108 | "source": [ | |||
|
109 | "The stdout and stderr streams are displayed as text in the output area." | |||
|
110 | ] | |||
|
111 | }, | |||
|
112 | { | |||
|
113 | "cell_type": "code", | |||
|
114 | "collapsed": false, | |||
|
115 | "input": [ | |||
|
116 | "print \"hi, stdout\"" | |||
|
117 | ], | |||
|
118 | "language": "python", | |||
|
119 | "metadata": {}, | |||
|
120 | "outputs": [ | |||
|
121 | { | |||
|
122 | "output_type": "stream", | |||
|
123 | "stream": "stdout", | |||
|
124 | "text": [ | |||
|
125 | "hi, stdout\n" | |||
|
126 | ] | |||
|
127 | } | |||
|
128 | ], | |||
|
129 | "prompt_number": 29 | |||
|
130 | }, | |||
|
131 | { | |||
|
132 | "cell_type": "code", | |||
|
133 | "collapsed": false, | |||
|
134 | "input": [ | |||
|
135 | "print >> sys.stderr, 'hi, stderr'" | |||
|
136 | ], | |||
|
137 | "language": "python", | |||
|
138 | "metadata": {}, | |||
|
139 | "outputs": [ | |||
|
140 | { | |||
|
141 | "output_type": "stream", | |||
|
142 | "stream": "stderr", | |||
|
143 | "text": [ | |||
|
144 | "hi, stderr\n" | |||
|
145 | ] | |||
|
146 | } | |||
|
147 | ], | |||
|
148 | "prompt_number": 8 | |||
|
149 | }, | |||
|
150 | { | |||
|
151 | "cell_type": "heading", | |||
|
152 | "level": 2, | |||
|
153 | "metadata": {}, | |||
|
154 | "source": [ | |||
|
155 | "Output is asynchronous" | |||
|
156 | ] | |||
|
157 | }, | |||
|
158 | { | |||
|
159 | "cell_type": "markdown", | |||
|
160 | "metadata": {}, | |||
|
161 | "source": [ | |||
|
162 | "All output is displayed asynchronously as it is generated in the Kernel. If you execute the next cell, you will see the output one piece at a time, not all at the end." | |||
|
163 | ] | |||
|
164 | }, | |||
|
165 | { | |||
|
166 | "cell_type": "code", | |||
|
167 | "collapsed": false, | |||
|
168 | "input": [ | |||
|
169 | "import time, sys\n", | |||
|
170 | "for i in range(8):\n", | |||
|
171 | " print i,\n", | |||
|
172 | " time.sleep(0.5)" | |||
|
173 | ], | |||
|
174 | "language": "python", | |||
|
175 | "metadata": {}, | |||
|
176 | "outputs": [ | |||
|
177 | { | |||
|
178 | "output_type": "stream", | |||
|
179 | "stream": "stdout", | |||
|
180 | "text": [ | |||
|
181 | "0 " | |||
|
182 | ] | |||
|
183 | }, | |||
|
184 | { | |||
|
185 | "output_type": "stream", | |||
|
186 | "stream": "stdout", | |||
|
187 | "text": [ | |||
|
188 | "1 " | |||
|
189 | ] | |||
|
190 | }, | |||
|
191 | { | |||
|
192 | "output_type": "stream", | |||
|
193 | "stream": "stdout", | |||
|
194 | "text": [ | |||
|
195 | "2 " | |||
|
196 | ] | |||
|
197 | }, | |||
|
198 | { | |||
|
199 | "output_type": "stream", | |||
|
200 | "stream": "stdout", | |||
|
201 | "text": [ | |||
|
202 | "3 " | |||
|
203 | ] | |||
|
204 | }, | |||
|
205 | { | |||
|
206 | "output_type": "stream", | |||
|
207 | "stream": "stdout", | |||
|
208 | "text": [ | |||
|
209 | "4 " | |||
|
210 | ] | |||
|
211 | }, | |||
|
212 | { | |||
|
213 | "output_type": "stream", | |||
|
214 | "stream": "stdout", | |||
|
215 | "text": [ | |||
|
216 | "5 " | |||
|
217 | ] | |||
|
218 | }, | |||
|
219 | { | |||
|
220 | "output_type": "stream", | |||
|
221 | "stream": "stdout", | |||
|
222 | "text": [ | |||
|
223 | "6 " | |||
|
224 | ] | |||
|
225 | }, | |||
|
226 | { | |||
|
227 | "output_type": "stream", | |||
|
228 | "stream": "stdout", | |||
|
229 | "text": [ | |||
|
230 | "7\n" | |||
|
231 | ] | |||
|
232 | } | |||
|
233 | ], | |||
|
234 | "prompt_number": 30 | |||
|
235 | }, | |||
|
236 | { | |||
|
237 | "cell_type": "heading", | |||
|
238 | "level": 2, | |||
|
239 | "metadata": {}, | |||
|
240 | "source": [ | |||
|
241 | "Large outputs" | |||
|
242 | ] | |||
|
243 | }, | |||
|
244 | { | |||
|
245 | "cell_type": "markdown", | |||
|
246 | "metadata": {}, | |||
|
247 | "source": [ | |||
|
248 | "To better handle large outputs, the output area can be collapsed. Run the following cell and then single- or double- click on the active area to the left of the output:" | |||
|
249 | ] | |||
|
250 | }, | |||
|
251 | { | |||
|
252 | "cell_type": "code", | |||
|
253 | "collapsed": false, | |||
|
254 | "input": [ | |||
|
255 | "for i in range(50):\n", | |||
|
256 | " print i" | |||
|
257 | ], | |||
|
258 | "language": "python", | |||
|
259 | "metadata": {}, | |||
|
260 | "outputs": [ | |||
|
261 | { | |||
|
262 | "output_type": "stream", | |||
|
263 | "stream": "stdout", | |||
|
264 | "text": [ | |||
|
265 | "0\n", | |||
|
266 | "1\n", | |||
|
267 | "2\n", | |||
|
268 | "3\n", | |||
|
269 | "4\n", | |||
|
270 | "5\n", | |||
|
271 | "6\n", | |||
|
272 | "7\n", | |||
|
273 | "8\n", | |||
|
274 | "9\n", | |||
|
275 | "10\n", | |||
|
276 | "11\n", | |||
|
277 | "12\n", | |||
|
278 | "13\n", | |||
|
279 | "14\n", | |||
|
280 | "15\n", | |||
|
281 | "16\n", | |||
|
282 | "17\n", | |||
|
283 | "18\n", | |||
|
284 | "19\n", | |||
|
285 | "20\n", | |||
|
286 | "21\n", | |||
|
287 | "22\n", | |||
|
288 | "23\n", | |||
|
289 | "24\n", | |||
|
290 | "25\n", | |||
|
291 | "26\n", | |||
|
292 | "27\n", | |||
|
293 | "28\n", | |||
|
294 | "29\n", | |||
|
295 | "30\n", | |||
|
296 | "31\n", | |||
|
297 | "32\n", | |||
|
298 | "33\n", | |||
|
299 | "34\n", | |||
|
300 | "35\n", | |||
|
301 | "36\n", | |||
|
302 | "37\n", | |||
|
303 | "38\n", | |||
|
304 | "39\n", | |||
|
305 | "40\n", | |||
|
306 | "41\n", | |||
|
307 | "42\n", | |||
|
308 | "43\n", | |||
|
309 | "44\n", | |||
|
310 | "45\n", | |||
|
311 | "46\n", | |||
|
312 | "47\n", | |||
|
313 | "48\n", | |||
|
314 | "49\n" | |||
|
315 | ] | |||
|
316 | } | |||
|
317 | ], | |||
|
318 | "prompt_number": 4 | |||
|
319 | }, | |||
|
320 | { | |||
|
321 | "cell_type": "markdown", | |||
|
322 | "metadata": {}, | |||
|
323 | "source": [ | |||
|
324 | "Beyond a certain point, output will scroll automatically:" | |||
|
325 | ] | |||
|
326 | }, | |||
|
327 | { | |||
|
328 | "cell_type": "code", | |||
|
329 | "collapsed": false, | |||
|
330 | "input": [ | |||
|
331 | "for i in range(500):\n", | |||
|
332 | " print 2**i - 1" | |||
|
333 | ], | |||
|
334 | "language": "python", | |||
|
335 | "metadata": {}, | |||
|
336 | "outputs": [ | |||
|
337 | { | |||
|
338 | "output_type": "stream", | |||
|
339 | "stream": "stdout", | |||
|
340 | "text": [ | |||
|
341 | "0\n", | |||
|
342 | "1\n", | |||
|
343 | "3\n", | |||
|
344 | "7\n", | |||
|
345 | "15\n", | |||
|
346 | "31\n", | |||
|
347 | "63\n", | |||
|
348 | "127\n", | |||
|
349 | "255\n", | |||
|
350 | "511\n", | |||
|
351 | "1023\n", | |||
|
352 | "2047\n", | |||
|
353 | "4095\n", | |||
|
354 | "8191\n", | |||
|
355 | "16383\n", | |||
|
356 | "32767\n", | |||
|
357 | "65535\n", | |||
|
358 | "131071\n", | |||
|
359 | "262143\n", | |||
|
360 | "524287\n", | |||
|
361 | "1048575\n", | |||
|
362 | "2097151\n", | |||
|
363 | "4194303\n", | |||
|
364 | "8388607\n", | |||
|
365 | "16777215\n", | |||
|
366 | "33554431\n", | |||
|
367 | "67108863\n", | |||
|
368 | "134217727\n", | |||
|
369 | "268435455\n", | |||
|
370 | "536870911\n", | |||
|
371 | "1073741823\n", | |||
|
372 | "2147483647\n", | |||
|
373 | "4294967295\n", | |||
|
374 | "8589934591\n", | |||
|
375 | "17179869183\n", | |||
|
376 | "34359738367\n", | |||
|
377 | "68719476735\n", | |||
|
378 | "137438953471\n", | |||
|
379 | "274877906943\n", | |||
|
380 | "549755813887\n", | |||
|
381 | "1099511627775\n", | |||
|
382 | "2199023255551\n", | |||
|
383 | "4398046511103\n", | |||
|
384 | "8796093022207\n", | |||
|
385 | "17592186044415\n", | |||
|
386 | "35184372088831\n", | |||
|
387 | "70368744177663\n", | |||
|
388 | "140737488355327\n", | |||
|
389 | "281474976710655\n", | |||
|
390 | "562949953421311\n", | |||
|
391 | "1125899906842623\n", | |||
|
392 | "2251799813685247\n", | |||
|
393 | "4503599627370495\n", | |||
|
394 | "9007199254740991\n", | |||
|
395 | "18014398509481983\n", | |||
|
396 | "36028797018963967\n", | |||
|
397 | "72057594037927935\n", | |||
|
398 | "144115188075855871\n", | |||
|
399 | "288230376151711743\n", | |||
|
400 | "576460752303423487\n", | |||
|
401 | "1152921504606846975\n", | |||
|
402 | "2305843009213693951\n", | |||
|
403 | "4611686018427387903\n", | |||
|
404 | "9223372036854775807\n", | |||
|
405 | "18446744073709551615\n", | |||
|
406 | "36893488147419103231\n", | |||
|
407 | "73786976294838206463\n", | |||
|
408 | "147573952589676412927\n", | |||
|
409 | "295147905179352825855\n", | |||
|
410 | "590295810358705651711\n", | |||
|
411 | "1180591620717411303423\n", | |||
|
412 | "2361183241434822606847\n", | |||
|
413 | "4722366482869645213695\n", | |||
|
414 | "9444732965739290427391\n", | |||
|
415 | "18889465931478580854783\n", | |||
|
416 | "37778931862957161709567\n", | |||
|
417 | "75557863725914323419135\n", | |||
|
418 | "151115727451828646838271\n", | |||
|
419 | "302231454903657293676543\n", | |||
|
420 | "604462909807314587353087\n", | |||
|
421 | "1208925819614629174706175\n", | |||
|
422 | "2417851639229258349412351\n", | |||
|
423 | "4835703278458516698824703\n", | |||
|
424 | "9671406556917033397649407\n", | |||
|
425 | "19342813113834066795298815\n", | |||
|
426 | "38685626227668133590597631\n", | |||
|
427 | "77371252455336267181195263\n", | |||
|
428 | "154742504910672534362390527\n", | |||
|
429 | "309485009821345068724781055\n", | |||
|
430 | "618970019642690137449562111\n", | |||
|
431 | "1237940039285380274899124223\n", | |||
|
432 | "2475880078570760549798248447\n", | |||
|
433 | "4951760157141521099596496895\n", | |||
|
434 | "9903520314283042199192993791\n", | |||
|
435 | "19807040628566084398385987583\n", | |||
|
436 | "39614081257132168796771975167\n", | |||
|
437 | "79228162514264337593543950335\n", | |||
|
438 | "158456325028528675187087900671\n", | |||
|
439 | "316912650057057350374175801343\n", | |||
|
440 | "633825300114114700748351602687\n", | |||
|
441 | "1267650600228229401496703205375\n", | |||
|
442 | "2535301200456458802993406410751\n", | |||
|
443 | "5070602400912917605986812821503\n", | |||
|
444 | "10141204801825835211973625643007\n", | |||
|
445 | "20282409603651670423947251286015\n", | |||
|
446 | "40564819207303340847894502572031\n", | |||
|
447 | "81129638414606681695789005144063\n", | |||
|
448 | "162259276829213363391578010288127\n", | |||
|
449 | "324518553658426726783156020576255\n", | |||
|
450 | "649037107316853453566312041152511\n", | |||
|
451 | "1298074214633706907132624082305023\n", | |||
|
452 | "2596148429267413814265248164610047\n", | |||
|
453 | "5192296858534827628530496329220095\n", | |||
|
454 | "10384593717069655257060992658440191\n", | |||
|
455 | "20769187434139310514121985316880383\n", | |||
|
456 | "41538374868278621028243970633760767\n", | |||
|
457 | "83076749736557242056487941267521535\n", | |||
|
458 | "166153499473114484112975882535043071\n", | |||
|
459 | "332306998946228968225951765070086143\n", | |||
|
460 | "664613997892457936451903530140172287\n", | |||
|
461 | "1329227995784915872903807060280344575\n", | |||
|
462 | "2658455991569831745807614120560689151\n", | |||
|
463 | "5316911983139663491615228241121378303\n", | |||
|
464 | "10633823966279326983230456482242756607\n", | |||
|
465 | "21267647932558653966460912964485513215\n", | |||
|
466 | "42535295865117307932921825928971026431\n", | |||
|
467 | "85070591730234615865843651857942052863\n", | |||
|
468 | "170141183460469231731687303715884105727\n", | |||
|
469 | "340282366920938463463374607431768211455\n", | |||
|
470 | "680564733841876926926749214863536422911\n", | |||
|
471 | "1361129467683753853853498429727072845823\n", | |||
|
472 | "2722258935367507707706996859454145691647\n", | |||
|
473 | "5444517870735015415413993718908291383295\n", | |||
|
474 | "10889035741470030830827987437816582766591\n", | |||
|
475 | "21778071482940061661655974875633165533183\n", | |||
|
476 | "43556142965880123323311949751266331066367\n", | |||
|
477 | "87112285931760246646623899502532662132735\n", | |||
|
478 | "174224571863520493293247799005065324265471\n", | |||
|
479 | "348449143727040986586495598010130648530943\n", | |||
|
480 | "696898287454081973172991196020261297061887\n", | |||
|
481 | "1393796574908163946345982392040522594123775\n", | |||
|
482 | "2787593149816327892691964784081045188247551\n", | |||
|
483 | "5575186299632655785383929568162090376495103\n", | |||
|
484 | "11150372599265311570767859136324180752990207\n", | |||
|
485 | "22300745198530623141535718272648361505980415\n", | |||
|
486 | "44601490397061246283071436545296723011960831\n", | |||
|
487 | "89202980794122492566142873090593446023921663\n", | |||
|
488 | "178405961588244985132285746181186892047843327\n", | |||
|
489 | "356811923176489970264571492362373784095686655\n", | |||
|
490 | "713623846352979940529142984724747568191373311\n", | |||
|
491 | "1427247692705959881058285969449495136382746623\n", | |||
|
492 | "2854495385411919762116571938898990272765493247\n", | |||
|
493 | "5708990770823839524233143877797980545530986495\n", | |||
|
494 | "11417981541647679048466287755595961091061972991\n", | |||
|
495 | "22835963083295358096932575511191922182123945983\n", | |||
|
496 | "45671926166590716193865151022383844364247891967\n", | |||
|
497 | "91343852333181432387730302044767688728495783935\n", | |||
|
498 | "182687704666362864775460604089535377456991567871\n", | |||
|
499 | "365375409332725729550921208179070754913983135743\n", | |||
|
500 | "730750818665451459101842416358141509827966271487\n", | |||
|
501 | "1461501637330902918203684832716283019655932542975\n", | |||
|
502 | "2923003274661805836407369665432566039311865085951\n", | |||
|
503 | "5846006549323611672814739330865132078623730171903\n", | |||
|
504 | "11692013098647223345629478661730264157247460343807\n", | |||
|
505 | "23384026197294446691258957323460528314494920687615\n", | |||
|
506 | "46768052394588893382517914646921056628989841375231\n", | |||
|
507 | "93536104789177786765035829293842113257979682750463\n", | |||
|
508 | "187072209578355573530071658587684226515959365500927\n", | |||
|
509 | "374144419156711147060143317175368453031918731001855\n", | |||
|
510 | "748288838313422294120286634350736906063837462003711\n", | |||
|
511 | "1496577676626844588240573268701473812127674924007423\n", | |||
|
512 | "2993155353253689176481146537402947624255349848014847\n", | |||
|
513 | "5986310706507378352962293074805895248510699696029695\n", | |||
|
514 | "11972621413014756705924586149611790497021399392059391\n", | |||
|
515 | "23945242826029513411849172299223580994042798784118783\n", | |||
|
516 | "47890485652059026823698344598447161988085597568237567\n", | |||
|
517 | "95780971304118053647396689196894323976171195136475135\n", | |||
|
518 | "191561942608236107294793378393788647952342390272950271\n", | |||
|
519 | "383123885216472214589586756787577295904684780545900543\n", | |||
|
520 | "766247770432944429179173513575154591809369561091801087\n", | |||
|
521 | "1532495540865888858358347027150309183618739122183602175\n", | |||
|
522 | "3064991081731777716716694054300618367237478244367204351\n", | |||
|
523 | "6129982163463555433433388108601236734474956488734408703\n", | |||
|
524 | "12259964326927110866866776217202473468949912977468817407\n", | |||
|
525 | "24519928653854221733733552434404946937899825954937634815\n", | |||
|
526 | "49039857307708443467467104868809893875799651909875269631\n", | |||
|
527 | "98079714615416886934934209737619787751599303819750539263\n", | |||
|
528 | "196159429230833773869868419475239575503198607639501078527\n", | |||
|
529 | "392318858461667547739736838950479151006397215279002157055\n", | |||
|
530 | "784637716923335095479473677900958302012794430558004314111\n", | |||
|
531 | "1569275433846670190958947355801916604025588861116008628223\n", | |||
|
532 | "3138550867693340381917894711603833208051177722232017256447\n", | |||
|
533 | "6277101735386680763835789423207666416102355444464034512895\n", | |||
|
534 | "12554203470773361527671578846415332832204710888928069025791\n", | |||
|
535 | "25108406941546723055343157692830665664409421777856138051583\n", | |||
|
536 | "50216813883093446110686315385661331328818843555712276103167\n", | |||
|
537 | "100433627766186892221372630771322662657637687111424552206335\n", | |||
|
538 | "200867255532373784442745261542645325315275374222849104412671\n", | |||
|
539 | "401734511064747568885490523085290650630550748445698208825343\n", | |||
|
540 | "803469022129495137770981046170581301261101496891396417650687\n", | |||
|
541 | "1606938044258990275541962092341162602522202993782792835301375\n", | |||
|
542 | "3213876088517980551083924184682325205044405987565585670602751\n", | |||
|
543 | "6427752177035961102167848369364650410088811975131171341205503\n", | |||
|
544 | "12855504354071922204335696738729300820177623950262342682411007\n", | |||
|
545 | "25711008708143844408671393477458601640355247900524685364822015\n", | |||
|
546 | "51422017416287688817342786954917203280710495801049370729644031\n", | |||
|
547 | "102844034832575377634685573909834406561420991602098741459288063\n", | |||
|
548 | "205688069665150755269371147819668813122841983204197482918576127\n", | |||
|
549 | "411376139330301510538742295639337626245683966408394965837152255\n", | |||
|
550 | "822752278660603021077484591278675252491367932816789931674304511\n", | |||
|
551 | "1645504557321206042154969182557350504982735865633579863348609023\n", | |||
|
552 | "3291009114642412084309938365114701009965471731267159726697218047\n", | |||
|
553 | "6582018229284824168619876730229402019930943462534319453394436095\n", | |||
|
554 | "13164036458569648337239753460458804039861886925068638906788872191\n", | |||
|
555 | "26328072917139296674479506920917608079723773850137277813577744383\n", | |||
|
556 | "52656145834278593348959013841835216159447547700274555627155488767\n", | |||
|
557 | "105312291668557186697918027683670432318895095400549111254310977535\n", | |||
|
558 | "210624583337114373395836055367340864637790190801098222508621955071\n", | |||
|
559 | "421249166674228746791672110734681729275580381602196445017243910143\n", | |||
|
560 | "842498333348457493583344221469363458551160763204392890034487820287\n", | |||
|
561 | "1684996666696914987166688442938726917102321526408785780068975640575\n", | |||
|
562 | "3369993333393829974333376885877453834204643052817571560137951281151\n", | |||
|
563 | "6739986666787659948666753771754907668409286105635143120275902562303\n", | |||
|
564 | "13479973333575319897333507543509815336818572211270286240551805124607\n", | |||
|
565 | "26959946667150639794667015087019630673637144422540572481103610249215\n", | |||
|
566 | "53919893334301279589334030174039261347274288845081144962207220498431\n", | |||
|
567 | "107839786668602559178668060348078522694548577690162289924414440996863\n", | |||
|
568 | "215679573337205118357336120696157045389097155380324579848828881993727\n", | |||
|
569 | "431359146674410236714672241392314090778194310760649159697657763987455\n", | |||
|
570 | "862718293348820473429344482784628181556388621521298319395315527974911\n", | |||
|
571 | "1725436586697640946858688965569256363112777243042596638790631055949823\n", | |||
|
572 | "3450873173395281893717377931138512726225554486085193277581262111899647\n", | |||
|
573 | "6901746346790563787434755862277025452451108972170386555162524223799295\n", | |||
|
574 | "13803492693581127574869511724554050904902217944340773110325048447598591\n", | |||
|
575 | "27606985387162255149739023449108101809804435888681546220650096895197183\n", | |||
|
576 | "55213970774324510299478046898216203619608871777363092441300193790394367\n", | |||
|
577 | "110427941548649020598956093796432407239217743554726184882600387580788735\n", | |||
|
578 | "220855883097298041197912187592864814478435487109452369765200775161577471\n", | |||
|
579 | "441711766194596082395824375185729628956870974218904739530401550323154943\n", | |||
|
580 | "883423532389192164791648750371459257913741948437809479060803100646309887\n", | |||
|
581 | "1766847064778384329583297500742918515827483896875618958121606201292619775\n", | |||
|
582 | "3533694129556768659166595001485837031654967793751237916243212402585239551\n", | |||
|
583 | "7067388259113537318333190002971674063309935587502475832486424805170479103\n", | |||
|
584 | "14134776518227074636666380005943348126619871175004951664972849610340958207\n", | |||
|
585 | "28269553036454149273332760011886696253239742350009903329945699220681916415\n", | |||
|
586 | "56539106072908298546665520023773392506479484700019806659891398441363832831\n", | |||
|
587 | "113078212145816597093331040047546785012958969400039613319782796882727665663\n", | |||
|
588 | "226156424291633194186662080095093570025917938800079226639565593765455331327\n", | |||
|
589 | "452312848583266388373324160190187140051835877600158453279131187530910662655\n", | |||
|
590 | "904625697166532776746648320380374280103671755200316906558262375061821325311\n", | |||
|
591 | "1809251394333065553493296640760748560207343510400633813116524750123642650623\n", | |||
|
592 | "3618502788666131106986593281521497120414687020801267626233049500247285301247\n", | |||
|
593 | "7237005577332262213973186563042994240829374041602535252466099000494570602495\n", | |||
|
594 | "14474011154664524427946373126085988481658748083205070504932198000989141204991\n", | |||
|
595 | "28948022309329048855892746252171976963317496166410141009864396001978282409983\n", | |||
|
596 | "57896044618658097711785492504343953926634992332820282019728792003956564819967\n", | |||
|
597 | "115792089237316195423570985008687907853269984665640564039457584007913129639935\n", | |||
|
598 | "231584178474632390847141970017375815706539969331281128078915168015826259279871\n", | |||
|
599 | "463168356949264781694283940034751631413079938662562256157830336031652518559743\n", | |||
|
600 | "926336713898529563388567880069503262826159877325124512315660672063305037119487\n", | |||
|
601 | "1852673427797059126777135760139006525652319754650249024631321344126610074238975\n", | |||
|
602 | "3705346855594118253554271520278013051304639509300498049262642688253220148477951\n", | |||
|
603 | "7410693711188236507108543040556026102609279018600996098525285376506440296955903\n", | |||
|
604 | "14821387422376473014217086081112052205218558037201992197050570753012880593911807\n", | |||
|
605 | "29642774844752946028434172162224104410437116074403984394101141506025761187823615\n", | |||
|
606 | "59285549689505892056868344324448208820874232148807968788202283012051522375647231\n", | |||
|
607 | "118571099379011784113736688648896417641748464297615937576404566024103044751294463\n", | |||
|
608 | "237142198758023568227473377297792835283496928595231875152809132048206089502588927\n", | |||
|
609 | "474284397516047136454946754595585670566993857190463750305618264096412179005177855\n", | |||
|
610 | "948568795032094272909893509191171341133987714380927500611236528192824358010355711\n", | |||
|
611 | "1897137590064188545819787018382342682267975428761855001222473056385648716020711423\n", | |||
|
612 | "3794275180128377091639574036764685364535950857523710002444946112771297432041422847\n", | |||
|
613 | "7588550360256754183279148073529370729071901715047420004889892225542594864082845695\n", | |||
|
614 | "15177100720513508366558296147058741458143803430094840009779784451085189728165691391\n", | |||
|
615 | "30354201441027016733116592294117482916287606860189680019559568902170379456331382783\n", | |||
|
616 | "60708402882054033466233184588234965832575213720379360039119137804340758912662765567\n", | |||
|
617 | "121416805764108066932466369176469931665150427440758720078238275608681517825325531135\n", | |||
|
618 | "242833611528216133864932738352939863330300854881517440156476551217363035650651062271\n", | |||
|
619 | "485667223056432267729865476705879726660601709763034880312953102434726071301302124543\n", | |||
|
620 | "971334446112864535459730953411759453321203419526069760625906204869452142602604249087\n", | |||
|
621 | "1942668892225729070919461906823518906642406839052139521251812409738904285205208498175\n", | |||
|
622 | "3885337784451458141838923813647037813284813678104279042503624819477808570410416996351\n", | |||
|
623 | "7770675568902916283677847627294075626569627356208558085007249638955617140820833992703\n", | |||
|
624 | "15541351137805832567355695254588151253139254712417116170014499277911234281641667985407\n", | |||
|
625 | "31082702275611665134711390509176302506278509424834232340028998555822468563283335970815\n", | |||
|
626 | "62165404551223330269422781018352605012557018849668464680057997111644937126566671941631\n", | |||
|
627 | "124330809102446660538845562036705210025114037699336929360115994223289874253133343883263\n", | |||
|
628 | "248661618204893321077691124073410420050228075398673858720231988446579748506266687766527\n", | |||
|
629 | "497323236409786642155382248146820840100456150797347717440463976893159497012533375533055\n", | |||
|
630 | "994646472819573284310764496293641680200912301594695434880927953786318994025066751066111\n", | |||
|
631 | "1989292945639146568621528992587283360401824603189390869761855907572637988050133502132223\n", | |||
|
632 | "3978585891278293137243057985174566720803649206378781739523711815145275976100267004264447\n", | |||
|
633 | "7957171782556586274486115970349133441607298412757563479047423630290551952200534008528895\n", | |||
|
634 | "15914343565113172548972231940698266883214596825515126958094847260581103904401068017057791\n", | |||
|
635 | "31828687130226345097944463881396533766429193651030253916189694521162207808802136034115583\n", | |||
|
636 | "63657374260452690195888927762793067532858387302060507832379389042324415617604272068231167\n", | |||
|
637 | "127314748520905380391777855525586135065716774604121015664758778084648831235208544136462335\n", | |||
|
638 | "254629497041810760783555711051172270131433549208242031329517556169297662470417088272924671\n", | |||
|
639 | "509258994083621521567111422102344540262867098416484062659035112338595324940834176545849343\n", | |||
|
640 | "1018517988167243043134222844204689080525734196832968125318070224677190649881668353091698687\n", | |||
|
641 | "2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397375\n", | |||
|
642 | "4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794751\n", | |||
|
643 | "8148143905337944345073782753637512644205873574663745002544561797417525199053346824733589503\n", | |||
|
644 | "16296287810675888690147565507275025288411747149327490005089123594835050398106693649467179007\n", | |||
|
645 | "32592575621351777380295131014550050576823494298654980010178247189670100796213387298934358015\n", | |||
|
646 | "65185151242703554760590262029100101153646988597309960020356494379340201592426774597868716031\n", | |||
|
647 | "130370302485407109521180524058200202307293977194619920040712988758680403184853549195737432063\n", | |||
|
648 | "260740604970814219042361048116400404614587954389239840081425977517360806369707098391474864127\n", | |||
|
649 | "521481209941628438084722096232800809229175908778479680162851955034721612739414196782949728255\n", | |||
|
650 | "1042962419883256876169444192465601618458351817556959360325703910069443225478828393565899456511\n", | |||
|
651 | "2085924839766513752338888384931203236916703635113918720651407820138886450957656787131798913023\n", | |||
|
652 | "4171849679533027504677776769862406473833407270227837441302815640277772901915313574263597826047\n", | |||
|
653 | "8343699359066055009355553539724812947666814540455674882605631280555545803830627148527195652095\n", | |||
|
654 | "16687398718132110018711107079449625895333629080911349765211262561111091607661254297054391304191\n", | |||
|
655 | "33374797436264220037422214158899251790667258161822699530422525122222183215322508594108782608383\n", | |||
|
656 | "66749594872528440074844428317798503581334516323645399060845050244444366430645017188217565216767\n", | |||
|
657 | "133499189745056880149688856635597007162669032647290798121690100488888732861290034376435130433535\n", | |||
|
658 | "266998379490113760299377713271194014325338065294581596243380200977777465722580068752870260867071\n", | |||
|
659 | "533996758980227520598755426542388028650676130589163192486760401955554931445160137505740521734143\n", | |||
|
660 | "1067993517960455041197510853084776057301352261178326384973520803911109862890320275011481043468287\n", | |||
|
661 | "2135987035920910082395021706169552114602704522356652769947041607822219725780640550022962086936575\n", | |||
|
662 | "4271974071841820164790043412339104229205409044713305539894083215644439451561281100045924173873151\n", | |||
|
663 | "8543948143683640329580086824678208458410818089426611079788166431288878903122562200091848347746303\n", | |||
|
664 | "17087896287367280659160173649356416916821636178853222159576332862577757806245124400183696695492607\n", | |||
|
665 | "34175792574734561318320347298712833833643272357706444319152665725155515612490248800367393390985215\n", | |||
|
666 | "68351585149469122636640694597425667667286544715412888638305331450311031224980497600734786781970431\n", | |||
|
667 | "136703170298938245273281389194851335334573089430825777276610662900622062449960995201469573563940863\n", | |||
|
668 | "273406340597876490546562778389702670669146178861651554553221325801244124899921990402939147127881727\n", | |||
|
669 | "546812681195752981093125556779405341338292357723303109106442651602488249799843980805878294255763455\n", | |||
|
670 | "1093625362391505962186251113558810682676584715446606218212885303204976499599687961611756588511526911\n", | |||
|
671 | "2187250724783011924372502227117621365353169430893212436425770606409952999199375923223513177023053823\n", | |||
|
672 | "4374501449566023848745004454235242730706338861786424872851541212819905998398751846447026354046107647\n", | |||
|
673 | "8749002899132047697490008908470485461412677723572849745703082425639811996797503692894052708092215295\n", | |||
|
674 | "17498005798264095394980017816940970922825355447145699491406164851279623993595007385788105416184430591\n", | |||
|
675 | "34996011596528190789960035633881941845650710894291398982812329702559247987190014771576210832368861183\n", | |||
|
676 | "69992023193056381579920071267763883691301421788582797965624659405118495974380029543152421664737722367\n", | |||
|
677 | "139984046386112763159840142535527767382602843577165595931249318810236991948760059086304843329475444735\n", | |||
|
678 | "279968092772225526319680285071055534765205687154331191862498637620473983897520118172609686658950889471\n", | |||
|
679 | "559936185544451052639360570142111069530411374308662383724997275240947967795040236345219373317901778943\n", | |||
|
680 | "1119872371088902105278721140284222139060822748617324767449994550481895935590080472690438746635803557887\n", | |||
|
681 | "2239744742177804210557442280568444278121645497234649534899989100963791871180160945380877493271607115775\n", | |||
|
682 | "4479489484355608421114884561136888556243290994469299069799978201927583742360321890761754986543214231551\n", | |||
|
683 | "8958978968711216842229769122273777112486581988938598139599956403855167484720643781523509973086428463103\n", | |||
|
684 | "17917957937422433684459538244547554224973163977877196279199912807710334969441287563047019946172856926207\n", | |||
|
685 | "35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852415\n", | |||
|
686 | "71671831749689734737838152978190216899892655911508785116799651230841339877765150252188079784691427704831\n", | |||
|
687 | "143343663499379469475676305956380433799785311823017570233599302461682679755530300504376159569382855409663\n", | |||
|
688 | "286687326998758938951352611912760867599570623646035140467198604923365359511060601008752319138765710819327\n", | |||
|
689 | "573374653997517877902705223825521735199141247292070280934397209846730719022121202017504638277531421638655\n", | |||
|
690 | "1146749307995035755805410447651043470398282494584140561868794419693461438044242404035009276555062843277311\n", | |||
|
691 | "2293498615990071511610820895302086940796564989168281123737588839386922876088484808070018553110125686554623\n", | |||
|
692 | "4586997231980143023221641790604173881593129978336562247475177678773845752176969616140037106220251373109247\n", | |||
|
693 | "9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218495\n", | |||
|
694 | "18347988927920572092886567162416695526372519913346248989900710715095383008707878464560148424881005492436991\n", | |||
|
695 | "36695977855841144185773134324833391052745039826692497979801421430190766017415756929120296849762010984873983\n", | |||
|
696 | "73391955711682288371546268649666782105490079653384995959602842860381532034831513858240593699524021969747967\n", | |||
|
697 | "146783911423364576743092537299333564210980159306769991919205685720763064069663027716481187399048043939495935\n", | |||
|
698 | "293567822846729153486185074598667128421960318613539983838411371441526128139326055432962374798096087878991871\n", | |||
|
699 | "587135645693458306972370149197334256843920637227079967676822742883052256278652110865924749596192175757983743\n", | |||
|
700 | "1174271291386916613944740298394668513687841274454159935353645485766104512557304221731849499192384351515967487\n", | |||
|
701 | "2348542582773833227889480596789337027375682548908319870707290971532209025114608443463698998384768703031934975\n", | |||
|
702 | "4697085165547666455778961193578674054751365097816639741414581943064418050229216886927397996769537406063869951\n", | |||
|
703 | "9394170331095332911557922387157348109502730195633279482829163886128836100458433773854795993539074812127739903\n", | |||
|
704 | "18788340662190665823115844774314696219005460391266558965658327772257672200916867547709591987078149624255479807\n", | |||
|
705 | "37576681324381331646231689548629392438010920782533117931316655544515344401833735095419183974156299248510959615\n", | |||
|
706 | "75153362648762663292463379097258784876021841565066235862633311089030688803667470190838367948312598497021919231\n", | |||
|
707 | "150306725297525326584926758194517569752043683130132471725266622178061377607334940381676735896625196994043838463\n", | |||
|
708 | "300613450595050653169853516389035139504087366260264943450533244356122755214669880763353471793250393988087676927\n", | |||
|
709 | "601226901190101306339707032778070279008174732520529886901066488712245510429339761526706943586500787976175353855\n", | |||
|
710 | "1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707711\n", | |||
|
711 | "2404907604760405225358828131112281116032698930082119547604265954848982041717359046106827774346003151904701415423\n", | |||
|
712 | "4809815209520810450717656262224562232065397860164239095208531909697964083434718092213655548692006303809402830847\n", | |||
|
713 | "9619630419041620901435312524449124464130795720328478190417063819395928166869436184427311097384012607618805661695\n", | |||
|
714 | "19239260838083241802870625048898248928261591440656956380834127638791856333738872368854622194768025215237611323391\n", | |||
|
715 | "38478521676166483605741250097796497856523182881313912761668255277583712667477744737709244389536050430475222646783\n", | |||
|
716 | "76957043352332967211482500195592995713046365762627825523336510555167425334955489475418488779072100860950445293567\n", | |||
|
717 | "153914086704665934422965000391185991426092731525255651046673021110334850669910978950836977558144201721900890587135\n", | |||
|
718 | "307828173409331868845930000782371982852185463050511302093346042220669701339821957901673955116288403443801781174271\n", | |||
|
719 | "615656346818663737691860001564743965704370926101022604186692084441339402679643915803347910232576806887603562348543\n", | |||
|
720 | "1231312693637327475383720003129487931408741852202045208373384168882678805359287831606695820465153613775207124697087\n", | |||
|
721 | "2462625387274654950767440006258975862817483704404090416746768337765357610718575663213391640930307227550414249394175\n", | |||
|
722 | "4925250774549309901534880012517951725634967408808180833493536675530715221437151326426783281860614455100828498788351\n", | |||
|
723 | "9850501549098619803069760025035903451269934817616361666987073351061430442874302652853566563721228910201656997576703\n", | |||
|
724 | "19701003098197239606139520050071806902539869635232723333974146702122860885748605305707133127442457820403313995153407\n", | |||
|
725 | "39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306815\n", | |||
|
726 | "78804012392788958424558080200287227610159478540930893335896586808491443542994421222828532509769831281613255980613631\n", | |||
|
727 | "157608024785577916849116160400574455220318957081861786671793173616982887085988842445657065019539662563226511961227263\n", | |||
|
728 | "315216049571155833698232320801148910440637914163723573343586347233965774171977684891314130039079325126453023922454527\n", | |||
|
729 | "630432099142311667396464641602297820881275828327447146687172694467931548343955369782628260078158650252906047844909055\n", | |||
|
730 | "1260864198284623334792929283204595641762551656654894293374345388935863096687910739565256520156317300505812095689818111\n", | |||
|
731 | "2521728396569246669585858566409191283525103313309788586748690777871726193375821479130513040312634601011624191379636223\n", | |||
|
732 | "5043456793138493339171717132818382567050206626619577173497381555743452386751642958261026080625269202023248382759272447\n", | |||
|
733 | "10086913586276986678343434265636765134100413253239154346994763111486904773503285916522052161250538404046496765518544895\n", | |||
|
734 | "20173827172553973356686868531273530268200826506478308693989526222973809547006571833044104322501076808092993531037089791\n", | |||
|
735 | "40347654345107946713373737062547060536401653012956617387979052445947619094013143666088208645002153616185987062074179583\n", | |||
|
736 | "80695308690215893426747474125094121072803306025913234775958104891895238188026287332176417290004307232371974124148359167\n", | |||
|
737 | "161390617380431786853494948250188242145606612051826469551916209783790476376052574664352834580008614464743948248296718335\n", | |||
|
738 | "322781234760863573706989896500376484291213224103652939103832419567580952752105149328705669160017228929487896496593436671\n", | |||
|
739 | "645562469521727147413979793000752968582426448207305878207664839135161905504210298657411338320034457858975792993186873343\n", | |||
|
740 | "1291124939043454294827959586001505937164852896414611756415329678270323811008420597314822676640068915717951585986373746687\n", | |||
|
741 | "2582249878086908589655919172003011874329705792829223512830659356540647622016841194629645353280137831435903171972747493375\n", | |||
|
742 | "5164499756173817179311838344006023748659411585658447025661318713081295244033682389259290706560275662871806343945494986751\n", | |||
|
743 | "10328999512347634358623676688012047497318823171316894051322637426162590488067364778518581413120551325743612687890989973503\n", | |||
|
744 | "20657999024695268717247353376024094994637646342633788102645274852325180976134729557037162826241102651487225375781979947007\n", | |||
|
745 | "41315998049390537434494706752048189989275292685267576205290549704650361952269459114074325652482205302974450751563959894015\n", | |||
|
746 | "82631996098781074868989413504096379978550585370535152410581099409300723904538918228148651304964410605948901503127919788031\n", | |||
|
747 | "165263992197562149737978827008192759957101170741070304821162198818601447809077836456297302609928821211897803006255839576063\n", | |||
|
748 | "330527984395124299475957654016385519914202341482140609642324397637202895618155672912594605219857642423795606012511679152127\n", | |||
|
749 | "661055968790248598951915308032771039828404682964281219284648795274405791236311345825189210439715284847591212025023358304255\n", | |||
|
750 | "1322111937580497197903830616065542079656809365928562438569297590548811582472622691650378420879430569695182424050046716608511\n", | |||
|
751 | "2644223875160994395807661232131084159313618731857124877138595181097623164945245383300756841758861139390364848100093433217023\n", | |||
|
752 | "5288447750321988791615322464262168318627237463714249754277190362195246329890490766601513683517722278780729696200186866434047\n", | |||
|
753 | "10576895500643977583230644928524336637254474927428499508554380724390492659780981533203027367035444557561459392400373732868095\n", | |||
|
754 | "21153791001287955166461289857048673274508949854856999017108761448780985319561963066406054734070889115122918784800747465736191\n", | |||
|
755 | "42307582002575910332922579714097346549017899709713998034217522897561970639123926132812109468141778230245837569601494931472383\n", | |||
|
756 | "84615164005151820665845159428194693098035799419427996068435045795123941278247852265624218936283556460491675139202989862944767\n", | |||
|
757 | "169230328010303641331690318856389386196071598838855992136870091590247882556495704531248437872567112920983350278405979725889535\n", | |||
|
758 | "338460656020607282663380637712778772392143197677711984273740183180495765112991409062496875745134225841966700556811959451779071\n", | |||
|
759 | "676921312041214565326761275425557544784286395355423968547480366360991530225982818124993751490268451683933401113623918903558143\n", | |||
|
760 | "1353842624082429130653522550851115089568572790710847937094960732721983060451965636249987502980536903367866802227247837807116287\n", | |||
|
761 | "2707685248164858261307045101702230179137145581421695874189921465443966120903931272499975005961073806735733604454495675614232575\n", | |||
|
762 | "5415370496329716522614090203404460358274291162843391748379842930887932241807862544999950011922147613471467208908991351228465151\n", | |||
|
763 | "10830740992659433045228180406808920716548582325686783496759685861775864483615725089999900023844295226942934417817982702456930303\n", | |||
|
764 | "21661481985318866090456360813617841433097164651373566993519371723551728967231450179999800047688590453885868835635965404913860607\n", | |||
|
765 | "43322963970637732180912721627235682866194329302747133987038743447103457934462900359999600095377180907771737671271930809827721215\n", | |||
|
766 | "86645927941275464361825443254471365732388658605494267974077486894206915868925800719999200190754361815543475342543861619655442431\n", | |||
|
767 | "173291855882550928723650886508942731464777317210988535948154973788413831737851601439998400381508723631086950685087723239310884863\n", | |||
|
768 | "346583711765101857447301773017885462929554634421977071896309947576827663475703202879996800763017447262173901370175446478621769727\n", | |||
|
769 | "693167423530203714894603546035770925859109268843954143792619895153655326951406405759993601526034894524347802740350892957243539455\n", | |||
|
770 | "1386334847060407429789207092071541851718218537687908287585239790307310653902812811519987203052069789048695605480701785914487078911\n", | |||
|
771 | "2772669694120814859578414184143083703436437075375816575170479580614621307805625623039974406104139578097391210961403571828974157823\n", | |||
|
772 | "5545339388241629719156828368286167406872874150751633150340959161229242615611251246079948812208279156194782421922807143657948315647\n", | |||
|
773 | "11090678776483259438313656736572334813745748301503266300681918322458485231222502492159897624416558312389564843845614287315896631295\n", | |||
|
774 | "22181357552966518876627313473144669627491496603006532601363836644916970462445004984319795248833116624779129687691228574631793262591\n", | |||
|
775 | "44362715105933037753254626946289339254982993206013065202727673289833940924890009968639590497666233249558259375382457149263586525183\n", | |||
|
776 | "88725430211866075506509253892578678509965986412026130405455346579667881849780019937279180995332466499116518750764914298527173050367\n", | |||
|
777 | "177450860423732151013018507785157357019931972824052260810910693159335763699560039874558361990664932998233037501529828597054346100735\n", | |||
|
778 | "354901720847464302026037015570314714039863945648104521621821386318671527399120079749116723981329865996466075003059657194108692201471\n", | |||
|
779 | "709803441694928604052074031140629428079727891296209043243642772637343054798240159498233447962659731992932150006119314388217384402943\n", | |||
|
780 | "1419606883389857208104148062281258856159455782592418086487285545274686109596480318996466895925319463985864300012238628776434768805887\n", | |||
|
781 | "2839213766779714416208296124562517712318911565184836172974571090549372219192960637992933791850638927971728600024477257552869537611775\n", | |||
|
782 | "5678427533559428832416592249125035424637823130369672345949142181098744438385921275985867583701277855943457200048954515105739075223551\n", | |||
|
783 | "11356855067118857664833184498250070849275646260739344691898284362197488876771842551971735167402555711886914400097909030211478150447103\n", | |||
|
784 | "22713710134237715329666368996500141698551292521478689383796568724394977753543685103943470334805111423773828800195818060422956300894207\n", | |||
|
785 | "45427420268475430659332737993000283397102585042957378767593137448789955507087370207886940669610222847547657600391636120845912601788415\n", | |||
|
786 | "90854840536950861318665475986000566794205170085914757535186274897579911014174740415773881339220445695095315200783272241691825203576831\n", | |||
|
787 | "181709681073901722637330951972001133588410340171829515070372549795159822028349480831547762678440891390190630401566544483383650407153663\n", | |||
|
788 | "363419362147803445274661903944002267176820680343659030140745099590319644056698961663095525356881782780381260803133088966767300814307327\n", | |||
|
789 | "726838724295606890549323807888004534353641360687318060281490199180639288113397923326191050713763565560762521606266177933534601628614655\n", | |||
|
790 | "1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229311\n", | |||
|
791 | "2907354897182427562197295231552018137414565442749272241125960796722557152453591693304764202855054262243050086425064711734138406514458623\n", | |||
|
792 | "5814709794364855124394590463104036274829130885498544482251921593445114304907183386609528405710108524486100172850129423468276813028917247\n", | |||
|
793 | "11629419588729710248789180926208072549658261770997088964503843186890228609814366773219056811420217048972200345700258846936553626057834495\n", | |||
|
794 | "23258839177459420497578361852416145099316523541994177929007686373780457219628733546438113622840434097944400691400517693873107252115668991\n", | |||
|
795 | "46517678354918840995156723704832290198633047083988355858015372747560914439257467092876227245680868195888801382801035387746214504231337983\n", | |||
|
796 | "93035356709837681990313447409664580397266094167976711716030745495121828878514934185752454491361736391777602765602070775492429008462675967\n", | |||
|
797 | "186070713419675363980626894819329160794532188335953423432061490990243657757029868371504908982723472783555205531204141550984858016925351935\n", | |||
|
798 | "372141426839350727961253789638658321589064376671906846864122981980487315514059736743009817965446945567110411062408283101969716033850703871\n", | |||
|
799 | "744282853678701455922507579277316643178128753343813693728245963960974631028119473486019635930893891134220822124816566203939432067701407743\n", | |||
|
800 | "1488565707357402911845015158554633286356257506687627387456491927921949262056238946972039271861787782268441644249633132407878864135402815487\n", | |||
|
801 | "2977131414714805823690030317109266572712515013375254774912983855843898524112477893944078543723575564536883288499266264815757728270805630975\n", | |||
|
802 | "5954262829429611647380060634218533145425030026750509549825967711687797048224955787888157087447151129073766576998532529631515456541611261951\n", | |||
|
803 | "11908525658859223294760121268437066290850060053501019099651935423375594096449911575776314174894302258147533153997065059263030913083222523903\n", | |||
|
804 | "23817051317718446589520242536874132581700120107002038199303870846751188192899823151552628349788604516295066307994130118526061826166445047807\n", | |||
|
805 | "47634102635436893179040485073748265163400240214004076398607741693502376385799646303105256699577209032590132615988260237052123652332890095615\n", | |||
|
806 | "95268205270873786358080970147496530326800480428008152797215483387004752771599292606210513399154418065180265231976520474104247304665780191231\n", | |||
|
807 | "190536410541747572716161940294993060653600960856016305594430966774009505543198585212421026798308836130360530463953040948208494609331560382463\n", | |||
|
808 | "381072821083495145432323880589986121307201921712032611188861933548019011086397170424842053596617672260721060927906081896416989218663120764927\n", | |||
|
809 | "762145642166990290864647761179972242614403843424065222377723867096038022172794340849684107193235344521442121855812163792833978437326241529855\n", | |||
|
810 | "1524291284333980581729295522359944485228807686848130444755447734192076044345588681699368214386470689042884243711624327585667956874652483059711\n", | |||
|
811 | "3048582568667961163458591044719888970457615373696260889510895468384152088691177363398736428772941378085768487423248655171335913749304966119423\n", | |||
|
812 | "6097165137335922326917182089439777940915230747392521779021790936768304177382354726797472857545882756171536974846497310342671827498609932238847\n", | |||
|
813 | "12194330274671844653834364178879555881830461494785043558043581873536608354764709453594945715091765512343073949692994620685343654997219864477695\n", | |||
|
814 | "24388660549343689307668728357759111763660922989570087116087163747073216709529418907189891430183531024686147899385989241370687309994439728955391\n", | |||
|
815 | "48777321098687378615337456715518223527321845979140174232174327494146433419058837814379782860367062049372295798771978482741374619988879457910783\n", | |||
|
816 | "97554642197374757230674913431036447054643691958280348464348654988292866838117675628759565720734124098744591597543956965482749239977758915821567\n", | |||
|
817 | "195109284394749514461349826862072894109287383916560696928697309976585733676235351257519131441468248197489183195087913930965498479955517831643135\n", | |||
|
818 | "390218568789499028922699653724145788218574767833121393857394619953171467352470702515038262882936496394978366390175827861930996959911035663286271\n", | |||
|
819 | "780437137578998057845399307448291576437149535666242787714789239906342934704941405030076525765872992789956732780351655723861993919822071326572543\n", | |||
|
820 | "1560874275157996115690798614896583152874299071332485575429578479812685869409882810060153051531745985579913465560703311447723987839644142653145087\n", | |||
|
821 | "3121748550315992231381597229793166305748598142664971150859156959625371738819765620120306103063491971159826931121406622895447975679288285306290175\n", | |||
|
822 | "6243497100631984462763194459586332611497196285329942301718313919250743477639531240240612206126983942319653862242813245790895951358576570612580351\n", | |||
|
823 | "12486994201263968925526388919172665222994392570659884603436627838501486955279062480481224412253967884639307724485626491581791902717153141225160703\n", | |||
|
824 | "24973988402527937851052777838345330445988785141319769206873255677002973910558124960962448824507935769278615448971252983163583805434306282450321407\n", | |||
|
825 | "49947976805055875702105555676690660891977570282639538413746511354005947821116249921924897649015871538557230897942505966327167610868612564900642815\n", | |||
|
826 | "99895953610111751404211111353381321783955140565279076827493022708011895642232499843849795298031743077114461795885011932654335221737225129801285631\n", | |||
|
827 | "199791907220223502808422222706762643567910281130558153654986045416023791284464999687699590596063486154228923591770023865308670443474450259602571263\n", | |||
|
828 | "399583814440447005616844445413525287135820562261116307309972090832047582568929999375399181192126972308457847183540047730617340886948900519205142527\n", | |||
|
829 | "799167628880894011233688890827050574271641124522232614619944181664095165137859998750798362384253944616915694367080095461234681773897801038410285055\n", | |||
|
830 | "1598335257761788022467377781654101148543282249044465229239888363328190330275719997501596724768507889233831388734160190922469363547795602076820570111\n", | |||
|
831 | "3196670515523576044934755563308202297086564498088930458479776726656380660551439995003193449537015778467662777468320381844938727095591204153641140223\n", | |||
|
832 | "6393341031047152089869511126616404594173128996177860916959553453312761321102879990006386899074031556935325554936640763689877454191182408307282280447\n", | |||
|
833 | "12786682062094304179739022253232809188346257992355721833919106906625522642205759980012773798148063113870651109873281527379754908382364816614564560895\n", | |||
|
834 | "25573364124188608359478044506465618376692515984711443667838213813251045284411519960025547596296126227741302219746563054759509816764729633229129121791\n", | |||
|
835 | "51146728248377216718956089012931236753385031969422887335676427626502090568823039920051095192592252455482604439493126109519019633529459266458258243583\n", | |||
|
836 | "102293456496754433437912178025862473506770063938845774671352855253004181137646079840102190385184504910965208878986252219038039267058918532916516487167\n", | |||
|
837 | "204586912993508866875824356051724947013540127877691549342705710506008362275292159680204380770369009821930417757972504438076078534117837065833032974335\n", | |||
|
838 | "409173825987017733751648712103449894027080255755383098685411421012016724550584319360408761540738019643860835515945008876152157068235674131666065948671\n", | |||
|
839 | "818347651974035467503297424206899788054160511510766197370822842024033449101168638720817523081476039287721671031890017752304314136471348263332131897343\n", | |||
|
840 | "1636695303948070935006594848413799576108321023021532394741645684048066898202337277441635046162952078575443342063780035504608628272942696526664263794687\n" | |||
|
841 | ] | |||
|
842 | } | |||
|
843 | ], | |||
|
844 | "prompt_number": 6 | |||
|
845 | }, | |||
|
846 | { | |||
|
847 | "cell_type": "heading", | |||
|
848 | "level": 2, | |||
|
849 | "metadata": {}, | |||
|
850 | "source": [ | |||
|
851 | "Capturing output with <tt>%%capture</tt>" | |||
|
852 | ] | |||
|
853 | }, | |||
|
854 | { | |||
|
855 | "cell_type": "markdown", | |||
|
856 | "metadata": {}, | |||
|
857 | "source": [ | |||
|
858 | "IPython has a cell magic, `%%capture`, which captures the stdout/stderr of a cell. With this magic you can discard these streams or store them in a variable." | |||
|
859 | ] | |||
|
860 | }, | |||
|
861 | { | |||
|
862 | "cell_type": "code", | |||
|
863 | "collapsed": false, | |||
|
864 | "input": [ | |||
|
865 | "import sys" | |||
|
866 | ], | |||
|
867 | "language": "python", | |||
|
868 | "metadata": {}, | |||
|
869 | "outputs": [], | |||
|
870 | "prompt_number": 9 | |||
|
871 | }, | |||
|
872 | { | |||
|
873 | "cell_type": "markdown", | |||
|
874 | "metadata": {}, | |||
|
875 | "source": [ | |||
|
876 | "By default, `%%capture` discards these streams. This is a simple way to suppress unwanted output." | |||
|
877 | ] | |||
|
878 | }, | |||
|
879 | { | |||
|
880 | "cell_type": "code", | |||
|
881 | "collapsed": false, | |||
|
882 | "input": [ | |||
|
883 | "%%capture\n", | |||
|
884 | "print 'hi, stdout'\n", | |||
|
885 | "print >> sys.stderr, 'hi, stderr'" | |||
|
886 | ], | |||
|
887 | "language": "python", | |||
|
888 | "metadata": {}, | |||
|
889 | "outputs": [], | |||
|
890 | "prompt_number": 10 | |||
|
891 | }, | |||
|
892 | { | |||
|
893 | "cell_type": "markdown", | |||
|
894 | "metadata": {}, | |||
|
895 | "source": [ | |||
|
896 | "If you specify a name, then stdout/stderr will be stored in an object in your namespace." | |||
|
897 | ] | |||
|
898 | }, | |||
|
899 | { | |||
|
900 | "cell_type": "code", | |||
|
901 | "collapsed": false, | |||
|
902 | "input": [ | |||
|
903 | "%%capture captured\n", | |||
|
904 | "print 'hi, stdout'\n", | |||
|
905 | "print >> sys.stderr, 'hi, stderr'" | |||
|
906 | ], | |||
|
907 | "language": "python", | |||
|
908 | "metadata": {}, | |||
|
909 | "outputs": [], | |||
|
910 | "prompt_number": 11 | |||
|
911 | }, | |||
|
912 | { | |||
|
913 | "cell_type": "code", | |||
|
914 | "collapsed": false, | |||
|
915 | "input": [ | |||
|
916 | "captured" | |||
|
917 | ], | |||
|
918 | "language": "python", | |||
|
919 | "metadata": {}, | |||
|
920 | "outputs": [ | |||
|
921 | { | |||
|
922 | "output_type": "pyout", | |||
|
923 | "prompt_number": 12, | |||
|
924 | "text": [ | |||
|
925 | "<IPython.utils.io.CapturedIO at 0x107ea2590>" | |||
|
926 | ] | |||
|
927 | } | |||
|
928 | ], | |||
|
929 | "prompt_number": 12 | |||
|
930 | }, | |||
|
931 | { | |||
|
932 | "cell_type": "markdown", | |||
|
933 | "metadata": {}, | |||
|
934 | "source": [ | |||
|
935 | "Calling the object writes the output to stdout/stderr as appropriate." | |||
|
936 | ] | |||
|
937 | }, | |||
|
938 | { | |||
|
939 | "cell_type": "code", | |||
|
940 | "collapsed": false, | |||
|
941 | "input": [ | |||
|
942 | "captured()" | |||
|
943 | ], | |||
|
944 | "language": "python", | |||
|
945 | "metadata": {}, | |||
|
946 | "outputs": [ | |||
|
947 | { | |||
|
948 | "output_type": "stream", | |||
|
949 | "stream": "stdout", | |||
|
950 | "text": [ | |||
|
951 | "hi, stdout\n" | |||
|
952 | ] | |||
|
953 | }, | |||
|
954 | { | |||
|
955 | "output_type": "stream", | |||
|
956 | "stream": "stderr", | |||
|
957 | "text": [ | |||
|
958 | "hi, stderr\n" | |||
|
959 | ] | |||
|
960 | } | |||
|
961 | ], | |||
|
962 | "prompt_number": 13 | |||
|
963 | }, | |||
|
964 | { | |||
|
965 | "cell_type": "code", | |||
|
966 | "collapsed": false, | |||
|
967 | "input": [ | |||
|
968 | "captured.stdout" | |||
|
969 | ], | |||
|
970 | "language": "python", | |||
|
971 | "metadata": {}, | |||
|
972 | "outputs": [ | |||
|
973 | { | |||
|
974 | "output_type": "pyout", | |||
|
975 | "prompt_number": 14, | |||
|
976 | "text": [ | |||
|
977 | "'hi, stdout\\n'" | |||
|
978 | ] | |||
|
979 | } | |||
|
980 | ], | |||
|
981 | "prompt_number": 14 | |||
|
982 | }, | |||
|
983 | { | |||
|
984 | "cell_type": "code", | |||
|
985 | "collapsed": false, | |||
|
986 | "input": [ | |||
|
987 | "captured.stderr" | |||
|
988 | ], | |||
|
989 | "language": "python", | |||
|
990 | "metadata": {}, | |||
|
991 | "outputs": [ | |||
|
992 | { | |||
|
993 | "output_type": "pyout", | |||
|
994 | "prompt_number": 15, | |||
|
995 | "text": [ | |||
|
996 | "'hi, stderr\\n'" | |||
|
997 | ] | |||
|
998 | } | |||
|
999 | ], | |||
|
1000 | "prompt_number": 15 | |||
|
1001 | }, | |||
|
1002 | { | |||
|
1003 | "cell_type": "markdown", | |||
|
1004 | "metadata": {}, | |||
|
1005 | "source": [ | |||
|
1006 | "`%%capture` only captures stdout/stderr, not other output types, so you can still do plots and use IPython's display system inside `%%capture`" | |||
|
1007 | ] | |||
|
1008 | }, | |||
|
1009 | { | |||
|
1010 | "cell_type": "code", | |||
|
1011 | "collapsed": false, | |||
|
1012 | "input": [ | |||
|
1013 | "%pylab inline" | |||
|
1014 | ], | |||
|
1015 | "language": "python", | |||
|
1016 | "metadata": {}, | |||
|
1017 | "outputs": [ | |||
|
1018 | { | |||
|
1019 | "output_type": "stream", | |||
|
1020 | "stream": "stdout", | |||
|
1021 | "text": [ | |||
|
1022 | "\n", | |||
|
1023 | "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].\n", | |||
|
1024 | "For more information, type 'help(pylab)'.\n" | |||
|
1025 | ] | |||
|
1026 | } | |||
|
1027 | ], | |||
|
1028 | "prompt_number": 16 | |||
|
1029 | }, | |||
|
1030 | { | |||
|
1031 | "cell_type": "code", | |||
|
1032 | "collapsed": false, | |||
|
1033 | "input": [ | |||
|
1034 | "%%capture wontshutup\n", | |||
|
1035 | "\n", | |||
|
1036 | "print \"setting up X\"\n", | |||
|
1037 | "x = np.linspace(0,5,1000)\n", | |||
|
1038 | "print \"step 2: constructing y-data\"\n", | |||
|
1039 | "y = np.sin(x)\n", | |||
|
1040 | "print \"step 3: display info about y\"\n", | |||
|
1041 | "plt.plot(x,y)\n", | |||
|
1042 | "print \"okay, I'm done now\"" | |||
|
1043 | ], | |||
|
1044 | "language": "python", | |||
|
1045 | "metadata": {}, | |||
|
1046 | "outputs": [ | |||
|
1047 | { | |||
|
1048 | "output_type": "display_data", | |||
|
1049 | "png": "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\nRU5ErkJggg==\n", | |||
|
1050 | "text": [ | |||
|
1051 | "<matplotlib.figure.Figure at 0x108356ed0>" | |||
|
1052 | ] | |||
|
1053 | } | |||
|
1054 | ], | |||
|
1055 | "prompt_number": 17 | |||
|
1056 | }, | |||
|
1057 | { | |||
|
1058 | "cell_type": "code", | |||
|
1059 | "collapsed": false, | |||
|
1060 | "input": [ | |||
|
1061 | "wontshutup()" | |||
|
1062 | ], | |||
|
1063 | "language": "python", | |||
|
1064 | "metadata": {}, | |||
|
1065 | "outputs": [ | |||
|
1066 | { | |||
|
1067 | "output_type": "stream", | |||
|
1068 | "stream": "stdout", | |||
|
1069 | "text": [ | |||
|
1070 | "setting up X\n", | |||
|
1071 | "step 2: constructing y-data\n", | |||
|
1072 | "step 3: display info about y\n", | |||
|
1073 | "okay, I'm done now\n" | |||
|
1074 | ] | |||
|
1075 | } | |||
|
1076 | ], | |||
|
1077 | "prompt_number": 18 | |||
|
1078 | }, | |||
|
1079 | { | |||
|
1080 | "cell_type": "markdown", | |||
|
1081 | "metadata": {}, | |||
|
1082 | "source": [ | |||
|
1083 | "And you can selectively disable capturing stdout or stderr by passing `--no-stdout/err`." | |||
|
1084 | ] | |||
|
1085 | }, | |||
|
1086 | { | |||
|
1087 | "cell_type": "code", | |||
|
1088 | "collapsed": false, | |||
|
1089 | "input": [ | |||
|
1090 | "%%capture cap --no-stderr\n", | |||
|
1091 | "print 'hi, stdout'\n", | |||
|
1092 | "print >> sys.stderr, \"hello, stderr\"" | |||
|
1093 | ], | |||
|
1094 | "language": "python", | |||
|
1095 | "metadata": {}, | |||
|
1096 | "outputs": [ | |||
|
1097 | { | |||
|
1098 | "output_type": "stream", | |||
|
1099 | "stream": "stderr", | |||
|
1100 | "text": [ | |||
|
1101 | "hello, stderr" | |||
|
1102 | ] | |||
|
1103 | }, | |||
|
1104 | { | |||
|
1105 | "output_type": "stream", | |||
|
1106 | "stream": "stderr", | |||
|
1107 | "text": [ | |||
|
1108 | "\n" | |||
|
1109 | ] | |||
|
1110 | } | |||
|
1111 | ], | |||
|
1112 | "prompt_number": 19 | |||
|
1113 | }, | |||
|
1114 | { | |||
|
1115 | "cell_type": "code", | |||
|
1116 | "collapsed": false, | |||
|
1117 | "input": [ | |||
|
1118 | "cap.stdout" | |||
|
1119 | ], | |||
|
1120 | "language": "python", | |||
|
1121 | "metadata": {}, | |||
|
1122 | "outputs": [ | |||
|
1123 | { | |||
|
1124 | "output_type": "pyout", | |||
|
1125 | "prompt_number": 20, | |||
|
1126 | "text": [ | |||
|
1127 | "'hi, stdout\\n'" | |||
|
1128 | ] | |||
|
1129 | } | |||
|
1130 | ], | |||
|
1131 | "prompt_number": 20 | |||
|
1132 | }, | |||
|
1133 | { | |||
|
1134 | "cell_type": "code", | |||
|
1135 | "collapsed": false, | |||
|
1136 | "input": [ | |||
|
1137 | "cap.stderr" | |||
|
1138 | ], | |||
|
1139 | "language": "python", | |||
|
1140 | "metadata": {}, | |||
|
1141 | "outputs": [ | |||
|
1142 | { | |||
|
1143 | "output_type": "pyout", | |||
|
1144 | "prompt_number": 21, | |||
|
1145 | "text": [ | |||
|
1146 | "''" | |||
|
1147 | ] | |||
|
1148 | } | |||
|
1149 | ], | |||
|
1150 | "prompt_number": 21 | |||
|
1151 | } | |||
|
1152 | ], | |||
|
1153 | "metadata": {} | |||
|
1154 | } | |||
|
1155 | ] | |||
|
1156 | } No newline at end of file |
@@ -0,0 +1,206 b'' | |||||
|
1 | { | |||
|
2 | "metadata": { | |||
|
3 | "name": "Part 3 - Pylab and Matplotlib" | |||
|
4 | }, | |||
|
5 | "nbformat": 3, | |||
|
6 | "nbformat_minor": 0, | |||
|
7 | "worksheets": [ | |||
|
8 | { | |||
|
9 | "cells": [ | |||
|
10 | { | |||
|
11 | "cell_type": "heading", | |||
|
12 | "level": 1, | |||
|
13 | "metadata": {}, | |||
|
14 | "source": [ | |||
|
15 | "Plotting with Pylab and Matplotlib" | |||
|
16 | ] | |||
|
17 | }, | |||
|
18 | { | |||
|
19 | "cell_type": "markdown", | |||
|
20 | "metadata": {}, | |||
|
21 | "source": [ | |||
|
22 | "IPython works with the [Matplotlib](http://matplotlib.org/) plotting library using the the Pylab mode, which integrates Matplotlib with IPython's display system and event loop handling." | |||
|
23 | ] | |||
|
24 | }, | |||
|
25 | { | |||
|
26 | "cell_type": "heading", | |||
|
27 | "level": 2, | |||
|
28 | "metadata": {}, | |||
|
29 | "source": [ | |||
|
30 | "Pylab mode" | |||
|
31 | ] | |||
|
32 | }, | |||
|
33 | { | |||
|
34 | "cell_type": "markdown", | |||
|
35 | "metadata": {}, | |||
|
36 | "source": [ | |||
|
37 | "To make plots using Matplotlib, you must first enable IPython's Pylab mode. There are two ways of doing this:\n", | |||
|
38 | "\n", | |||
|
39 | "1. You can give the `--pylab` command line argument when starting the IPython Notebook Server, to enable plotting in all Notebooks automatically.\n", | |||
|
40 | "2. You can run the `%pylab` magic command to enable plotting in the current Notebook.\n", | |||
|
41 | "\n", | |||
|
42 | "Both commands take an optional argument that specifies which Matplotlib backend should be used. Most of the time, in the Notebook, you will want to use the `inline` backend, which will embed plots inside the Notebook:" | |||
|
43 | ] | |||
|
44 | }, | |||
|
45 | { | |||
|
46 | "cell_type": "code", | |||
|
47 | "collapsed": false, | |||
|
48 | "input": [ | |||
|
49 | "%pylab inline" | |||
|
50 | ], | |||
|
51 | "language": "python", | |||
|
52 | "metadata": {}, | |||
|
53 | "outputs": [ | |||
|
54 | { | |||
|
55 | "output_type": "stream", | |||
|
56 | "stream": "stdout", | |||
|
57 | "text": [ | |||
|
58 | "\n", | |||
|
59 | "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].\n", | |||
|
60 | "For more information, type 'help(pylab)'.\n" | |||
|
61 | ] | |||
|
62 | } | |||
|
63 | ], | |||
|
64 | "prompt_number": 4 | |||
|
65 | }, | |||
|
66 | { | |||
|
67 | "cell_type": "markdown", | |||
|
68 | "metadata": {}, | |||
|
69 | "source": [ | |||
|
70 | "The equivalent command line argument would be `--pylab inline`." | |||
|
71 | ] | |||
|
72 | }, | |||
|
73 | { | |||
|
74 | "cell_type": "markdown", | |||
|
75 | "metadata": {}, | |||
|
76 | "source": [ | |||
|
77 | "You can also use Matplotlib GUI backends in the Notebook, such as the Qt backend (`%pylab qt`). This will use Matplotlib's interactive Qt UI in a floating window to the side of your browser. Of course, this only works if your browser is running on the same system as the Notebook Server. You can always call the `display` function to paste figures into the Notebook document." | |||
|
78 | ] | |||
|
79 | }, | |||
|
80 | { | |||
|
81 | "cell_type": "heading", | |||
|
82 | "level": 2, | |||
|
83 | "metadata": {}, | |||
|
84 | "source": [ | |||
|
85 | "Making a simple plot" | |||
|
86 | ] | |||
|
87 | }, | |||
|
88 | { | |||
|
89 | "cell_type": "markdown", | |||
|
90 | "metadata": {}, | |||
|
91 | "source": [ | |||
|
92 | "With Pylab enabled, plotting should just work." | |||
|
93 | ] | |||
|
94 | }, | |||
|
95 | { | |||
|
96 | "cell_type": "code", | |||
|
97 | "collapsed": false, | |||
|
98 | "input": [ | |||
|
99 | "x = linspace(0, 3*pi, 500)\n", | |||
|
100 | "plot(x, sin(x**2))\n", | |||
|
101 | "title('A simple chirp');" | |||
|
102 | ], | |||
|
103 | "language": "python", | |||
|
104 | "metadata": {}, | |||
|
105 | "outputs": [ | |||
|
106 | { | |||
|
107 | "output_type": "display_data", | |||
|
108 | "png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAEICAYAAACzliQjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztfXt0VdWd/+fmwSvhlUDeAcSECREFFWtLi8YKWlBTrS8c\nq1StZVppO21XZ3XNrJnqmqmF6XSpa9EquqYVOlZp+6tCUfHZKK2ltIpohcqjonnwCOQBeSc35/fH\n7s49OTmP/Tzn3GR/1sqCJGc/7s09n/05n+93f3fCsiwLBgYGBgZjAhlRT8DAwMDAIDwY0jcwMDAY\nQzCkb2BgYDCGYEjfwMDAYAzBkL6BgYHBGIIhfQMDA4MxBEP6BmmPJ554AldeeaWWvr/whS/g3//9\n35X2ee+99+K2227z/P2CBQvw+uuvKx3TwIDCkL5B5KipqUFeXh76+vqE2t9666144YUXFM+KIJFI\nIJFIKO/TD3/5y19wySWXKB3TwIDCkL5BpDhy5Ah2796NgoICbNu2LerpuEL1/kWZ/pLJpMKZGIxF\nGNI3iBSbN2/GsmXLcNttt2HTpk2+1z7++OM4++yzMWXKFMydOxc///nPh36+dOnSoesyMjLw8MMP\no7KyElOmTMF//Md/4PDhw/jEJz6BadOmYdWqVejv7wcA1NXVoaysDN///vcxc+ZMnHXWWUP9umH7\n9u1YtGgRpk+fjk9+8pN49913Pa997733sHz5cuTn56OoqAjf//73ARCl39fXh9WrV2PKlClYsGAB\n3nzzzaF2c+bMwauvvgqAWEE33HADbrvtNkydOhWPP/740M9WrVqFKVOm4MILL8Q777wT8E4bGBAY\n0jeIFJs3b8bNN9+Mm266CS+88AJOnDjhel1nZye+/vWvY8eOHTh9+jT+8Ic/YNGiRZ79vvjii9iz\nZw927dqF9evX4+6778aTTz6Jjz76CO+++y6efPLJoWuPHz+OU6dOoampCZs2bcKXvvQlHDx4cESf\ne/bswV133YXHHnsMLS0tWLNmDWpra11tqTNnzmDZsmVYuXIljh49ikOHDuHyyy8HQJT+tm3bcMst\nt6C9vR21tbVYu3btUFun/bNt2zbceOONaG9vx6233jr0s5tuugmtra34x3/8R1x77bUYGBjweacN\nDAgM6RtEht/97ndobGxEbW0tKisrUV1d7auyMzIy8O6776K7uxuFhYWorq72vPZf/uVfkJubi+rq\napx77rlYsWIF5syZgylTpmDFihXYs2fPsOv/8z//E9nZ2bjkkktw1VVXYcuWLUO/oyT86KOPYs2a\nNbjooouQSCRw++23Y/z48di1a9eI8bdv346SkhJ84xvfwLhx45Cbm4uPfexjQ79funQpPvOZzyCR\nSODzn/889u7d6/lalixZgtraWgDAhAkTAACLFy/G5z73OWRmZuKb3/wmenp6XOdhYOCEIX2DyLBp\n0yZcccUVmDx5MgDgxhtv9LR4cnJysGXLFjzyyCMoKSnB1Vdfjffff9+z78LCwqH/T5w4cdj3EyZM\nQEdHx9D306dPx8SJE4e+nz17No4ePTqizw8//BA//OEPMX369KGvhoYG12vr6+sxd+5cpvlNmjQJ\nPT09GBwcdL22rKzM92eJRAJlZWWu8zAwcMKQvkEk6O7uxi9+8Qu8+uqrKC4uRnFxMX74wx9i7969\nnv70FVdcgRdffBHHjh1DVVUV7r77bqGxnfZJa2srurq6hr7/8MMPUVJSMqLdrFmz8G//9m9obW0d\n+uro6MDNN9/seu3f/vY3pvF55wuQRYVicHAQDQ0NrnM2MHDCkL5BJHjmmWeQlZWF/fv3Y+/evdi7\ndy/279+PpUuXYvPmzSOuP3HiBLZu3YrOzk5kZ2cjJycHmZmZzOPZM2bcsme++93vor+/Hzt37sSz\nzz6LG2+8cehaev3dd9+NRx55BLt374ZlWejs7MSzzz477KmB4uqrr8bRo0fx0EMPobe3F2fOnMHu\n3bs9x+fFm2++iaeffhoDAwN48MEHMWHCBHz84x+X7tdg9MOQvkEk2Lx5M+68806UlZWhoKAABQUF\nKCwsxNq1a/Hzn/98hNUxODiIBx54AKWlpcjPz8fOnTvx8MMPAxiZS++mjJ2/t39fVFSE6dOno6Sk\nBLfddhs2btyIefPmjbj2wgsvxGOPPYa1a9ciLy8PlZWVrgsUAOTm5uKll17Cb37zGxQXF2PevHmo\nq6tzHd9rzn7Xfvazn8WWLVuQl5eHJ554Ar/+9a+5FkGDsYuEOUTFYCyjrq4Ot9122zC7JO647777\ncOjQIfzsZz+LeioGaQgppX/nnXeisLAQ5557ruc1X/va11BZWYmFCxeOyJgwMDDgh9FpBjKQIv07\n7rgDO3bs8Pz9c889h0OHDuHgwYN49NFH8eUvf1lmOAMDLVBdZkE3dJSGMBg7kLZ3jhw5gmuuucZ1\nZ+I//dM/4bLLLhvKbqiqqsJrr702LF3NwMDAwCA8aA3kNjY2ory8fOj7srIyNDQ06BzSwMDAwMAH\nWboHcD5I+GUpGBgYGBjwg8ew0ar0S0tLh2VFNDQ0oLS01PN6mhMdp68f/MDC0qUW+vpSP/vmNy3c\nequ+Mb/73e9qfU0tLRZycy10dFgoLrZw6FD47+tVV1lYv97C7Nn63ouDBy2UlFiYNYv8X9Xcf/1r\nC+PHW7jsMvm+kkkLU6ZYyMmx0Nkp/l78939bACz8+Mdi83jzTdJ+9Wr+tq2tpO2XvsTfFrAwYwZf\nmy1bLADfxV//yt7m+uvJWKzXb9xIrt+xg+36f/1XCxUV6j5jfO8hH7SSfm1t7VAe865duzBt2rS0\n8vObm4F164Cf/ATIzk79/L77gFdeAXwKLMYar7wCfOpTQE4OcOmlwM6d4c9h717g+uuB1lbg1Ck9\nY+zZA1x8MTB/PvDXv6rr99Ah4JprgH371PSVlwcUFgJNTeL9NDYCRUWkP9H2gNjfgjq2b7/N147W\nh8vN5Wu3fz/5l+f9GjeO/Hv6NNv19DrW65ubgfp6wKOSRqwgRfq33HILlixZgvfffx/l5eX4yU9+\ngo0bN2Ljxo0AgJUrV2Lu3LmoqKjAmjVr8OMf/1jJpMPC974HrFoFVFQM/3luLnDPPcCDD0YzL1m8\n8QZAz+j41KeA3/0u3PFbWoD2duCss4BFiwg560B9PTBrFlBVpZb0Dx8mi2VXF3ktMmhqInMsKACO\nHxfv5+RJ4BOfAFyKgzKhsRGorhYj/fp6oLwcaGvja9feDmRlkbnz4MABICMjtVCxoLmZ/OtTrmkY\nzpwZ/i9L/729qXHiDClP316e1gsbNmyQGSIynDoFPP64N1ncdRe5SX70I+DvhQ+VoaamRm2HDrzz\nDvCtb5H/X3gh8NOfah1uBPbtI+9dRgYwbx4h0WXL3K+VeS8oGU2cyK9C/XD4MHDttUBZGSHtvDzx\nvk6eBGbMIKrXo6r0EPzei+ZmYOlS4P/9P7F5NDYC550H2Mr6M6O+HliwAHjrLb52bW3k79PQAPT0\nsN9Hra1AWVkNl9I/fpwsrK2tbNeLKP1EAvjoI/LUFmeYMgweePxx8ghfVOT+++JiYOFC4MUX1Y+t\nk/Qti1grtBQ9tT7CfCz96CNg9mzy/1mzyPdekCX9WbOAkhLg2DHhbkagqQkoLSVkzatSnaCkX1go\nR/onTwKVlUQ9i6CpiXyeRZT+0aPkc8Sr9NvagOnT+d/Hzk7g/PP5Sf+ss0hbFpw5QxYJHqU/a5b8\n5yEMGNJ3weAg8PDDxMLxw003Ab/4RThzUgVqIdDFbOpUYMqUlC8bBigZA0Tp6aqA8NFHpP/CQjnr\nxIlTp4D8fGDmTHWkX1AQTPp+aG4mNqQo6Tc3pxYN3rNYzpwh7/HgILE4WNHWBkybxv8+dnSQpyzW\n15pMEhtu9mx20j99mozBo/RnzQK6u9mujxKG9F3w+uskyHnxxf7Xfe5zwPbtgOB53pHg4EFiqdgz\nZKuqUsGxMEBtFyBY6cugoYHcuLKEaodlEQLJz1er9GXmaFmEdM4+mxChQEIHOjoIAU+bxm6B2NtO\nnkwEBM+i095Oxpsxg88L7+gg75etGrYvurqA8ePJ/HiUfmkpm9K3LLKAlZYa0k9bPPkkcOutw4nR\nDUVF5Eb705/CmZcKHDpE5mxHRQXgUfpdC8IgfcsihFpQwGadsOLMGZIJMn48P1m5wU76ok8jlPym\nTiXzYiU2O86cIQkKM2bwWzwdHaTt1Kl8Fk9bG2kzfTpfu44O8nTASvrd3cCkSUTI8Sj90lI2pd/b\nSz4TOTmG9NMSfX0kGLZqFdv1NTXA3yvmpgUOHRqZjTR7NvDhh+HNgdouALmxGhvF1KkfTp8mgUF6\nM1oWIQtZUGsHUGvv5OeLp67SOSUSRDnzeusAIf3Jk0lQWoT0J08mY/MofWrvTJrER5adnWSRZCXw\n7m4SzOchfR6lT4PQEyca0k9LvPQSsTuo5xyEdCP9w4ejJ/1jx0ggHCA3yrhx7N4pK+zknEioU/vU\n2gHU2Tv5+YQ0WYOGTnR0kLgMwG+x2PuYPJmPGCnoUwLv2JT0J05kV+108eaxd0RIn0fpG9JPc2zd\nSjYNsWLpUmDXLr4AVpT44ANgzpzhP5szJzzSHxwkRDdzZupnM2eqz2+2kz4gnwdv75emaKqY9+nT\nhPhkSZ9ucOJV2xRU6YuQvqy9M2kSO4H39pLc/qlT+Tx9nUq/u9uQftpicJAEZq+5hr3NtGkkMJou\nvr49c4YiTKXf1kZuPrpDEgiH9PPy+AOUQf1OnSr/hELJVhXp8xIvkFLPubnypM+z4HR1kfF4SL+j\ng78Nr6dvWeTvWlJilP6ox5495DHZaX8E4eMfTw/S7+sjKptaKxQlJcT64E3VE8GJE0R12xEG6Yt6\n3U60tKSU/pQpakg/N5f0FZXS7+4mi3BWFiFGVjJ1jp+by7dgUNuFl/Rzc/lJn2ec/n7yb14e2+sx\npJ/G2L4duPpq/nYXXii2kzFsNDWRjCPnUaqZmcSfVpnL7oXm5uHWDqA2pZKCeuUUqkj/9GmiaAGi\nzmVIf3CQkERODiGyjg7xdEsZpU+fNgBCjKJKn5f0qC3CE8jt7EyRPus8ee2d3l6SBTV+PJtt29ND\n+jekn4b4zW/4rB2KdCF9e6qkE8XFZGelbkSp9EU3Ltlx+nSKIGXUOUAIaNIkUo4iK0s+3RIg//Iq\ndXt7GXtHhPTDUvo89o4I6Ruln4ZoaiK56kuW8LetriZpiDIEEAbq68lmJTeUlIRD+m5Kf+ZM9Uq/\ntZXkf1OoUvp2VUzVuWgJC3tfgPgiYlf6PGRob0/nwUv6fX1kx+v48fykZ1fIvJ4+jQlRK8YPvNk7\nPT2G9McEXnwRWL58eAllVmRnk4JTKot66YA9VdKJ4mK50r6saG4mVpIdeXny1SqdaG9P2TCAmO3h\nhjNnUumRmZnkRhdR57Qve1lh0WCuk/RFUi5FSb+zk7RNJMJR+p2dZI4Aezte0u/tJSSelUUW9GQy\nuH9D+mmIl1/2rvTIgnSweI4f9y8gF4bSb2sbWZWSd0cmC+zeO6BH6QNyFo+zL9EYgazSd9o7PO2p\n8gbCIX17NU7WdqKefiLBpvaN0k9DWBY5WESG9BctIiWL44xjx7zLvoZJ+tOmDf/Z9Olq0intaG9P\nKXJAbSBXBVEDw20V2lcU9g5NnaTteZR+VxdpA4RD+pSQeeZKPX1Wu8Y+hiH9UYp9+8iH4qyzxPuo\nrlZzkpJOHD/uTfoqSgqwICzS16n07YuJTNpmXDx9u3rmtXfsbWVIn7Wdk/R57B1R0u/p8b/eZO+k\nIV5+Gbj8crk+KOmrriGjEseOeds7KkoKsCDdlb5Oeyc3NxrSp6QIhEv6tK2MvcOq9Gm5D5aKuHbS\nnzDBKP1RCVk/HyA+dU4O3xFuYcNP6Y820ncqfRUbqWi/quwdZyCXt/AYhd1XTyfSp+PyZO/wEjKQ\nsqB4s3EAY++MSvT3k4PBP/1p+b7ibPEkk6lSw24Ii/RbW0eSfm4uubFUnkvgzN6h6ZWycNo7sp6+\nk/R5CRsY6cmnA+lblrynz6rc7Uq/vz84xZbX06fZOxMmBFtBccCYJ/033yQFx5xphCKorgbee0++\nHx04dYqQoFdKan4+SZvUfWyim9KXKQnshp4eQir0xgVSZCbz+uw1aih4Sw/YYSdrQJz07aQtkrIp\nkhFjb0vH5iH9/n6S8pqZKW7v8Cr3RIJ8/oNy+0UDuXRRiTvGPOm//jpwySVq+oqz0vezdgByM+Tk\nqNm16oXBwdRpSU6otHiotWM/BIfm1IuQKkVnJyGBrKzUz0SJGkhlldj7ErEHnKQvo/R51aqo0reP\nyUreAD8hA+RpgKeNCOlPnEjuoaAnj8HBcM+jdsOYJ/2dO0l5ZBWIO+l7BXEpdFs8HR2ElOykSaGS\n9J1BXAqZSpbASGUOiJUtsPdHiQ+QU/r27BtZ0ucpE66C9KlNw5IEIWLv0JOtAH2kz6r0d+4kZ3BE\niTFN+oODwO9/r470580jZ9DGEX45+hS6Sd/N2qGQJWQ7nL47hayvb89Jp5BR+s7+RJ9EZJW+nbjD\nUvr2dhkZbCoZSO2WBfiUPiV9loWC10Kii0pWFqlU67d49feL7fpXiTFN+u+9R7zsIAXMiqIicsPp\ntEhEEQel70f6ssXL7HD67hSyC4vTjgHklb4Ke8fuq6ejvQMQ0mT15+Nm71AiTyQI8fup/YEBQ/qR\nYudOdX4+QP7oFRXkSMK4YSwpfXt9Fjt0KX1R0nfz9GWVPrVneHxje/usLKJUWc9WcCN9FpvGSfrj\nx/Pn0LO2sSt9EdIPWgTt6j3oSaK/393eDBNjnvRVWTsUFRXk8PG4wa2ksRNRk76qc3K9SF+Fp28n\nKkDMQ/fqT4T0k0lC0JTUaOEz3gwcStwAn9q3t83MZLdpnGOK7JZlfTpwevpB8+PdC2BX70G+vlH6\nEcKySObOWCF957m0btBN+m45+hTpqvRV2zui1ow9U4knG8beBwUP6duDyDxj2y0XnnYiKZtOT1+H\nvUPVe9CiZ5R+hPjgA0L8c+eq7TeupO88VMQNYSh9e417O1SSvi5PX3Ug12nviOzodBI2wJ+B40b6\nrO1lFLv9nGRdxdAAfnuHd2HhsXeM0o8Q1NqxKyQVMKTvjbACubqUvo5Arqy940b6LD60Xx+i9g7A\nnkZpJ2JA3N4R8fR57B2WedmJPGjzl1H6EUKHnw8Y0vdD1IHcuCl9lfaOHbz2jipPn2dsO7EC7AQu\nau/wxAFk7B2j9GMMXaRfUkLITUWdF1UYGCBBUi/CpYia9HUHcmVUOeAdyFWZvSNi79hJF5D39Hme\nFOzpojxjq1D6IlaSzpRNwGTvxBbHj5NslgUL1PedkQHMng18+KH6vkXR2krKEmRm+l+n4wQrO8JS\n+l6evowqB+IZyHWSLqDG0w9b6YuSvo6UTR4SB/jsHaP0I8LOncAnPxlMgqKYMydepH/qFFtBualT\nyQKh60yAtrbhlS/tCMPe0UH6svaOnWxFzttV4em72TuigVzWNEoZpU/HExmLhcTtpM9SoI3H3jFK\nPyLosnYoZs8GjhzR1z8vWPx8gNxMmZn6aoJ7lUcAwgnkypK+VyC3q4t/oaREYld9lGx5+lLh6TtV\nN6/Sdyp23k1WtJ2OHbmWNZzEeZV+dnbwRjWTvZMG0E36c+akJ+kDakscO+E8NMQO1Upfl73jJFha\nHpj3LAC3BSQjI3gbv1s/MqRvWXKkb1fePGOH5enTcWiWHm82Dsvfw2TvxBynTwMHDgCLF+sbI26e\nPg/p6/T1nccD2qEykGs/ScoOHfYOQEiX9/AMtwAsIO/HA3ykPzBAFhu71clL+nby5tklK5K909/P\nZ9U4FxdWe8e+2UqlvWOUfgR44w1C+PYPgmrETemfPBkPpd/R4U/6HR1q4gl+9o6MdeVF+hMm8Pfr\n9MIpZP14Oh8e0raTL+8cRBW7TDseq0ZkHBFP32TvxBi6rR0gfQO5gD7Styxv2wUgN8K4cXJKnCJM\nTx8QOybPjWxF+nKWMwDEDyURmYNbOQVdnr6IPx8G6TvtHaP0YwaVJ2V5obCQEGdcDkmOg6dPT53y\ny5hSFczV6emrsne8SF8kCOt8alVB+jztw1L6ySSxojIyUm147R0REue1d4ynHyP09AB79gCf+ITe\ncTIygFmz4qP240D6ftYOhapgrk5P3+mfA2L2jiql72XPRKX0RT19XgXOOpZzHF4SpwejsM7LePox\nw5/+BMyf720xqESc0jbjQPp+QVwKFcFcaiPFPZDr5+nzKH2nkgXC9fRVKX3e/HnWsUSUvk57xyj9\nkBGGn08xaxZQXx/OWEFIJ9KXVfq9veSmcruxdJH+aFP6LGe9UoTp6dszdwC22v1hkD6PvWOUfsgI\nk/TLyoDGxnDGCsKpU0BeHtu1Ou2doCcsFZ6+X7CY52QnN4QRyBVR+jpIP46evj1zh84ziJB1kz49\nZcxk78QQySTwhz8An/pUOOOVlgINDeGMFQS/OvZOpLvS97J2ABJr4U2JtCOMQK6I0lcdyGXNmR8c\nHKlcw/T0WQjc+f6w2jWsefrJJElOoJu/TPZOjPDOO0BxcfDpUaoQF6Xf20s+mG4BSDekO+l7BXEp\nVNbKoVCdpy9TQoHOR8bT590oJXJql6wCZ20jO05QINep3E32TowQprUDENKPg9JvbydEznpYzPTp\npOiaaoQVyPWzdwBx0h8cHFlygCLqPH3VSp/Hl3cbW6RtWKTPm43DUlbB+aQz6pX+jh07UFVVhcrK\nSqxfv37E7+vq6jB16lScf/75OP/88/Ff//VfskMKIWzSj4u941fO2A1Revq5uXL17gF/ewcQJ31a\nNiHD5Y4ROeZQZZ6+Dk+ftWSxaDzALdWTN3tH10LBQ/p2K4heH3dPX2r4ZDKJtWvX4uWXX0ZpaSku\nuugi1NbWYv78+cOuu/TSS7Ft2zapicrAsgjp/8//hDdmXh5RbEEkpBtxIX0WpZ+TAzQ3y42jk/Td\n/HxATOk7q1OK9qUrkCuj9HkPNgHYyTiMpwPeAmrO/v2eJNJe6e/evRsVFRWYM2cOsrOzsWrVKmzd\nunXEdZauAu2MOHSIfFhmzw5vzEQiHr6+Xw17N0ydStqo/pOxkr6s0tfl6XsFcQHxQK4Kq8iNeMPy\n9GUWHGdbVqvGTph0d3cy6d1GVOmzBnKd/QdV5YyD0pci/cbGRpSXlw99X1ZWhkYHyyUSCbzxxhtY\nuHAhVq5ciX379skMKYSwrR2KOFg8vEp/3Dh1NXDsYNmRq4L0dXn6XkFcQG2efjrZOyqVPkv6pZNg\nAf6TqlhSMHkCuW72Ttzz9KXWnARDdPCCCy5AfX09Jk2ahOeffx7XXnstDhw44HrtvffeO/T/mpoa\n1NTUyExvCK+/Hg3px0Hp00AuD6ZNI8FclbaUXy19ikmT4uvp+yn9CRP4g9+qlL6OQC6P0neOzbqx\nyy2rhtfTp+36+93fS9qGh5Sd9X1ElD5Pto8I6urqUFdXJ9xeavjS0lLU27ad1tfXo6ysbNg1k23y\nbsWKFfjKV76ClpYW5LnsFrKTvkrs3Al8+9tauvZFHDJ4eJU+oPYUKwpWe0f2CcOPnIH42Ds9Pe62\n2/jx5KmIFbqUvohFQ9uypnvKBmVZ2vGOw/tkINu/CJyC+L777uNqL2XvLF68GAcPHsSRI0fQ19eH\nLVu2oLa2dtg1x48fH/L0d+/eDcuyXAlfF5qaCPE5YsuhIB3tHYCQvqoDTSjCsnf8bBhAXyBXxN5R\n5elHlafvZu+wKHbAvfZOHEif98nAzd7RrfRlITV8VlYWNmzYgCuvvBLJZBJ33XUX5s+fj40bNwIA\n1qxZg1/96ld4+OGHkZWVhUmTJuGpp55SMnFW7NxJduG6pdrpRlkZ8Mor4Y9rR1sbUFLC10YH6YcV\nyO3u9j87YOJE9Z5+lKWVo7Z3ROv2uJExi73jtsioJn2Z64MCuWnv6QPEslmxYsWwn61Zs2bo//fc\ncw/uuece2WGEEVUQF4iPvcOTvQOoPa+WgsXTV0X6upR+GIHcKAquOf8uMpuzdNo7zuwdlnYinjtP\nCqbI9VEr/VG/IzdK0jf2TgphKn0dpO9VNgFQm6cfdsE1r2CsjNIXsXdEPX2WAme6lbudxNNB6Y9q\n0m9tBT74ALjggmjGLywEWlrYbgJdEMneUXlIOQWLpy9b+hiIhvTTOU9fhrhlPH3e8gVubeh4KgOz\nbiSeTHrvW5GNGUSBUU36r70GLFkS3cqamQkUFQFHj0YzPhCP7B3LYivDEOdAbpDSV5mnH6a9I6v0\nRdpaFiFSnoApIB7I5RnHOUYi4a/eee0jo/Q147e/BS67LNo5RG3xxMHe6enxPtjEjokTU1VBReGX\nZQPES+l7efphBnJ12Dus5G3f5hOXlE3eMXg3Zxmlrxmvvho96RcXA8eORTe+COmrtndY6w8lEvIW\nT1SevkhpZV1KPzubLJwsi6cs6fN67DLtosjeoW281PuYq70TZzQ3k+MKo/LzKYqLo7N3+vsJgfDu\nrFVt7/AUnZPdoJUugVw/T59VpSeTpOSzUzkmEuJ17QG+zVkinr6IYqfjhb05C+C3d4zSjwh1dSRr\nJ+o3uKgoOqXf3k7SNVlr6VNEpfQB+VIM6RTIlVX6lHTd/r4ypE/V6uCgf1s35a1LsdN2YW/OCmrD\nuznLKH2NiIO1A0QbyBXJ3AH0KP2gIC6FbDBXVyDXS5kD6vP0ZTZWUciQfiIhrrxZz60VaRdHT98o\n/Rjht78FPv3pqGcRracv4ucD6gO5vPaOTqUvYsUA6pW+33GJvErfDTKkT9uzePOiSt+LWP1KeqtI\n2aTZNawpmEFjGE8/JmhqIp7+eedFPZNo7R1R0o/S3lFB+n7ZOyKnXAH+pE9vdJ6sI91Kn3Vx8yJ9\n3eTt9nSRmRm8m1UkkGtX1rSCptffyo2UeewdP6VPU1XpOQBRYVSS/m9/C1x6aTT1dpyIMpAro/RH\nayBXB+knEmrKJwB8Sl+XvQOwZ+G4kXeQxeFm79AxVVovIm3c7Be/3Hse+4guELwxNtWIAS2qxyuv\nxMPaAYAvVw5GAAAgAElEQVSCAuDkSbncc1GI1N0B0jeQm0y6547bIWPvBC0mPP36HZcok2NPEQbp\nuylv2paXiIHgzB8V2TtBbXTaO3Hw84FRSPqWBbzwAnDllVHPhCA7m6jtkyfDH1tU6U+aRAjD71Gb\nB2HZO1SN+ykpHUof4Avm0tOZ/GrvsBxXGQel76XYg+rhuI2pmsBF2shuzuJJ74wKo470//IXcgNW\nVEQ9kxSi8vVFs3cSCbUWT9C5tXbIkH6QtQPoJX2eAKxzRypFRgYhDtEdsbzzESVuwF/p8yp2QJzA\neQquBY2jU+k7F4ioMOpIn6r8qH0zO6Ly9UWVPqDW4gnL0w8K4gKp3aq8TzFBpM+zmPgpdIDd4nEr\neEahQukHtfcjb14ipmPytlMdB3AjZlUpm0bpa8KOHfGxdiiiUvoypK8ybTMse4dF6ScSalMsKXiU\nvpefT8EazI3a3pHx9EXtHd7sHd5sHDdi9gvk8mzOMkpfAzo7gT/+MT5BXIqoNmjJkr4qeycs0g/a\nmEWhg/R5+vTb6AWwK/2gQC5rieOwPX3V9o7KHbY6N2cZpa8BdXXAhRcG120PG1Ft0BLN3gGis3dk\nsndYlD4gXiBNVSA3yN5RofRlyiPTOejy9EXtHVXZOzwpmEFjuJG+1+Yvo/Q14IUXgM98JupZjIRR\n+vGxdwCxYC4L6avYVMXTl18gV6ZoGm0vqvRZPP24Zu/Ibs7y2/xllL4GxNHPB6JT+qLZO8DoDeQC\n4scb+pE+z6YqlZ6+jL0zOOitPtMpe0f35ixVdpBR+opx6BAhqYULo57JSKSr0h+NgVyAX+lbFps6\nV+nph2HvUNJ2y3ST9fRFNmfFZUeu2/W8dpDb9UbpK8bWrUBtbTxKLzgRhdJPJgl5isY3orR3RJU+\nTyCXh/T9ShhTqLR3ZDNvAPaUS7/2ImUYWNr62Tu87cIgfb/grJt697reKH3F2LoV+Oxno56FOyZP\nJiTc0RHemKdPk3FFF8EoA7ky9g5rIJe3ZIKfMgfU1cwB+A4ml1H6sqSvspwCbada6Yt49LqeDIzS\nV4iTJ4G9e4HLL496Ju5IJMLP1ZfJ3AGis3fCIH1epc9C+qrz9GUDuaKlkSl0K30Re0c0e4fXo+c9\nRIX1ySAOZZWBUUL627cDy5YF35hRorAQOHEivPFk/HyAKP0o7B3ZlE2WQK4u0uexd4KCwrI7clXY\nO0HtdWzOUllSQaSNzsCvKbimEFu3AtdeG/Us/FFQEC7py2TuAOqUvmXFT+nH3d7hIf0o7Z102Zyl\nKzDrdb3XPgCj9BWhs5McjbhyZdQz8UdBAXD8eHjjySp9VaTf10cOjWD9sMuQvq5Armp7R2UgV5e9\nE8XmrLAKrvHumg0K5LIuREbpK8JvfgMsWQLk50c9E3+MVXuHp8ImkCLPoEO53RCl0uexd1R5+rrt\nnbA3Z4lk/fhZSbSEte6Ca27XG6WvEU89BaxaFfUsghG2vRMXpc9j7QAk20ikNg4QbSCX197x6491\nN23U9o6opx+WvZNMpnbIsrbRmeJplL4CtLWRoxHj7ucD0dg7Mtk7qpQ+L+kD4hZP1IFclfaOTN0c\n1j6i8vRV2zs81ktQG1VlG4zS14SnnyYVNWXILSykm70TldIHxEmf1dMfTfaOTO0dL9Km7aMouKYy\nZdNLWavekcu6OcsofQV48knglluingUb0i17Z/x44quzEpkXRElfJG0znewd3YHcKLN3WDZnhZGy\nKfJEwbPD1m9ORulrQH098Oc/A1dfHfVM2JBu2TuJhBqLJ2x7J12yd3Tn6eu2d5JJEijNzORvK0LG\nlkXGlC2GJtJG1eYso/Ql8dOfkgAui4cbB+TlEbvE7/FVJWRJHxi9pB+1vROXPH0ve4a295sDJUev\nYm2qC655jRc16fNszjJKXwLJJPC//wt88YtRz4QdmZkkrfTkyXDGU0X6svWC4kj6Uds7KsswRJWy\nqaOtn72jisABvYeo0Ou9au8YpS+IV14BZswALrgg6pnwIUyLRzZ7B0g/pd/VlT5lGHQXXNO9Ocuv\neJiIN0/b6VbtQW1UFGgztXc04LHH0kvlU4QZzE1ne0e0vHLU9k7Ynn6UgVyZtiL2jkhuv2jKplsg\nlyd7xyh9xfjgA1J24dZbo54JP8JK2xwcJGQ9ZYpcP+mm9NPF3lHp6Udl7wTFA4JSL8Oyd1SlbKrY\nnGWUviAeeICofFlCiwJh2TsdHYQ4ZVVFbm50pK8zZTPqQG4Yefoqsnf85iCT4x9ne0fn5qy4KP0Y\nTIEdp04B//d/wF/+EvVMxBCWvaPC2gHSS+kPDJAvLxKzQ0Tp+5E0EF3BNR318Gn7oAwc1fZOEBnz\nHqYeVfaOn9LPzXXvJ0ykldJ/+GFyOlZJSdQzEUNY9s5YJH1agsHvSEMKEdIPeoJQWXsnzB25Mp6+\naCBX5PAVvziASktIpOBaulXZjMEU2NDWBjz0ELBzZ9QzEUdY9o6KzB0gWtJvaeFrw2rtAPrq6ff2\nkk1EQQtPnLJ3vF6XTk8/3ewdv0CuV/aO2ZGrAD/4ATn4vKoq6pmIYyzaO7yllQFxpc9K+joCuVlZ\nhOy9yMHZXzrYO6JKX4e9I5K9o9vesSy+JwOj9Dlw5AjwyCPAnj1Rz0QOYZG+bN0dClVKn9fH1E36\nEyaQ61lUOcBG+rTfnp5gNafC07cs/34yM0kWVzLpXioB0Ju9I2rviGy0oiUhnH9LL2WtanPWwAB5\nb912CRulL4mvfx34xjeAWbOinokcqL1jWXrHiZPSDytPn4f0s7LIzcpaEoOH9Fm9eFlPn9aK9yL0\nRCLY4onK0/dT4H7+vNtcEwn+Wjcinj4PiZvaO5LYsgV4/33g29+OeibymDSJfHBVlCz2gyrSjzJl\nk5f0WXfjUvBYPCzZOwB7MFeF0vfL0aeQ2WDFQtxhZ+/4LTJeJKvK0+ddVIzSF8SRI8BXvwo88QTb\nTZcOCMPiSXelL5Knz6P0Ab7TuXjtHZb+VJB+0D3Bkmuvy9MXSfcUsXcA/aTvl3c/JpX+jh07UFVV\nhcrKSqxfv971mq997WuorKzEwoULsYfRmG9vB665BvjXfwUuvFB2lvFBYaH+DB6V2TvpUnCNl/Sp\nr88ClfZOkBcPyAdhWfuRCcbqWDBEduTSdlEofd4yD6NC6SeTSaxduxY7duzAvn378OSTT2L//v3D\nrnnuuedw6NAhHDx4EI8++ii+/OUvB/bb2krq5NfUED9/NMEo/WCEQfq89g4L6bPYOzT45+XF035U\nKH0ZT58Sl1f8KeyCa0ExBBWkz1uz30u5ewWKR4XS3717NyoqKjBnzhxkZ2dj1apV2Lp167Brtm3b\nhtWrVwMALr74YrS1teG4j9T905+AT34SWLwYePBBtuyKdEIYpB+X7B1647PskrVD1NPnVfpR2Dss\nZJ2dTchncND7Gr9iaxQy9k5Ghn+Wi47Mn6iVPm82jkj/aa/0GxsbUV5ePvR9WVkZGhsbA69paGhw\n7a+2NmXpPPCAvxpKV4Rl76gkfdFsIxGVD8jtyGUFj9IPyrahYLF3WILCiUQwYasI5PoFY4Pai27O\n8sptD2rnNx4vyfIuEiL2TpyVvtQUEowy3HKwhle7jIx7ceedwKFDQF1dDWpqamSmF0sUFAB//ave\nMVSR/rhxRPGxkp4TYZN+Otg7LEqf9tXb6/2adNs7QIr03f6GovEASnxuFKAje4fXflFB4rqrbNbV\n1aGurk64vRTpl5aWor6+fuj7+vp6lJWV+V7T0NCA0tJS1/6eeeZememkBQoKgNde0zuGKtIHUmmb\nUZA+6+YpQCyQy2LvWBZ7yiarvcO6gIhaMxQy9g5tL6r0RdpFnbIpkncfhdKvqRkuiO+77z6u9lL2\nzuLFi3Hw4EEcOXIEfX192LJlC2pra4ddU1tbi82bNwMAdu3ahWnTpqGwsFBm2LRGQQHQ3Kyvf8si\nnr6K7B1AztcXJf3MTHLjsJYqBvQpfXpjZzDcKarsHSDYmmFN2VSh9L3aigRyRQKyQDikryrvPu71\n9KXWnaysLGzYsAFXXnklkskk7rrrLsyfPx8bN24EAKxZswYrV67Ec889h4qKCuTk5OCnP/2pkomn\nK3QHcjs7yc2q6sMlk7YpSvpASu2zPmF0dQHTp7P3z0r6rNYOoMfe8QJLIFeVveMGP8VOg6FuJSD8\nyFvk5CxALemryLsf9bV3VqxYgRUrVgz72Zo1a4Z9v2HDBtlhRg10k76qzB2KKJQ+kCL9vDy263XZ\nO6zKnLVPVaTPGsjVZe/4kbC9rfNvIprqKar03RZs3mwcWsdocHD4E5/fImF25BoMIS+PEDNr3Rde\nqPTzATnSF6mwScEbzNVl7/AofRZ7R5WnH7W9I5r5w7I3gHc8lcrd7Xpa38dJ5CLZQXFQ+ob0Q0Zm\nJpCfD5w8qaf/OJG+CqXPCl1lGFTbOzx1fOJs7wQpfS/VHmQLAcQWcmsXRiDXi5Td2pjaOwbM0Gnx\njFXSF9mcpUPpx83eiVLpuxEry2LBQ+AibUTHcBL5mK29Y8CPdCJ9mUqbYSt9HZuzdNg7qkhf545c\n2l7W03dC1BaKmvTdiJx3c5ZR+mMYuklfVbomEF32Tk4OX6VNnYFc1dk7LP3JqnQ6nzh6+iJKX3X2\nDk8g16sN7+Yso/THMHSS/mjL3mFFXAK5YXn6UQdydXj6tJ1ueyczM3Xalh1+StyNyHkXFaP0xzDS\nyd6RJX3eoxIp4kL6PCUowrR3ZAuuDQ76By5pe9X2joynryp7x+u0LT8l7jaGOTnLgBljhfQ7OsIj\nfd6Ts6K0d8IK5PrZO5RE/cpcBOXNB50JwEvedEzdSt+rTZCnz2rvjOoqmwZiGCukPxbtnXTJ0w9S\n3CztdXj6YQRyvdqouj7uVTYN6UcAnfV34kT6YSp9naSvckeuyjx9mR25sidvBbX38/SjTtmkbVg3\nW/FeH/faO4b0I0A6Ze/k5kZbe4cFlpVe2TthFVzzs3d0k77IjlwgnOwdgN/T57nebYFwK+MQFWIw\nhbGHsZK9I6v0WVM26c3Io6LSPU+fNZArmnJJ2/sVQBPZnBUnpc9r78hszqIqPw4nARrSjwC5uSRl\njCcPnRVxsndk8/RZlT7vxixATxmGMOvpyxZci6vSFwkAhxXIldmcFRc/HzCkHwkSCT2+vmXp2ZwV\nd0+f19oB9JRhCLP2ThzsHdUBWUAsFhBlIJd1c1bQ6w4ThvQjwsyZ6i2e7m7iGYqccuUFmXNyw/L0\nRUh/NNg7OpW6bHsv8hb19MMK5Pp5+qz2jldOv1H6Yxw6fP22Nr6DRFiQnU0+rCxWiB2WFW/Sj3sg\nV3ftnTDsnTA9fd6nA141zrs5i3WBiAKG9COCDtJvbVXr51OIWDw9PakFQwQ8pM+7MQuItgyDito7\nKvL0ZUhfpnBaHLJ3VAVyWTdnGaVvkDZKHxBL25Tx84FwlH5vL0mj80M62ztxTdlMx81ZPE8GVOnb\nLVGj9A1GvdKPO+knEsHECvDV3jH2Tgo6Cq7pzt5RtTkrI4N82Q+DMUrfIK2Uvgjpy/j5AF+evgjp\nA2wWD8+OXOpj+z09qErZlM3Tj6vSDyuQy1NLh17PW6DN3r9R+gZG6QeAJ0+f99QsClbSZ1X6iUSw\nxaMyZTPu9s5oKrjGszkLGLlIGKVvYJR+AHjtHd5ALqA28EoRZPGMBntHpixzXJS+zs1Zbv0bpW9g\nlH4A6A3iVQbADt32Dg/pBy0kqmrvRJmnT9W6SFlmmawfXtLnzfjhIXE6J9a8fqP0DTBzJtmRG5Q9\nwgOdSp83e0dW6QPsal+U9HUo/SB7J8zSyrrsHZmyzDLHJfIEci1LLYnz2jtG6RuMwPjxhBTb2tT1\nqUvpixyOLqv0Af2kr0PpB9k7YR+XqMPeYW0bpac/MECORfSqasm7gUrE3nEqfUP6Bsrr76gutkYR\nhacPsJO+yOYsIN72ThDps8xL9hAV0VIKfmPr8PTdFhiRnb+qNmcBIxcJU3DNAIB6X7+1NT6BXFVK\nnyVtM93sHVnSHxwkOeBBpK3L3mEtyyzq6TvJOJkk8QMv1c5L4CJtRMo2GKVvMAKqSX+sKv10sXfo\nLk0WxedH+jRdM6g2O1XqbsXyZMo4sCwYfk8JvFU2VRO4Vxu/YCvP5izAKH0DDxil7w/WXP04kb7f\n0wMlWpaDNPz8eNanhYwM76P7dJO+Sk8/LNIXUfqsi4RR+gYA1JJ+MkmIdsoUNf3ZEXelL7o5K8je\n4VHm9j5lyRrwt2ZU9MNK+ryZNPa2qjx9kXLMQaTPG8iVXSSM0jcAoJb029sJ4es4g1MkZTPs7B0d\ngVyeujsUfvaOCFmLWjMUsmpdddt0Vfq89o6zf6P0DQCoJX1dfj4glrI5Gjx9XmsHCLZ3WPvLyCAp\nh25Km2deXjZRXD19tzHD9PR12TtG6RsAUEv6uvx8INrsnSg3Z4mSvpe9w1O8DfAO5oZp74w1pa9q\nc5Zb7R2j9A3SRulH6enrTNnUofRV2Tu0L1nS9yJfWdJn2ZHLWxoBiJ70dW3OMkrfAEB6Kf2ODr5z\ncsNU+roCuTrsnShIPwp7R+Zg9DBIXySQK7M5yyh9AwBAXh4JwLIUFQuCTqWflUU+sCzHC1KoUPo8\nKZs6ArlR2zsyKp1Cxt7xyvNn2ZwlupvX7QlBR/aOKk/fKH0DLmRkAPn5wMmT8n3pVPoAfwZPOnj6\nUdg7PPPUae+wqHWa5+9UuLqVflSB3CBPX2aRMErfYAiqLB6dSh/g8/Uti5B+3LN3wg7kdnfz7+51\n6yus7B3a3knCMpuzwlLtOjx9HnvHrcqmUfoGANSRvq4KmxQ8aZt9fUQlBhFDEFhI37LipfT9FpKe\nnvgo/TBIPyxPPyuLbE7kOYhctlRy0PVu9fSN0jcAoFbp67Z3WElfhbUDsJF+by+5mTIz+ftnIX0e\nDx7wt3dUKf2wPH1AnPRFPX0R0k8k3HfABi0UYW7OMkrfYAiqyivrVvo8pK8iiAuwkb6oygeiydMP\nm/SjtHdElL7I5izAnWRVFlwztXcMlMEofW+w5OnLkH7c7R0V2TtR2jtOkqQlof0Ur0jtHbd2ussw\nWJb/azG1dww8kS6ePk/2Troo/bBr76gM5MraOyxECoiTPvW07ceBUlINOluX195xa6d7cxY9mcvr\ntRilb+AJVaTf0kLSP3UhCqXPkqcvujELSG97J+rsnSACSyRGqn3W/P6wSF/nmbdG6Rt4QgXpW1Y4\nefpx9fRFNmYBwUq/u1ttIDcds3fcArKsTwnOtqxHNKog/aCxeMsqOLNxeJ8kjNI3GIIK0j99mpCJ\nbIqkH3hSNsPM3tEZyO3u5l+8/PocLdk7LIrdrS1LuygDuTx5935BX8B9kTBK3wCAGtI/dYqUdNCJ\nuCp9mbGClL6IdZQO2TuDg+LEDfDFA3jUN6DW3uFJDR0cJF9eqb9uZRXGnNJvaWnB8uXLMW/ePFxx\nxRVoa2tzvW7OnDk477zzcP755+NjH/uY8ERHK3JzSRYASzVJL+j28wF+T18F6VOVmkx6XyND+tnZ\n5EZ3ersUXV381pFKe0dX9g4lbdZjG0WyadzGFvX0w8jeCQoy8+4DGJW1d9atW4fly5fjwIEDuPzy\ny7Fu3TrX6xKJBOrq6rBnzx7s3r1beKKjFYmEfK5+3JT+mTNqjm1MJILVvswCk0gE2zG8pB+GvSOb\nvUMPVmeBjNKP0tPnJeUgJe52fZC9M+qU/rZt27B69WoAwOrVq/HMM894Xmvx1OQdg5C1eE6dCkfp\ns6Zsnj6t7qzeINLv7JSLH/hZPCJKPx2yd/r61Dwp8LZl9fTdSF+10ufNrjFKH8Dx48dRWFgIACgs\nLMTx48ddr0skEli2bBkWL16Mxx57THS4UQ1Z0o+bvaNK6QNspC9jJQWRPq+nnw7ZO6rsIZa2vJ5+\nZmZq4xPPeKrsHVXXx1np+649y5cvx7Fjx0b8/Hvf+96w7xOJBBIeZtjvf/97FBcXo7m5GcuXL0dV\nVRWWLl3qeu2999479P+amhrU1NQETH90QIXS123vTJlCFDwLTp8mi4QKBOXqy5K+nx0jqvTjnr0T\nJunzKn0gRbA0qNrXF/x5CoPEncqdJ1CsUunX1dWhrq5OuL3vNF566SXP3xUWFuLYsWMoKirC0aNH\nUVBQ4HpdcXExAGDmzJm47rrrsHv3bibSH0tQofTPOkvdfNwwdSo58IUFYds7f/+ICUG1vUOJ2rJG\nBgWjyt6JivRFPH3arr8/9V719gY/yYat9Fn2AejakesUxPfddx9Xe2F7p7a2Fps2bQIAbNq0Cdde\ne+2Ia7q6unDm755AZ2cnXnzxRZx77rmiQ45apIPSnzqV1PdhQbrZOyoDuZmZ5MvpSwNi2Ts6UjZV\nkD4Lgckqfft4OuwdnsCsm0cfldKXhTDpf+c738FLL72EefPm4dVXX8V3vvMdAEBTUxOuuuoqAMCx\nY8ewdOlSLFq0CBdffDGuvvpqXHHFFWpmPoqQDp7+xInkQ++WQuiESntHZ/YOQNSkSqVP+3RbSETs\nHbf3O12yd0Q8fbcxdZC+bClmlgPeefL6w4Tw2pOXl4eXX355xM9LSkrw7LPPAgDmzp2Lt99+W3x2\nYwQFBYBHHJwJYWTvJBIpi2fmTP9rVds7fnsYdGfviJ7IJXviFaAue8eNtGWUvs4duYC7LcRynq9O\neyczM7WBKyMj+LW4LSo6d8zzwOzIjQGKi4GjR8Xbt7Tot3cAdl8/newd1YFcwDuDJ6rsHR32jgjp\nsyr98ePDsXecY/i9J/SgFqreeZU+62sPA4b0YwBZ0g9D6QPspB+mvaMzZVO0mJtKeyeds3ecip3V\n4nAuVGGRPs8YRukbSCE/n6hjr009fkgmCcnqrKVPwUL6/f3kS7QImhNRkf7AAPkSuVHd7B3LGnvZ\nO6KevvN1i5zUxZqCSfeN8pK+UfoGUsjIAAoLxdR+WxuxUkTOiOXFtGnBGTzU2mGp68KCqPL0afVO\nkdfhZu8MDJC/M08Gx2i0d0Qqe7IEnt1q9/uRbEYG+aKbwHgXFl6lz/qehQFD+jFBSYkY6Z88GY61\nA7ApfZXWDhBdIFfUzwfcFxJea8erH4DviSHq7B0nebOQvqjSt7dhrddD58dL+ixK39g7Br4Q9fWb\nm0n2TxhgJX1VQVyAELpfzR/ZlE1dpO9U1yKncHnNTVbpy2bv9Payb7ISJX3elE1nGxbStweMVSt9\nY+8YBEKU9E+ciBfpq8zcAfxr/liWXntHlPTd7B3ezB2vuVEiYbWJ3CwinkXD7eQs1pRRUaUvEsgV\nUfr2NqqVvgnkGgSipARoauJv19wcnDevClEo/cmTvWv+9PaSm0tmp6Of0ld5IpeIveM2Nx7Cpn04\n5yL7pMD61OL02XXaOyJK30niRukbhIp0UfpBgVzVnv6UKd5KX8UJXV7ZQXG1d3hJ320B4uljwoTh\nZDowkMpZD4KM0ucNAIsofftCoVPpW1a8qmwa0o8JZDz9OCn9MO0dFaSfk+MeKJYhfZ32ThSkb2/P\nUwLCaQ2xtnUqfZbAs0gcQMbe4VH6tO6Oqow2WRjSjwmKi8Xsnbh5+qrtHb+SzrKZO4A36ct4+m5K\nX8TeoYFGe2153icGStr2c4x4snecpC9TAkJnINep9FnGCkvpx8nPBwzpxwaiKZthKv1p08JP2UxH\npT9hwkjLSMTecTvOkVfpZ2SI1bKhcD618Ch9UU9fJJDrXChYxtKt9Hkyg8KEIf2YYOZMoLXVvSSv\nH06cGLv2jooD2P1IXzSQm5Mz0osXsXeAkb4+D+lSyCwczqcWnsXLTemztA1L6fMGcp1PBqz19OMU\nxAUM6ccGmZmEvF0OKvPFaM/Tp6TvdsyyKqXvtg9ARum7bSgTsXeAkYSt4rB2GU8/DHsnLKUvY+/w\nKH1j7xh4gtfiGRwkxdZmzNA3JzuiyN7JyiI3p1uGTVztHbeMIBF7Bxip9KMmfZlAbpg7cnXbOzy1\nd4zSN/AEbwZPaysh2LA+UBMmpAqHeUG10ge80zbjGsj1In0V9o6I7eTsI0ylL+rpU3IdHAw+1QoY\nrtotK3qlbwK5BkzgJf0w/XyABBaDiq7pOMXLa4OWbqUv4+k7SV+lvSOb+imTvcMbyJVV+pSMg9Id\n7aqdFrcLKkJolL5B5OBN2wzTz6fIyyOWkhdaWoDp09WO6RXMVUn6zpiBak9flb0jMi8ncfNk77iR\nfpgpm6xztbdhXdR07silSt+yjNI38AFvKYawlT5AVHxLi/fvW1vVn+LlZe+oyN6hKtJZX0a1py+q\n9N08fVmlz9OHjL0j6unzKnBnG9HFRaXSt5duNkrfwBPl5UBDA/v1x4+TOvxhIj/fW+kPDhLrR/WB\nLl72jqr0UDeLR8bTd7N3RJ9KVNg7Mk8L1EunVkVY9o5dtbMevGJvo2Nx4VH6QCpt0+TpG3hi1izg\no4/Yr29qAkpL9c3HDX6kf/o0ITaZAmhu8LJ3Tp8mGUWycCN91UpfNOisw97hXTjs7cMK5FIyZg2A\nOwk8aqUPpNI2jb1j4AlK+m456W5oaiKWUJjwI30d1g7gXYpBVaZQbq476YsGct08fVGlr8Pe4V04\n7Bu0wg7ksr5eUaWvy9MHUqRv7B0DT9BjD4Ny4SniRvo6griAt9Jvb1dn7zg3aJ05I54O6qX040L6\nMkqfJ5Ar4+nTdjxlnHk9fZ3ZO0BqsTRK38AXPBZPHElfl9L3sndUkP7kye6kL7rJTKWn77SeROwd\nZ019EaUvYu846/aIKH1We0dE6cvaOyy7hHt6jNI3CAAP6Tc2xov0ddk7XoFcVaTvZh/JkL5Ke8dJ\n+qJKX+Zpwan0We2dSZPENoXZx2PNegpb6bM8gdDXYZS+gS9mzQLq64Ov6+4mZBDWoegUcbJ3VCp9\nZ/8ypE8PHrGXRI4L6dPccR7laVfsPPaO3ZqyLPYsFns7nUpfxtNnmRe1d4zSN/BFeTmb0j96lKj8\nsIj24UgAAA5BSURBVA9mGI32jlPpWxaxe0RJP5EghGC3eKK0d+x2E100eD43TnuHR+nTcekTQgYD\n49jbsSp9GjQdHBRPDeUhfZZ50ffNpGwa+IJV6Ufh5wPxsXeSSUIMspuzaP/2RaWri9ykMqmnzowg\n0ZRNFUrf3odsyifP4kUVu2XxjetU+iykn0ik7BoRe4flfeW1d+yeviF9A0+wevpRkn5Li3taqS57\nx03pd3QQEmVRjiz92xcVGWuHwrlQiSr93NzhQWZRpU/7kN3cxTN+ZiZR4L294qTPM18aQxBR+qyk\nzxNgpoulyHuuE4b0Y4ZZs4APPwy+LirSHz+efPjdatDrsnfcSjqrrObpVPoqSN++UFG7SJW9E7bS\nt7fnXbwogfM8lYkofYCf9HmVvnO/Aou909trSN8gAGVlpKaOX/liIDrSB7wtHl32Tl4e6duOtjY1\nu3EBfUqfkn5vL7GKROwiJ+mLxBrsfcjaQ7ykT/15nsXGGQtgnS+No7CSvj2VlWUxpf3TXcZBf0+j\n9A2YkJUFzJ4NfPCB/3UNDdGRvlelTV32zvTpIy0llU8VOpS+3d6RqQbqJH2RudnjC7L2UGcnX3uq\nvnnGzc5O1dHnKVRHFwtW0qeptZbFRsz0tbA+fVBPX/QsBV0wpB9DVFQAhw75X/O3vwFz54YzHye8\nlL4ue2fCBOIP27NhVI6lQ+nb7Z2oSV9W6TsXDV57h1fp0+wnHoIF+O0dukj09bE9idHXwkridqUv\nUmFVFwzpxxCspH/22eHMx4kZM4CTJ4f/zLL0kT5A+rWXdFZpJelS+rRP2d29lHAHBgihyXjyYXv6\nIkqftuvq4lukKCmzzpGmsrKOYZ8TC4kbT9+AGUGkf+YM+WCHXVaZoqho5AHuHR0kk0ZFCqUbnL6+\naqVvP/BdRZDYbu+0t4uXm7YTLs1Y4t2bEaWnL6L0aTsRpc9D+rwLC++cjKdvwIyKCuDgQe/fU2sn\n7I1ZFG6kr7u2v1Ppq4wf6FhQ7PaOTNDZTriiReDsnryoPSTj6cuSPm/KJl0cWefGq/R5PX1D+gaB\nCFL6hw9H5+cD7mf5HjtGFgNdoMFcCpVK3xkoVmEd2e0dGaVPT/bq7RW3iewLR3s7/wIk6+mL2Dv0\nCUEkkKtL6dsDubyeviF9A1/Mnk2KqTmP8KOI0s8HoiF9nZ7+xInDA8UqFhS7vSObXjp1KulLlPQp\nWQ0OillXdNGgR//xBCVFlT5vpgyQWmB0kT716Ds7jb1joBjjxpEaPIcPu/8+aqUfhb0zYwY5CJ5C\ndXqofVFR0bcqpQ+Qtq2t4qSfkZEquiZK+h0dKWuHx1aUUfrd3fw7cru62O2d8eNJzv2ZM2xjJBLk\nfWxt5QvkmpRNAyacdx7wzjvuvxuLSr+wkCwsFM3NaiuM2klfxVMEJWpAXulPny5H+kDKohGxd6jS\nF6l1JOPpd3XxzZfX3kkkSJtTp/gyhFhJ3+7pm5RNg0AsWgS8/bb776JW+vn5KRKgOHpUL+kXFQ0n\n/WPHyOKjCk6lL0v6M2em9jLIKn0VpE8zlESUPl0wRPYb5OaSeYvaOzwLpt3eYQ1485L+pEnk82E8\nfQPl8CL97m7i90dJ+hkZI2sEffghiUXogt1SGhggN2pBgbr+aSE5gBCsrL1j38sQB6VPN9TJKH3e\nzB0glRnFS/rUUuJZMO32DuviREmfp0RES4vx9A00wIv09+0D5s2L/lCGOXOGk/6RI+GRfnMzIROZ\n0sdO2EtLqFD6lPQti5C+Ck9fZl6U9EWV/pkzZHxeS40uWLznGdPFQqe9Q9vw2juspE/LPBjSN2BC\neTkJAjkDpu+8A5x7bjRzsmPOHEL0AMkKqa8Pj/SPHlVr7QCEzJqbyQ3a3y9+KDoFDXh2dRHykrV3\n2tpIIT7RpxsZpZ+Xlxp/xgz+ti0tZAGcOZOvXVMT+WyJpGzqtHeOHmV7D+nToyF9AyYkEkTt7907\n/Odvv02CvFHDTvrHjpGbQOcHe/r01MYYHUHj8nJSxK6hgVQ6VbHxjWYcyVZEpWpZJkOKPsmIKP2s\nLPL3PXCAn/Tp3Jub+drm55PY1bRp7H8Lut+C195pbOSLG3z4IdsClp9PFsr+fvbTxsKAIf0YY/Fi\n4I9/HP6zN94AliyJZj52nH02IQGAZBPNmaN3vEQiFUfQofTLy8nTSn09IX0VmDGD3PTHjqkhfVml\n39IipvQBMu577/GpdWC40ucl/b/9jW+uRUXkAKKMDHb7MyeHbIRk/TxNmsRH+k1N/GmuumFIP8a4\n7DLg1VdT33d2Ek//wgujmxOFPaX03XfDsZzmzSMLzYEDZNeyStBjKuvryQKgAjNmkL/XtGlyx+VR\n6+nECXGln59PyG3cOLH0QUr6Ikr/5EliD/HEI0RJ//BhvgyjoiLyxMr65FhURBZOFtKfOpVsaFMl\nIlRBmPR/+ctf4pxzzkFmZibeeustz+t27NiBqqoqVFZWYv369aLDjSnU1dUBAJYuBd58M7XJ57XX\nCOHHwR+srCSKu6ODWE4LF+oZh74XACH9998nRFpdrXYceiC9StIvLwd+/3v5m57WYmpoqJNS+rt3\nkyc0EdVZUEDedxFP/8QJknXEE3jPyyNeuFcsxP65sM+xu5svtkSfUFlJ/6yzyL8spJ+RQd53nbEu\nEQiT/rnnnounn34al1xyiec1yWQSa9euxY4dO7Bv3z48+eST2L9/v+iQYwb0A52bS9T+00+Tn//6\n18B110U3LzuysoD584E9ewjpL1qkZxwn6R84AOzfr5708/JIiYH33lNH+uedBzz/PFBaKtdPZSV5\n3WfO1AlvSJs5U25TX0EBUa289g4VKLz5/fR1eil9N9IfN4604/lsUBLXQfrAKCP9qqoqzJs3z/ea\n3bt3o6KiAnPmzEF2djZWrVqFrVu3ig45JvGFLwAPPURU9dNPAzfdFPWMUli5EtiwgajQMCynxYuB\nF18k74XqfQqJBPDxjwO//CVw8cVq+jzvPBIklLWiJk4khDtunPhB8PQ1iS4a1JoRjU00NPBdT+d5\n6aV87YqKiBhhBS/p08/dmCR9FjQ2NqLcJpvKysrQ2Nioc8hRh+uuI9kWCxYAX/qSvGpUiVtvBX7x\nC7IQ8W7aEcHixcQmuPtuPfsUbrqJPO5fcIGa/miW1Ve/Kt9XZibwsY+Jt6cpjKKbzlavBrZvF4vd\nfPQR8NJLfG0mTgS2bAHuuYevXVkZ3xznziXvDeumt7PPJvcj65NLUVG0JVNcYflg2bJl1oIFC0Z8\nbdu2beiampoa680333Rt/6tf/cr64he/OPT9z372M2vt2rWu1wIwX+bLfJkv8yXwxQPf0MpLvMuz\nA6Wlpaivrx/6vr6+HmUeUS3Lfuq1gYGBgYEWKLF3vAh78eLFOHjwII4cOYK+vj5s2bIFtbW1KoY0\nMDAwMBCAMOk//fTTKC8vx65du3DVVVdhxYoVAICmpiZcddVVAICsrCxs2LABV155Jaqrq3HzzTdj\nPk+UxcDAwMBALbjMIA14/vnnrX/4h3+wKioqrHXr1kU9ncjw0UcfWTU1NVZ1dbV1zjnnWA899FDU\nU4oUAwMD1qJFi6yrr7466qlEjtbWVuv666+3qqqqrPnz51t/+MMfop5SZLj//vut6upqa8GCBdYt\nt9xi9fT0RD2l0HDHHXdYBQUF1oIFC4Z+durUKWvZsmVWZWWltXz5cqu1tTWwn0h35Jo8/hSys7Px\nwAMP4L333sOuXbvwox/9aMy+FwDw0EMPobq6Gok47V+PCF//+texcuVK7N+/H++8886YfVo+cuQI\nHnvsMbz11lt49913kUwm8dRTT0U9rdBwxx13YMeOHcN+tm7dOixfvhwHDhzA5ZdfjnXr1gX2Eynp\nmzz+FIqKirDo7zuccnNzMX/+fDQ1NUU8q2jQ0NCA5557Dl/84hfHfIC/vb0dO3fuxJ133gmAWKZT\nZYrzpzGmTJmC7OxsdHV1YWBgAF1dXSiNUw6zZixduhTTHTm327Ztw+rVqwEAq1evxjPPPBPYT6Sk\nb/L43XHkyBHs2bMHF6vaJZRm+MY3voEf/OAHyBDdiTSK8MEHH2DmzJm44447cMEFF+Duu+9Gl/3I\nsjGEvLw8fOtb38KsWbNQUlKCadOmYdmyZVFPK1IcP34chX8vyFRYWIjj9uPlPBDpXWUe3Ueio6MD\nN9xwAx566CHkyhZ1T0Ns374dBQUFOP/888e8ygeAgYEBvPXWW/jKV76Ct956Czk5OUyP8KMRhw8f\nxoMPPogjR46gqakJHR0deOKJJ6KeVmyQSCSYODVS0ufJ4x8L6O/vx/XXX4/Pf/7zuPbaa6OeTiR4\n4403sG3bNpx11lm45ZZb8Oqrr+L222+PelqRoaysDGVlZbjooosAADfccINvgcPRjD//+c9YsmQJ\n8vPzkZWVhc997nN44403op5WpCgsLMSxv58udPToURQwVOSLlPRNHn8KlmXhrrvuQnV1Nf75n/85\n6ulEhvvvvx/19fX44IMP8NRTT+HTn/40Nm/eHPW0IkNRURHKy8tx4O+HF7z88ss455xzIp5VNKiq\nqsKuXbvQ3d0Ny7Lw8ssvo1p15b00Q21tLTZt2gQA2LRpE5tY1JVexIrnnnvOmjdvnnX22Wdb999/\nf9TTiQw7d+60EomEtXDhQmvRokXWokWLrOeffz7qaUWKuro665prrol6GpHj7bffthYvXmydd955\n1nXXXWe1tbVFPaXIsH79+qGUzdtvv93q6+uLekqhYdWqVVZxcbGVnZ1tlZWVWT/5yU+sU6dOWZdf\nfjlXymbCsoxxamBgYDBWYNIjDAwMDMYQDOkbGBgYjCEY0jcwMDAYQzCkb2BgYDCGYEjfwMDAYAzB\nkL6BgYHBGML/B3suibfww4xPAAAAAElFTkSuQmCC\n" | |||
|
109 | } | |||
|
110 | ], | |||
|
111 | "prompt_number": 5 | |||
|
112 | }, | |||
|
113 | { | |||
|
114 | "cell_type": "markdown", | |||
|
115 | "metadata": {}, | |||
|
116 | "source": [ | |||
|
117 | "These images can be resized by dragging the handle in the lower right corner. Double clicking will return them to their original size." | |||
|
118 | ] | |||
|
119 | }, | |||
|
120 | { | |||
|
121 | "cell_type": "markdown", | |||
|
122 | "metadata": {}, | |||
|
123 | "source": [ | |||
|
124 | "One thing to be aware of is that by default, the `Figure` object is cleared at the end of each cell, so you will need to issue all plotting commands for a single figure in a single cell." | |||
|
125 | ] | |||
|
126 | }, | |||
|
127 | { | |||
|
128 | "cell_type": "heading", | |||
|
129 | "level": 2, | |||
|
130 | "metadata": {}, | |||
|
131 | "source": [ | |||
|
132 | "Loading Matplotlib demos using %load" | |||
|
133 | ] | |||
|
134 | }, | |||
|
135 | { | |||
|
136 | "cell_type": "markdown", | |||
|
137 | "metadata": {}, | |||
|
138 | "source": [ | |||
|
139 | "IPython's `%load` magic can be used to load any Matplotlib demo by its URL:" | |||
|
140 | ] | |||
|
141 | }, | |||
|
142 | { | |||
|
143 | "cell_type": "code", | |||
|
144 | "collapsed": false, | |||
|
145 | "input": [ | |||
|
146 | "%load http://matplotlib.sourceforge.net/mpl_examples/pylab_examples/integral_demo.py" | |||
|
147 | ], | |||
|
148 | "language": "python", | |||
|
149 | "metadata": {}, | |||
|
150 | "outputs": [], | |||
|
151 | "prompt_number": 15 | |||
|
152 | }, | |||
|
153 | { | |||
|
154 | "cell_type": "code", | |||
|
155 | "collapsed": false, | |||
|
156 | "input": [ | |||
|
157 | "#!/usr/bin/env python\n", | |||
|
158 | "\n", | |||
|
159 | "# implement the example graphs/integral from pyx\n", | |||
|
160 | "from pylab import *\n", | |||
|
161 | "from matplotlib.patches import Polygon\n", | |||
|
162 | "\n", | |||
|
163 | "def func(x):\n", | |||
|
164 | " return (x-3)*(x-5)*(x-7)+85\n", | |||
|
165 | "\n", | |||
|
166 | "ax = subplot(111)\n", | |||
|
167 | "\n", | |||
|
168 | "a, b = 2, 9 # integral area\n", | |||
|
169 | "x = arange(0, 10, 0.01)\n", | |||
|
170 | "y = func(x)\n", | |||
|
171 | "plot(x, y, linewidth=1)\n", | |||
|
172 | "\n", | |||
|
173 | "# make the shaded region\n", | |||
|
174 | "ix = arange(a, b, 0.01)\n", | |||
|
175 | "iy = func(ix)\n", | |||
|
176 | "verts = [(a,0)] + zip(ix,iy) + [(b,0)]\n", | |||
|
177 | "poly = Polygon(verts, facecolor='0.8', edgecolor='k')\n", | |||
|
178 | "ax.add_patch(poly)\n", | |||
|
179 | "\n", | |||
|
180 | "text(0.5 * (a + b), 30,\n", | |||
|
181 | " r\"$\\int_a^b f(x)\\mathrm{d}x$\", horizontalalignment='center',\n", | |||
|
182 | " fontsize=20)\n", | |||
|
183 | "\n", | |||
|
184 | "axis([0,10, 0, 180])\n", | |||
|
185 | "figtext(0.9, 0.05, 'x')\n", | |||
|
186 | "figtext(0.1, 0.9, 'y')\n", | |||
|
187 | "ax.set_xticks((a,b))\n", | |||
|
188 | "ax.set_xticklabels(('a','b'))\n", | |||
|
189 | "ax.set_yticks([])\n", | |||
|
190 | "show()\n" | |||
|
191 | ], | |||
|
192 | "language": "python", | |||
|
193 | "metadata": {}, | |||
|
194 | "outputs": [ | |||
|
195 | { | |||
|
196 | "output_type": "display_data", | |||
|
197 | "png": "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\ng23UdEXM4ccffzS6hFo5pem+/roj5XrwGEVEmgFPnuWe0uQLaVu3Qno6/PvfzijHM/n4+LBv3z6e\nfvppo0vJDkGKAAAB1ElEQVQRkVrYbDajS6iTxV7L1NkMf2qIiHii87XWWpOup18FFBExGx28KCLi\nRmq6IiJupKZbh9tuu43evXuTnJzMhx9+aHQ5IlKDvLw8uprkziyXP4Ld7D7++GOioqIoLy+nb9++\n3H777bRs2dLoskTEpJR06/D222/TvXt3BgwYQEFBATk5OUaXJCI1qK6uZtSoUXTp0oU777yT8vJy\no0uqkZpuLX788UeWLFlCWloaGzdupHv37lRWVhpdlojUICsri7Fjx5KZmUlERATvvvuu0SXVSE23\nFsXFxURFRREUFMS2bdtIS0szuiQROY/27dszYMAAAEaNGsXy5csNrqhmarq1uP7666murqZLly48\n++yzp/+DiojnOfNmLk8+3lEX0moREBDAwoULjS5DROohPz+ftLQ0+vfvz7x587jiiiuMLqlGSroi\nYnoWi4XExETeeecdunTpwrFjx3j00UeNLqtGtZ69ICIizqWkKyLiRmq6IiJupKYrIuJka9asoVu3\nblRWVlJaWkpycjKZmZmAZroiIi4xadIkKioqKC8vp3379kycOBFQ0xURcYkTJ07Qu3dvgoOD+eWX\nX07vG9Z4QUTEBQ4dOkRpaSklJSVnnQPx/xV9BfkfDyZLAAAAAElFTkSuQmCC\n" | |||
|
198 | } | |||
|
199 | ], | |||
|
200 | "prompt_number": 16 | |||
|
201 | } | |||
|
202 | ], | |||
|
203 | "metadata": {} | |||
|
204 | } | |||
|
205 | ] | |||
|
206 | } No newline at end of file |
@@ -0,0 +1,218 b'' | |||||
|
1 | { | |||
|
2 | "metadata": { | |||
|
3 | "name": "Part 4 - Markdown Cells" | |||
|
4 | }, | |||
|
5 | "nbformat": 3, | |||
|
6 | "nbformat_minor": 0, | |||
|
7 | "worksheets": [ | |||
|
8 | { | |||
|
9 | "cells": [ | |||
|
10 | { | |||
|
11 | "cell_type": "heading", | |||
|
12 | "level": 1, | |||
|
13 | "metadata": {}, | |||
|
14 | "source": [ | |||
|
15 | "Markdown Cells" | |||
|
16 | ] | |||
|
17 | }, | |||
|
18 | { | |||
|
19 | "cell_type": "markdown", | |||
|
20 | "metadata": {}, | |||
|
21 | "source": [ | |||
|
22 | "Text can be added to IPython Notebooks using Markdown cells. Markdown is a popular markup language that is a superset of HTML. Its specification can be found here:\n", | |||
|
23 | "\n", | |||
|
24 | "<http://daringfireball.net/projects/markdown/>" | |||
|
25 | ] | |||
|
26 | }, | |||
|
27 | { | |||
|
28 | "cell_type": "heading", | |||
|
29 | "level": 2, | |||
|
30 | "metadata": {}, | |||
|
31 | "source": [ | |||
|
32 | "Markdown basics" | |||
|
33 | ] | |||
|
34 | }, | |||
|
35 | { | |||
|
36 | "cell_type": "markdown", | |||
|
37 | "metadata": {}, | |||
|
38 | "source": [ | |||
|
39 | "You can make text *italic* or **bold**." | |||
|
40 | ] | |||
|
41 | }, | |||
|
42 | { | |||
|
43 | "cell_type": "markdown", | |||
|
44 | "metadata": {}, | |||
|
45 | "source": [ | |||
|
46 | "You can build nested itemized or enumerated lists:\n", | |||
|
47 | "\n", | |||
|
48 | "* One\n", | |||
|
49 | " - Sublist\n", | |||
|
50 | " - This\n", | |||
|
51 | " - Sublist\n", | |||
|
52 | " - That\n", | |||
|
53 | " - The other thing\n", | |||
|
54 | "* Two\n", | |||
|
55 | " - Sublist\n", | |||
|
56 | "* Three\n", | |||
|
57 | " - Sublist\n", | |||
|
58 | "\n", | |||
|
59 | "Now another list:\n", | |||
|
60 | "\n", | |||
|
61 | "1. Here we go\n", | |||
|
62 | " 1. Sublist\n", | |||
|
63 | " 2. Sublist\n", | |||
|
64 | "2. There we go\n", | |||
|
65 | "3. Now this" | |||
|
66 | ] | |||
|
67 | }, | |||
|
68 | { | |||
|
69 | "cell_type": "markdown", | |||
|
70 | "metadata": {}, | |||
|
71 | "source": [ | |||
|
72 | "You can add horizontal rules:\n", | |||
|
73 | "\n", | |||
|
74 | "---" | |||
|
75 | ] | |||
|
76 | }, | |||
|
77 | { | |||
|
78 | "cell_type": "markdown", | |||
|
79 | "metadata": {}, | |||
|
80 | "source": [ | |||
|
81 | "Here is a blockquote:\n", | |||
|
82 | "\n", | |||
|
83 | "> Beautiful is better than ugly.\n", | |||
|
84 | "> Explicit is better than implicit.\n", | |||
|
85 | "> Simple is better than complex.\n", | |||
|
86 | "> Complex is better than complicated.\n", | |||
|
87 | "> Flat is better than nested.\n", | |||
|
88 | "> Sparse is better than dense.\n", | |||
|
89 | "> Readability counts.\n", | |||
|
90 | "> Special cases aren't special enough to break the rules.\n", | |||
|
91 | "> Although practicality beats purity.\n", | |||
|
92 | "> Errors should never pass silently.\n", | |||
|
93 | "> Unless explicitly silenced.\n", | |||
|
94 | "> In the face of ambiguity, refuse the temptation to guess.\n", | |||
|
95 | "> There should be one-- and preferably only one --obvious way to do it.\n", | |||
|
96 | "> Although that way may not be obvious at first unless you're Dutch.\n", | |||
|
97 | "> Now is better than never.\n", | |||
|
98 | "> Although never is often better than *right* now.\n", | |||
|
99 | "> If the implementation is hard to explain, it's a bad idea.\n", | |||
|
100 | "> If the implementation is easy to explain, it may be a good idea.\n", | |||
|
101 | "> Namespaces are one honking great idea -- let's do more of those!" | |||
|
102 | ] | |||
|
103 | }, | |||
|
104 | { | |||
|
105 | "cell_type": "markdown", | |||
|
106 | "metadata": {}, | |||
|
107 | "source": [ | |||
|
108 | "And shorthand for links:\n", | |||
|
109 | "\n", | |||
|
110 | "[IPython's website](http://ipython.org)" | |||
|
111 | ] | |||
|
112 | }, | |||
|
113 | { | |||
|
114 | "cell_type": "heading", | |||
|
115 | "level": 2, | |||
|
116 | "metadata": {}, | |||
|
117 | "source": [ | |||
|
118 | "Headings" | |||
|
119 | ] | |||
|
120 | }, | |||
|
121 | { | |||
|
122 | "cell_type": "markdown", | |||
|
123 | "metadata": {}, | |||
|
124 | "source": [ | |||
|
125 | "If you want, you can add headings using Markdown's syntax:\n", | |||
|
126 | "\n", | |||
|
127 | "# Heading 1\n", | |||
|
128 | "# Heading 2\n", | |||
|
129 | "## Heading 2.1\n", | |||
|
130 | "## Heading 2.2" | |||
|
131 | ] | |||
|
132 | }, | |||
|
133 | { | |||
|
134 | "cell_type": "markdown", | |||
|
135 | "metadata": {}, | |||
|
136 | "source": [ | |||
|
137 | "**BUT most of the time you should use the Notebook's Heading Cells to organize your Notebook content**, as they provide meaningful structure that can be interpreted by other tools, not just large bold fonts." | |||
|
138 | ] | |||
|
139 | }, | |||
|
140 | { | |||
|
141 | "cell_type": "heading", | |||
|
142 | "level": 2, | |||
|
143 | "metadata": {}, | |||
|
144 | "source": [ | |||
|
145 | "Embedded code" | |||
|
146 | ] | |||
|
147 | }, | |||
|
148 | { | |||
|
149 | "cell_type": "markdown", | |||
|
150 | "metadata": {}, | |||
|
151 | "source": [ | |||
|
152 | "You can embed code meant for illustration instead of execution in Python:\n", | |||
|
153 | "\n", | |||
|
154 | " def f(x):\n", | |||
|
155 | " \"\"\"a docstring\"\"\"\n", | |||
|
156 | " return x**2\n", | |||
|
157 | "\n", | |||
|
158 | "or other languages:\n", | |||
|
159 | "\n", | |||
|
160 | " if (i=0; i<n; i++) {\n", | |||
|
161 | " printf(\"hello %d\\n\", i);\n", | |||
|
162 | " x += 4;\n", | |||
|
163 | " }" | |||
|
164 | ] | |||
|
165 | }, | |||
|
166 | { | |||
|
167 | "cell_type": "heading", | |||
|
168 | "level": 2, | |||
|
169 | "metadata": {}, | |||
|
170 | "source": [ | |||
|
171 | "LaTeX Equations" | |||
|
172 | ] | |||
|
173 | }, | |||
|
174 | { | |||
|
175 | "cell_type": "markdown", | |||
|
176 | "metadata": {}, | |||
|
177 | "source": [ | |||
|
178 | "Courtesy of MathJax, you can include mathematical expressions both inline: \n", | |||
|
179 | "$e^{i\\pi} + 1 = 0$ and displayed:\n", | |||
|
180 | "\n", | |||
|
181 | "$$e^x=\\sum_{i=0}^\\infty \\frac{1}{i!}x^i$$" | |||
|
182 | ] | |||
|
183 | }, | |||
|
184 | { | |||
|
185 | "cell_type": "heading", | |||
|
186 | "level": 2, | |||
|
187 | "metadata": {}, | |||
|
188 | "source": [ | |||
|
189 | "General HTML" | |||
|
190 | ] | |||
|
191 | }, | |||
|
192 | { | |||
|
193 | "cell_type": "markdown", | |||
|
194 | "metadata": {}, | |||
|
195 | "source": [ | |||
|
196 | "Because Markdown is a superset of HTML you can even add things like HTML tables:\n", | |||
|
197 | "\n", | |||
|
198 | "<table>\n", | |||
|
199 | "<tr>\n", | |||
|
200 | "<th>Header 1</th>\n", | |||
|
201 | "<th>Header 2</th>\n", | |||
|
202 | "</tr>\n", | |||
|
203 | "<tr>\n", | |||
|
204 | "<td>row 1, cell 1</td>\n", | |||
|
205 | "<td>row 1, cell 2</td>\n", | |||
|
206 | "</tr>\n", | |||
|
207 | "<tr>\n", | |||
|
208 | "<td>row 2, cell 1</td>\n", | |||
|
209 | "<td>row 2, cell 2</td>\n", | |||
|
210 | "</tr>\n", | |||
|
211 | "</table>" | |||
|
212 | ] | |||
|
213 | } | |||
|
214 | ], | |||
|
215 | "metadata": {} | |||
|
216 | } | |||
|
217 | ] | |||
|
218 | } No newline at end of file |
@@ -1,6 +1,6 b'' | |||||
1 | { |
|
1 | { | |
2 | "metadata": { |
|
2 | "metadata": { | |
3 |
"name": "Animations |
|
3 | "name": "Animations Using clear_output" | |
4 | }, |
|
4 | }, | |
5 | "nbformat": 3, |
|
5 | "nbformat": 3, | |
6 | "nbformat_minor": 0, |
|
6 | "nbformat_minor": 0, |
@@ -1,6 +1,6 b'' | |||||
1 | { |
|
1 | { | |
2 | "metadata": { |
|
2 | "metadata": { | |
3 |
"name": " |
|
3 | "name": "Custom Display Logic" | |
4 | }, |
|
4 | }, | |
5 | "nbformat": 3, |
|
5 | "nbformat": 3, | |
6 | "nbformat_minor": 0, |
|
6 | "nbformat_minor": 0, |
@@ -1,6 +1,6 b'' | |||||
1 | { |
|
1 | { | |
2 | "metadata": { |
|
2 | "metadata": { | |
3 |
"name": " |
|
3 | "name": "Cython Magics" | |
4 | }, |
|
4 | }, | |
5 | "nbformat": 3, |
|
5 | "nbformat": 3, | |
6 | "nbformat_minor": 0, |
|
6 | "nbformat_minor": 0, |
@@ -1,6 +1,6 b'' | |||||
1 | { |
|
1 | { | |
2 | "metadata": { |
|
2 | "metadata": { | |
3 |
"name": " |
|
3 | "name": "Data Publication API" | |
4 | }, |
|
4 | }, | |
5 | "nbformat": 3, |
|
5 | "nbformat": 3, | |
6 | "nbformat_minor": 0, |
|
6 | "nbformat_minor": 0, |
@@ -1,6 +1,6 b'' | |||||
1 | { |
|
1 | { | |
2 | "metadata": { |
|
2 | "metadata": { | |
3 |
"name": " |
|
3 | "name": "Octave Magic" | |
4 | }, |
|
4 | }, | |
5 | "nbformat": 3, |
|
5 | "nbformat": 3, | |
6 | "nbformat_minor": 0, |
|
6 | "nbformat_minor": 0, |
@@ -1,6 +1,6 b'' | |||||
1 | { |
|
1 | { | |
2 | "metadata": { |
|
2 | "metadata": { | |
3 | "name": "sympy_quantum_computing" |
|
3 | "name": "Part 1 - Running Code" | |
4 | }, |
|
4 | }, | |
5 | "nbformat": 3, |
|
5 | "nbformat": 3, | |
6 | "nbformat_minor": 0, |
|
6 | "nbformat_minor": 0, | |
@@ -8,433 +8,429 b'' | |||||
8 | { |
|
8 | { | |
9 | "cells": [ |
|
9 | "cells": [ | |
10 | { |
|
10 | { | |
|
11 | "cell_type": "heading", | |||
|
12 | "level": 1, | |||
|
13 | "metadata": {}, | |||
|
14 | "source": [ | |||
|
15 | "Running Code in the IPython Notebook" | |||
|
16 | ] | |||
|
17 | }, | |||
|
18 | { | |||
11 | "cell_type": "markdown", |
|
19 | "cell_type": "markdown", | |
12 | "metadata": {}, |
|
20 | "metadata": {}, | |
13 | "source": [ |
|
21 | "source": [ | |
14 | "# Basic Symbolic Quantum Mechanics with [SymPy](http://sympy.org)\n", |
|
22 | "First and foremost, the IPython Notebook is an interactive environment for writing and running Python code." | |
15 | "\n", |
|
23 | ] | |
16 | "We first load the IPython extensions that enable LaTeX-based mathematical printing \n", |
|
24 | }, | |
17 | "of SymPy objects, and then import the quantum computing libraries from SymPy." |
|
25 | { | |
|
26 | "cell_type": "heading", | |||
|
27 | "level": 2, | |||
|
28 | "metadata": {}, | |||
|
29 | "source": [ | |||
|
30 | "Code cells allow you to enter and run Python code" | |||
|
31 | ] | |||
|
32 | }, | |||
|
33 | { | |||
|
34 | "cell_type": "markdown", | |||
|
35 | "metadata": {}, | |||
|
36 | "source": [ | |||
|
37 | "Run a code cell using `Shift-Enter` or pressing the \"Play\" button in the toolbar above:" | |||
18 | ] |
|
38 | ] | |
19 | }, |
|
39 | }, | |
20 | { |
|
40 | { | |
21 | "cell_type": "code", |
|
41 | "cell_type": "code", | |
22 |
"collapsed": |
|
42 | "collapsed": false, | |
23 | "input": [ |
|
43 | "input": [ | |
24 | "%load_ext sympyprinting" |
|
44 | "a = 10" | |
25 | ], |
|
45 | ], | |
26 | "language": "python", |
|
46 | "language": "python", | |
27 | "metadata": {}, |
|
47 | "metadata": {}, | |
28 | "outputs": [], |
|
48 | "outputs": [], | |
29 | "prompt_number": 1 |
|
49 | "prompt_number": 10 | |
30 | }, |
|
50 | }, | |
31 | { |
|
51 | { | |
32 | "cell_type": "code", |
|
52 | "cell_type": "code", | |
33 |
"collapsed": |
|
53 | "collapsed": false, | |
34 | "input": [ |
|
54 | "input": [ | |
35 | "from sympy import sqrt, symbols, Rational\n", |
|
55 | "print a" | |
36 | "from sympy import expand, Eq, Symbol, simplify, exp, sin\n", |
|
|||
37 | "from sympy.physics.quantum import *\n", |
|
|||
38 | "from sympy.physics.quantum.qubit import *\n", |
|
|||
39 | "from sympy.physics.quantum.gate import *\n", |
|
|||
40 | "from sympy.physics.quantum.grover import *\n", |
|
|||
41 | "from sympy.physics.quantum.qft import QFT, IQFT, Fourier\n", |
|
|||
42 | "from sympy.physics.quantum.circuitplot import circuit_plot" |
|
|||
43 | ], |
|
56 | ], | |
44 | "language": "python", |
|
57 | "language": "python", | |
45 | "metadata": {}, |
|
58 | "metadata": {}, | |
46 |
"outputs": [ |
|
59 | "outputs": [ | |
47 | "prompt_number": 2 |
|
60 | { | |
|
61 | "output_type": "stream", | |||
|
62 | "stream": "stdout", | |||
|
63 | "text": [ | |||
|
64 | "10\n" | |||
|
65 | ] | |||
|
66 | } | |||
|
67 | ], | |||
|
68 | "prompt_number": 11 | |||
48 | }, |
|
69 | }, | |
49 | { |
|
70 | { | |
50 |
"cell_type": " |
|
71 | "cell_type": "heading", | |
|
72 | "level": 2, | |||
51 | "metadata": {}, |
|
73 | "metadata": {}, | |
52 | "source": [ |
|
74 | "source": [ | |
53 | "<h2>Bras and Kets</h2>" |
|
75 | "Managing the IPython Kernel" | |
54 | ] |
|
76 | ] | |
55 | }, |
|
77 | }, | |
56 | { |
|
78 | { | |
57 | "cell_type": "markdown", |
|
79 | "cell_type": "markdown", | |
58 | "metadata": {}, |
|
80 | "metadata": {}, | |
59 | "source": [ |
|
81 | "source": [ | |
60 | "Create symbolic states" |
|
82 | "Code is run in a separate process called the IPython Kernel. The Kernel can be interrupted or restarted. Try running the following cell and then hit the \"Stop\" button in the toolbar above." | |
61 | ] |
|
83 | ] | |
62 | }, |
|
84 | }, | |
63 | { |
|
85 | { | |
64 | "cell_type": "code", |
|
86 | "cell_type": "code", | |
65 |
"collapsed": |
|
87 | "collapsed": false, | |
66 | "input": [ |
|
88 | "input": [ | |
67 | "phi, psi = Ket('phi'), Ket('psi')\n", |
|
89 | "import time\n", | |
68 | "alpha, beta = symbols('alpha beta', complex=True)" |
|
90 | "time.sleep(10)" | |
69 | ], |
|
91 | ], | |
70 | "language": "python", |
|
92 | "language": "python", | |
71 | "metadata": {}, |
|
93 | "metadata": {}, | |
72 |
"outputs": [ |
|
94 | "outputs": [ | |
73 | "prompt_number": 3 |
|
95 | { | |
|
96 | "ename": "KeyboardInterrupt", | |||
|
97 | "evalue": "", | |||
|
98 | "output_type": "pyerr", | |||
|
99 | "traceback": [ | |||
|
100 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", | |||
|
101 | "\u001b[0;32m<ipython-input-16-d7b436e260d5>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mtime\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mtime\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msleep\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", | |||
|
102 | "\u001b[0;31mKeyboardInterrupt\u001b[0m: " | |||
|
103 | ] | |||
|
104 | } | |||
|
105 | ], | |||
|
106 | "prompt_number": 16 | |||
74 | }, |
|
107 | }, | |
75 | { |
|
108 | { | |
76 | "cell_type": "markdown", |
|
109 | "cell_type": "markdown", | |
77 | "metadata": {}, |
|
110 | "metadata": {}, | |
78 | "source": [ |
|
111 | "source": [ | |
79 | "Create a superposition" |
|
112 | "If the Kernel dies you will be prompted to restart it. Here we call the low-level system libc.time routine with the wrong argument via\n", | |
|
113 | "ctypes to segfault the Python interpreter:" | |||
80 | ] |
|
114 | ] | |
81 | }, |
|
115 | }, | |
82 | { |
|
116 | { | |
83 | "cell_type": "code", |
|
117 | "cell_type": "code", | |
84 | "collapsed": false, |
|
118 | "collapsed": false, | |
85 | "input": [ |
|
119 | "input": [ | |
86 | "state = alpha*psi + beta*phi; state" |
|
120 | "import sys\n", | |
|
121 | "from ctypes import CDLL\n", | |||
|
122 | "# This will crash a Linux or Mac system; equivalent calls can be made on Windows\n", | |||
|
123 | "dll = 'dylib' if sys.platform == 'darwin' else '.so.6'\n", | |||
|
124 | "libc = CDLL(\"libc.%s\" % dll) \n", | |||
|
125 | "libc.time(-1) # BOOM!!" | |||
87 | ], |
|
126 | ], | |
88 | "language": "python", |
|
127 | "language": "python", | |
89 | "metadata": {}, |
|
128 | "metadata": {}, | |
90 | "outputs": [ |
|
129 | "outputs": [], | |
91 | { |
|
130 | "prompt_number": "*" | |
92 | "latex": [ |
|
131 | }, | |
93 | "$$\\alpha {\\left|\\psi\\right\\rangle } + \\beta {\\left|\\phi\\right\\rangle }$$" |
|
132 | { | |
94 | ], |
|
133 | "cell_type": "heading", | |
95 | "output_type": "pyout", |
|
134 | "level": 2, | |
96 | "png": "iVBORw0KGgoAAAANSUhEUgAAAF8AAAAXCAYAAABtR5P0AAAABHNCSVQICAgIfAhkiAAABFdJREFU\naIHt2XuIVXUQB/CPq4FZblEpYmZPLMsMUTQhDawo6LVgD4rsj6zQSCORHlD9YfTUrCxTotKUWv8p\nKAusv7YHpURlQg+ioJJ8REVtD3u6/THnsucef+fu3r27W8F+4XLOnfnNnJn5zW9m7rkM4H+L5/5t\nA/oBfeZjU4Pyh9a5flmCtgJDGrSjUYzAcmHfaqxDc8arx8eHErRS/xoNfj04BD8l6G2Y3Y92FDEd\n12EJFmOeCNbyOvWciM8S9DYl/vVn8E/PDCniBVzYoO6JenZ6RqNFBP6HHL0dk+vUNVOd/vVn8Kfh\n7QT9b7yDqQ3oXoQxPZC7BbeiI0cbhFnYXKeu8fgwQS/1rz+Dvx/+KOE9ibn9aAucgI+wt0C/Gvvj\n9jr1dajexDyS/qWO6jG4DEdgJHbjZnEUicwoe8hIUT8nYyU2ZfTD8E12PxhvYgMezmjtoh8cjq9L\ndPc2Zuus6ytwgLB7NCbh227ouBxTxGYdjfUiy1eKjK8g6V8x8yeKuvW+aDwXiWA/m1ub6ugV3IQH\n8QZuy9Hz9b5JNN+zC7KrML+G7t7GUOzJ7r8TCbVZ2DavC9kxeEVMQouxTSTolaK8PJqQqenfcdiJ\nOwr0czPDpoqdy/PbcvcniayHjaLRVHCXyPgKWrAmYcNTGFZmYA2sxVF1rG8WfSKFjdiV+95W4A/D\ne7g+R3tMJCkx9XSIeBZR5V8+85dk1wcKAtuy6zRRt54oMfp7EdBROAetOV6T6mO4SxzPItZhTon+\n3sQMvF7C+0Jk9OAS/r0Zr5LdlaBXSvHu7DohIVvlX6XmN+EsvIxfCgLbs+upmWE7SozamV2vwl94\nMfs+QnUmEaekVRqDSujwNE5J0MeKk5lq6HPxboE2CXeXPON4bFWdLHm06OxVRJDzU86U7Lq1RH4f\n/04WO7e4RKBDnIChBXpbYm0rXst9v1h1wFL1voI1+qfsrC+hjxIbWFZam0UszsvRFooxs4JVOqtF\nEVX+VcrOV5nS3QmBA8U4tgm/lSjNY6/OyYjIjIoxQ3AtXk3IHStOz6/deEYjOEhMOqmavAif474S\n2XZ8ICaiCsbj4+z+NFyKSxKy+/hXCf6P4gVSMSPPxFJsEWNkkzh2tdCKM0SGV9AhJoTHs+ekRtX5\nImv6GjPENLMAw3P0ObhAbMzvNeSX4BqxiU06fyecj/szHZ8k5PbxLz/nXyFeLG0Qdb4Jb2VCE/EI\n7sEzXTj3ktj51SLjp4sauQM3SL/fac4+2xO83sY0EcAvRdPcI2b8HaJe/9yF/POiLy4TjfdInf7N\nkq4OfeJfWxf8BdJdv4gbRVB6irW6X/OX1qm7rQZvIcZ1Q0fSv75+vVCcBFJoEhm3pYHntOtePzpY\n+uT1FOPwaRdrSv1r9D36nzV4xfm3DC06x9KeYmE3180UpbQedMfHWugN/5IYXoM3Qecv3lrozz9T\n7hT1vR6U+ThWlJOu8F/4s2gAAxjAAOAf1RffIDO+Bi8AAAAASUVORK5CYII=\n", |
|
135 | "metadata": {}, | |
97 | "prompt_number": 4, |
|
136 | "source": [ | |
98 | "text": [ |
|
137 | "All of the goodness of IPython works" | |
99 | "\u03b1\u22c5\u2758\u03c8\u27e9 + \u03b2\u22c5\u2758\u03c6\u27e9" |
|
138 | ] | |
100 | ] |
|
|||
101 | } |
|
|||
102 | ], |
|
|||
103 | "prompt_number": 4 |
|
|||
104 | }, |
|
139 | }, | |
105 | { |
|
140 | { | |
106 | "cell_type": "markdown", |
|
141 | "cell_type": "markdown", | |
107 | "metadata": {}, |
|
142 | "metadata": {}, | |
108 | "source": [ |
|
143 | "source": [ | |
109 | "Dagger the superposition and multiply the original" |
|
144 | "Here are two system aliases:" | |
110 | ] |
|
145 | ] | |
111 | }, |
|
146 | }, | |
112 | { |
|
147 | { | |
113 | "cell_type": "code", |
|
148 | "cell_type": "code", | |
114 | "collapsed": false, |
|
149 | "collapsed": false, | |
115 | "input": [ |
|
150 | "input": [ | |
116 | "ip = Dagger(state)*state; ip" |
|
151 | "pwd" | |
117 | ], |
|
152 | ], | |
118 | "language": "python", |
|
153 | "language": "python", | |
119 | "metadata": {}, |
|
154 | "metadata": {}, | |
120 | "outputs": [ |
|
155 | "outputs": [ | |
121 | { |
|
156 | { | |
122 | "latex": [ |
|
|||
123 | "$$\\left(\\overline{\\alpha} {\\left\\langle \\psi\\right|} + \\overline{\\beta} {\\left\\langle \\phi\\right|}\\right) \\left(\\alpha {\\left|\\psi\\right\\rangle } + \\beta {\\left|\\phi\\right\\rangle }\\right)$$" |
|
|||
124 | ], |
|
|||
125 | "output_type": "pyout", |
|
157 | "output_type": "pyout", | |
126 | "png": "iVBORw0KGgoAAAANSUhEUgAAANoAAAAaCAYAAADR9UJvAAAABHNCSVQICAgIfAhkiAAAB/lJREFU\neJztm3uwVVMcxz/3Xo+SbgYlj1JpdOsmg6aY8WiSQXlEYhhMQ4hRyiQxHjMZKiWklISrqP7wLoq/\nNhoyyGPIY5Jo3G4NjfLI+/rjt7ezzj5rrb32Ovue22h/Zs6cc35r771+v/09e63fepwqcuKMB4YY\nyl4FHqqgLzm7CTOATq3txG7KQcACoKq1Hckpn2pL2b3AG8DWCvmSU8wW4Dvg/tZ2JKflOBN4tLWd\n0PBsazvQwsTjawt8DZzTij78H9llYnwPqM/4mg+mOHamwR5k4IcPHYFZiF/zgUVAreY41xgfMNgD\nje18YC3JKWQNMMmxfhs6H2zotJoN7FG+K94k6RWkuJZOK1t8t6DRSpc6DgV+Az7VlI0HVhheYy3O\nDgI+sZSr7A/85HhsJTgBuA6YAkwExiA3eVbsuEG4xdgHWJ+i/ueA3xFdTFQjD/mKFNfNApNWATCi\nsq78h6teLpi0CjDHtxZzR1HEVGCyh1M2FiJpkAvnAacYygLP+vvh18IeAkyntIWaD3wQs7nGOAbo\naygLDPY5wD2Wa14DXOVQtwsmH3SYtKoBlpTph49mrnoFjtczaZUU39PA1apB16PVI6ljVhwBNAI7\nHY8fCLydYf0ANwKHeZw3GUkFmhVbFTAYWKPY0sTYG322YGM95lS+FrgWSY8qjUmrv4F3gQFlXNtH\nM1e9XDFplRTfBGAcSkNhetDWejhl4lpgXorj9wT+yLB+X+qAdcA/MftopOe6XbGlibGZ4h+CC7YH\nbRSwEkkvK41Nq8eAKyvoSxq9XLFpZYtvK9JrDo8M8a55H6QV2WapvAdwMdAFWWPbAtwM7AjLqxTn\nOgDtgM2xa3RC8ujjgLnAqtB+IIXlhBpgNbCMdBMpWTGCQl4/G4njOCQ9OQb4PiwzxahyCdAfEbw7\nsBhpEecirWMS68Pz9gF+jZUNwzy5Aun00uGr1Q5k/HYoskzR0rjqlYSrVknxfY6k9M9AaY/WB/jF\n4kQ/5En9AMlfL0CEWqJcSxV9NPLkx5mErA+9Cdym2E+hkD9XI4Pt0y3+tCRtKKSCPyA/xjWhT2OU\n40wxgjRarwIHIAPzj5Ef+eVI2jHH0ZcN4XvvmH0v5J69YzgvrV46ytFqHtLbVwJXvUz4aGWL7wvk\nQdcyEnPr0xNpte+I2YchQQ1Anu6ovAZ4SnOdeqSFBFgOvKiU3R2eFzEceEL5HpgcT6AB6Jbi+Fpk\njKBjOdAUfjbFCNL7rAWuV2wPUxio90HuW0+lPLD4tBl5UFS6YE4Z0+ql86EcrSIeR+5FWhpw18xV\nr4gg9t1HqwhTfF3Dc9pDaY+2Edn6s6fmxCnh+30x+8fh+0AkZ10Yfh8OvKC5zjZEkM7AGcBSpaya\n4u65Cem2K81JyK4YHRuRVq8Gc4wA08JjopYwEi1K07aE76YZyDi1Yd0qnYAfDcen1UtHFlotAi6z\n1JEFrnqZKEcrU3ybkDS/G5SO0dYhN7A78KVirwZOA16mNLXcFL4fjwTVqJyjy/2jscwVwF/AS+H3\njpS2PPUUi5vEk8DRGntXpAXXDdyvBN6P2Y7BPJ3eC/gQ+ZGZYgR5CNWxZV+KZ7D6h+8fGs5XaRu+\n1sXsNUj6GMdHLx1ZaWVbbM9CM1e9TJSrlS6+ZuBPLEs+GyhdHD0qPHGi4ZxmpKVso9hqkPUEE0uB\n15XvIym+4bqcP7Bcz0YD6VLHxQZ7Z0R4NT3WxViL3JOzFNs4isdY8yj0LhGBod4uwFcae/ewnoNi\ndh+9bD74aBXxBC2fOrrqFREon321ijDF1zm8bjfQT+9/Smku+m140pbSw9kXmVJdhewoifgbGYSb\nBoT/UJj5AmlFomD2QBb8XjOc25J0QGawdPn4jcgPfnr43RTjDuAjZMYrojfwWfj5ROAi4EJHn3qg\nX89pQu5jr5jdRy8bvlodgfSK8ZnSLEmjl45ytLLFV4f8PppA/6B9onF6O7IRM95qDUH+SvMOMl6o\nRlk7QDYmj9bUAdJKnoq0hhHNyOzPgrC+tOtNWXASMks1lnAgG3IZsrl3BMUTEKYYpyC7NTog9yVa\n3zkb+WfEOcgUsAtD0W/v2onMrNXF7L56mfDVKu0aqg9p9dLhq5UtvjpEm99Av8VlNXCrxn4psodr\nGZLnVwNvhZX1Q/4QOZXiVGo78rQfTOk60wqklZiPtI4nIHlyI3ADrbffcSBy479BBsc7kTWZRiRX\n/zl2vCnG55Dx0UwkxTycQnyDce9NQGYKTRuGX6H0QQM/vUz4aFUbvjZpyrIkrV46fLRKiq8XspHA\nSBUy0DzXwUEXelKYATMxFrfZt8DThwbc8/0ZHtdPinEccKTDdQKNrQf23fuHIGmlzzjI1QcVV60m\nIA+BLw24aeajV2Apc9XKFl87RJP/0lFd6tiMLEzOAvZ2qDCJ9ch6jW7gHRGf5cmaHbj1IPvh15Mm\nxXgkxbO4aXgAuBNzGt2ItMhJjVlWuGhVjfQmpoV0F1w089XLhotWSfFNAZ5HmdE1/cN6JbJ15KZ0\nPhpZjHktJb5mYeNPz/rHUTodreNkJL3ywSXGJOLxjUIG88sTzpuGTIUf61hPGh9UXLUaTmEpwBcX\nzXz1conRhi2+Y5Glk6lpHJqNTFNmgWm/Yl8Kuw+SaJ98SFnchXT7vuhi7IqkGS6o8XVExhyuD2kt\nspuhXGz32FWrSv3x01cvU4yuWtniewTpaXNycnJycnJycnJycnJ2Uf4FjIcqrwyQNUcAAAAASUVO\nRK5CYII=\n", |
|
158 | "prompt_number": 4, | |
127 | "prompt_number": 5, |
|
|||
128 | "text": [ |
|
159 | "text": [ | |
129 | "\n", |
|
160 | "u'/Users/bgranger/Documents/Computation/IPython/code/ipython/examples/notebooks'" | |
130 | "\u239b_ _ \u239e \n", |
|
|||
131 | "\u239d\u03b1\u22c5\u27e8\u03c8\u2758 + \u03b2\u22c5\u27e8\u03c6\u2758\u23a0\u22c5(\u03b1\u22c5\u2758\u03c8\u27e9 + \u03b2\u22c5\u2758\u03c6\u27e9)" |
|
|||
132 | ] |
|
161 | ] | |
133 | } |
|
162 | } | |
134 | ], |
|
163 | ], | |
135 |
"prompt_number": |
|
164 | "prompt_number": 4 | |
136 | }, |
|
|||
137 | { |
|
|||
138 | "cell_type": "markdown", |
|
|||
139 | "metadata": {}, |
|
|||
140 | "source": [ |
|
|||
141 | "Distribute" |
|
|||
142 | ] |
|
|||
143 | }, |
|
165 | }, | |
144 | { |
|
166 | { | |
145 | "cell_type": "code", |
|
167 | "cell_type": "code", | |
146 | "collapsed": false, |
|
168 | "collapsed": false, | |
147 | "input": [ |
|
169 | "input": [ | |
148 | "qapply(expand(ip))" |
|
170 | "ls" | |
149 | ], |
|
171 | ], | |
150 | "language": "python", |
|
172 | "language": "python", | |
151 | "metadata": {}, |
|
173 | "metadata": {}, | |
152 | "outputs": [ |
|
174 | "outputs": [ | |
153 | { |
|
175 | { | |
154 | "latex": [ |
|
176 | "output_type": "stream", | |
155 | "$$\\alpha \\overline{\\alpha} \\left\\langle \\psi \\right. {\\left|\\psi\\right\\rangle } + \\alpha \\overline{\\beta} \\left\\langle \\phi \\right. {\\left|\\psi\\right\\rangle } + \\beta \\overline{\\alpha} \\left\\langle \\psi \\right. {\\left|\\phi\\right\\rangle } + \\beta \\overline{\\beta} \\left\\langle \\phi \\right. {\\left|\\phi\\right\\rangle }$$" |
|
177 | "stream": "stdout", | |
156 | ], |
|
|||
157 | "output_type": "pyout", |
|
|||
158 | "png": "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\ncOsl0kmXAAAAAElFTkSuQmCC\n", |
|
|||
159 | "prompt_number": 6, |
|
|||
160 | "text": [ |
|
178 | "text": [ | |
161 | "\n", |
|
179 | "01_notebook_introduction.ipynb Octave Magic.ipynb\r\n", | |
162 | " _ _ _ _ \n", |
|
180 | "Animations Using clear_output.ipynb PyLab and Matplotlib.ipynb\r\n", | |
163 | "\u03b1\u22c5\u03b1\u22c5\u27e8\u03c8\u2758\u03c8\u27e9 + \u03b1\u22c5\u03b2\u22c5\u27e8\u03c6\u2758\u03c8\u27e9 + \u03b2\u22c5\u03b1\u22c5\u27e8\u03c8\u2758\u03c6\u27e9 + \u03b2\u22c5\u03b2\u22c5\u27e8\u03c6\u2758\u03c6\u27e9" |
|
181 | "Basic Output.ipynb R Magics.ipynb\r\n", | |
|
182 | "Custom Display Logic.ipynb Running Code.ipynb\r\n", | |||
|
183 | "Cython Magics.ipynb Script Magics.ipynb\r\n", | |||
|
184 | "Data Publication API.ipynb SymPy Examples.ipynb\r\n", | |||
|
185 | "Display System.ipynb Trapezoid Rule.ipynb\r\n", | |||
|
186 | "JS Progress Bar.ipynb Typesetting Math Using MathJax.ipynb\r\n", | |||
|
187 | "Local Files.ipynb animation.m4v\r\n", | |||
|
188 | "Markdown Cells.ipynb python-logo.svg\r\n", | |||
|
189 | "Notebook Tour.ipynb\r\n" | |||
164 | ] |
|
190 | ] | |
165 | } |
|
191 | } | |
166 | ], |
|
192 | ], | |
167 |
"prompt_number": |
|
193 | "prompt_number": 2 | |
168 | }, |
|
194 | }, | |
169 | { |
|
195 | { | |
170 | "cell_type": "markdown", |
|
196 | "cell_type": "markdown", | |
171 | "metadata": {}, |
|
197 | "metadata": {}, | |
172 | "source": [ |
|
198 | "source": [ | |
173 | "<h2>Operators</h2>" |
|
199 | "Any command line program can be run using `!` with string interpolation from Python variables:" | |
174 | ] |
|
200 | ] | |
175 | }, |
|
201 | }, | |
176 | { |
|
202 | { | |
|
203 | "cell_type": "code", | |||
|
204 | "collapsed": false, | |||
|
205 | "input": [ | |||
|
206 | "message = 'The IPython notebook is great!'\n", | |||
|
207 | "# note: the echo command does not run on Windows, it's a unix command.\n", | |||
|
208 | "!echo $message" | |||
|
209 | ], | |||
|
210 | "language": "python", | |||
|
211 | "metadata": {}, | |||
|
212 | "outputs": [] | |||
|
213 | }, | |||
|
214 | { | |||
177 | "cell_type": "markdown", |
|
215 | "cell_type": "markdown", | |
178 | "metadata": {}, |
|
216 | "metadata": {}, | |
179 | "source": [ |
|
217 | "source": [ | |
180 | "Create symbolic operators" |
|
218 | "Tab completion works:" | |
181 | ] |
|
219 | ] | |
182 | }, |
|
220 | }, | |
183 | { |
|
221 | { | |
184 | "cell_type": "code", |
|
222 | "cell_type": "code", | |
185 |
"collapsed": |
|
223 | "collapsed": false, | |
186 | "input": [ |
|
224 | "input": [ | |
187 | "A = Operator('A')\n", |
|
225 | "import numpy\n", | |
188 | "B = Operator('B')\n", |
|
226 | "numpy.random." | |
189 | "C = Operator('C')" |
|
|||
190 | ], |
|
227 | ], | |
191 | "language": "python", |
|
228 | "language": "python", | |
192 | "metadata": {}, |
|
229 | "metadata": {}, | |
193 | "outputs": [], |
|
230 | "outputs": [], | |
194 |
"prompt_number": |
|
231 | "prompt_number": 9 | |
195 | }, |
|
232 | }, | |
196 | { |
|
233 | { | |
197 | "cell_type": "markdown", |
|
234 | "cell_type": "markdown", | |
198 | "metadata": {}, |
|
235 | "metadata": {}, | |
199 | "source": [ |
|
236 | "source": [ | |
200 | "Test commutativity" |
|
237 | "Tab completion after `(` brings up a tooltip with the docstring:" | |
201 | ] |
|
238 | ] | |
202 | }, |
|
239 | }, | |
203 | { |
|
240 | { | |
204 | "cell_type": "code", |
|
241 | "cell_type": "code", | |
205 | "collapsed": false, |
|
242 | "collapsed": false, | |
206 | "input": [ |
|
243 | "input": [ | |
207 | "A*B == B*A" |
|
244 | "numpy.random.rand(" | |
208 | ], |
|
245 | ], | |
209 | "language": "python", |
|
246 | "language": "python", | |
210 | "metadata": {}, |
|
247 | "metadata": {}, | |
211 | "outputs": [ |
|
248 | "outputs": [] | |
212 | { |
|
|||
213 | "output_type": "pyout", |
|
|||
214 | "prompt_number": 8, |
|
|||
215 | "text": [ |
|
|||
216 | "False" |
|
|||
217 | ] |
|
|||
218 | } |
|
|||
219 | ], |
|
|||
220 | "prompt_number": 8 |
|
|||
221 | }, |
|
249 | }, | |
222 | { |
|
250 | { | |
223 | "cell_type": "markdown", |
|
251 | "cell_type": "markdown", | |
224 | "metadata": {}, |
|
252 | "metadata": {}, | |
225 | "source": [ |
|
253 | "source": [ | |
226 | "Distribute A+B squared" |
|
254 | "Adding `?` opens the docstring in the pager below:" | |
227 | ] |
|
255 | ] | |
228 | }, |
|
256 | }, | |
229 | { |
|
257 | { | |
230 | "cell_type": "code", |
|
258 | "cell_type": "code", | |
231 | "collapsed": false, |
|
259 | "collapsed": false, | |
232 | "input": [ |
|
260 | "input": [ | |
233 | "expand((A+B)**2)" |
|
261 | "magic?" | |
234 | ], |
|
262 | ], | |
235 | "language": "python", |
|
263 | "language": "python", | |
236 | "metadata": {}, |
|
264 | "metadata": {}, | |
237 | "outputs": [ |
|
265 | "outputs": [], | |
238 | { |
|
266 | "prompt_number": 8 | |
239 | "latex": [ |
|
|||
240 | "$$A B + \\left(A\\right)^{2} + B A + \\left(B\\right)^{2}$$" |
|
|||
241 | ], |
|
|||
242 | "output_type": "pyout", |
|
|||
243 | "png": "iVBORw0KGgoAAAANSUhEUgAAAMAAAAAZCAYAAABn7SHgAAAABHNCSVQICAgIfAhkiAAABHpJREFU\neJztml2IVVUUx39OTlQ20xiJpZZDE4gUBn0YJE3Q10MZfZEvUS9ST+lDhgWFPRgRFaRGT9mwI8ge\nKoqoCCqikl6ysg/SfOlBjKxetLCymh7Wvnjnsvc5e62zj1dv+wfDPffsfc5e//Wf/XH2uVAo/I+Z\n1e8AjlMuA64HTgSWAhuAr/oaUSFG8SozpwLPdn1fBRwETutPOIUKilctsAz4F5jw30eBaWBl3yIq\nxChetcAsZFrtLB/PR5K6tG8RFWLUeqV9BngamUI2VNTZClyK9L4/gE+Bv3zZGcBc4GXgUeCQsn0N\nw8BC4IfE+iFt85EYD1Rc9yKwH1inD7ExbeQ6xePcxLzS6BulZa8uAf4BphLqjiM97YlA2Q2+7A1L\nEInMBh4BTkmsH9M2DDzl7xdiNaKxn5sJ4+TLtcbjXNR5NU6avla9GgLe9429nVD/Tl/3mkj5HiTR\nI4ntLyMuLMQ6f00KddpWEE7+SiSpACcjRlnR6usmV661HsfI7ZVGn9qrocQg7wFeAQ4DZybUn0Sm\nqu2BshFgETIV/ZbY/n3+mhRGgMtJ3+qq07YdGGPmzsGVyPLoLX/NLcBZie2F0OjrJVeutR7HyO2V\nRl8rXs1DRoYhYC+wL+Ga3cDHkbL1SI++WxGDI32EvRW4P7FuqrZ7gbX++FxkjTzd8zea2GYIh30G\nyZFri8cxHHm90urL7tUUMrUA7AD+pnrmmO8b2dhzfsyf2w/cpQkAXVK3IL0+hVRt1wEvJd7TgsPW\nAXLlWutxFY58Xln0qbyqW6utAE7gyPTzk/8+zx+HmPSfE8Dj/ngEWYd97++5JzVAA4uAXxLqabTt\nptkavy1y5NricS7qvLLoy+bVbOATZq6XppAeeWHFdc8AfwInBcoeQ6aka5WxONJFvUv9nrxW2xxg\nV2L7Fhw205rm2upxFY58Xln0qbyqmubWAK8DP3ad64wIVQ9Jk8BnyL5tLxsRMc+nBmjgZ+C8mjpa\nbRP+vscaTXNt9TgXdV5Z9Km8ii2BFiAPJ98xc/tpsf+MJWcMuAB4MlJ+GOnRC5Gp7GBP+QuER55z\ngOUceQnSzWpk3dphF7AEeDMSg0XbEl+/KTn0dWiaa6vHHdr2yqovi1fbgKsC529DpscHItfdSPVv\nLa7w5e8p43GkT6sXA89VlFu0PQzclNi+BYd+CdQ011aP63Dk8cqqT+VVaAl0NfAr8EGgbK//jI0O\nkz6o0J7tMPCQP96aGqCBHcDphH/xZ9E2jIxo7+QKMBNNct3E45xUeWXR19iri5A14NxI+YQPaluk\n/Avg68D5xcCrwO/AHYa4HLoRcjmwqeecVduDwO2Kti049DOANddNPa7D0dwrsOkze7UA+Ab56eg0\n8C2yB9vNa8gLkmnkoeQjZM91FBlJvvRlh5CdhQ/9307gc2Azsqaz4ND/g9yMmN1E29nIi5W2caTp\na5LrJnnQ4LB71UTf0fKqLziOzX34XDgGR5/jONJifdt3tDlAeCtsUBgkfYOkpVAoFAqFQqFQKAwY\n/wF5Fp03jGX3sQAAAABJRU5ErkJggg==\n", |
|
|||
244 | "prompt_number": 9, |
|
|||
245 | "text": [ |
|
|||
246 | "\n", |
|
|||
247 | " 2 2\n", |
|
|||
248 | "A\u22c5B + A + B\u22c5A + B " |
|
|||
249 | ] |
|
|||
250 | } |
|
|||
251 | ], |
|
|||
252 | "prompt_number": 9 |
|
|||
253 | }, |
|
267 | }, | |
254 | { |
|
268 | { | |
255 | "cell_type": "markdown", |
|
269 | "cell_type": "markdown", | |
256 | "metadata": {}, |
|
270 | "metadata": {}, | |
257 | "source": [ |
|
271 | "source": [ | |
258 | "Create a commutator" |
|
272 | "Exceptions are formatted nicely:" | |
259 | ] |
|
273 | ] | |
260 | }, |
|
274 | }, | |
261 | { |
|
275 | { | |
262 | "cell_type": "code", |
|
276 | "cell_type": "code", | |
263 | "collapsed": false, |
|
277 | "collapsed": false, | |
264 | "input": [ |
|
278 | "input": [ | |
265 | "comm = Commutator(A,B); comm" |
|
279 | "x = 1\n", | |
|
280 | "y = 4\n", | |||
|
281 | "z = y/(1-x)" | |||
266 | ], |
|
282 | ], | |
267 | "language": "python", |
|
283 | "language": "python", | |
268 | "metadata": {}, |
|
284 | "metadata": {}, | |
269 | "outputs": [ |
|
285 | "outputs": [ | |
270 | { |
|
286 | { | |
271 | "latex": [ |
|
287 | "ename": "ZeroDivisionError", | |
272 | "$$\\left[A,B\\right]$$" |
|
288 | "evalue": "integer division or modulo by zero", | |
273 | ], |
|
289 | "output_type": "pyerr", | |
274 | "output_type": "pyout", |
|
290 | "traceback": [ | |
275 | "png": "iVBORw0KGgoAAAANSUhEUgAAAC4AAAAWCAYAAAC/kK73AAAABHNCSVQICAgIfAhkiAAAAj5JREFU\nSInt102ITlEYB/CfMUppNFMmDDU0W1EiaZp34SvFQlmKHTtSZKOURjIkSXZjtiwQiykRvTFi4TMk\nHwsLkSmrocEMY3HO5HXn3nHf+84syL/ezrn/55zn+d/7POe59+UvxZTE9RV8wTWczrH/BAZwoEDs\nbizH4hjzDr5F2yw04RwOYRC7sArTsT7prFxF4GX4jp4CokexACM4mmLbEG2XE3wZ6goGrENXHOcU\n9AEdcbyaYuvFa2xEQ5qAItiB8xhSm/CSUB63U2wNmI9+fPqTo3KOYM24Ltz0W7zLqzIFL3Arw7ZP\nKJXtCb6ctjiVTKAH7XF+H8OKZW52FNaZ4Bsj149tWRrrqwzWjql+pfZDvG6O82pQimMbjsR5g1DT\nL2OsV3mdlcex1aMPcyu4HuGpLckboAKn8FVob0kcFtrs2iyN1aR4Jy7hfQU3+pSLHNAS7gk9PIlO\n4YbOZG3OWyot2IvnWFPBt8axWuGNWIRjGfYhIRvzhPIZSC7IK/w4tuJGgt8stMVqhXcI2e7LsK/E\nDKF7jRFNvlJZjY/Giia0Q9KFt4zjsyScjbT+PQ3747w7hz6MPZxLhTpuyljfFgWcTfAr8EP2985D\nPEnhW3EBn7Elp8bfyBY8jcFH8Ezou5W4KLx8RoQDdhProm0h3gh9fhQzhaw9insGhVIpx99jPMBJ\nof6zMK7wicLBCfZHjR9ZeTFp/idT+CbcnSznSeHDwp+J3TX6rRe+13tr9FOJPYK24Qn0+R//Pn4C\niuR3f19QpToAAAAASUVORK5CYII=\n", |
|
291 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mZeroDivisionError\u001b[0m Traceback (most recent call last)", | |
276 | "prompt_number": 10, |
|
292 | "\u001b[0;32m<ipython-input-15-dc39888fd1d2>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m4\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mz\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", | |
277 | "text": [ |
|
293 | "\u001b[0;31mZeroDivisionError\u001b[0m: integer division or modulo by zero" | |
278 | "[A,B]" |
|
|||
279 | ] |
|
294 | ] | |
280 | } |
|
295 | } | |
281 | ], |
|
296 | ], | |
282 |
"prompt_number": 1 |
|
297 | "prompt_number": 15 | |
283 | }, |
|
298 | }, | |
284 | { |
|
299 | { | |
285 |
"cell_type": " |
|
300 | "cell_type": "heading", | |
|
301 | "level": 2, | |||
286 | "metadata": {}, |
|
302 | "metadata": {}, | |
287 | "source": [ |
|
303 | "source": [ | |
288 | "Carry out the commutator" |
|
304 | "Working with external code" | |
289 | ] |
|
305 | ] | |
290 | }, |
|
306 | }, | |
291 | { |
|
307 | { | |
292 |
"cell_type": " |
|
308 | "cell_type": "markdown", | |
293 | "collapsed": false, |
|
|||
294 | "input": [ |
|
|||
295 | "comm.doit()" |
|
|||
296 | ], |
|
|||
297 | "language": "python", |
|
|||
298 | "metadata": {}, |
|
309 | "metadata": {}, | |
299 |
" |
|
310 | "source": [ | |
300 | { |
|
311 | "There are a number of ways of getting external code into code cells." | |
301 | "latex": [ |
|
312 | ] | |
302 | "$$A B - B A$$" |
|
|||
303 | ], |
|
|||
304 | "output_type": "pyout", |
|
|||
305 | "png": "iVBORw0KGgoAAAANSUhEUgAAAE4AAAASCAYAAAD15uiRAAAABHNCSVQICAgIfAhkiAAAAi9JREFU\nWIXt1z1oFEEcBfCfMYIWkQQMahQipPUDRKtgCj8LY2Up2im2gmgh2CgqWojYSUgbCxVsrFTED6zU\nBBXRdBIEA1ZRokaNxQwak9272d1LQLgHx87N+8+89252dvZoohQWFay/jAmcrlEzgK3YiK94iu+R\nW4EOXMdZTBbUr4X50E3JWxdb8BODCbXrMI2LGdzeyN2uYmYBdIvkzUUL7kXhOwn1B2Ptzhx+NJpq\nq2JqHnXr5m1JNHQENzCFVQn1fcI2eZLBtWEtxvE5UT8VjdItmjcTncKv34IxfEgY8xaPcrgTwkoe\nLmtonnXL5M3EIHpj+xl+qH2nrowGz8zqb4994zhU1swC6Cblba0zSS8W+3vrf4zfO2M7C33x2oML\nsd2GfryLc47WtV8cjdAtk3cOWvEYq2f0DQqruqnGuKv4hqUZ3DnheN+VaqIAquqWzTsHx3B8Vt/5\nONGeGuNGZD+cYZnwwH1fxEgiquoWypu3VbviJG/8e7R3x2veSdOO9biUw08Jd8UaYRtNYAOuSX8Z\nH8bRBujORNm8czCE7Rn9+4UVOJkzbl/k+3P4bZG/m2okEVV1C+fNOh134BPuZ3Bj8Zq3An1RKGvL\nLMGp2B7IGV8WVXSr5P2DzcLp0ZHD90SDQzn8C7zM6O/GTXzBgXomSqCsbtW8uvAKv2Lha+G9aCZu\nCS+D08Kf6IfYjeXCag1HblI4nR7Ezwie44rwHGoUquhWydtEE038P/gNdbvExvNu4QsAAAAASUVO\nRK5CYII=\n", |
|
|||
306 | "prompt_number": 11, |
|
|||
307 | "text": [ |
|
|||
308 | "A\u22c5B - B\u22c5A" |
|
|||
309 | ] |
|
|||
310 | } |
|
|||
311 | ], |
|
|||
312 | "prompt_number": 11 |
|
|||
313 | }, |
|
313 | }, | |
314 | { |
|
314 | { | |
315 | "cell_type": "markdown", |
|
315 | "cell_type": "markdown", | |
316 | "metadata": {}, |
|
316 | "metadata": {}, | |
317 | "source": [ |
|
317 | "source": [ | |
318 | "Create a more fancy commutator" |
|
318 | "Pasting code with `>>>` prompts works as expected:" | |
319 | ] |
|
319 | ] | |
320 | }, |
|
320 | }, | |
321 | { |
|
321 | { | |
322 | "cell_type": "code", |
|
322 | "cell_type": "code", | |
323 | "collapsed": false, |
|
323 | "collapsed": false, | |
324 | "input": [ |
|
324 | "input": [ | |
325 | "comm = Commutator(A*B,B+C); comm" |
|
325 | ">>> the_world_is_flat = 1\n", | |
|
326 | ">>> if the_world_is_flat:\n", | |||
|
327 | "... print \"Be careful not to fall off!\"" | |||
326 | ], |
|
328 | ], | |
327 | "language": "python", |
|
329 | "language": "python", | |
328 | "metadata": {}, |
|
330 | "metadata": {}, | |
329 | "outputs": [ |
|
331 | "outputs": [ | |
330 | { |
|
332 | { | |
331 | "latex": [ |
|
333 | "output_type": "stream", | |
332 | "$$\\left[A B,B + C\\right]$$" |
|
334 | "stream": "stdout", | |
333 | ], |
|
|||
334 | "output_type": "pyout", |
|
|||
335 | "png": "iVBORw0KGgoAAAANSUhEUgAAAGAAAAAWCAYAAAA/45nkAAAABHNCSVQICAgIfAhkiAAAA5VJREFU\naIHt2UmIXUUUBuDP2IJZtHSLjdpiRwhGEYkYp0gwggOGGMHgQnACEXEARVEcEISgRNFFBHUhSvtc\nxSwUXaghDlxMRF2oiIpDL4wSlATNwqBG0w6LU49+eX3rvXt7uNn0v7mn6pz6z3lV95yquo8FHFIc\n1tXeiv14G89WGL8J+/BwD5sXcA6WJ+4P8XfSHYNhvIxH8WfVwOeRdzZYhnU4H6P4Hb/gIezEXnyc\nbNeUERQ1nJ2NfzBewfYk/IcnSnSXJ93rNXzPN29dHI4H8BNux8kduhPFvL6Ib1JfkSPKKrqwCO+K\nH/hmBfvrk+0lGf2EWMzBiv7ni3c5BmrGMCaybydOzdisEHE+k9pFjiyr6MKtuE2k/KcV7J/HX1hc\nohsUJeJn00ti07wtkVVVMSBKyvc4vo/tbqxPcpEzyio6MCLe/kXYJdKuH77F9ozuPvF23FyBZ755\nW+otwMbk47oKtjswlOQiZ5RVdGAcq5L8CSbFYuRwrAjyka7+odS3BzdU8NsEb0v1BThTlLev9P79\nbVzdIRdtoW69WyU2nA9Se3dqjyS5DKvTcykeT/KgOC18lzgnasYxn7xVsVZM/FP4t4L9liqkRQ/d\ngEijzlo3Lt7CM3qMe1rU6SNLdBvFMfbSKsE1wNtSPQPeEr/9rJo+mGEJuhv3dvU9loK4rMe4z01l\nTDcW4wB+7DG+Sd6W6guwV5SgsgNAN5Z1tYu2ULUEjYrJ/9rBR74l6XlcZtwQTseTGf0B8RafIMrH\nvorxzJb3JeVZO4ZzTV3oOnGT2PPa+CHZ97vkjeBGPNjHDvkM2IyLSvqvEhlwf2bcFUm/LqO/IOnf\nqRJcA7wt1TNgU/Ix1sdugzgwdKJoC1V274vxK94r0e1Kz1wGrBZBlpWKI8QVnfis0I3RHjHNhneu\nsEVk2TU9bG4Rx/TcAWUaiq72ijR4OGO/VEzE5oz+M3xR0r8Er4hvJdeW6M8TJ4vc96iZ8vZDS717\nwBr8gTscvBecIk5mazPjiraQ2wNGsQ2niVvkDlGCOlfyVaxM8nq8Lz58fYTXcLSos/vT+MlkOyw2\nr+1ior8s8b9HbKArO/qOmgPeucZWXCjO+NtM3bwn8Jy4IddCMYfBzQU2NOyvpV4GzBRFW6iyBxxK\nNB3fbyKzGkPdm3CTuFKUsyZxZ8P+pr1hk6Ku3dV0IF0YEP83vHGI45hr3CPmd7Kf4QIWsIAFNID/\nASen61ooc9yoAAAAAElFTkSuQmCC\n", |
|
|||
336 | "prompt_number": 12, |
|
|||
337 | "text": [ |
|
335 | "text": [ | |
338 | "[A\u22c5B,B + C]" |
|
336 | "Be careful not to fall off!\n" | |
339 | ] |
|
337 | ] | |
340 | } |
|
338 | } | |
341 | ], |
|
339 | ], | |
342 |
"prompt_number": 1 |
|
340 | "prompt_number": 1 | |
343 | }, |
|
341 | }, | |
344 | { |
|
342 | { | |
345 | "cell_type": "markdown", |
|
343 | "cell_type": "markdown", | |
346 | "metadata": {}, |
|
344 | "metadata": {}, | |
347 | "source": [ |
|
345 | "source": [ | |
348 | "Expand the commutator" |
|
346 | "The `%load` magic lets you load code from URLs or local files:" | |
349 | ] |
|
347 | ] | |
350 | }, |
|
348 | }, | |
351 | { |
|
349 | { | |
352 | "cell_type": "code", |
|
350 | "cell_type": "code", | |
353 | "collapsed": false, |
|
351 | "collapsed": false, | |
354 | "input": [ |
|
352 | "input": [ | |
355 | "comm.expand(commutator=True)" |
|
353 | "%load?" | |
356 | ], |
|
354 | ], | |
357 | "language": "python", |
|
355 | "language": "python", | |
358 | "metadata": {}, |
|
356 | "metadata": {}, | |
359 | "outputs": [ |
|
357 | "outputs": [], | |
360 | { |
|
358 | "prompt_number": 14 | |
361 | "latex": [ |
|
|||
362 | "$$\\left[A,B\\right] B + \\left[A,C\\right] B + A \\left[B,C\\right]$$" |
|
|||
363 | ], |
|
|||
364 | "output_type": "pyout", |
|
|||
365 | "png": "iVBORw0KGgoAAAANSUhEUgAAAN8AAAAWCAYAAABAHklQAAAABHNCSVQICAgIfAhkiAAABNdJREFU\neJztm0mIHUUYx3+OI+hhZEYc1FEnA8EoIhFjXEJwBBcIMYLiIeAGIioIBtHggiCESBA9RFAPgo7P\nUwwu6EENowmFiWjA5eBuDkYJBoN6MC7RjMvhq8d02l6+6vrqvRfp/+W9qa/631/9XndVdVUPtGrV\nqi86Ivf3FuAA8CbwpOL4jcB+4MEG534aOA9Y7M/5LvCnjx0PjAHPAw8BvwNrgEuAo4EVRp4pFMoQ\n4jh2tQhYBSwDJoBfgR+AB4DdwE/ATl93kPlpVMWrin/K9kXzdwEnWwr8BcwEJpnVFPAP8EhB7Aof\nezVX7hJ4WsoF1o/leCRwH/AdcDtwWiZ2qs/nWeALZX5T9Jdfnep4uZrjp7Btnxn/0kBOQ8BWn+jr\nAYnmdYP3uKwkvgsBPZIpcwk8q7QYGFbWhbCbL5bjJNJ77wbOKKmzxPs/oczPmh+EMyyThper8bBs\nXxT/IcUJinQr8CJwEDixoQfANDLsv1MQGwFOAfYBv/TR8y5/TArFcBwGXvDHLWO+Z83rQ6S9W5W+\nKX4TK4YW151V+8z5u7oKwLg3GgL2IMNtU30JbC+J3YP0GLfkyl0Czyp1kKmKVk5ZL5bjBqQt1yvq\n7gBGlflZ84NwhkXS8nI1PlbtM+dfGshoBljuv38AzNFsBD0BSX59rnzUl+0DbgzMsalnlTqkufli\nOJ6DTI0+VR6zWplfCn5gc/NpebkKD6v2mfAPnYcvRx4wu0P29/7vcf89RNP+cyHwsP8+gqwYfeXP\ntWsAPFMoluNK5Ed/DPhbUX+zMq9B5Wd13Vm1Lwl/VxEbRobPkzJlM0hPcrbGPKfHgT+QrYO8NiBL\nyZcH5tjUs0odbEc+C45v+PrnBuTVlauIpeAHcSNfKC9X4WXVPhP+IdPFO4BXgL2Zsm6v0+Thdxp4\nH9lvyWs9AuiZAfC0lgXHC5Ae9zNF3UX61AaSn+V1Z9U+E/7aaecEsBb4nEOXaBf4z1AIo8BZwKMl\n8YNID3UyMi3Y3wPP5yjuSSeB85nfjM3qZuT5Qysrjt/4vOo2gseBm4D7FZ4Wv4k1Q8vrzvKaS8G/\ndMjehLxdktc1yPB7r8Y8oyv9catK4hf5+FsFMZfAs0od7KadVhw3+vqTNfXWIYsMmvxS8YPm084m\nvFyJl2X7TPhrpp2XAj8C2wpie/xnUQ80UeE5jSRftNdyFPJKDsjrQFql8LSUJcfNSC99bcX5bkOW\n47ULEoPGrymvMjVtX6/4/6fXWOIPHiupvxBp0KZceXdOXPZu40fAxwXlC4CXkPfirlPmaOFZpQ7x\nI18KjiuA35BnomMy5acjK3krA/KDdPwgnGFTXmDbvqT8y575JoBZ4Ezk5esdyPCfvYtfBi70368G\n3kZeSJ1F9ku+zcQBjkUenI9DngsOeN85Hx9D9k62I43+pCS3rFJ4WioFx662ABcje0izyPPHXmSp\n/Cnga0V+g8Yvlldese1Lzf8QudADarTO2A/sc6xThzSb7CGy5OgMvbTqEL/JrpVL4JmEf9N3O7VK\n7d8L/Uzx0nQvdbhzHASGMUrC3+JN8zJdBbyX0L9XWtPn8/8fOPabYYyS8c/f0XPIXPbOSN9h5P+u\nXov0yepuJLe5uop9lhVDsOV4uPCLVcu/VatWrVq1atWqVat5/QsIXxOgwN127AAAAABJRU5ErkJg\ngg==\n", |
|
|||
366 | "prompt_number": 13, |
|
|||
367 | "text": [ |
|
|||
368 | "[A,B]\u22c5B + [A,C]\u22c5B + A\u22c5[B,C]" |
|
|||
369 | ] |
|
|||
370 | } |
|
|||
371 | ], |
|
|||
372 | "prompt_number": 13 |
|
|||
373 | }, |
|
|||
374 | { |
|
|||
375 | "cell_type": "markdown", |
|
|||
376 | "metadata": {}, |
|
|||
377 | "source": [ |
|
|||
378 | "Carry out and expand the commutators" |
|
|||
379 | ] |
|
|||
380 | }, |
|
359 | }, | |
381 | { |
|
360 | { | |
382 | "cell_type": "code", |
|
361 | "cell_type": "code", | |
383 | "collapsed": false, |
|
362 | "collapsed": false, | |
384 | "input": [ |
|
363 | "input": [ | |
385 | "_.doit().expand()" |
|
364 | "%pylab inline" | |
386 | ], |
|
365 | ], | |
387 | "language": "python", |
|
366 | "language": "python", | |
388 | "metadata": {}, |
|
367 | "metadata": {}, | |
389 | "outputs": [ |
|
368 | "outputs": [ | |
390 | { |
|
369 | { | |
391 | "latex": [ |
|
370 | "output_type": "stream", | |
392 | "$$A B C + A \\left(B\\right)^{2} - B A B - C A B$$" |
|
371 | "stream": "stdout", | |
393 | ], |
|
|||
394 | "output_type": "pyout", |
|
|||
395 | "png": "iVBORw0KGgoAAAANSUhEUgAAAO8AAAAZCAYAAADZu3m9AAAABHNCSVQICAgIfAhkiAAABUBJREFU\neJztm1uIVVUYgD9tJrKaaYyGbMzx1JAmXSRNIySD7kxKNyqwC4REFywII43EiMKiAru+VEwnitSH\ngggSpUKyiB4s7YKWD1lIpVQPillZTQ//Osye3Vp7r8u+nIn1weGcvW77/9f+11r/+vc6EIlExiTj\n6hYg4sQ5wCBwODADWAl8XqtEkUgkl6OB5xPX1wH7gWPqEScSidhyJvAPMKCuu4FhYEFtEkUiESvG\nIW5za6tzGjJ4Z9QmUaRWXPe8qxFXbWVGmZeAOchK8TvwMfCnyjsOmAisBR4BDhramIasKOcCfcAB\n4GfgAWAX0ASWAT85yh9Knv6dwGRExjQu/dKN9M2+DFleBfYCS10U8KCI55mmKjsKpSg7rF3fs4G/\ngSGLsg1kVXhck3e5yntLk3cYsBz4AbgTOCWRNwXYBLwM7LCUuUjy9O8AHgSOzGijgV2/dAJPqjZ1\nLFZtVBVwbOD3PHVUYUehFGmHtes7HnhPVX7HovxNquxFhvydiEJdibR+ZLbZBZxqqDdLtfuchQwg\ns5hpALhgo/9Sdb8sXPplHvqHuAAZvAATkAdeNj7PU0cVdhRKkXbYFvreDtyBLOOfWpR/EfgDMa40\nXciy/yMjK0cH8AnwLXBCTtt7gKssZABxaxqWZbPI078LeMOiHdd+eYHR0eTzkYE7SX0WIS5d2bjK\nbaJsOwqlaDusXd9eZPYYD+xGXIk8vgY2G/LuQ2aXWxNpq1TajRZtfwj0WJSDYgavjf5XA/datOXa\nL0uAu9Xvk5F903Dq021x31Bc5dZRhR2FUqQdtoW+Q4gLB7AF+EsJZOJ4dZOHU+k9Km0vcHMi/SzE\nFfgqp90W11uUadEkfPDa6P8Msipm4dovAJcArzvKWzQ+cuso245CKdoOS9c3bz84D9m8f6Su96jr\nXvVbx3z1PQA8pn53IXu1b1SbOxPlBxGlnkLeY+axzqJMUdjqfyIShczCtV9AZuKGh9xF4iN3mirs\nKJQi7bB2fTsQ1yDp+w8hs8PMjHrPIn77EZq8VYjrd3Eibb1qc7atYA408Td+F/03kP++1bVfAI6i\nnsh6Eh+5k1RlR6EUZYdtoe89/Hcf96gS4tKMetsYmXHSTAAOAd8n0n5F3BXdJj3NNIsySZr4D14X\n/V8DFua059ovINFr0x6oKnzkTlKVHYVSlB1Wpq/Jbe5TAmxndNh6qvqeZKjXA5wOPGHIP4TMLpMR\nl2A/8B0Sns978dwL3ALcr8l7Bf2s1g/MZeRld5LFyF5Eh6v+O4DpwNuG9nz6BdXmdkOdLM5AItW2\nUcmtSGQ0ja/cLaq0o1Cdi7DDKvU1sga4QJN+DTKDLDPUW0j2edvzVP67ibTVKq0/SyDgIWRT70IT\nv5XXVf/ZSJjfhE+/AKwArsgTtkR85W5RpR2FUoQdVqqvLvp1IfAL8L4mb7f6Ns0g89VNdMt/J3Ks\nDOQoWIt1yKyyyNAmwG1IqN202S8SH/23AMdi/oePT790Il7D+nyRS8NH7hZV21EooXZYu76zlGAT\nDfkD6iZrDPmfAV9o0qcihxgOADdo8i8DfgPuYvSeYzoSeRvMEjqDJm4rb4j+c5FIpQ6fflkOXJsj\nb9n4Ps+67CgUXzusVd8+4EskRD6MvOtKuwZvIrPOMHJw+gPkPWQ3MttsVXkHkWjbJvXZhpwueRrx\n603MQc7zbgY2IvvYFcBJGXXyaGI3eEP0T3Il8iAhrF+mIAc06iBE7nawo1Bc7PD/oG/b0qT+96SR\nSCnYnCQZy+xDZrtIJBKJRCKRSCQSiUQikcgY4V+hOFAJDK9DFAAAAABJRU5ErkJggg==\n", |
|
|||
396 | "prompt_number": 14, |
|
|||
397 | "text": [ |
|
372 | "text": [ | |
398 | "\n", |
|
373 | "\n", | |
399 | " 2 \n", |
|
374 | "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].\n", | |
400 | "A\u22c5B\u22c5C + A\u22c5B - B\u22c5A\u22c5B - C\u22c5A\u22c5B" |
|
375 | "For more information, type 'help(pylab)'.\n" | |
401 | ] |
|
376 | ] | |
402 | } |
|
377 | } | |
403 | ], |
|
378 | ], | |
404 |
"prompt_number": |
|
379 | "prompt_number": 2 | |
405 | }, |
|
380 | }, | |
406 | { |
|
381 | { | |
407 |
"cell_type": " |
|
382 | "cell_type": "code", | |
|
383 | "collapsed": false, | |||
|
384 | "input": [ | |||
|
385 | "%load http://matplotlib.sourceforge.net/mpl_examples/pylab_examples/integral_demo.py" | |||
|
386 | ], | |||
|
387 | "language": "python", | |||
408 | "metadata": {}, |
|
388 | "metadata": {}, | |
409 |
" |
|
389 | "outputs": [], | |
410 | "Take the dagger" |
|
390 | "prompt_number": 3 | |
411 | ] |
|
|||
412 | }, |
|
391 | }, | |
413 | { |
|
392 | { | |
414 | "cell_type": "code", |
|
393 | "cell_type": "code", | |
415 | "collapsed": false, |
|
394 | "collapsed": false, | |
416 | "input": [ |
|
395 | "input": [ | |
417 | "Dagger(_)" |
|
396 | "#!/usr/bin/env python\n", | |
|
397 | "\n", | |||
|
398 | "# implement the example graphs/integral from pyx\n", | |||
|
399 | "from pylab import *\n", | |||
|
400 | "from matplotlib.patches import Polygon\n", | |||
|
401 | "\n", | |||
|
402 | "def func(x):\n", | |||
|
403 | " return (x-3)*(x-5)*(x-7)+85\n", | |||
|
404 | "\n", | |||
|
405 | "ax = subplot(111)\n", | |||
|
406 | "\n", | |||
|
407 | "a, b = 2, 9 # integral area\n", | |||
|
408 | "x = arange(0, 10, 0.01)\n", | |||
|
409 | "y = func(x)\n", | |||
|
410 | "plot(x, y, linewidth=1)\n", | |||
|
411 | "\n", | |||
|
412 | "# make the shaded region\n", | |||
|
413 | "ix = arange(a, b, 0.01)\n", | |||
|
414 | "iy = func(ix)\n", | |||
|
415 | "verts = [(a,0)] + zip(ix,iy) + [(b,0)]\n", | |||
|
416 | "poly = Polygon(verts, facecolor='0.8', edgecolor='k')\n", | |||
|
417 | "ax.add_patch(poly)\n", | |||
|
418 | "\n", | |||
|
419 | "text(0.5 * (a + b), 30,\n", | |||
|
420 | " r\"$\\int_a^b f(x)\\mathrm{d}x$\", horizontalalignment='center',\n", | |||
|
421 | " fontsize=20)\n", | |||
|
422 | "\n", | |||
|
423 | "axis([0,10, 0, 180])\n", | |||
|
424 | "figtext(0.9, 0.05, 'x')\n", | |||
|
425 | "figtext(0.1, 0.9, 'y')\n", | |||
|
426 | "ax.set_xticks((a,b))\n", | |||
|
427 | "ax.set_xticklabels(('a','b'))\n", | |||
|
428 | "ax.set_yticks([])\n", | |||
|
429 | "show()\n" | |||
418 | ], |
|
430 | ], | |
419 | "language": "python", |
|
431 | "language": "python", | |
420 | "metadata": {}, |
|
432 | "metadata": {}, | |
421 | "outputs": [ |
|
433 | "outputs": [] | |
422 | { |
|
|||
423 | "latex": [ |
|
|||
424 | "$$- B^{\\dagger} A^{\\dagger} B^{\\dagger} - B^{\\dagger} A^{\\dagger} C^{\\dagger} + \\left(B^{\\dagger}\\right)^{2} A^{\\dagger} + C^{\\dagger} B^{\\dagger} A^{\\dagger}$$" |
|
|||
425 | ], |
|
|||
426 | "output_type": "pyout", |
|
|||
427 | "png": "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\n", |
|
|||
428 | "prompt_number": 15, |
|
|||
429 | "text": [ |
|
|||
430 | "\n", |
|
|||
431 | " 2 \n", |
|
|||
432 | " \u2020 \u2020 \u2020 \u2020 \u2020 \u2020 \u239b \u2020\u239e \u2020 \u2020 \u2020 \u2020\n", |
|
|||
433 | "- B \u22c5A \u22c5B - B \u22c5A \u22c5C + \u239dB \u23a0 \u22c5A + C \u22c5B \u22c5A " |
|
|||
434 | ] |
|
|||
435 | } |
|
|||
436 | ], |
|
|||
437 | "prompt_number": 15 |
|
|||
438 | } |
|
434 | } | |
439 | ], |
|
435 | ], | |
440 | "metadata": {} |
|
436 | "metadata": {} |
1 | NO CONTENT: file renamed from examples/notebooks/00_notebook_tour.ipynb to examples/notebooks/Part 5 - Rich Display System.ipynb |
|
NO CONTENT: file renamed from examples/notebooks/00_notebook_tour.ipynb to examples/notebooks/Part 5 - Rich Display System.ipynb | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file renamed from examples/notebooks/rmagic_extension.ipynb to examples/notebooks/R Magics.ipynb |
|
NO CONTENT: file renamed from examples/notebooks/rmagic_extension.ipynb to examples/notebooks/R Magics.ipynb | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file renamed from examples/notebooks/sympy.ipynb to examples/notebooks/SymPy Examples.ipynb |
|
NO CONTENT: file renamed from examples/notebooks/sympy.ipynb to examples/notebooks/SymPy Examples.ipynb | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file renamed from examples/notebooks/trapezoid_rule.ipynb to examples/notebooks/Trapezoid Rule.ipynb |
|
NO CONTENT: file renamed from examples/notebooks/trapezoid_rule.ipynb to examples/notebooks/Trapezoid Rule.ipynb | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
This diff has been collapsed as it changes many lines, (602 lines changed) Show them Hide them |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
General Comments 0
You need to be logged in to leave comments.
Login now