##// END OF EJS Templates
Updating example notebooks to v3 format.
Brian Granger -
Show More
This diff has been collapsed as it changes many lines, (1330 lines changed) Show them Hide them
@@ -1,959 +1,959 b''
1 {
1 {
2 "metadata": {
2 "metadata": {
3 "name": "00_notebook_tour"
3 "name": "00_notebook_tour"
4 },
4 },
5 "nbformat": 2,
5 "nbformat": 3,
6 "worksheets": [
6 "worksheets": [
7 {
7 {
8 "cells": [
8 "cells": [
9 {
9 {
10 "cell_type": "markdown",
10 "cell_type": "markdown",
11 "source": [
11 "source": [
12 "# A brief tour of the IPython notebook",
12 "# A brief tour of the IPython notebook",
13 "",
13 "",
14 "This document will give you a brief tour of the capabilities of the IPython notebook. ",
14 "This document will give you a brief tour of the capabilities of the IPython notebook. ",
15 "You can view its contents by scrolling around, or execute each cell by typing `Shift-Enter`.",
15 "You can view its contents by scrolling around, or execute each cell by typing `Shift-Enter`.",
16 "After you conclude this brief high-level tour, you should read the accompanying notebook ",
16 "After you conclude this brief high-level tour, you should read the accompanying notebook ",
17 "titled `01_notebook_introduction`, which takes a more step-by-step approach to the features of the",
17 "titled `01_notebook_introduction`, which takes a more step-by-step approach to the features of the",
18 "system. ",
18 "system. ",
19 "",
19 "",
20 "The rest of the notebooks in this directory illustrate various other aspects and ",
20 "The rest of the notebooks in this directory illustrate various other aspects and ",
21 "capabilities of the IPython notebook; some of them may require additional libraries to be executed.",
21 "capabilities of the IPython notebook; some of them may require additional libraries to be executed.",
22 "",
22 "",
23 "**NOTE:** This notebook *must* be run from its own directory, so you must ``cd``",
23 "**NOTE:** This notebook *must* be run from its own directory, so you must ``cd``",
24 "to this directory and then start the notebook, but do *not* use the ``--notebook-dir``",
24 "to this directory and then start the notebook, but do *not* use the ``--notebook-dir``",
25 "option to run it from another location.",
25 "option to run it from another location.",
26 "",
26 "",
27 "The first thing you need to know is that you are still controlling the same old IPython you're used to,",
27 "The first thing you need to know is that you are still controlling the same old IPython you're used to,",
28 "so things like shell aliases and magic commands still work:"
28 "so things like shell aliases and magic commands still work:"
29 ]
29 ]
30 },
30 },
31 {
31 {
32 "cell_type": "code",
32 "cell_type": "code",
33 "collapsed": false,
33 "collapsed": false,
34 "input": [
34 "input": [
35 "pwd"
35 "pwd"
36 ],
36 ],
37 "language": "python",
37 "language": "python",
38 "outputs": [
38 "outputs": [
39 {
39 {
40 "output_type": "pyout",
40 "output_type": "pyout",
41 "prompt_number": 1,
41 "prompt_number": 1,
42 "text": [
42 "text": [
43 "u'/home/fperez/ipython/ipython/docs/examples/notebooks'"
43 "u'/home/fperez/ipython/ipython/docs/examples/notebooks'"
44 ]
44 ]
45 }
45 }
46 ],
46 ],
47 "prompt_number": 1
47 "prompt_number": 1
48 },
48 },
49 {
49 {
50 "cell_type": "code",
50 "cell_type": "code",
51 "collapsed": false,
51 "collapsed": false,
52 "input": [
52 "input": [
53 "ls"
53 "ls"
54 ],
54 ],
55 "language": "python",
55 "language": "python",
56 "outputs": [
56 "outputs": [
57 {
57 {
58 "output_type": "stream",
58 "output_type": "stream",
59 "stream": "stdout",
59 "stream": "stdout",
60 "text": [
60 "text": [
61 "00_notebook_tour.ipynb python-logo.svg",
61 "00_notebook_tour.ipynb python-logo.svg",
62 "01_notebook_introduction.ipynb sympy.ipynb",
62 "01_notebook_introduction.ipynb sympy.ipynb",
63 "animation.m4v sympy_quantum_computing.ipynb",
63 "animation.m4v sympy_quantum_computing.ipynb",
64 "display_protocol.ipynb trapezoid_rule.ipynb",
64 "display_protocol.ipynb trapezoid_rule.ipynb",
65 "formatting.ipynb"
65 "formatting.ipynb"
66 ]
66 ]
67 }
67 }
68 ],
68 ],
69 "prompt_number": 2
69 "prompt_number": 2
70 },
70 },
71 {
71 {
72 "cell_type": "code",
72 "cell_type": "code",
73 "collapsed": false,
73 "collapsed": false,
74 "input": [
74 "input": [
75 "message = 'The IPython notebook is great!'",
75 "message = 'The IPython notebook is great!'",
76 "# note: the echo command does not run on Windows, it's a unix command.",
76 "# note: the echo command does not run on Windows, it's a unix command.",
77 "!echo $message"
77 "!echo $message"
78 ],
78 ],
79 "language": "python",
79 "language": "python",
80 "outputs": [
80 "outputs": [
81 {
81 {
82 "output_type": "stream",
82 "output_type": "stream",
83 "stream": "stdout",
83 "stream": "stdout",
84 "text": [
84 "text": [
85 "The IPython notebook is great!"
85 "The IPython notebook is great!"
86 ]
86 ]
87 }
87 }
88 ],
88 ],
89 "prompt_number": 3
89 "prompt_number": 3
90 },
90 },
91 {
91 {
92 "cell_type": "markdown",
92 "cell_type": "markdown",
93 "source": [
93 "source": [
94 "Plots with matplotlib: do *not* execute the next below if you do not have matplotlib installed or didn't start up ",
94 "Plots with matplotlib: do *not* execute the next below if you do not have matplotlib installed or didn't start up ",
95 "this notebook with the `--pylab` option, as the code will not work."
95 "this notebook with the `--pylab` option, as the code will not work."
96 ]
96 ]
97 },
97 },
98 {
98 {
99 "cell_type": "code",
99 "cell_type": "code",
100 "collapsed": false,
100 "collapsed": false,
101 "input": [
101 "input": [
102 "x = linspace(0, 3*pi, 500)",
102 "x = linspace(0, 3*pi, 500)",
103 "plot(x, sin(x**2))",
103 "plot(x, sin(x**2))",
104 "title('A simple chirp');"
104 "title('A simple chirp');"
105 ],
105 ],
106 "language": "python",
106 "language": "python",
107 "outputs": [
107 "outputs": [
108 {
108 {
109 "output_type": "display_data",
109 "output_type": "display_data",
110 "png": "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\n"
110 "png": "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\n"
111 }
111 }
112 ],
112 ],
113 "prompt_number": 4
113 "prompt_number": 4
114 },
114 },
115 {
115 {
116 "cell_type": "markdown",
116 "cell_type": "markdown",
117 "source": [
117 "source": [
118 "You can paste blocks of input with prompt markers, such as those from",
118 "You can paste blocks of input with prompt markers, such as those from",
119 "[the official Python tutorial](http://docs.python.org/tutorial/interpreter.html#interactive-mode)"
119 "[the official Python tutorial](http://docs.python.org/tutorial/interpreter.html#interactive-mode)"
120 ]
120 ]
121 },
121 },
122 {
122 {
123 "cell_type": "code",
123 "cell_type": "code",
124 "collapsed": false,
124 "collapsed": false,
125 "input": [
125 "input": [
126 ">>> the_world_is_flat = 1",
126 ">>> the_world_is_flat = 1",
127 ">>> if the_world_is_flat:",
127 ">>> if the_world_is_flat:",
128 "... print \"Be careful not to fall off!\""
128 "... print \"Be careful not to fall off!\""
129 ],
129 ],
130 "language": "python",
130 "language": "python",
131 "outputs": [
131 "outputs": [
132 {
132 {
133 "output_type": "stream",
133 "output_type": "stream",
134 "stream": "stdout",
134 "stream": "stdout",
135 "text": [
135 "text": [
136 "Be careful not to fall off!"
136 "Be careful not to fall off!"
137 ]
137 ]
138 }
138 }
139 ],
139 ],
140 "prompt_number": 5
140 "prompt_number": 5
141 },
141 },
142 {
142 {
143 "cell_type": "markdown",
143 "cell_type": "markdown",
144 "source": [
144 "source": [
145 "Errors are shown in informative ways:"
145 "Errors are shown in informative ways:"
146 ]
146 ]
147 },
147 },
148 {
148 {
149 "cell_type": "code",
149 "cell_type": "code",
150 "collapsed": false,
150 "collapsed": false,
151 "input": [
151 "input": [
152 "%run non_existent_file"
152 "%run non_existent_file"
153 ],
153 ],
154 "language": "python",
154 "language": "python",
155 "outputs": [
155 "outputs": [
156 {
156 {
157 "output_type": "stream",
157 "output_type": "stream",
158 "stream": "stderr",
158 "stream": "stderr",
159 "text": [
159 "text": [
160 "ERROR: File `non_existent_file.py` not found."
160 "ERROR: File `non_existent_file.py` not found."
161 ]
161 ]
162 }
162 }
163 ],
163 ],
164 "prompt_number": 6
164 "prompt_number": 6
165 },
165 },
166 {
166 {
167 "cell_type": "code",
167 "cell_type": "code",
168 "collapsed": false,
168 "collapsed": false,
169 "input": [
169 "input": [
170 "x = 1",
170 "x = 1",
171 "y = 4",
171 "y = 4",
172 "z = y/(1-x)"
172 "z = y/(1-x)"
173 ],
173 ],
174 "language": "python",
174 "language": "python",
175 "outputs": [
175 "outputs": [
176 {
176 {
177 "ename": "ZeroDivisionError",
177 "ename": "ZeroDivisionError",
178 "evalue": "integer division or modulo by zero",
178 "evalue": "integer division or modulo by zero",
179 "output_type": "pyerr",
179 "output_type": "pyerr",
180 "traceback": [
180 "traceback": [
181 "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mZeroDivisionError\u001b[0m Traceback (most recent call last)",
181 "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mZeroDivisionError\u001b[0m Traceback (most recent call last)",
182 "\u001b[0;32m/home/fperez/ipython/ipython/docs/examples/notebooks/<ipython-input-7-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",
182 "\u001b[0;32m/home/fperez/ipython/ipython/docs/examples/notebooks/<ipython-input-7-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",
183 "\u001b[0;31mZeroDivisionError\u001b[0m: integer division or modulo by zero"
183 "\u001b[0;31mZeroDivisionError\u001b[0m: integer division or modulo by zero"
184 ]
184 ]
185 }
185 }
186 ],
186 ],
187 "prompt_number": 7
187 "prompt_number": 7
188 },
188 },
189 {
189 {
190 "cell_type": "markdown",
190 "cell_type": "markdown",
191 "source": [
191 "source": [
192 "When IPython needs to display additional information (such as providing details on an object via `x?`",
192 "When IPython needs to display additional information (such as providing details on an object via `x?`",
193 "it will automatically invoke a pager at the bottom of the screen:"
193 "it will automatically invoke a pager at the bottom of the screen:"
194 ]
194 ]
195 },
195 },
196 {
196 {
197 "cell_type": "code",
197 "cell_type": "code",
198 "collapsed": true,
198 "collapsed": true,
199 "input": [
199 "input": [
200 "magic"
200 "magic"
201 ],
201 ],
202 "language": "python",
202 "language": "python",
203 "outputs": [],
203 "outputs": [],
204 "prompt_number": 8
204 "prompt_number": 8
205 },
205 },
206 {
206 {
207 "cell_type": "markdown",
207 "cell_type": "markdown",
208 "source": [
208 "source": [
209 "## Non-blocking output of kernel",
209 "## Non-blocking output of kernel",
210 "",
210 "",
211 "If you execute the next cell, you will see the output arriving as it is generated, not all at the end."
211 "If you execute the next cell, you will see the output arriving as it is generated, not all at the end."
212 ]
212 ]
213 },
213 },
214 {
214 {
215 "cell_type": "code",
215 "cell_type": "code",
216 "collapsed": false,
216 "collapsed": false,
217 "input": [
217 "input": [
218 "import time, sys",
218 "import time, sys",
219 "for i in range(8):",
219 "for i in range(8):",
220 " print i,",
220 " print i,",
221 " time.sleep(0.5)"
221 " time.sleep(0.5)"
222 ],
222 ],
223 "language": "python",
223 "language": "python",
224 "outputs": [
224 "outputs": [
225 {
225 {
226 "output_type": "stream",
226 "output_type": "stream",
227 "stream": "stdout",
227 "stream": "stdout",
228 "text": [
228 "text": [
229 "0 "
229 "0 "
230 ]
230 ]
231 },
231 },
232 {
232 {
233 "output_type": "stream",
233 "output_type": "stream",
234 "stream": "stdout",
234 "stream": "stdout",
235 "text": [
235 "text": [
236 "1 "
236 "1 "
237 ]
237 ]
238 },
238 },
239 {
239 {
240 "output_type": "stream",
240 "output_type": "stream",
241 "stream": "stdout",
241 "stream": "stdout",
242 "text": [
242 "text": [
243 "2 "
243 "2 "
244 ]
244 ]
245 },
245 },
246 {
246 {
247 "output_type": "stream",
247 "output_type": "stream",
248 "stream": "stdout",
248 "stream": "stdout",
249 "text": [
249 "text": [
250 "3 "
250 "3 "
251 ]
251 ]
252 },
252 },
253 {
253 {
254 "output_type": "stream",
254 "output_type": "stream",
255 "stream": "stdout",
255 "stream": "stdout",
256 "text": [
256 "text": [
257 "4 "
257 "4 "
258 ]
258 ]
259 },
259 },
260 {
260 {
261 "output_type": "stream",
261 "output_type": "stream",
262 "stream": "stdout",
262 "stream": "stdout",
263 "text": [
263 "text": [
264 "5 "
264 "5 "
265 ]
265 ]
266 },
266 },
267 {
267 {
268 "output_type": "stream",
268 "output_type": "stream",
269 "stream": "stdout",
269 "stream": "stdout",
270 "text": [
270 "text": [
271 "6 "
271 "6 "
272 ]
272 ]
273 },
273 },
274 {
274 {
275 "output_type": "stream",
275 "output_type": "stream",
276 "stream": "stdout",
276 "stream": "stdout",
277 "text": [
277 "text": [
278 "7"
278 "7"
279 ]
279 ]
280 }
280 }
281 ],
281 ],
282 "prompt_number": 9
282 "prompt_number": 9
283 },
283 },
284 {
284 {
285 "cell_type": "markdown",
285 "cell_type": "markdown",
286 "source": [
286 "source": [
287 "## Clean crash and restart",
287 "## Clean crash and restart",
288 "",
288 "",
289 "We call the low-level system libc.time routine with the wrong argument via",
289 "We call the low-level system libc.time routine with the wrong argument via",
290 "ctypes to segfault the Python interpreter:"
290 "ctypes to segfault the Python interpreter:"
291 ]
291 ]
292 },
292 },
293 {
293 {
294 "cell_type": "code",
294 "cell_type": "code",
295 "collapsed": true,
295 "collapsed": true,
296 "input": [
296 "input": [
297 "from ctypes import CDLL",
297 "from ctypes import CDLL",
298 "# This will crash a linux system; equivalent calls can be made on Windows or Mac",
298 "# This will crash a linux system; equivalent calls can be made on Windows or Mac",
299 "libc = CDLL(\"libc.so.6\") ",
299 "libc = CDLL(\"libc.so.6\") ",
300 "libc.time(-1) # BOOM!!"
300 "libc.time(-1) # BOOM!!"
301 ],
301 ],
302 "language": "python",
302 "language": "python",
303 "outputs": [],
303 "outputs": [],
304 "prompt_number": "*"
304 "prompt_number": "*"
305 },
305 },
306 {
306 {
307 "cell_type": "markdown",
307 "cell_type": "markdown",
308 "source": [
308 "source": [
309 "## Markdown cells can contain formatted text and code",
309 "## Markdown cells can contain formatted text and code",
310 "",
310 "",
311 "You can *italicize*, **boldface**",
311 "You can *italicize*, **boldface**",
312 "",
312 "",
313 "* build",
313 "* build",
314 "* lists",
314 "* lists",
315 "",
315 "",
316 "and embed code meant for illustration instead of execution in Python:",
316 "and embed code meant for illustration instead of execution in Python:",
317 "",
317 "",
318 " def f(x):",
318 " def f(x):",
319 " \"\"\"a docstring\"\"\"",
319 " \"\"\"a docstring\"\"\"",
320 " return x**2",
320 " return x**2",
321 "",
321 "",
322 "or other languages:",
322 "or other languages:",
323 "",
323 "",
324 " if (i=0; i<n; i++) {",
324 " if (i=0; i<n; i++) {",
325 " printf(\"hello %d\\n\", i);",
325 " printf(\"hello %d\\n\", i);",
326 " x += 4;",
326 " x += 4;",
327 " }"
327 " }"
328 ]
328 ]
329 },
329 },
330 {
330 {
331 "cell_type": "markdown",
331 "cell_type": "markdown",
332 "source": [
332 "source": [
333 "Courtesy of MathJax, you can include mathematical expressions both inline: ",
333 "Courtesy of MathJax, you can include mathematical expressions both inline: ",
334 "$e^{i\\pi} + 1 = 0$ and displayed:",
334 "$e^{i\\pi} + 1 = 0$ and displayed:",
335 "",
335 "",
336 "$$e^x=\\sum_{i=0}^\\infty \\frac{1}{i!}x^i$$"
336 "$$e^x=\\sum_{i=0}^\\infty \\frac{1}{i!}x^i$$"
337 ]
337 ]
338 },
338 },
339 {
339 {
340 "cell_type": "markdown",
340 "cell_type": "markdown",
341 "source": [
341 "source": [
342 "## Rich displays: include anyting a browser can show",
342 "## Rich displays: include anyting a browser can show",
343 "",
343 "",
344 "Note that we have an actual protocol for this, see the `display_protocol` notebook for further details.",
344 "Note that we have an actual protocol for this, see the `display_protocol` notebook for further details.",
345 "",
345 "",
346 "### Images"
346 "### Images"
347 ]
347 ]
348 },
348 },
349 {
349 {
350 "cell_type": "code",
350 "cell_type": "code",
351 "collapsed": false,
351 "collapsed": false,
352 "input": [
352 "input": [
353 "from IPython.core.display import Image",
353 "from IPython.core.display import Image",
354 "Image(filename='../../source/_static/logo.png')"
354 "Image(filename='../../source/_static/logo.png')"
355 ],
355 ],
356 "language": "python",
356 "language": "python",
357 "outputs": [
357 "outputs": [
358 {
358 {
359 "output_type": "pyout",
359 "output_type": "pyout",
360 "png": "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\n",
360 "png": "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\n",
361 "prompt_number": 1,
361 "prompt_number": 1,
362 "text": [
362 "text": [
363 "&lt;IPython.core.display.Image at 0x41d4690&gt;"
363 "&lt;IPython.core.display.Image at 0x41d4690&gt;"
364 ]
364 ]
365 }
365 }
366 ],
366 ],
367 "prompt_number": 1
367 "prompt_number": 1
368 },
368 },
369 {
369 {
370 "cell_type": "markdown",
370 "cell_type": "markdown",
371 "source": [
371 "source": [
372 "An image can also be displayed from raw data or a url"
372 "An image can also be displayed from raw data or a url"
373 ]
373 ]
374 },
374 },
375 {
375 {
376 "cell_type": "code",
376 "cell_type": "code",
377 "collapsed": false,
377 "collapsed": false,
378 "input": [
378 "input": [
379 "Image('http://python.org/images/python-logo.gif')"
379 "Image('http://python.org/images/python-logo.gif')"
380 ],
380 ],
381 "language": "python",
381 "language": "python",
382 "outputs": [
382 "outputs": [
383 {
383 {
384 "html": [
384 "html": [
385 "<img src=\"http://python.org/images/python-logo.gif\" />"
385 "<img src=\"http://python.org/images/python-logo.gif\" />"
386 ],
386 ],
387 "output_type": "pyout",
387 "output_type": "pyout",
388 "prompt_number": 2,
388 "prompt_number": 2,
389 "text": [
389 "text": [
390 "&lt;IPython.core.display.Image at 0x41d4550&gt;"
390 "&lt;IPython.core.display.Image at 0x41d4550&gt;"
391 ]
391 ]
392 }
392 }
393 ],
393 ],
394 "prompt_number": 2
394 "prompt_number": 2
395 },
395 },
396 {
396 {
397 "cell_type": "markdown",
397 "cell_type": "markdown",
398 "source": [
398 "source": [
399 "SVG images are also supported out of the box (since modern browsers do a good job of rendering them):"
399 "SVG images are also supported out of the box (since modern browsers do a good job of rendering them):"
400 ]
400 ]
401 },
401 },
402 {
402 {
403 "cell_type": "code",
403 "cell_type": "code",
404 "collapsed": false,
404 "collapsed": false,
405 "input": [
405 "input": [
406 "from IPython.core.display import SVG",
406 "from IPython.core.display import SVG",
407 "SVG(filename='python-logo.svg')"
407 "SVG(filename='python-logo.svg')"
408 ],
408 ],
409 "language": "python",
409 "language": "python",
410 "outputs": [
410 "outputs": [
411 {
411 {
412 "output_type": "pyout",
412 "output_type": "pyout",
413 "prompt_number": 3,
413 "prompt_number": 3,
414 "svg": [
414 "svg": [
415 "<svg height=\"115.02pt\" id=\"svg2\" inkscape:version=\"0.43\" sodipodi:docbase=\"/home/sdeibel\" sodipodi:docname=\"logo-python-generic.svg\" sodipodi:version=\"0.32\" version=\"1.0\" width=\"388.84pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:cc=\"http://web.resource.org/cc/\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns:sodipodi=\"http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd\" xmlns:svg=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">",
415 "<svg height=\"115.02pt\" id=\"svg2\" inkscape:version=\"0.43\" sodipodi:docbase=\"/home/sdeibel\" sodipodi:docname=\"logo-python-generic.svg\" sodipodi:version=\"0.32\" version=\"1.0\" width=\"388.84pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:cc=\"http://web.resource.org/cc/\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns:sodipodi=\"http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd\" xmlns:svg=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">",
416 " <metadata id=\"metadata2193\">",
416 " <metadata id=\"metadata2193\">",
417 " <rdf:RDF>",
417 " <rdf:RDF>",
418 " <cc:Work rdf:about=\"\">",
418 " <cc:Work rdf:about=\"\">",
419 " <dc:format>image/svg+xml</dc:format>",
419 " <dc:format>image/svg+xml</dc:format>",
420 " <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>",
420 " <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>",
421 " </cc:Work>",
421 " </cc:Work>",
422 " </rdf:RDF>",
422 " </rdf:RDF>",
423 " </metadata>",
423 " </metadata>",
424 " <sodipodi:namedview bordercolor=\"#666666\" borderopacity=\"1.0\" id=\"base\" inkscape:current-layer=\"svg2\" inkscape:cx=\"243.02499\" inkscape:cy=\"71.887497\" inkscape:pageopacity=\"0.0\" inkscape:pageshadow=\"2\" inkscape:window-height=\"543\" inkscape:window-width=\"791\" inkscape:window-x=\"0\" inkscape:window-y=\"0\" inkscape:zoom=\"1.4340089\" pagecolor=\"#ffffff\"/>",
424 " <sodipodi:namedview bordercolor=\"#666666\" borderopacity=\"1.0\" id=\"base\" inkscape:current-layer=\"svg2\" inkscape:cx=\"243.02499\" inkscape:cy=\"71.887497\" inkscape:pageopacity=\"0.0\" inkscape:pageshadow=\"2\" inkscape:window-height=\"543\" inkscape:window-width=\"791\" inkscape:window-x=\"0\" inkscape:window-y=\"0\" inkscape:zoom=\"1.4340089\" pagecolor=\"#ffffff\"/>",
425 " <defs id=\"defs4\">",
425 " <defs id=\"defs4\">",
426 " <linearGradient id=\"linearGradient2795\">",
426 " <linearGradient id=\"linearGradient2795\">",
427 " <stop id=\"stop2797\" offset=\"0\" style=\"stop-color:#b8b8b8;stop-opacity:0.49803922\"/>",
427 " <stop id=\"stop2797\" offset=\"0\" style=\"stop-color:#b8b8b8;stop-opacity:0.49803922\"/>",
428 " <stop id=\"stop2799\" offset=\"1\" style=\"stop-color:#7f7f7f;stop-opacity:0\"/>",
428 " <stop id=\"stop2799\" offset=\"1\" style=\"stop-color:#7f7f7f;stop-opacity:0\"/>",
429 " </linearGradient>",
429 " </linearGradient>",
430 " <linearGradient id=\"linearGradient2787\">",
430 " <linearGradient id=\"linearGradient2787\">",
431 " <stop id=\"stop2789\" offset=\"0\" style=\"stop-color:#7f7f7f;stop-opacity:0.5\"/>",
431 " <stop id=\"stop2789\" offset=\"0\" style=\"stop-color:#7f7f7f;stop-opacity:0.5\"/>",
432 " <stop id=\"stop2791\" offset=\"1\" style=\"stop-color:#7f7f7f;stop-opacity:0\"/>",
432 " <stop id=\"stop2791\" offset=\"1\" style=\"stop-color:#7f7f7f;stop-opacity:0\"/>",
433 " </linearGradient>",
433 " </linearGradient>",
434 " <linearGradient id=\"linearGradient3676\">",
434 " <linearGradient id=\"linearGradient3676\">",
435 " <stop id=\"stop3678\" offset=\"0\" style=\"stop-color:#b2b2b2;stop-opacity:0.5\"/>",
435 " <stop id=\"stop3678\" offset=\"0\" style=\"stop-color:#b2b2b2;stop-opacity:0.5\"/>",
436 " <stop id=\"stop3680\" offset=\"1\" style=\"stop-color:#b3b3b3;stop-opacity:0\"/>",
436 " <stop id=\"stop3680\" offset=\"1\" style=\"stop-color:#b3b3b3;stop-opacity:0\"/>",
437 " </linearGradient>",
437 " </linearGradient>",
438 " <linearGradient id=\"linearGradient3236\">",
438 " <linearGradient id=\"linearGradient3236\">",
439 " <stop id=\"stop3244\" offset=\"0\" style=\"stop-color:#f4f4f4;stop-opacity:1\"/>",
439 " <stop id=\"stop3244\" offset=\"0\" style=\"stop-color:#f4f4f4;stop-opacity:1\"/>",
440 " <stop id=\"stop3240\" offset=\"1\" style=\"stop-color:#ffffff;stop-opacity:1\"/>",
440 " <stop id=\"stop3240\" offset=\"1\" style=\"stop-color:#ffffff;stop-opacity:1\"/>",
441 " </linearGradient>",
441 " </linearGradient>",
442 " <linearGradient id=\"linearGradient4671\">",
442 " <linearGradient id=\"linearGradient4671\">",
443 " <stop id=\"stop4673\" offset=\"0\" style=\"stop-color:#ffd43b;stop-opacity:1\"/>",
443 " <stop id=\"stop4673\" offset=\"0\" style=\"stop-color:#ffd43b;stop-opacity:1\"/>",
444 " <stop id=\"stop4675\" offset=\"1\" style=\"stop-color:#ffe873;stop-opacity:1\"/>",
444 " <stop id=\"stop4675\" offset=\"1\" style=\"stop-color:#ffe873;stop-opacity:1\"/>",
445 " </linearGradient>",
445 " </linearGradient>",
446 " <linearGradient id=\"linearGradient4689\">",
446 " <linearGradient id=\"linearGradient4689\">",
447 " <stop id=\"stop4691\" offset=\"0\" style=\"stop-color:#5a9fd4;stop-opacity:1\"/>",
447 " <stop id=\"stop4691\" offset=\"0\" style=\"stop-color:#5a9fd4;stop-opacity:1\"/>",
448 " <stop id=\"stop4693\" offset=\"1\" style=\"stop-color:#306998;stop-opacity:1\"/>",
448 " <stop id=\"stop4693\" offset=\"1\" style=\"stop-color:#306998;stop-opacity:1\"/>",
449 " </linearGradient>",
449 " </linearGradient>",
450 " <linearGradient gradientTransform=\"translate(100.2702,99.61116)\" gradientUnits=\"userSpaceOnUse\" id=\"linearGradient2987\" x1=\"224.23996\" x2=\"-65.308502\" xlink:href=\"#linearGradient4671\" y1=\"144.75717\" y2=\"144.75717\"/>",
450 " <linearGradient gradientTransform=\"translate(100.2702,99.61116)\" gradientUnits=\"userSpaceOnUse\" id=\"linearGradient2987\" x1=\"224.23996\" x2=\"-65.308502\" xlink:href=\"#linearGradient4671\" y1=\"144.75717\" y2=\"144.75717\"/>",
451 " <linearGradient gradientTransform=\"translate(100.2702,99.61116)\" gradientUnits=\"userSpaceOnUse\" id=\"linearGradient2990\" x1=\"172.94208\" x2=\"26.670298\" xlink:href=\"#linearGradient4689\" y1=\"77.475983\" y2=\"76.313133\"/>",
451 " <linearGradient gradientTransform=\"translate(100.2702,99.61116)\" gradientUnits=\"userSpaceOnUse\" id=\"linearGradient2990\" x1=\"172.94208\" x2=\"26.670298\" xlink:href=\"#linearGradient4689\" y1=\"77.475983\" y2=\"76.313133\"/>",
452 " <linearGradient gradientTransform=\"translate(100.2702,99.61116)\" gradientUnits=\"userSpaceOnUse\" id=\"linearGradient2587\" x1=\"172.94208\" x2=\"26.670298\" xlink:href=\"#linearGradient4689\" y1=\"77.475983\" y2=\"76.313133\"/>",
452 " <linearGradient gradientTransform=\"translate(100.2702,99.61116)\" gradientUnits=\"userSpaceOnUse\" id=\"linearGradient2587\" x1=\"172.94208\" x2=\"26.670298\" xlink:href=\"#linearGradient4689\" y1=\"77.475983\" y2=\"76.313133\"/>",
453 " <linearGradient gradientTransform=\"translate(100.2702,99.61116)\" gradientUnits=\"userSpaceOnUse\" id=\"linearGradient2589\" x1=\"224.23996\" x2=\"-65.308502\" xlink:href=\"#linearGradient4671\" y1=\"144.75717\" y2=\"144.75717\"/>",
453 " <linearGradient gradientTransform=\"translate(100.2702,99.61116)\" gradientUnits=\"userSpaceOnUse\" id=\"linearGradient2589\" x1=\"224.23996\" x2=\"-65.308502\" xlink:href=\"#linearGradient4671\" y1=\"144.75717\" y2=\"144.75717\"/>",
454 " <linearGradient gradientTransform=\"translate(100.2702,99.61116)\" gradientUnits=\"userSpaceOnUse\" id=\"linearGradient2248\" x1=\"172.94208\" x2=\"26.670298\" xlink:href=\"#linearGradient4689\" y1=\"77.475983\" y2=\"76.313133\"/>",
454 " <linearGradient gradientTransform=\"translate(100.2702,99.61116)\" gradientUnits=\"userSpaceOnUse\" id=\"linearGradient2248\" x1=\"172.94208\" x2=\"26.670298\" xlink:href=\"#linearGradient4689\" y1=\"77.475983\" y2=\"76.313133\"/>",
455 " <linearGradient gradientTransform=\"translate(100.2702,99.61116)\" gradientUnits=\"userSpaceOnUse\" id=\"linearGradient2250\" x1=\"224.23996\" x2=\"-65.308502\" xlink:href=\"#linearGradient4671\" y1=\"144.75717\" y2=\"144.75717\"/>",
455 " <linearGradient gradientTransform=\"translate(100.2702,99.61116)\" gradientUnits=\"userSpaceOnUse\" id=\"linearGradient2250\" x1=\"224.23996\" x2=\"-65.308502\" xlink:href=\"#linearGradient4671\" y1=\"144.75717\" y2=\"144.75717\"/>",
456 " <linearGradient gradientTransform=\"matrix(0.562541,0,0,0.567972,-11.5974,-7.60954)\" gradientUnits=\"userSpaceOnUse\" id=\"linearGradient2255\" x1=\"224.23996\" x2=\"-65.308502\" xlink:href=\"#linearGradient4671\" y1=\"144.75717\" y2=\"144.75717\"/>",
456 " <linearGradient gradientTransform=\"matrix(0.562541,0,0,0.567972,-11.5974,-7.60954)\" gradientUnits=\"userSpaceOnUse\" id=\"linearGradient2255\" x1=\"224.23996\" x2=\"-65.308502\" xlink:href=\"#linearGradient4671\" y1=\"144.75717\" y2=\"144.75717\"/>",
457 " <linearGradient gradientTransform=\"matrix(0.562541,0,0,0.567972,-11.5974,-7.60954)\" gradientUnits=\"userSpaceOnUse\" id=\"linearGradient2258\" x1=\"172.94208\" x2=\"26.670298\" xlink:href=\"#linearGradient4689\" y1=\"76.176224\" y2=\"76.313133\"/>",
457 " <linearGradient gradientTransform=\"matrix(0.562541,0,0,0.567972,-11.5974,-7.60954)\" gradientUnits=\"userSpaceOnUse\" id=\"linearGradient2258\" x1=\"172.94208\" x2=\"26.670298\" xlink:href=\"#linearGradient4689\" y1=\"76.176224\" y2=\"76.313133\"/>",
458 " <radialGradient cx=\"61.518883\" cy=\"132.28575\" fx=\"61.518883\" fy=\"132.28575\" gradientTransform=\"matrix(1,0,0,0.177966,0,108.7434)\" gradientUnits=\"userSpaceOnUse\" id=\"radialGradient2801\" r=\"29.036913\" xlink:href=\"#linearGradient2795\"/>",
458 " <radialGradient cx=\"61.518883\" cy=\"132.28575\" fx=\"61.518883\" fy=\"132.28575\" gradientTransform=\"matrix(1,0,0,0.177966,0,108.7434)\" gradientUnits=\"userSpaceOnUse\" id=\"radialGradient2801\" r=\"29.036913\" xlink:href=\"#linearGradient2795\"/>",
459 " <linearGradient gradientTransform=\"matrix(0.562541,0,0,0.567972,-9.399749,-5.305317)\" gradientUnits=\"userSpaceOnUse\" id=\"linearGradient1475\" x1=\"150.96111\" x2=\"112.03144\" xlink:href=\"#linearGradient4671\" y1=\"192.35176\" y2=\"137.27299\"/>",
459 " <linearGradient gradientTransform=\"matrix(0.562541,0,0,0.567972,-9.399749,-5.305317)\" gradientUnits=\"userSpaceOnUse\" id=\"linearGradient1475\" x1=\"150.96111\" x2=\"112.03144\" xlink:href=\"#linearGradient4671\" y1=\"192.35176\" y2=\"137.27299\"/>",
460 " <linearGradient gradientTransform=\"matrix(0.562541,0,0,0.567972,-9.399749,-5.305317)\" gradientUnits=\"userSpaceOnUse\" id=\"linearGradient1478\" x1=\"26.648937\" x2=\"135.66525\" xlink:href=\"#linearGradient4689\" y1=\"20.603781\" y2=\"114.39767\"/>",
460 " <linearGradient gradientTransform=\"matrix(0.562541,0,0,0.567972,-9.399749,-5.305317)\" gradientUnits=\"userSpaceOnUse\" id=\"linearGradient1478\" x1=\"26.648937\" x2=\"135.66525\" xlink:href=\"#linearGradient4689\" y1=\"20.603781\" y2=\"114.39767\"/>",
461 " <radialGradient cx=\"61.518883\" cy=\"132.28575\" fx=\"61.518883\" fy=\"132.28575\" gradientTransform=\"matrix(2.382716e-8,-0.296405,1.43676,4.683673e-7,-128.544,150.5202)\" gradientUnits=\"userSpaceOnUse\" id=\"radialGradient1480\" r=\"29.036913\" xlink:href=\"#linearGradient2795\"/>",
461 " <radialGradient cx=\"61.518883\" cy=\"132.28575\" fx=\"61.518883\" fy=\"132.28575\" gradientTransform=\"matrix(2.382716e-8,-0.296405,1.43676,4.683673e-7,-128.544,150.5202)\" gradientUnits=\"userSpaceOnUse\" id=\"radialGradient1480\" r=\"29.036913\" xlink:href=\"#linearGradient2795\"/>",
462 " </defs>",
462 " </defs>",
463 " <g id=\"g2303\">",
463 " <g id=\"g2303\">",
464 " <path d=\"M 184.61344,61.929363 C 184.61344,47.367213 180.46118,39.891193 172.15666,39.481813 C 168.85239,39.325863 165.62611,39.852203 162.48754,41.070593 C 159.98254,41.967323 158.2963,42.854313 157.40931,43.751043 L 157.40931,78.509163 C 162.72147,81.842673 167.43907,83.392453 171.55234,83.148783 C 180.25649,82.573703 184.61344,75.507063 184.61344,61.929363 z M 194.85763,62.533683 C 194.85763,69.931723 193.12265,76.072393 189.63319,80.955683 C 185.7441,86.482283 180.35396,89.328433 173.46277,89.484393 C 168.26757,89.650093 162.91642,88.022323 157.40931,84.610843 L 157.40931,116.20116 L 148.50047,113.02361 L 148.50047,42.903043 C 149.96253,41.109583 151.84372,39.569543 154.12454,38.263433 C 159.42696,35.173603 165.86978,33.584823 173.45302,33.506853 L 173.57973,33.633563 C 180.50991,33.545833 185.85132,36.391993 189.60395,42.162263 C 193.10315,47.454933 194.85763,54.238913 194.85763,62.533683 z \" id=\"path46\" style=\"fill:#646464;fill-opacity:1\"/>",
464 " <path d=\"M 184.61344,61.929363 C 184.61344,47.367213 180.46118,39.891193 172.15666,39.481813 C 168.85239,39.325863 165.62611,39.852203 162.48754,41.070593 C 159.98254,41.967323 158.2963,42.854313 157.40931,43.751043 L 157.40931,78.509163 C 162.72147,81.842673 167.43907,83.392453 171.55234,83.148783 C 180.25649,82.573703 184.61344,75.507063 184.61344,61.929363 z M 194.85763,62.533683 C 194.85763,69.931723 193.12265,76.072393 189.63319,80.955683 C 185.7441,86.482283 180.35396,89.328433 173.46277,89.484393 C 168.26757,89.650093 162.91642,88.022323 157.40931,84.610843 L 157.40931,116.20116 L 148.50047,113.02361 L 148.50047,42.903043 C 149.96253,41.109583 151.84372,39.569543 154.12454,38.263433 C 159.42696,35.173603 165.86978,33.584823 173.45302,33.506853 L 173.57973,33.633563 C 180.50991,33.545833 185.85132,36.391993 189.60395,42.162263 C 193.10315,47.454933 194.85763,54.238913 194.85763,62.533683 z \" id=\"path46\" style=\"fill:#646464;fill-opacity:1\"/>",
465 " <path d=\"M 249.30487,83.265743 C 249.30487,93.188283 248.31067,100.05998 246.32227,103.88084 C 244.32411,107.7017 240.52275,110.75254 234.90842,113.02361 C 230.35653,114.81707 225.43425,115.79178 220.15133,115.95748 L 218.67952,110.34316 C 224.05016,109.61213 227.83204,108.88109 230.02513,108.15006 C 234.34309,106.688 237.30621,104.44617 238.93397,101.44406 C 240.24008,98.997543 240.88339,94.328693 240.88339,87.418003 L 240.88339,85.098203 C 234.79146,87.866373 228.40711,89.240713 221.73036,89.240713 C 217.34417,89.240713 213.47457,87.866373 210.14107,85.098203 C 206.39818,82.086343 204.52674,78.265483 204.52674,73.635623 L 204.52674,36.557693 L 213.43558,33.506853 L 213.43558,70.828453 C 213.43558,74.815013 214.7222,77.885353 217.29543,80.039463 C 219.86866,82.193563 223.20217,83.226753 227.2862,83.148783 C 231.37023,83.061053 235.74667,81.482023 240.39603,78.392203 L 240.39603,34.851953 L 249.30487,34.851953 L 249.30487,83.265743 z \" id=\"path48\" style=\"fill:#646464;fill-opacity:1\"/>",
465 " <path d=\"M 249.30487,83.265743 C 249.30487,93.188283 248.31067,100.05998 246.32227,103.88084 C 244.32411,107.7017 240.52275,110.75254 234.90842,113.02361 C 230.35653,114.81707 225.43425,115.79178 220.15133,115.95748 L 218.67952,110.34316 C 224.05016,109.61213 227.83204,108.88109 230.02513,108.15006 C 234.34309,106.688 237.30621,104.44617 238.93397,101.44406 C 240.24008,98.997543 240.88339,94.328693 240.88339,87.418003 L 240.88339,85.098203 C 234.79146,87.866373 228.40711,89.240713 221.73036,89.240713 C 217.34417,89.240713 213.47457,87.866373 210.14107,85.098203 C 206.39818,82.086343 204.52674,78.265483 204.52674,73.635623 L 204.52674,36.557693 L 213.43558,33.506853 L 213.43558,70.828453 C 213.43558,74.815013 214.7222,77.885353 217.29543,80.039463 C 219.86866,82.193563 223.20217,83.226753 227.2862,83.148783 C 231.37023,83.061053 235.74667,81.482023 240.39603,78.392203 L 240.39603,34.851953 L 249.30487,34.851953 L 249.30487,83.265743 z \" id=\"path48\" style=\"fill:#646464;fill-opacity:1\"/>",
466 " <path d=\"M 284.08249,88.997033 C 283.02006,89.084753 282.04535,89.123743 281.14862,89.123743 C 276.10937,89.123743 272.18129,87.924853 269.37413,85.517323 C 266.57671,83.109793 265.17314,79.786033 265.17314,75.546053 L 265.17314,40.456523 L 259.07146,40.456523 L 259.07146,34.851953 L 265.17314,34.851953 L 265.17314,19.968143 L 274.07223,16.800333 L 274.07223,34.851953 L 284.08249,34.851953 L 284.08249,40.456523 L 274.07223,40.456523 L 274.07223,75.302373 C 274.07223,78.645623 274.96896,81.014163 276.76243,82.398253 C 278.30247,83.538663 280.74899,84.191723 284.08249,84.357423 L 284.08249,88.997033 z \" id=\"path50\" style=\"fill:#646464;fill-opacity:1\"/>",
466 " <path d=\"M 284.08249,88.997033 C 283.02006,89.084753 282.04535,89.123743 281.14862,89.123743 C 276.10937,89.123743 272.18129,87.924853 269.37413,85.517323 C 266.57671,83.109793 265.17314,79.786033 265.17314,75.546053 L 265.17314,40.456523 L 259.07146,40.456523 L 259.07146,34.851953 L 265.17314,34.851953 L 265.17314,19.968143 L 274.07223,16.800333 L 274.07223,34.851953 L 284.08249,34.851953 L 284.08249,40.456523 L 274.07223,40.456523 L 274.07223,75.302373 C 274.07223,78.645623 274.96896,81.014163 276.76243,82.398253 C 278.30247,83.538663 280.74899,84.191723 284.08249,84.357423 L 284.08249,88.997033 z \" id=\"path50\" style=\"fill:#646464;fill-opacity:1\"/>",
467 " <path d=\"M 338.02288,88.266003 L 329.11404,88.266003 L 329.11404,53.878273 C 329.11404,50.379063 328.29528,47.367213 326.66753,44.852463 C 324.78634,42.006313 322.17411,40.583233 318.82112,40.583233 C 314.73708,40.583233 309.6296,42.737343 303.4987,47.045563 L 303.4987,88.266003 L 294.58985,88.266003 L 294.58985,6.0687929 L 303.4987,3.2616329 L 303.4987,40.700203 C 309.191,36.557693 315.40963,34.481563 322.16436,34.481563 C 326.88196,34.481563 330.70282,36.070333 333.62694,39.238143 C 336.56082,42.405943 338.02288,46.353513 338.02288,51.071103 L 338.02288,88.266003 L 338.02288,88.266003 z \" id=\"path52\" style=\"fill:#646464;fill-opacity:1\"/>",
467 " <path d=\"M 338.02288,88.266003 L 329.11404,88.266003 L 329.11404,53.878273 C 329.11404,50.379063 328.29528,47.367213 326.66753,44.852463 C 324.78634,42.006313 322.17411,40.583233 318.82112,40.583233 C 314.73708,40.583233 309.6296,42.737343 303.4987,47.045563 L 303.4987,88.266003 L 294.58985,88.266003 L 294.58985,6.0687929 L 303.4987,3.2616329 L 303.4987,40.700203 C 309.191,36.557693 315.40963,34.481563 322.16436,34.481563 C 326.88196,34.481563 330.70282,36.070333 333.62694,39.238143 C 336.56082,42.405943 338.02288,46.353513 338.02288,51.071103 L 338.02288,88.266003 L 338.02288,88.266003 z \" id=\"path52\" style=\"fill:#646464;fill-opacity:1\"/>",
468 " <path d=\"M 385.37424,60.525783 C 385.37424,54.930953 384.31182,50.310833 382.19669,46.655673 C 379.68195,42.201253 375.77337,39.852203 370.49044,39.608523 C 360.72386,40.173863 355.85032,47.172273 355.85032,60.584263 C 355.85032,66.734683 356.86401,71.871393 358.91089,75.994413 C 361.52312,81.248093 365.44145,83.840823 370.66589,83.753103 C 380.47146,83.675123 385.37424,75.935933 385.37424,60.525783 z M 395.13109,60.584263 C 395.13109,68.547643 393.09395,75.175663 389.02941,80.468333 C 384.5555,86.394563 378.37584,89.367423 370.49044,89.367423 C 362.67328,89.367423 356.58135,86.394563 352.18541,80.468333 C 348.19885,75.175663 346.21044,68.547643 346.21044,60.584263 C 346.21044,53.098503 348.36455,46.801883 352.67276,41.674913 C 357.22466,36.236033 363.20937,33.506853 370.6074,33.506853 C 378.00545,33.506853 384.02914,36.236033 388.66877,41.674913 C 392.97697,46.801883 395.13109,53.098503 395.13109,60.584263 z \" id=\"path54\" style=\"fill:#646464;fill-opacity:1\"/>",
468 " <path d=\"M 385.37424,60.525783 C 385.37424,54.930953 384.31182,50.310833 382.19669,46.655673 C 379.68195,42.201253 375.77337,39.852203 370.49044,39.608523 C 360.72386,40.173863 355.85032,47.172273 355.85032,60.584263 C 355.85032,66.734683 356.86401,71.871393 358.91089,75.994413 C 361.52312,81.248093 365.44145,83.840823 370.66589,83.753103 C 380.47146,83.675123 385.37424,75.935933 385.37424,60.525783 z M 395.13109,60.584263 C 395.13109,68.547643 393.09395,75.175663 389.02941,80.468333 C 384.5555,86.394563 378.37584,89.367423 370.49044,89.367423 C 362.67328,89.367423 356.58135,86.394563 352.18541,80.468333 C 348.19885,75.175663 346.21044,68.547643 346.21044,60.584263 C 346.21044,53.098503 348.36455,46.801883 352.67276,41.674913 C 357.22466,36.236033 363.20937,33.506853 370.6074,33.506853 C 378.00545,33.506853 384.02914,36.236033 388.66877,41.674913 C 392.97697,46.801883 395.13109,53.098503 395.13109,60.584263 z \" id=\"path54\" style=\"fill:#646464;fill-opacity:1\"/>",
469 " <path d=\"M 446.20583,88.266003 L 437.29699,88.266003 L 437.29699,51.928853 C 437.29699,47.942293 436.0981,44.832973 433.70032,42.591133 C 431.30253,40.359053 428.10549,39.277123 424.11893,39.364853 C 419.8887,39.442833 415.86314,40.826913 412.04229,43.507363 L 412.04229,88.266003 L 403.13345,88.266003 L 403.13345,42.405943 C 408.26042,38.672813 412.97801,36.236033 417.28621,35.095623 C 421.35076,34.033193 424.93769,33.506853 428.02752,33.506853 C 430.14264,33.506853 432.13104,33.711543 434.00248,34.120913 C 437.50169,34.929923 440.34783,36.430973 442.54093,38.633823 C 444.98744,41.070593 446.20583,43.994723 446.20583,47.415943 L 446.20583,88.266003 z \" id=\"path56\" style=\"fill:#646464;fill-opacity:1\"/>",
469 " <path d=\"M 446.20583,88.266003 L 437.29699,88.266003 L 437.29699,51.928853 C 437.29699,47.942293 436.0981,44.832973 433.70032,42.591133 C 431.30253,40.359053 428.10549,39.277123 424.11893,39.364853 C 419.8887,39.442833 415.86314,40.826913 412.04229,43.507363 L 412.04229,88.266003 L 403.13345,88.266003 L 403.13345,42.405943 C 408.26042,38.672813 412.97801,36.236033 417.28621,35.095623 C 421.35076,34.033193 424.93769,33.506853 428.02752,33.506853 C 430.14264,33.506853 432.13104,33.711543 434.00248,34.120913 C 437.50169,34.929923 440.34783,36.430973 442.54093,38.633823 C 444.98744,41.070593 446.20583,43.994723 446.20583,47.415943 L 446.20583,88.266003 z \" id=\"path56\" style=\"fill:#646464;fill-opacity:1\"/>",
470 " <path d=\"M 60.510156,6.3979729 C 55.926503,6.4192712 51.549217,6.8101906 47.697656,7.4917229 C 36.35144,9.4962267 34.291407,13.691825 34.291406,21.429223 L 34.291406,31.647973 L 61.103906,31.647973 L 61.103906,35.054223 L 34.291406,35.054223 L 24.228906,35.054223 C 16.436447,35.054223 9.6131468,39.73794 7.4789058,48.647973 C 5.0170858,58.860939 4.9078907,65.233996 7.4789058,75.897973 C 9.3848341,83.835825 13.936449,89.491721 21.728906,89.491723 L 30.947656,89.491723 L 30.947656,77.241723 C 30.947656,68.391821 38.6048,60.585475 47.697656,60.585473 L 74.478906,60.585473 C 81.933857,60.585473 87.885159,54.447309 87.885156,46.960473 L 87.885156,21.429223 C 87.885156,14.162884 81.755176,8.7044455 74.478906,7.4917229 C 69.872919,6.7249976 65.093809,6.3766746 60.510156,6.3979729 z M 46.010156,14.616723 C 48.779703,14.616723 51.041406,16.915369 51.041406,19.741723 C 51.041404,22.558059 48.779703,24.835473 46.010156,24.835473 C 43.23068,24.835472 40.978906,22.558058 40.978906,19.741723 C 40.978905,16.91537 43.23068,14.616723 46.010156,14.616723 z \" id=\"path1948\" style=\"fill:url(#linearGradient1478);fill-opacity:1\"/>",
470 " <path d=\"M 60.510156,6.3979729 C 55.926503,6.4192712 51.549217,6.8101906 47.697656,7.4917229 C 36.35144,9.4962267 34.291407,13.691825 34.291406,21.429223 L 34.291406,31.647973 L 61.103906,31.647973 L 61.103906,35.054223 L 34.291406,35.054223 L 24.228906,35.054223 C 16.436447,35.054223 9.6131468,39.73794 7.4789058,48.647973 C 5.0170858,58.860939 4.9078907,65.233996 7.4789058,75.897973 C 9.3848341,83.835825 13.936449,89.491721 21.728906,89.491723 L 30.947656,89.491723 L 30.947656,77.241723 C 30.947656,68.391821 38.6048,60.585475 47.697656,60.585473 L 74.478906,60.585473 C 81.933857,60.585473 87.885159,54.447309 87.885156,46.960473 L 87.885156,21.429223 C 87.885156,14.162884 81.755176,8.7044455 74.478906,7.4917229 C 69.872919,6.7249976 65.093809,6.3766746 60.510156,6.3979729 z M 46.010156,14.616723 C 48.779703,14.616723 51.041406,16.915369 51.041406,19.741723 C 51.041404,22.558059 48.779703,24.835473 46.010156,24.835473 C 43.23068,24.835472 40.978906,22.558058 40.978906,19.741723 C 40.978905,16.91537 43.23068,14.616723 46.010156,14.616723 z \" id=\"path1948\" style=\"fill:url(#linearGradient1478);fill-opacity:1\"/>",
471 " <path d=\"M 91.228906,35.054223 L 91.228906,46.960473 C 91.228906,56.191228 83.403011,63.960472 74.478906,63.960473 L 47.697656,63.960473 C 40.361823,63.960473 34.291407,70.238956 34.291406,77.585473 L 34.291406,103.11672 C 34.291406,110.38306 40.609994,114.65704 47.697656,116.74172 C 56.184987,119.23733 64.323893,119.68835 74.478906,116.74172 C 81.229061,114.78733 87.885159,110.85411 87.885156,103.11672 L 87.885156,92.897973 L 61.103906,92.897973 L 61.103906,89.491723 L 87.885156,89.491723 L 101.29141,89.491723 C 109.08387,89.491723 111.98766,84.056315 114.69765,75.897973 C 117.49698,67.499087 117.37787,59.422197 114.69765,48.647973 C 112.77187,40.890532 109.09378,35.054223 101.29141,35.054223 L 91.228906,35.054223 z M 76.166406,99.710473 C 78.945884,99.710476 81.197656,101.98789 81.197656,104.80422 C 81.197654,107.63057 78.945881,109.92922 76.166406,109.92922 C 73.396856,109.92922 71.135156,107.63057 71.135156,104.80422 C 71.135158,101.98789 73.396853,99.710473 76.166406,99.710473 z \" id=\"path1950\" style=\"fill:url(#linearGradient1475);fill-opacity:1\"/>",
471 " <path d=\"M 91.228906,35.054223 L 91.228906,46.960473 C 91.228906,56.191228 83.403011,63.960472 74.478906,63.960473 L 47.697656,63.960473 C 40.361823,63.960473 34.291407,70.238956 34.291406,77.585473 L 34.291406,103.11672 C 34.291406,110.38306 40.609994,114.65704 47.697656,116.74172 C 56.184987,119.23733 64.323893,119.68835 74.478906,116.74172 C 81.229061,114.78733 87.885159,110.85411 87.885156,103.11672 L 87.885156,92.897973 L 61.103906,92.897973 L 61.103906,89.491723 L 87.885156,89.491723 L 101.29141,89.491723 C 109.08387,89.491723 111.98766,84.056315 114.69765,75.897973 C 117.49698,67.499087 117.37787,59.422197 114.69765,48.647973 C 112.77187,40.890532 109.09378,35.054223 101.29141,35.054223 L 91.228906,35.054223 z M 76.166406,99.710473 C 78.945884,99.710476 81.197656,101.98789 81.197656,104.80422 C 81.197654,107.63057 78.945881,109.92922 76.166406,109.92922 C 73.396856,109.92922 71.135156,107.63057 71.135156,104.80422 C 71.135158,101.98789 73.396853,99.710473 76.166406,99.710473 z \" id=\"path1950\" style=\"fill:url(#linearGradient1475);fill-opacity:1\"/>",
472 " <path d=\"M 463.5544,26.909383 L 465.11635,26.909383 L 465.11635,17.113143 L 468.81648,17.113143 L 468.81648,15.945483 L 459.85427,15.945483 L 459.85427,17.113143 L 463.5544,17.113143 L 463.5544,26.909383 M 470.20142,26.909383 L 471.53589,26.909383 L 471.53589,17.962353 L 474.4323,26.908259 L 475.91799,26.908259 L 478.93615,17.992683 L 478.93615,26.909383 L 480.39194,26.909383 L 480.39194,15.945483 L 478.46605,15.945483 L 475.16774,25.33834 L 472.35477,15.945483 L 470.20142,15.945483 L 470.20142,26.909383\" id=\"text3004\" style=\"font-size:15.16445827px;font-style:normal;font-weight:normal;line-height:125%;fill:#646464;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans\"/>",
472 " <path d=\"M 463.5544,26.909383 L 465.11635,26.909383 L 465.11635,17.113143 L 468.81648,17.113143 L 468.81648,15.945483 L 459.85427,15.945483 L 459.85427,17.113143 L 463.5544,17.113143 L 463.5544,26.909383 M 470.20142,26.909383 L 471.53589,26.909383 L 471.53589,17.962353 L 474.4323,26.908259 L 475.91799,26.908259 L 478.93615,17.992683 L 478.93615,26.909383 L 480.39194,26.909383 L 480.39194,15.945483 L 478.46605,15.945483 L 475.16774,25.33834 L 472.35477,15.945483 L 470.20142,15.945483 L 470.20142,26.909383\" id=\"text3004\" style=\"font-size:15.16445827px;font-style:normal;font-weight:normal;line-height:125%;fill:#646464;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans\"/>",
473 " <path d=\"M 110.46717 132.28575 A 48.948284 8.6066771 0 1 1 12.570599,132.28575 A 48.948284 8.6066771 0 1 1 110.46717 132.28575 z\" id=\"path1894\" style=\"opacity:0.44382019;fill:url(#radialGradient1480);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\" transform=\"matrix(0.73406,0,0,0.809524,16.24958,27.00935)\"/>",
473 " <path d=\"M 110.46717 132.28575 A 48.948284 8.6066771 0 1 1 12.570599,132.28575 A 48.948284 8.6066771 0 1 1 110.46717 132.28575 z\" id=\"path1894\" style=\"opacity:0.44382019;fill:url(#radialGradient1480);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\" transform=\"matrix(0.73406,0,0,0.809524,16.24958,27.00935)\"/>",
474 " </g>",
474 " </g>",
475 "</svg>"
475 "</svg>"
476 ],
476 ],
477 "text": [
477 "text": [
478 "&lt;IPython.core.display.SVG at 0x41d4910&gt;"
478 "&lt;IPython.core.display.SVG at 0x41d4910&gt;"
479 ]
479 ]
480 }
480 }
481 ],
481 ],
482 "prompt_number": 3
482 "prompt_number": 3
483 },
483 },
484 {
484 {
485 "cell_type": "markdown",
485 "cell_type": "markdown",
486 "source": [
486 "source": [
487 "### Video"
487 "### Video"
488 ]
488 ]
489 },
489 },
490 {
490 {
491 "cell_type": "markdown",
491 "cell_type": "markdown",
492 "source": [
492 "source": [
493 "And more exotic objects can also be displayed, as long as their representation supports ",
493 "And more exotic objects can also be displayed, as long as their representation supports ",
494 "the IPython display protocol.",
494 "the IPython display protocol.",
495 "",
495 "",
496 "For example, videos hosted externally on YouTube are easy to load (and writing a similar wrapper for other",
496 "For example, videos hosted externally on YouTube are easy to load (and writing a similar wrapper for other",
497 "hosted content is trivial):"
497 "hosted content is trivial):"
498 ]
498 ]
499 },
499 },
500 {
500 {
501 "cell_type": "code",
501 "cell_type": "code",
502 "collapsed": false,
502 "collapsed": false,
503 "input": [
503 "input": [
504 "from IPython.lib.display import YouTubeVideo",
504 "from IPython.lib.display import YouTubeVideo",
505 "# a talk about IPython at Sage Days at U. Washington, Seattle.",
505 "# a talk about IPython at Sage Days at U. Washington, Seattle.",
506 "# Video credit: William Stein.",
506 "# Video credit: William Stein.",
507 "YouTubeVideo('1j_HxD4iLn8')"
507 "YouTubeVideo('1j_HxD4iLn8')"
508 ],
508 ],
509 "language": "python",
509 "language": "python",
510 "outputs": [
510 "outputs": [
511 {
511 {
512 "html": [
512 "html": [
513 "",
513 "",
514 " <iframe",
514 " <iframe",
515 " width=\"400\"",
515 " width=\"400\"",
516 " height=\"300\"",
516 " height=\"300\"",
517 " src=\"http://www.youtube.com/embed/1j_HxD4iLn8\"",
517 " src=\"http://www.youtube.com/embed/1j_HxD4iLn8\"",
518 " frameborder=\"0\"",
518 " frameborder=\"0\"",
519 " allowfullscreen",
519 " allowfullscreen",
520 " ></iframe>",
520 " ></iframe>",
521 " "
521 " "
522 ],
522 ],
523 "output_type": "pyout",
523 "output_type": "pyout",
524 "prompt_number": 4,
524 "prompt_number": 4,
525 "text": [
525 "text": [
526 "&lt;IPython.lib.display.YouTubeVideo at 0x41d4310&gt;"
526 "&lt;IPython.lib.display.YouTubeVideo at 0x41d4310&gt;"
527 ]
527 ]
528 }
528 }
529 ],
529 ],
530 "prompt_number": 4
530 "prompt_number": 4
531 },
531 },
532 {
532 {
533 "cell_type": "markdown",
533 "cell_type": "markdown",
534 "source": [
534 "source": [
535 "Using the nascent video capabilities of modern browsers, you may also be able to display local",
535 "Using the nascent video capabilities of modern browsers, you may also be able to display local",
536 "videos. At the moment this doesn't work very well in all browsers, so it may or may not work for you;",
536 "videos. At the moment this doesn't work very well in all browsers, so it may or may not work for you;",
537 "we will continue testing this and looking for ways to make it more robust. ",
537 "we will continue testing this and looking for ways to make it more robust. ",
538 "",
538 "",
539 "The following cell loads a local file called `animation.m4v`, encodes the raw video as base64 for http",
539 "The following cell loads a local file called `animation.m4v`, encodes the raw video as base64 for http",
540 "transport, and uses the HTML5 video tag to load it. On Chrome 15 it works correctly, displaying a control",
540 "transport, and uses the HTML5 video tag to load it. On Chrome 15 it works correctly, displaying a control",
541 "bar at the bottom with a play/pause button and a location slider."
541 "bar at the bottom with a play/pause button and a location slider."
542 ]
542 ]
543 },
543 },
544 {
544 {
545 "cell_type": "code",
545 "cell_type": "code",
546 "collapsed": false,
546 "collapsed": false,
547 "input": [
547 "input": [
548 "from IPython.core.display import HTML",
548 "from IPython.core.display import HTML",
549 "video = open(\"animation.m4v\", \"rb\").read()",
549 "video = open(\"animation.m4v\", \"rb\").read()",
550 "video_encoded = video.encode(\"base64\")",
550 "video_encoded = video.encode(\"base64\")",
551 "video_tag = '<video controls alt=\"test\" src=\"data:video/x-m4v;base64,{0}\">'.format(video_encoded)",
551 "video_tag = '<video controls alt=\"test\" src=\"data:video/x-m4v;base64,{0}\">'.format(video_encoded)",
552 "HTML(data=video_tag)"
552 "HTML(data=video_tag)"
553 ],
553 ],
554 "language": "python",
554 "language": "python",
555 "outputs": [
555 "outputs": [
556 {
556 {
557 "html": [
557 "html": [
558 "<video controls alt=\"test\" src=\"data:video/x-m4v;base64,AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAqiW1kYXQAAAKMBgX//4jcRem9",
558 "<video controls alt=\"test\" src=\"data:video/x-m4v;base64,AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAqiW1kYXQAAAKMBgX//4jcRem9",
559 "5tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTE4IC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENv",
559 "5tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTE4IC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENv",
560 "cHlsZWZ0IDIwMDMtMjAxMSAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9w",
560 "cHlsZWZ0IDIwMDMtMjAxMSAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9w",
561 "dGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1o",
561 "dGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1o",
562 "ZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2",
562 "ZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2",
563 "IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MSBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0",
563 "IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MSBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0",
564 "X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBu",
564 "X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBu",
565 "cj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9p",
565 "cj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9p",
566 "bnRyYT0wIGJmcmFtZXM9MyBiX3B5cmFtaWQ9MiBiX2FkYXB0PTEgYl9iaWFzPTAgZGlyZWN0PTEg",
566 "bnRyYT0wIGJmcmFtZXM9MyBiX3B5cmFtaWQ9MiBiX2FkYXB0PTEgYl9iaWFzPTAgZGlyZWN0PTEg",
567 "d2VpZ2h0Yj0xIG9wZW5fZ29wPTAgd2VpZ2h0cD0yIGtleWludD0yNTAga2V5aW50X21pbj0yNSBz",
567 "d2VpZ2h0Yj0xIG9wZW5fZ29wPTAgd2VpZ2h0cD0yIGtleWludD0yNTAga2V5aW50X21pbj0yNSBz",
568 "Y2VuZWN1dD00MCBpbnRyYV9yZWZyZXNoPTAgcmNfbG9va2FoZWFkPTQwIHJjPWNyZiBtYnRyZWU9",
568 "Y2VuZWN1dD00MCBpbnRyYV9yZWZyZXNoPTAgcmNfbG9va2FoZWFkPTQwIHJjPWNyZiBtYnRyZWU9",
569 "MSBjcmY9MjMuMCBxY29tcD0wLjYwIHFwbWluPTAgcXBtYXg9NjkgcXBzdGVwPTQgaXBfcmF0aW89",
569 "MSBjcmY9MjMuMCBxY29tcD0wLjYwIHFwbWluPTAgcXBtYXg9NjkgcXBzdGVwPTQgaXBfcmF0aW89",
570 "MS40MCBhcT0xOjEuMDAAgAAACqVliIQAV/0TAAI/3gU2tIW7KawwaCmQGTGHKmuYAAADACBcshU+",
570 "MS40MCBhcT0xOjEuMDAAgAAACqVliIQAV/0TAAI/3gU2tIW7KawwaCmQGTGHKmuYAAADACBcshU+",
571 "yICkgAA14AHowiEeT6ei7v7h3Hu0i2fpUBLGBIkbCMP3Vfz+9BVGCDXnw9Uv5o3iN030tb7eq6rs",
571 "yICkgAA14AHowiEeT6ei7v7h3Hu0i2fpUBLGBIkbCMP3Vfz+9BVGCDXnw9Uv5o3iN030tb7eq6rs",
572 "EEhHs2azbdTiE9Csz5Zm6SiUWRdmB43hbD5i6syATuODUJd7LM3d9cbFpc7zFlu5y3vUmNGd6urp",
572 "EEhHs2azbdTiE9Csz5Zm6SiUWRdmB43hbD5i6syATuODUJd7LM3d9cbFpc7zFlu5y3vUmNGd6urp",
573 "vKKT9iyleIyTuR1sVS431DhevGfkUllVeIznYUe2USoMW1tufETjyRdmGldN6eNlhAOsGAH4z+Hk",
573 "vKKT9iyleIyTuR1sVS431DhevGfkUllVeIznYUe2USoMW1tufETjyRdmGldN6eNlhAOsGAH4z+Hk",
574 "rwKecPPU7Q5T4gDAIxj9hW84jVExMTSTHxkPTq1I4OotgUxURCGTsw60k/ezPNmNg38j1bqaGmPc",
574 "rwKecPPU7Q5T4gDAIxj9hW84jVExMTSTHxkPTq1I4OotgUxURCGTsw60k/ezPNmNg38j1bqaGmPc",
575 "ruDKEIBDsK5qEytFB90Q68s0h2wmlf2KXd5bleBefiK+/p47ZsyUO4IdlW25rRy+HLjt6wQXfYee",
575 "ruDKEIBDsK5qEytFB90Q68s0h2wmlf2KXd5bleBefiK+/p47ZsyUO4IdlW25rRy+HLjt6wQXfYee",
576 "3IkiQOoOK+U7u/lxcl78zfxwIoEMjUUSKNZjkp8clnmecDDJ3Kz+viF7bPklk7N6QRyizAKPIIpn",
576 "3IkiQOoOK+U7u/lxcl78zfxwIoEMjUUSKNZjkp8clnmecDDJ3Kz+viF7bPklk7N6QRyizAKPIIpn",
577 "NJUuMWQmqeL2Or6cr4D0/0tOym+4tficxmhuEONKUtO2pPn3hRjMllkd12tXp70fLTfxy0dwB70M",
577 "NJUuMWQmqeL2Or6cr4D0/0tOym+4tficxmhuEONKUtO2pPn3hRjMllkd12tXp70fLTfxy0dwB70M",
578 "L9iLEcItHb7zVupHlP5RxdvecpREw+OsIPr9KWilIesNE19jgIbT+TkiRBjOoKvUuwcQnKg7fOTH",
578 "L9iLEcItHb7zVupHlP5RxdvecpREw+OsIPr9KWilIesNE19jgIbT+TkiRBjOoKvUuwcQnKg7fOTH",
579 "VoLvnKuAfea+oujEdm1Rwd2tEOnkF+ZC11WaNQsiNR/eJ9EnUXjXDYGfhB+Oe7qj8nYTT+eOXg1c",
579 "VoLvnKuAfea+oujEdm1Rwd2tEOnkF+ZC11WaNQsiNR/eJ9EnUXjXDYGfhB+Oe7qj8nYTT+eOXg1c",
580 "uJNgLXEs4vOheWEjQOqfIWMQc3DmTof5s0ksBmUQ3PQ+UHPxZSnmOEZB+j6xT3wbm7HGzDjWtSg1",
580 "uJNgLXEs4vOheWEjQOqfIWMQc3DmTof5s0ksBmUQ3PQ+UHPxZSnmOEZB+j6xT3wbm7HGzDjWtSg1",
581 "SjTxd1EiJ8xA4SIxxR8WIKLg+TwFxJNS7Laxq7Uglu3AkXe82P1JCdJX5PsbFbxuDbuJgakzRcTw",
581 "SjTxd1EiJ8xA4SIxxR8WIKLg+TwFxJNS7Laxq7Uglu3AkXe82P1JCdJX5PsbFbxuDbuJgakzRcTw",
582 "MLLSKCiizS/eCW0uJed/lev9yb80kKlVET4S219cn/zhkpeDV83cHYOr+sJQKDRk/Wh2c7fsuxfx",
582 "MLLSKCiizS/eCW0uJed/lev9yb80kKlVET4S219cn/zhkpeDV83cHYOr+sJQKDRk/Wh2c7fsuxfx",
583 "aEH/6reSmvFDsAnXAyPXliJ3G4VG3OkEM5K5WyGGrBizZbTrdGsBnzj5VSGGOJdCKuRrUluw/8es",
583 "aEH/6reSmvFDsAnXAyPXliJ3G4VG3OkEM5K5WyGGrBizZbTrdGsBnzj5VSGGOJdCKuRrUluw/8es",
584 "2vYRPs9BcTqAqvHk9M52SSIf+1T6L53EZP8VbtXB+G29CMW4xVCK/B/YDjaNmqMwJ61dapugjnWJ",
584 "2vYRPs9BcTqAqvHk9M52SSIf+1T6L53EZP8VbtXB+G29CMW4xVCK/B/YDjaNmqMwJ61dapugjnWJ",
585 "fqeXlGGa3Ch3aA7gi30T8PucNRBjLK3lF67ZDDvkWXRQXd+VMnKWHkBbCkQ/F/fMuNpHO3C00Y2p",
585 "fqeXlGGa3Ch3aA7gi30T8PucNRBjLK3lF67ZDDvkWXRQXd+VMnKWHkBbCkQ/F/fMuNpHO3C00Y2p",
586 "ljna1qImBhVMvPe0F7Qx7G/YyxLRzhyUU8e23HGzp0agtNJRbydbrPV+TqJMSifJMNcZIf8wkdnC",
586 "ljna1qImBhVMvPe0F7Qx7G/YyxLRzhyUU8e23HGzp0agtNJRbydbrPV+TqJMSifJMNcZIf8wkdnC",
587 "3/xdpcXnLf2Ye3Kbd0o7utciTG+q5h6WTEk+PaNbXLLA0YyZ2VnLTcyV1QTS76aNCbV9Q1/OQ7QU",
587 "3/xdpcXnLf2Ye3Kbd0o7utciTG+q5h6WTEk+PaNbXLLA0YyZ2VnLTcyV1QTS76aNCbV9Q1/OQ7QU",
588 "81Gg0hPa9aSiscGary6jLVwDQaik4zLsi7jPqgPVdup7pwx7uJDqRCVcVi5QoZFp/GHdex5sJTF6",
588 "81Gg0hPa9aSiscGary6jLVwDQaik4zLsi7jPqgPVdup7pwx7uJDqRCVcVi5QoZFp/GHdex5sJTF6",
589 "9A6sja69/NLkFIWNSIeRcuGahXpF+wZeYIrqJv975s1TKYKAvp1WtzgtgWNkcbzCtROqf8rPtlAI",
589 "9A6sja69/NLkFIWNSIeRcuGahXpF+wZeYIrqJv975s1TKYKAvp1WtzgtgWNkcbzCtROqf8rPtlAI",
590 "xkX8GLcEo9zfExyfimeXQ64qfFxEy0IMy2Hsxau9fSMqUnIjntuVVjCQtBL+94gx1RZLndE6wROV",
590 "xkX8GLcEo9zfExyfimeXQ64qfFxEy0IMy2Hsxau9fSMqUnIjntuVVjCQtBL+94gx1RZLndE6wROV",
591 "Tq/wHwHrQzo9QL9cpPqPFJjiZ/NGZIFuudS+wsBFe6Hu8Oitf5zToLqLdtU4Smwh4ne3JsiT9lOz",
591 "Tq/wHwHrQzo9QL9cpPqPFJjiZ/NGZIFuudS+wsBFe6Hu8Oitf5zToLqLdtU4Smwh4ne3JsiT9lOz",
592 "N+4PPw3VSx9l5FppVwdKUWELw1dYpCOppyVWlJ3YQ8H4FQQM8EcYMG9N3Bxu79y1J1ikuvuhMmLQ",
592 "N+4PPw3VSx9l5FppVwdKUWELw1dYpCOppyVWlJ3YQ8H4FQQM8EcYMG9N3Bxu79y1J1ikuvuhMmLQ",
593 "lehLTbguhbix74hd1VIQC8EjHmOZSSWbssulYwPbr6FF49tifk6PymJvulR9/u+2585HkRfbxveG",
593 "lehLTbguhbix74hd1VIQC8EjHmOZSSWbssulYwPbr6FF49tifk6PymJvulR9/u+2585HkRfbxveG",
594 "eWCz0ix1pIVfaNpESKmtLy/0mcbMg9hYDz2werz9oe0lT2BiMV6uAin6RaQcT8Vk9MPctfwae+gk",
594 "eWCz0ix1pIVfaNpESKmtLy/0mcbMg9hYDz2werz9oe0lT2BiMV6uAin6RaQcT8Vk9MPctfwae+gk",
595 "vtnZA/sOBk8MbpylaHqc0KIVHhhLFMNnkOFiucjtGo/JWTa/F6g8wWeow5ZuIJUORaYHWqegZbTg",
595 "vtnZA/sOBk8MbpylaHqc0KIVHhhLFMNnkOFiucjtGo/JWTa/F6g8wWeow5ZuIJUORaYHWqegZbTg",
596 "M9dCsYYsfZGjjVMuSlDIvpYvIvFFooGPC7Ye2Jfawmq4Ut7EL/nv/dyAd2HRc5msmUhzeu/XpX3r",
596 "M9dCsYYsfZGjjVMuSlDIvpYvIvFFooGPC7Ye2Jfawmq4Ut7EL/nv/dyAd2HRc5msmUhzeu/XpX3r",
597 "VlzRmf9/Qan8Dbve3QfW1Ym0o5J/KAc3z1VBho7JBr5PgCL68RiD9jZHN0VvsT4gzsEjNlW3D91U",
597 "VlzRmf9/Qan8Dbve3QfW1Ym0o5J/KAc3z1VBho7JBr5PgCL68RiD9jZHN0VvsT4gzsEjNlW3D91U",
598 "y4RduaodBFoNTzXwlfUYULBzdiTbH75l/UmVMC4TKeTWhNzw2UezaqeGd8at3WSY7W/VR3+hvZHD",
598 "y4RduaodBFoNTzXwlfUYULBzdiTbH75l/UmVMC4TKeTWhNzw2UezaqeGd8at3WSY7W/VR3+hvZHD",
599 "pkIjgKuNNH0DsCRa/Kk56XQoHIyvvUH/eNekNvziReqS4qgLnXUT4BRGt2BOtCifI6+X/DGHUOmW",
599 "pkIjgKuNNH0DsCRa/Kk56XQoHIyvvUH/eNekNvziReqS4qgLnXUT4BRGt2BOtCifI6+X/DGHUOmW",
600 "lX7TN5b4pw5U7jwfwshtbhGZM49T8JMk15Mzrc7tM6J11TYxb5R3mQhZ8TZumJ0bMJXPM69HFyih",
600 "lX7TN5b4pw5U7jwfwshtbhGZM49T8JMk15Mzrc7tM6J11TYxb5R3mQhZ8TZumJ0bMJXPM69HFyih",
601 "r5dJSEJMycxJVUh6NTQALUOoRTHIOwE+FpWI6feTv1SiZ0YpYe5DbkYJJbN7zAHbAKw25XvqR2mA",
601 "r5dJSEJMycxJVUh6NTQALUOoRTHIOwE+FpWI6feTv1SiZ0YpYe5DbkYJJbN7zAHbAKw25XvqR2mA",
602 "jQmOlsfX/tK8DPjP/8h5/xgAF4EUbj1tOnQCBQL8jk9vHtfsXncsprww4Z+P/Z/UrKifuFyEpBWN",
602 "jQmOlsfX/tK8DPjP/8h5/xgAF4EUbj1tOnQCBQL8jk9vHtfsXncsprww4Z+P/Z/UrKifuFyEpBWN",
603 "8kLpF7yywE2iYdDruV9+/qKR8rC9ozNKyqQNIwtxrzYkWpE5t8K7gG4JFnrHona/Rp8dOX6VW41+",
603 "8kLpF7yywE2iYdDruV9+/qKR8rC9ozNKyqQNIwtxrzYkWpE5t8K7gG4JFnrHona/Rp8dOX6VW41+",
604 "jb5LB1LEtE8MwjLp3RCUOq/+6yLzaOEgBTqzvEjDeFpg/u9DMHMr4/2TOchfjg7dl+uQ6Gsx+4Ia",
604 "jb5LB1LEtE8MwjLp3RCUOq/+6yLzaOEgBTqzvEjDeFpg/u9DMHMr4/2TOchfjg7dl+uQ6Gsx+4Ia",
605 "9W7vivG95027p25eKL0nHvx/OqmAQEZYJL/JO58lOj0zPdJxrQ5dZksjMISzVZNn7DsxqE3zgBBu",
605 "9W7vivG95027p25eKL0nHvx/OqmAQEZYJL/JO58lOj0zPdJxrQ5dZksjMISzVZNn7DsxqE3zgBBu",
606 "Nzk50R8lTK3U8P12QiOAQYSTeGlYlkvfeofrfO1AitEj02m9aUkxTFd1ZZJoLQT2d3zEU5PmE4lx",
606 "Nzk50R8lTK3U8P12QiOAQYSTeGlYlkvfeofrfO1AitEj02m9aUkxTFd1ZZJoLQT2d3zEU5PmE4lx",
607 "MVfL5ttNnIbqfcIU2RJKNWqdw77xfjfrNc/eNpRKPZ/6z50LzBprgjzBHRfKgSWWkDxHrX0aTbgw",
607 "MVfL5ttNnIbqfcIU2RJKNWqdw77xfjfrNc/eNpRKPZ/6z50LzBprgjzBHRfKgSWWkDxHrX0aTbgw",
608 "QFwd51+PoUWH4DkQg26uGslF5Hn3hB58+fkeLTosTANOIBNAeFZtTc4PIaLHw759zae7scY55xcT",
608 "QFwd51+PoUWH4DkQg26uGslF5Hn3hB58+fkeLTosTANOIBNAeFZtTc4PIaLHw759zae7scY55xcT",
609 "abzlilYIftst2RZ6ntsRC3zFxduCKvL6wLfYT+TiIWJn5P7sTwZwXuSzXY+9Q3xMZ5o4Xcpz6vD9",
609 "abzlilYIftst2RZ6ntsRC3zFxduCKvL6wLfYT+TiIWJn5P7sTwZwXuSzXY+9Q3xMZ5o4Xcpz6vD9",
610 "FtTjzS69iefEYt4pXiDrZUo4ePGiLeoIFIwYB/v6GXdmG5VLLk+eKbOc9AmsX2zmvqtcvDRGQbzu",
610 "FtTjzS69iefEYt4pXiDrZUo4ePGiLeoIFIwYB/v6GXdmG5VLLk+eKbOc9AmsX2zmvqtcvDRGQbzu",
611 "gXbH/kTH/lkNPBTmqN3ZJODUEXVohPEJ6th0xna0EVleB73Q3eNvaVUvhlJbjs3D/T17FRCebN7A",
611 "gXbH/kTH/lkNPBTmqN3ZJODUEXVohPEJ6th0xna0EVleB73Q3eNvaVUvhlJbjs3D/T17FRCebN7A",
612 "OXvzzbLE/I5kNfEmJcv4dxtIeo2uQ/z9ohSpiZzbDj1u40nJRyJxUK60wEv0nA9f/NuJ6/PEyU0b",
612 "OXvzzbLE/I5kNfEmJcv4dxtIeo2uQ/z9ohSpiZzbDj1u40nJRyJxUK60wEv0nA9f/NuJ6/PEyU0b",
613 "kK16z2KH12k3Lc4+1f5fawIzkK2qJRB4wnj8VHhUW9mbJhs9vgfFmU3xrXSShY67Ygb+gYNPxxtn",
613 "kK16z2KH12k3Lc4+1f5fawIzkK2qJRB4wnj8VHhUW9mbJhs9vgfFmU3xrXSShY67Ygb+gYNPxxtn",
614 "4K/9eTSwIA9fv/nR33lA2lZoXALRUTmOZIl3R0gAM5h6oX1y1thIyqViBK95VZc8Pvy7G3O90M9S",
614 "4K/9eTSwIA9fv/nR33lA2lZoXALRUTmOZIl3R0gAM5h6oX1y1thIyqViBK95VZc8Pvy7G3O90M9S",
615 "4zkpyFQ36jrMazvMveMA4d39fvoaC7p90quiJfjI4yrl+ECVkCJL5MxRSa+iVcIL7Xbl0jVaGhZI",
615 "4zkpyFQ36jrMazvMveMA4d39fvoaC7p90quiJfjI4yrl+ECVkCJL5MxRSa+iVcIL7Xbl0jVaGhZI",
616 "cMYmcGOBbLzhJgloM1x1zFnnj3ggJRFAM8yNnXxhavk+mA18JC+y3lqGsp6vPReRxGlGHMou17L4",
616 "cMYmcGOBbLzhJgloM1x1zFnnj3ggJRFAM8yNnXxhavk+mA18JC+y3lqGsp6vPReRxGlGHMou17L4",
617 "It070LzkoeCzarpv8Apw59smdS5KN9qVN1WgeL7OSN8BHg94ubCvS7DW6H3/PbtRB62jFLsBhUV5",
617 "It070LzkoeCzarpv8Apw59smdS5KN9qVN1WgeL7OSN8BHg94ubCvS7DW6H3/PbtRB62jFLsBhUV5",
618 "YqCIbIN5VZ81AAACpUGaIWxFfwAru8x8uT3FuOjrAeSWXmAWqq9jCNGE+N5AOv//9//xjk4uBAcA",
618 "YqCIbIN5VZ81AAACpUGaIWxFfwAru8x8uT3FuOjrAeSWXmAWqq9jCNGE+N5AOv//9//xjk4uBAcA",
619 "DN96c97AVGmzRtnWwPsgcCbLrVdQJgbKp4QSmPwQnVhv0hXyBjeFWWlcvx70urEN3FK6/lvk2tQe",
619 "DN96c97AVGmzRtnWwPsgcCbLrVdQJgbKp4QSmPwQnVhv0hXyBjeFWWlcvx70urEN3FK6/lvk2tQe",
620 "ZgbtlbzXluvTfnSj/Ctz7vZ+O1FjhDzzdpL7uLzewzCIW5VWLAEKUVuS2J6wNk6MR7UblcEd4EtO",
620 "ZgbtlbzXluvTfnSj/Ctz7vZ+O1FjhDzzdpL7uLzewzCIW5VWLAEKUVuS2J6wNk6MR7UblcEd4EtO",
621 "Y+R4/qJgfojCsfRvA0oC5dc41Vd0erZbSkrmPTjLCn815bxlchUJMS8gQD5hJNwoKHvNLNwn7XKu",
621 "Y+R4/qJgfojCsfRvA0oC5dc41Vd0erZbSkrmPTjLCn815bxlchUJMS8gQD5hJNwoKHvNLNwn7XKu",
622 "TtYIhH2wVNZvDWgzCjlPeQajnrcMsb6bZYJvNJU8HuGHvm50r7VG8qifEwmuyegAZXojh5Ul5Vvj",
622 "TtYIhH2wVNZvDWgzCjlPeQajnrcMsb6bZYJvNJU8HuGHvm50r7VG8qifEwmuyegAZXojh5Ul5Vvj",
623 "DW7kSAZyw8a7I6mHY3FZHd+OA3V4JZMbNliI3Tj1L6+MKTmilVialmyZagRtEMeKRdtxUPd3vVEt",
623 "DW7kSAZyw8a7I6mHY3FZHd+OA3V4JZMbNliI3Tj1L6+MKTmilVialmyZagRtEMeKRdtxUPd3vVEt",
624 "rOBVIVYWdgAGA7HmZiHQUQNxLkWxbLyWVlrh5EM0Do2NdbclHxxArz90d+MSVeUOIXQ/4V9quq8C",
624 "rOBVIVYWdgAGA7HmZiHQUQNxLkWxbLyWVlrh5EM0Do2NdbclHxxArz90d+MSVeUOIXQ/4V9quq8C",
625 "8qVflo1gPtPMkjO2/UrdOYqhY404ReObOu/fdp4hAEDq6jhy64vOeT7XUK/Onq0rXTldtA6kvgQa",
625 "8qVflo1gPtPMkjO2/UrdOYqhY404ReObOu/fdp4hAEDq6jhy64vOeT7XUK/Onq0rXTldtA6kvgQa",
626 "Jg+mgYSR9hfXtMbOUSLgLj/RmBSO8aAMHuJJZqf1tCM5pZ9eYUsrHmy+/z2NGalon0//uF6+33bQ",
626 "Jg+mgYSR9hfXtMbOUSLgLj/RmBSO8aAMHuJJZqf1tCM5pZ9eYUsrHmy+/z2NGalon0//uF6+33bQ",
627 "zT/RLRfBbYTjy9QrJqHLlw46lggWPGkHuPKSqk/CB7U4pNPXUbR0DdcJy9Db00wCzVzxVc6h7jfC",
627 "zT/RLRfBbYTjy9QrJqHLlw46lggWPGkHuPKSqk/CB7U4pNPXUbR0DdcJy9Db00wCzVzxVc6h7jfC",
628 "FgiL2Y0HVqd6bgIaVUqn/gJCEyCDVplnzebv0gg3XwMJAGu639lHu7rEvxTp1smIYjWp9R5L4Ssp",
628 "FgiL2Y0HVqd6bgIaVUqn/gJCEyCDVplnzebv0gg3XwMJAGu639lHu7rEvxTp1smIYjWp9R5L4Ssp",
629 "VvS07Nb+Smk1FgsMp1K3EMUT8X2Fty4VG54/Ec6bE8tNVw4/QV1VzBw7Px2/2eEhhUS+FMfbHAlD",
629 "VvS07Nb+Smk1FgsMp1K3EMUT8X2Fty4VG54/Ec6bE8tNVw4/QV1VzBw7Px2/2eEhhUS+FMfbHAlD",
630 "28x00jRgAAACW0GaQjwhkymEVwArOUkEOhoFqiELtH8wgecFLiUq6WqmwAP7iGEwbYzfnHacfqUN",
630 "28x00jRgAAACW0GaQjwhkymEVwArOUkEOhoFqiELtH8wgecFLiUq6WqmwAP7iGEwbYzfnHacfqUN",
631 "XAfD+CGR2ap0lAHL25ipuYtd5j2O0PU/MpaWPG/n2y5OkfTzaOpotaR5tWjN55B2XblVVqsFfBC/",
631 "XAfD+CGR2ap0lAHL25ipuYtd5j2O0PU/MpaWPG/n2y5OkfTzaOpotaR5tWjN55B2XblVVqsFfBC/",
632 "mvsiPvCBWUHFChacdY5whj5mP5rqQ0dqLJCsWjrs4TWnIbL2V/Iwfj3hwI35jfo1JkTOeR+8GhOd",
632 "mvsiPvCBWUHFChacdY5whj5mP5rqQ0dqLJCsWjrs4TWnIbL2V/Iwfj3hwI35jfo1JkTOeR+8GhOd",
633 "ma9rgiKWafCbQyhYMTDmVdvhND60Flm97EDSTjF0OC+0gD9b8Yn4tNeHipCa/aWyt0n79bMmjfcj",
633 "ma9rgiKWafCbQyhYMTDmVdvhND60Flm97EDSTjF0OC+0gD9b8Yn4tNeHipCa/aWyt0n79bMmjfcj",
634 "ntBCPjrcB5ecRTpfGHbEHy1IRj2cjkGXKC+VYoYJXBp4rd4cMd8ygLCk5nBSd8/cTaKNRjdBscOe",
634 "ntBCPjrcB5ecRTpfGHbEHy1IRj2cjkGXKC+VYoYJXBp4rd4cMd8ygLCk5nBSd8/cTaKNRjdBscOe",
635 "TXG6QEjSxj9/2pVwx9DMRVtWQR0BSaAcQcZ8W2KPSaeRC4QwmNMu2xx25CSyrDiq2rFSK/JJtmvo",
635 "TXG6QEjSxj9/2pVwx9DMRVtWQR0BSaAcQcZ8W2KPSaeRC4QwmNMu2xx25CSyrDiq2rFSK/JJtmvo",
636 "IjAKq0ciEXoOgw+Ke+Ylb7ULKCS3k1p/613UNRp450uSq5b7CAHo7S0b7fBMLfNmwSjRYEhLlo0H",
636 "IjAKq0ciEXoOgw+Ke+Ylb7ULKCS3k1p/613UNRp450uSq5b7CAHo7S0b7fBMLfNmwSjRYEhLlo0H",
637 "UaRe/I+IX2Z6XdZH9Hty/399ZA1PwZGC6EfvUJIf7CBeaxv7cu6IT2/s0zPRGthpvXpYw6A7P4Ww",
637 "UaRe/I+IX2Z6XdZH9Hty/399ZA1PwZGC6EfvUJIf7CBeaxv7cu6IT2/s0zPRGthpvXpYw6A7P4Ww",
638 "z5C4V98KnIUNUanadqabKP6eXWhvbvcQHxAjiOOiKZgXZplZW2g+B2NNyJSLiR+g48DqvWR6t9S2",
638 "z5C4V98KnIUNUanadqabKP6eXWhvbvcQHxAjiOOiKZgXZplZW2g+B2NNyJSLiR+g48DqvWR6t9S2",
639 "aGfFjdOW1Gi6oTtZ1d4p5XIslAr8mryeZ6+htSSQe4AcfVt7k+V6mOthBCYtr/LEU4ZHtl0mW987",
639 "aGfFjdOW1Gi6oTtZ1d4p5XIslAr8mryeZ6+htSSQe4AcfVt7k+V6mOthBCYtr/LEU4ZHtl0mW987",
640 "6PK8mRFAaT8DJOUFVz1lPfzRApuPggkkyq+UMvyfKTUbCk7/DpfX8Y4s4QAAAg9BmmNJ4Q8mUwIr",
640 "6PK8mRFAaT8DJOUFVz1lPfzRApuPggkkyq+UMvyfKTUbCk7/DpfX8Y4s4QAAAg9BmmNJ4Q8mUwIr",
641 "/wAsWUPjZw3ksgRsxZ6n4fQjprPbkj2aUh30y0bZJnLmiXnWskvOGnCPwBnG9dEhatwX3hoxk7BN",
641 "/wAsWUPjZw3ksgRsxZ6n4fQjprPbkj2aUh30y0bZJnLmiXnWskvOGnCPwBnG9dEhatwX3hoxk7BN",
642 "yG+wQ4emZUpcVzcWl2T9nKQB1euucuZWHTg7TCtM/iHyfPO2vbmGsfzs70b/egIbywUH4y4BQSL1",
642 "yG+wQ4emZUpcVzcWl2T9nKQB1euucuZWHTg7TCtM/iHyfPO2vbmGsfzs70b/egIbywUH4y4BQSL1",
643 "nWc1SmpHm2zHMBcUjYLDZ5gL5vdfxn0V8FFw66G88c/LN4I5icUa7xf4fcSBKywU0ajbp1P+aJYj",
643 "nWc1SmpHm2zHMBcUjYLDZ5gL5vdfxn0V8FFw66G88c/LN4I5icUa7xf4fcSBKywU0ajbp1P+aJYj",
644 "BgWT6Ggu0MDLDNl54tfqd42lKosQtM1aif4WXAZFP5Ww3vrQ1rH9+utSYxqZd6N6gGtNbSNMcVia",
644 "BgWT6Ggu0MDLDNl54tfqd42lKosQtM1aif4WXAZFP5Ww3vrQ1rH9+utSYxqZd6N6gGtNbSNMcVia",
645 "Kn5LcnjsbBi3T3EmGqshEbcme8VHKwR3kSfBOAprrIsv6K8R+X6az+MD23rWka/2v64m1qM69D7X",
645 "Kn5LcnjsbBi3T3EmGqshEbcme8VHKwR3kSfBOAprrIsv6K8R+X6az+MD23rWka/2v64m1qM69D7X",
646 "a+Kcs/n0KLCJdTilyaGadopLeaAn3eYvWTeHcucMM1Fp1KgHD1tiFeO6HvobLkZlRximsA3/7Mio",
646 "a+Kcs/n0KLCJdTilyaGadopLeaAn3eYvWTeHcucMM1Fp1KgHD1tiFeO6HvobLkZlRximsA3/7Mio",
647 "hYklLIcJrZL22BH+6W9d6kZsYIsej9RM681nU6mWNjepBAfAfTbrGRrVB/h2DxC5B8YyRjgSIzQj",
647 "hYklLIcJrZL22BH+6W9d6kZsYIsej9RM681nU6mWNjepBAfAfTbrGRrVB/h2DxC5B8YyRjgSIzQj",
648 "NYrse0rzChqbrsLl7mQ7W+1bsNKze5//9ZIa8rSsF+BXh/vgoRTDkPW/ws95B7VPCZEFChfX0icw",
648 "NYrse0rzChqbrsLl7mQ7W+1bsNKze5//9ZIa8rSsF+BXh/vgoRTDkPW/ws95B7VPCZEFChfX0icw",
649 "+tpcpN/q7NY87tUn4vESdSiMMlyhKklMjQu/G51J69ZRQLs2oUO6YfoJFqliy4qCFCrf8SZE9Fc6",
649 "+tpcpN/q7NY87tUn4vESdSiMMlyhKklMjQu/G51J69ZRQLs2oUO6YfoJFqliy4qCFCrf8SZE9Fc6",
650 "DcCagAAAAodBmoRJ4Q8mUwIr/wArPWF/KOw78THwadfPqhJO0CnmR/M74/XYZLqVYKlNcEaYauf+",
650 "DcCagAAAAodBmoRJ4Q8mUwIr/wArPWF/KOw78THwadfPqhJO0CnmR/M74/XYZLqVYKlNcEaYauf+",
651 "vrRUDJPmu75sMKy2Y+Bnslc/iAISSyWtw/h/3CF8fE5ZrbrwSNst+MSyCoNWP+8imtoX2eyojpdC",
651 "vrRUDJPmu75sMKy2Y+Bnslc/iAISSyWtw/h/3CF8fE5ZrbrwSNst+MSyCoNWP+8imtoX2eyojpdC",
652 "k8YP5K+cbK4SJPCkZXbYqSXYk7hO8AdSemBHgXKWiZ+UOr802aJo+98ZOIjX9hWL9bo31Gqx7cy4",
652 "k8YP5K+cbK4SJPCkZXbYqSXYk7hO8AdSemBHgXKWiZ+UOr802aJo+98ZOIjX9hWL9bo31Gqx7cy4",
653 "ZG+W/ar/WGlzDa1xPWnPRsEdrIcZlEVGV/jGmbirkxw1lyUYoqj8Vv7Bxube9XPQlBkXOV6Lc1LT",
653 "ZG+W/ar/WGlzDa1xPWnPRsEdrIcZlEVGV/jGmbirkxw1lyUYoqj8Vv7Bxube9XPQlBkXOV6Lc1LT",
654 "2IzNq0V7WwVhF0kA6yxfAsFxc9krNEH8vGGntTWI608ovjatXc/CKKXw7AjJSftlTcLI0hIIGXbR",
654 "2IzNq0V7WwVhF0kA6yxfAsFxc9krNEH8vGGntTWI608ovjatXc/CKKXw7AjJSftlTcLI0hIIGXbR",
655 "Ur0NCYNp7M4cVd/n73Rjetnixz4SAKpcz/P47UsijZG7T3SxzK2D79WS42aEalc12hQwCZ01LfmF",
655 "Ur0NCYNp7M4cVd/n73Rjetnixz4SAKpcz/P47UsijZG7T3SxzK2D79WS42aEalc12hQwCZ01LfmF",
656 "/H2mmGEvOzPBie1D0YT7Jh19vxa4Dd3SQ1FrDfmSUpvv4DjbYcZ2PrPpFpWtMjWqHBeoyMiZf6RP",
656 "/H2mmGEvOzPBie1D0YT7Jh19vxa4Dd3SQ1FrDfmSUpvv4DjbYcZ2PrPpFpWtMjWqHBeoyMiZf6RP",
657 "3EfYR6z9jsVNIIHxM0bzzBQF8eeYkPgDySydxPXv9Izo+QUY94N8kWi16fI6eZSDc1G0Yo0L91jc",
657 "3EfYR6z9jsVNIIHxM0bzzBQF8eeYkPgDySydxPXv9Izo+QUY94N8kWi16fI6eZSDc1G0Yo0L91jc",
658 "RQuDMGGS7B2zuf/0GbJyRhUO48UbMrqnILMrbQg1LF00Q3pH9nbGEK/RRQpRN3T/J/4IZQjwW2Ft",
658 "RQuDMGGS7B2zuf/0GbJyRhUO48UbMrqnILMrbQg1LF00Q3pH9nbGEK/RRQpRN3T/J/4IZQjwW2Ft",
659 "2ipWGztg1Jn9I4DmffKS60QC+JQcyakdVON6zDcKttIKlqeTcmAi4xzmo4QXa2dRKleS+fs3EtTd",
659 "2ipWGztg1Jn9I4DmffKS60QC+JQcyakdVON6zDcKttIKlqeTcmAi4xzmo4QXa2dRKleS+fs3EtTd",
660 "BBtony2wK9T2Imj+NCziOSEL7Q7VuIU8kclUHrJJsSneFcxGRgIgGGUEQM8/pklwTOqab7mMmJeR",
660 "BBtony2wK9T2Imj+NCziOSEL7Q7VuIU8kclUHrJJsSneFcxGRgIgGGUEQM8/pklwTOqab7mMmJeR",
661 "iaBrjJDEnDpkR4Vz3qXxgyn4/5x24FuTMNVPwQAAAhtBmqVJ4Q8mUwIr/wApcLwPT0/Xh9UdWqWX",
661 "iaBrjJDEnDpkR4Vz3qXxgyn4/5x24FuTMNVPwQAAAhtBmqVJ4Q8mUwIr/wApcLwPT0/Xh9UdWqWX",
662 "Is8Wbj5K1hivmN6qIQnq+aolcegdlM/63MbHsdC6xYZC1e/Q8UjQCt9N/Ejqwms8DzeWv2qxskel",
662 "Is8Wbj5K1hivmN6qIQnq+aolcegdlM/63MbHsdC6xYZC1e/Q8UjQCt9N/Ejqwms8DzeWv2qxskel",
663 "iZH0kt1QWkErWSEodq7V0ZNksctLkMGWayX33gBT368EehfIeGDolBZoqIbJfb4nqcfU+ev4OzVv",
663 "iZH0kt1QWkErWSEodq7V0ZNksctLkMGWayX33gBT368EehfIeGDolBZoqIbJfb4nqcfU+ev4OzVv",
664 "9zVqWyLck315GFmXxQKIM8pICQc8Q5es34LH1+DmnMnW8kQpVGrztQcDXhjCU3F0fOgoSsXSVWCj",
664 "9zVqWyLck315GFmXxQKIM8pICQc8Q5es34LH1+DmnMnW8kQpVGrztQcDXhjCU3F0fOgoSsXSVWCj",
665 "c6XKqGbCwQDfJUxCfXfIT6YmQoPpVp1mpGy1wQypXus9z0bScDpyDu23hViYDntdj1O45ea0znKZ",
665 "c6XKqGbCwQDfJUxCfXfIT6YmQoPpVp1mpGy1wQypXus9z0bScDpyDu23hViYDntdj1O45ea0znKZ",
666 "kj1+tLHbBtqAGJ1WTcbGlF6Vya6hQhEsiiZUIC2fRxIj8/wEXCICIbr0gZ/m6gcOhE10tenvE7iy",
666 "kj1+tLHbBtqAGJ1WTcbGlF6Vya6hQhEsiiZUIC2fRxIj8/wEXCICIbr0gZ/m6gcOhE10tenvE7iy",
667 "+BKY81wLWrnzos3S6FWxYtmCRes+LLhNGOKWRuQo6SyePH2OZ90xZm8oA1MuTe3V59euVNxjAt0F",
667 "+BKY81wLWrnzos3S6FWxYtmCRes+LLhNGOKWRuQo6SyePH2OZ90xZm8oA1MuTe3V59euVNxjAt0F",
668 "LkAc9TEiFhP/8CB+gA8mF+A8h1U01f4DVX55GzCH51jHI2xUS0L9GtsHoBxLPLK/NNel8zcnwG4X",
668 "LkAc9TEiFhP/8CB+gA8mF+A8h1U01f4DVX55GzCH51jHI2xUS0L9GtsHoBxLPLK/NNel8zcnwG4X",
669 "+UusfcfEb5hh+ffnXteCE9vRGbs2n9wYW0xA3ZicklfadmWKUtMiHYBfkMSULWnkBQr4CXxjpYOs",
669 "+UusfcfEb5hh+ffnXteCE9vRGbs2n9wYW0xA3ZicklfadmWKUtMiHYBfkMSULWnkBQr4CXxjpYOs",
670 "6ygeEoA5+5B0B1SZObgZ42wWqddyyYE0NfwQAl75tfdJGqOa7OMHwBYNeatJaJK0zT2+bFaw2qWC",
670 "6ygeEoA5+5B0B1SZObgZ42wWqddyyYE0NfwQAl75tfdJGqOa7OMHwBYNeatJaJK0zT2+bFaw2qWC",
671 "WwAAAitBmsZJ4Q8mUwIr/wAstkdsayRXchoFk703izqzduZ5WsyXriI9cfUdMUWvm0iGHwYIrUuj",
671 "WwAAAitBmsZJ4Q8mUwIr/wAstkdsayRXchoFk703izqzduZ5WsyXriI9cfUdMUWvm0iGHwYIrUuj",
672 "vz3Yjou+JLwv9df2kt7MJo8u+3P5CjEKbwlz4vkE5AHTAbgXn3+Xc/MMJLgW5cm7iX3KiGNnBpbp",
672 "vz3Yjou+JLwv9df2kt7MJo8u+3P5CjEKbwlz4vkE5AHTAbgXn3+Xc/MMJLgW5cm7iX3KiGNnBpbp",
673 "hhwJRlb3u91NRDr0d1IR2up/z7lKxE7XPAPFe0siPMYVlIqWNSn5KqLABPeuxxbOsvMEb27/nH1L",
673 "hhwJRlb3u91NRDr0d1IR2up/z7lKxE7XPAPFe0siPMYVlIqWNSn5KqLABPeuxxbOsvMEb27/nH1L",
674 "UVM8I2F95c1I3Lv1SpkhZXjs1JsmS9X7gsoTxkXyShGC2+zRJSGUbhCPo/q1XSFMHQyMWJ79FKPQ",
674 "UVM8I2F95c1I3Lv1SpkhZXjs1JsmS9X7gsoTxkXyShGC2+zRJSGUbhCPo/q1XSFMHQyMWJ79FKPQ",
675 "SL/RpVsacN2bYwdKo4TFBw1SsKq/L1iOmqMI+4Gxnbbjojdk0ek0JIcDb4bHv1czxchF7FX1Ym8H",
675 "SL/RpVsacN2bYwdKo4TFBw1SsKq/L1iOmqMI+4Gxnbbjojdk0ek0JIcDb4bHv1czxchF7FX1Ym8H",
676 "6IpPuE8CeNKjzQ1a1wqhEu+wl1N0x3Y37ZryCCKJRkxj0FT7bOoH3L38/yMUuh/v3aCmxY4eCkyk",
676 "6IpPuE8CeNKjzQ1a1wqhEu+wl1N0x3Y37ZryCCKJRkxj0FT7bOoH3L38/yMUuh/v3aCmxY4eCkyk",
677 "b2p6ZrYMFE044anM/nMjmbErMibfRFuCz58Io1rBlF7JfkIz0R2/5vjUMVskcdbX2mm7DntncOsW",
677 "b2p6ZrYMFE044anM/nMjmbErMibfRFuCz58Io1rBlF7JfkIz0R2/5vjUMVskcdbX2mm7DntncOsW",
678 "DIdg/XVmgsC9CzVzUyq4VsS/sk97lJggcddpWLNw/29egz8iLyzWHOAXCvl2fTIPkviYAOQXfVhZ",
678 "DIdg/XVmgsC9CzVzUyq4VsS/sk97lJggcddpWLNw/29egz8iLyzWHOAXCvl2fTIPkviYAOQXfVhZ",
679 "UQdxsyJUNFMTiALrZCmoQLMp2LmDbfbW8JQriDeR3fVz6P1sjT8C2yEDvzkCn7sh0aTBK+sx7BKH",
679 "UQdxsyJUNFMTiALrZCmoQLMp2LmDbfbW8JQriDeR3fVz6P1sjT8C2yEDvzkCn7sh0aTBK+sx7BKH",
680 "1nb4320+caQepQj4TCJtCeNXjdrVcNEnjvwlcRJwFT1pT+Y7HREbHnT71XYNh4EAAAGEQZrnSeEP",
680 "1nb4320+caQepQj4TCJtCeNXjdrVcNEnjvwlcRJwFT1pT+Y7HREbHnT71XYNh4EAAAGEQZrnSeEP",
681 "JlMCK/8AKIjxcI58rm/ML255fOJW1zbznFna7lfgMQrka7OTPPsvVAV4EJXye/Uxiu9dlftmRypJ",
681 "JlMCK/8AKIjxcI58rm/ML255fOJW1zbznFna7lfgMQrka7OTPPsvVAV4EJXye/Uxiu9dlftmRypJ",
682 "qfDot3xwDe8lX/qAVf6pBkSlUsaLyBYtww/SUSa1bGl1JvrJCN7FXCCXbLd5R4PoYlPiDIm/DQH2",
682 "qfDot3xwDe8lX/qAVf6pBkSlUsaLyBYtww/SUSa1bGl1JvrJCN7FXCCXbLd5R4PoYlPiDIm/DQH2",
683 "puO0StIWmrR77Isc/J1pRvdu5+mQa/n0SEHUeM2KkoRzCznfD9zaaRO7BDtvC9SYIT0uYZxrwTjx",
683 "puO0StIWmrR77Isc/J1pRvdu5+mQa/n0SEHUeM2KkoRzCznfD9zaaRO7BDtvC9SYIT0uYZxrwTjx",
684 "Q7N7UERTrYG0P+vRLAhxkfohFIYl3HXyjPOvnlbUFP2oiiy6nkUFuaIyQcJawJv3GU8k4ObcKsC1",
684 "Q7N7UERTrYG0P+vRLAhxkfohFIYl3HXyjPOvnlbUFP2oiiy6nkUFuaIyQcJawJv3GU8k4ObcKsC1",
685 "cNDXjSpsyQRrxLFaCCjke4mikyt7vs0iN0bnrNWv9HXruG9zOFEOer1ggIFTsT1Eos5CXRkgja5H",
685 "cNDXjSpsyQRrxLFaCCjke4mikyt7vs0iN0bnrNWv9HXruG9zOFEOer1ggIFTsT1Eos5CXRkgja5H",
686 "N4QUM6MhWpc5du/HgBIH8ANFcoo2kJpqcadw9r/0qk25X91MQSDJQiH8Hny2dQhqR+LFWEawiW75",
686 "N4QUM6MhWpc5du/HgBIH8ANFcoo2kJpqcadw9r/0qk25X91MQSDJQiH8Hny2dQhqR+LFWEawiW75",
687 "3SJhn0ngZcv/mPj3mwcHv1SL9ErBqAjm4JGiDetPKYtFwANYY11OyQAAAVdBmwhJ4Q8mUwIr/wAr",
687 "3SJhn0ngZcv/mPj3mwcHv1SL9ErBqAjm4JGiDetPKYtFwANYY11OyQAAAVdBmwhJ4Q8mUwIr/wAr",
688 "Ox5HV2505jRePGgMxptW4PGIHEszV1xGZS+flSkF+aq30AaqO7u6XK9jJsuWXTfYCRQTn1bZfFQ2",
688 "Ox5HV2505jRePGgMxptW4PGIHEszV1xGZS+flSkF+aq30AaqO7u6XK9jJsuWXTfYCRQTn1bZfFQ2",
689 "2DbO5DXAxK/TUmbQleCflFzeS6/czxkL4PJ8AwOs2U+oehekgCZC8gZyHHaQSaKbNJ46gTjNsLy8",
689 "2DbO5DXAxK/TUmbQleCflFzeS6/czxkL4PJ8AwOs2U+oehekgCZC8gZyHHaQSaKbNJ46gTjNsLy8",
690 "4ACQ5uNt11TPuCPqPTuh+schdw9S+/lU/6m+EyaqGZ49wDFPiBFBYXglQQBjyP9k/rqq0xL7SiLj",
690 "4ACQ5uNt11TPuCPqPTuh+schdw9S+/lU/6m+EyaqGZ49wDFPiBFBYXglQQBjyP9k/rqq0xL7SiLj",
691 "pe4riYg8SFUuUtOzPdWHyvxnI7Ug/0VLPGAAhgMISUnqe01d5QFf36yHpwMAHexjAZFIGQHAFaut",
691 "pe4riYg8SFUuUtOzPdWHyvxnI7Ug/0VLPGAAhgMISUnqe01d5QFf36yHpwMAHexjAZFIGQHAFaut",
692 "uMuEw6HzUZVzNdeHYxvEYOGkTo007bLwbuf/nxzrywGOxlRTYJLRdYI0mk0SdN3+LeTv1RIJwv21",
692 "uMuEw6HzUZVzNdeHYxvEYOGkTo007bLwbuf/nxzrywGOxlRTYJLRdYI0mk0SdN3+LeTv1RIJwv21",
693 "+e9rT5iFOTCgzeQoekEWXLYz0X8YLq5bVCtijP7/T7w1Ck71j0aqfrEn6wtIAAABNUGbKUnhDyZT",
693 "+e9rT5iFOTCgzeQoekEWXLYz0X8YLq5bVCtijP7/T7w1Ck71j0aqfrEn6wtIAAABNUGbKUnhDyZT",
694 "Aiv/ACcySi7VBgOid6qZNXvhh/JsllHkMLLq0yNbQTqv/Wk2EBoSKICZwFwAD0WRzhvvReCGirep",
694 "Aiv/ACcySi7VBgOid6qZNXvhh/JsllHkMLLq0yNbQTqv/Wk2EBoSKICZwFwAD0WRzhvvReCGirep",
695 "1Fe4bxjm49/UR+OYrXRmHR18T0C83AUVeBk7KvDZmb/eHzuzEN4yfXucr/NWFJl+USVMY4r4UQ9C",
695 "1Fe4bxjm49/UR+OYrXRmHR18T0C83AUVeBk7KvDZmb/eHzuzEN4yfXucr/NWFJl+USVMY4r4UQ9C",
696 "ayrfEY9v6AQ6mzAdLy2UMfFxrRJ99g/Rfl8qx+m4jIZNjlrTaThzJ/3OpVmAliDfxVyg8+CVIlI3",
696 "ayrfEY9v6AQ6mzAdLy2UMfFxrRJ99g/Rfl8qx+m4jIZNjlrTaThzJ/3OpVmAliDfxVyg8+CVIlI3",
697 "1IykiwQrXcebgajG+av8XU1SfyAG5ibvwbtdSAxkGBcJWL387V+uTdY56w3KN2vBtoQpVKD2zb3y",
697 "1IykiwQrXcebgajG+av8XU1SfyAG5ibvwbtdSAxkGBcJWL387V+uTdY56w3KN2vBtoQpVKD2zb3y",
698 "azIcATZ02upwIytNcM/rpaLCdMb1myWcikE25agzLhDhOS+4zwjYz2DnW6VY0gFBAPsphhsUMnau",
698 "azIcATZ02upwIytNcM/rpaLCdMb1myWcikE25agzLhDhOS+4zwjYz2DnW6VY0gFBAPsphhsUMnau",
699 "VVdUVHzCTSdvzEve/H8q4AAAAVdBm0pJ4Q8mUwIr/wAo+x5XKuiN1am7SkJKSMonFZDPU3f5XFcD",
699 "VVdUVHzCTSdvzEve/H8q4AAAAVdBm0pJ4Q8mUwIr/wAo+x5XKuiN1am7SkJKSMonFZDPU3f5XFcD",
700 "QSs0FLVq2idfsKwuIkt1mxIq8NgMHpzofTnDHqs/WedvAmhBgL0N5azdQa5MNKG2rJ4IAvGQY/uF",
700 "QSs0FLVq2idfsKwuIkt1mxIq8NgMHpzofTnDHqs/WedvAmhBgL0N5azdQa5MNKG2rJ4IAvGQY/uF",
701 "m3jKQAKzvhSS01gO1oIfizF817z9IShS4QK2WT0PeFPELqLSpED8eNOpVTR96vmwpk/WBKRVJdTQ",
701 "m3jKQAKzvhSS01gO1oIfizF817z9IShS4QK2WT0PeFPELqLSpED8eNOpVTR96vmwpk/WBKRVJdTQ",
702 "JzjiCQ5pgEwjtvk7KqoS0+lwXSbvIrXkYm8DignEts3DLNoLHrPjXlQmbIop76JZSyJEtB+91GrL",
702 "JzjiCQ5pgEwjtvk7KqoS0+lwXSbvIrXkYm8DignEts3DLNoLHrPjXlQmbIop76JZSyJEtB+91GrL",
703 "wo6Km5GeebyA2E6qGL3xSkpppej/ruoFprSKrH60UMbrq/SK7eCo+1QFoySPQmqDFsMGiQFqvtld",
703 "wo6Km5GeebyA2E6qGL3xSkpppej/ruoFprSKrH60UMbrq/SK7eCo+1QFoySPQmqDFsMGiQFqvtld",
704 "5BXDYdVI4yRaoyN7Y7wi83HRC6eVazuHU9OtIY3xJJApBWq1aJOsYwc38aTC3ee863Aa/4n9Lk4D",
704 "5BXDYdVI4yRaoyN7Y7wi83HRC6eVazuHU9OtIY3xJJApBWq1aJOsYwc38aTC3ee863Aa/4n9Lk4D",
705 "AtyFYHNZjB5m2e2vk8G2Gny9YFlBAAABQEGba0nhDyZTAiv/ACoZSZQfHxhfQxEqOBQrP+L3Dmgv",
705 "AtyFYHNZjB5m2e2vk8G2Gny9YFlBAAABQEGba0nhDyZTAiv/ACoZSZQfHxhfQxEqOBQrP+L3Dmgv",
706 "HSJQtB1iVkcLTxm+vagLHBLG91OGnopwrr7gT/loDypIhoRxjcwAAOeg/jN4WBbXzCJtnWGGllUC",
706 "HSJQtB1iVkcLTxm+vagLHBLG91OGnopwrr7gT/loDypIhoRxjcwAAOeg/jN4WBbXzCJtnWGGllUC",
707 "SdtUZQzKOSp9iM4yX18C6jrY4Sq6R9PUV/lEGNveJR4gw4FMve7110XdEPL1O2VTdHvdqeANyaq0",
707 "SdtUZQzKOSp9iM4yX18C6jrY4Sq6R9PUV/lEGNveJR4gw4FMve7110XdEPL1O2VTdHvdqeANyaq0",
708 "nLdEmtXnrzvdrFlBaUvmaR4EdlkqGkvkZKWJej8Vq+msbKa7JdbxjwZtRufiyGfD/NVqMgSrYRzw",
708 "nLdEmtXnrzvdrFlBaUvmaR4EdlkqGkvkZKWJej8Vq+msbKa7JdbxjwZtRufiyGfD/NVqMgSrYRzw",
709 "9z/a8Zwbr+9+19CxlWD5bCuAEfPmjY6kZJE2L/CQI6+tnCBTXOmWZtZMBoCLGOf7G2uAC3+kFlbo",
709 "9z/a8Zwbr+9+19CxlWD5bCuAEfPmjY6kZJE2L/CQI6+tnCBTXOmWZtZMBoCLGOf7G2uAC3+kFlbo",
710 "h9as5WCkO6+iqXq29dyhKnsHInorRYsPlgxIXyU1Om/Kyhj1DJV0Am9WJK3Dln0zNUH0q6ZTOnZc",
710 "h9as5WCkO6+iqXq29dyhKnsHInorRYsPlgxIXyU1Om/Kyhj1DJV0Am9WJK3Dln0zNUH0q6ZTOnZc",
711 "FD36AAABYkGbjEnhDyZTAiv/ACcwdIOLRFfoGK2ZkKsvgMwG0m0qsY0vMLPSzefc+ebp/aztyF7M",
711 "FD36AAABYkGbjEnhDyZTAiv/ACcwdIOLRFfoGK2ZkKsvgMwG0m0qsY0vMLPSzefc+ebp/aztyF7M",
712 "lsBz/fBeNtxFBcsKgR4pf65GvdfOMHah0ltZ918sMDmXUEZMeRHy/xpnWpTLeGz6uTs/7MATPmU5",
712 "lsBz/fBeNtxFBcsKgR4pf65GvdfOMHah0ltZ918sMDmXUEZMeRHy/xpnWpTLeGz6uTs/7MATPmU5",
713 "BgHbT/DkD8QeaZnFAzidyFCXDz2l/jaKhEdgqipbB2pH0+fQ039r05z9axxEWGmaLQjg6x9+po1o",
713 "BgHbT/DkD8QeaZnFAzidyFCXDz2l/jaKhEdgqipbB2pH0+fQ039r05z9axxEWGmaLQjg6x9+po1o",
714 "24yhkVO7m03YwWmPyCgy8cOwrvRyJkXJpRN4m8ZBS1zwY80HeN/VyMQQJSMwsTo7R1XMerSFuyx0",
714 "24yhkVO7m03YwWmPyCgy8cOwrvRyJkXJpRN4m8ZBS1zwY80HeN/VyMQQJSMwsTo7R1XMerSFuyx0",
715 "nz+8qOuhiqykc2ohCCsXia/+kIKbJ5Vs+cbWtvkqBKIDSfU7FhAd3GjcY/xar0EVmi6wWFTugAog",
715 "nz+8qOuhiqykc2ohCCsXia/+kIKbJ5Vs+cbWtvkqBKIDSfU7FhAd3GjcY/xar0EVmi6wWFTugAog",
716 "R3I7mTrQDdlTAqYgqO7Gn5NMXQVHu2i1zhFSdo9GjMbeGnbkJwsFbQ2XkoKRIDpuW7AewC9AEBt0",
716 "R3I7mTrQDdlTAqYgqO7Gn5NMXQVHu2i1zhFSdo9GjMbeGnbkJwsFbQ2XkoKRIDpuW7AewC9AEBt0",
717 "Ox/Ah6dGXfXO1jl8pEApj2RFmgAAAPlBm61J4Q8mUwIr/wAlR+eW/VZ7bSrmwwMA62G05DZ7p/5F",
717 "Ox/Ah6dGXfXO1jl8pEApj2RFmgAAAPlBm61J4Q8mUwIr/wAlR+eW/VZ7bSrmwwMA62G05DZ7p/5F",
718 "UugsSsQdonUq6abtbU5hjFr+I1lPgoiV5c3CkTQZS+K5zivdo+Ti2P4K90xXANp8dSMAu85uJIOC",
718 "UugsSsQdonUq6abtbU5hjFr+I1lPgoiV5c3CkTQZS+K5zivdo+Ti2P4K90xXANp8dSMAu85uJIOC",
719 "Qn2TXbEnNDifLB+3V84ht5tj4lvTaZx317BcliV8D5v2zZQW8RO1mUbuJEBItst8E7hfE+ZXj7tf",
719 "Qn2TXbEnNDifLB+3V84ht5tj4lvTaZx317BcliV8D5v2zZQW8RO1mUbuJEBItst8E7hfE+ZXj7tf",
720 "DxNZPTvtpFyUv0fH1cTg1pr2VLy0d0zQLiA58dg+GkRvR1/hs2LyifBgHcj6eTWz0vsypVn9iPXR",
720 "DxNZPTvtpFyUv0fH1cTg1pr2VLy0d0zQLiA58dg+GkRvR1/hs2LyifBgHcj6eTWz0vsypVn9iPXR",
721 "H/unJ6i8cfFL69NO24tQ9QQB+nDFhoP2cRhkAvhHwn56n5PppBD/oxni2f8AAAE9QZvOSeEPJlMC",
721 "H/unJ6i8cfFL69NO24tQ9QQB+nDFhoP2cRhkAvhHwn56n5PppBD/oxni2f8AAAE9QZvOSeEPJlMC",
722 "K/8AJjAXVGf+Kj2XNJnFeKC/gr7dJDTC2ngpd4WeAHlg04GuJKnn9hAmiECxxo9qM1IYMRiB85t6",
722 "K/8AJjAXVGf+Kj2XNJnFeKC/gr7dJDTC2ngpd4WeAHlg04GuJKnn9hAmiECxxo9qM1IYMRiB85t6",
723 "gALnlm9sRqGmioyzAm18RJndc9Ah8RlpGzr+44a6ntRaPx0cIwNIWAA8buL2JP00dmfjNqEiAlCa",
723 "gALnlm9sRqGmioyzAm18RJndc9Ah8RlpGzr+44a6ntRaPx0cIwNIWAA8buL2JP00dmfjNqEiAlCa",
724 "8OdV8FQxjp1vDXsGcAGF3Qbd62KEpkimeI3wH2nuXpbDHm8/ZKOR49s5ifUCkxCoJpfp43aC0lTz",
724 "8OdV8FQxjp1vDXsGcAGF3Qbd62KEpkimeI3wH2nuXpbDHm8/ZKOR49s5ifUCkxCoJpfp43aC0lTz",
725 "h2NXpcfVw6h0QnK8G60R4ZAxOxaJB7c0nn8ixXSU2JVY24EtGMF53nxJnHfzUheewUfBOGYSxeo8",
725 "h2NXpcfVw6h0QnK8G60R4ZAxOxaJB7c0nn8ixXSU2JVY24EtGMF53nxJnHfzUheewUfBOGYSxeo8",
726 "oK7oUCqX4rztzDwoc2QywNqQUJUkFrqIN+sb5ecYvX24Zujn+ZzTW6UDAF3R6WdNyJyRAremgC8s",
726 "oK7oUCqX4rztzDwoc2QywNqQUJUkFrqIN+sb5ecYvX24Zujn+ZzTW6UDAF3R6WdNyJyRAremgC8s",
727 "pSflTqygQNGfHyGkfIEEJJaFo/pBCBkAAAEWQZvvSeEPJlMCK/8AKI41fuekXG59Knbw4Y6YJrit",
727 "pSflTqygQNGfHyGkfIEEJJaFo/pBCBkAAAEWQZvvSeEPJlMCK/8AKI41fuekXG59Knbw4Y6YJrit",
728 "sh9VtQgc3QKvVmxrzzo7f4aXn8N74eyP4b2lV1Z2Q+rohxps7EHTkOY9jLdqxI3MXe7je4g2qepz",
728 "sh9VtQgc3QKvVmxrzzo7f4aXn8N74eyP4b2lV1Z2Q+rohxps7EHTkOY9jLdqxI3MXe7je4g2qepz",
729 "71+hY+jYdX+9LO0kA0Zg3NfyAlIRX7k6c/YHAZNtNaGZgTBMqiPgmEjiJH9Luk7shbgr+srfwiYw",
729 "71+hY+jYdX+9LO0kA0Zg3NfyAlIRX7k6c/YHAZNtNaGZgTBMqiPgmEjiJH9Luk7shbgr+srfwiYw",
730 "BX9rdS3fQNNFwcT8orQC+F60LAY9+GbFo2Sw3Ld4Tw9jq9yJtrY8RtHAdzytyek/mv2+j2TbTvAQ",
730 "BX9rdS3fQNNFwcT8orQC+F60LAY9+GbFo2Sw3Ld4Tw9jq9yJtrY8RtHAdzytyek/mv2+j2TbTvAQ",
731 "KbbCYtdC8E/KtR4V5ZTSScr5Wb63vmbw7UpddEXYvl55pARyyvMxWNSh3Li4GF8Jk5JBi5B5ASQw",
731 "KbbCYtdC8E/KtR4V5ZTSScr5Wb63vmbw7UpddEXYvl55pARyyvMxWNSh3Li4GF8Jk5JBi5B5ASQw",
732 "xCMYpX5hkAMc+d8tl2bT+IEvUTsAAAElQZoQSeEPJlMCK/8AJIAzFZs00JJ0yfm8CZiew4xWdArL",
732 "xCMYpX5hkAMc+d8tl2bT+IEvUTsAAAElQZoQSeEPJlMCK/8AJIAzFZs00JJ0yfm8CZiew4xWdArL",
733 "klEvBVXo/+ukPLu3XP9HFOfsme3T6BJEKmPPgZw/Lxnraq6Sl2kLVW19YU1qmqgfv+80LkZaWU5g",
733 "klEvBVXo/+ukPLu3XP9HFOfsme3T6BJEKmPPgZw/Lxnraq6Sl2kLVW19YU1qmqgfv+80LkZaWU5g",
734 "RAH4hqyo3bFYcbuY2SC3IW5Wm69gtYyAXOdbAYSEHA16fvCeRQjHEsxKVndJdrRAlrGHsKgUBQ3U",
734 "RAH4hqyo3bFYcbuY2SC3IW5Wm69gtYyAXOdbAYSEHA16fvCeRQjHEsxKVndJdrRAlrGHsKgUBQ3U",
735 "p/ZXIy1vkdFOfKSjpuZnswkuqr8NZI5tJ/dnBSErBTNWPaNwWV7nNomC0EYVGo+geGBhLXzaLw0U",
735 "p/ZXIy1vkdFOfKSjpuZnswkuqr8NZI5tJ/dnBSErBTNWPaNwWV7nNomC0EYVGo+geGBhLXzaLw0U",
736 "AOCYGjiPc3803BDw1GLoLIXjrIFJxwRfBNIAXYZAglu30oYzhpAfRWSprkeULMWYJTlWvbUQ5CNe",
736 "AOCYGjiPc3803BDw1GLoLIXjrIFJxwRfBNIAXYZAglu30oYzhpAfRWSprkeULMWYJTlWvbUQ5CNe",
737 "wSZssuDWIRAc3w8AcFaywwn+YSGhtR8VI1OGjYkfBbcAAAD8QZoxSeEPJlMCK/8AJdokjCUETRw/",
737 "wSZssuDWIRAc3w8AcFaywwn+YSGhtR8VI1OGjYkfBbcAAAD8QZoxSeEPJlMCK/8AJdokjCUETRw/",
738 "nciVPtaZQSBP/VxAQSITASEzlJBl9Na1r0DJhLOz279+KQLtl/xHZ8vAKc528mTMTqtWs4sFbeVg",
738 "nciVPtaZQSBP/VxAQSITASEzlJBl9Na1r0DJhLOz279+KQLtl/xHZ8vAKc528mTMTqtWs4sFbeVg",
739 "HWyBpHcHEtgTzjIqEinp/MPuUXF5poo8YLSSMFn9Ozx2FbU5/Kh9A39oN9NHQflVxV1NA6yT/84H",
739 "HWyBpHcHEtgTzjIqEinp/MPuUXF5poo8YLSSMFn9Ozx2FbU5/Kh9A39oN9NHQflVxV1NA6yT/84H",
740 "HyfMtfdSMS8KTvAEE2lDs14VQayNs5ctjXboQT7xMBf5OLj6thhPvgaDrFB2o/PV9ouK147lruWT",
740 "HyfMtfdSMS8KTvAEE2lDs14VQayNs5ctjXboQT7xMBf5OLj6thhPvgaDrFB2o/PV9ouK147lruWT",
741 "P2mkoA9oDIMYW1pcBx4yyV/t9GOPZ3aXneMUb2fFmUCX43BjXfUDMaa4GO2/Ankj3UEQwDxA7ZlN",
741 "P2mkoA9oDIMYW1pcBx4yyV/t9GOPZ3aXneMUb2fFmUCX43BjXfUDMaa4GO2/Ankj3UEQwDxA7ZlN",
742 "UQK2AAAA4UGaUknhDyZTAiv/ACJHv33I08bkhybYiJ/JiiheW5zMPBu4n5CxGr3frhE7TkLh0vPk",
742 "UQK2AAAA4UGaUknhDyZTAiv/ACJHv33I08bkhybYiJ/JiiheW5zMPBu4n5CxGr3frhE7TkLh0vPk",
743 "tM8m/AhaDiJisdk5QXNe/4WmxEDSAyaVi4eUVu0iHT2ly/KNTGqiORqA2oKpTjh84nYbrpXwnGv9",
743 "tM8m/AhaDiJisdk5QXNe/4WmxEDSAyaVi4eUVu0iHT2ly/KNTGqiORqA2oKpTjh84nYbrpXwnGv9",
744 "SOf/34Z06xN6Yo3t35UZrP8nlcs/63GtnEmnUwVZHBYfPM6bs5M5AeBfAQ/9mIqu7vnEst+5O2wp",
744 "SOf/34Z06xN6Yo3t35UZrP8nlcs/63GtnEmnUwVZHBYfPM6bs5M5AeBfAQ/9mIqu7vnEst+5O2wp",
745 "PjzdItjwGCZ2ApHVjGnYYFomlA9nm6AXnxNIWHIsDgxCk3zx+6QbXipu/CWLG1Wf0WIbt4C0JPVl",
745 "PjzdItjwGCZ2ApHVjGnYYFomlA9nm6AXnxNIWHIsDgxCk3zx+6QbXipu/CWLG1Wf0WIbt4C0JPVl",
746 "3TEb0QAAAMlBmnNJ4Q8mUwIr/wAVV64OfTKmlktYOqZHH1W1DhPy/X/6sD4T6hRdzfOgNtTOX2Ic",
746 "3TEb0QAAAMlBmnNJ4Q8mUwIr/wAVV64OfTKmlktYOqZHH1W1DhPy/X/6sD4T6hRdzfOgNtTOX2Ic",
747 "kRJHshfBQVkJIzns079io6kpJFCcS3VD4zrWCn/dNaGV0kWTpFBRuusfn8F0C0R/EhsQeyTsdZft",
747 "kRJHshfBQVkJIzns079io6kpJFCcS3VD4zrWCn/dNaGV0kWTpFBRuusfn8F0C0R/EhsQeyTsdZft",
748 "EkLGb5tq+nrir3vfmeb7rjmWJRXkIrTEKu8pIuAd+4FBGp8ARgGe80Jqpp//s1433HqBFqXsIFJT",
748 "EkLGb5tq+nrir3vfmeb7rjmWJRXkIrTEKu8pIuAd+4FBGp8ARgGe80Jqpp//s1433HqBFqXsIFJT",
749 "mU8j/toF9HyueI1Ea4uvsQ6NANGcYCbOAKCmbNiwABMCFaiUTMAAAAPSbW9vdgAAAGxtdmhkAAAA",
749 "mU8j/toF9HyueI1Ea4uvsQ6NANGcYCbOAKCmbNiwABMCFaiUTMAAAAPSbW9vdgAAAGxtdmhkAAAA",
750 "AHwlsIB8JbCAAAAD6AAAAyAAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAA",
750 "AHwlsIB8JbCAAAAD6AAAAyAAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAA",
751 "AAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAv10cmFrAAAAXHRraGQA",
751 "AAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAv10cmFrAAAAXHRraGQA",
752 "AAAPfCWwgHwlsIAAAAABAAAAAAAAAyAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAB",
752 "AAAPfCWwgHwlsIAAAAABAAAAAAAAAyAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAB",
753 "AAAAAAAAAAAAAAAAAABAAAAAAY4AAAGGAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAMgAAAA",
753 "AAAAAAAAAAAAAAAAAABAAAAAAY4AAAGGAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAMgAAAA",
754 "AgABAAAAAAJ1bWRpYQAAACBtZGhkAAAAAHwlsIB8JbCAAAAAGQAAABRVxAAAAAAALWhkbHIAAAAA",
754 "AgABAAAAAAJ1bWRpYQAAACBtZGhkAAAAAHwlsIB8JbCAAAAAGQAAABRVxAAAAAAALWhkbHIAAAAA",
755 "AAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAACIG1pbmYAAAAUdm1oZAAAAAEAAAAA",
755 "AAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAACIG1pbmYAAAAUdm1oZAAAAAEAAAAA",
756 "AAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAeBzdGJsAAAAtHN0c2QA",
756 "AAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAeBzdGJsAAAAtHN0c2QA",
757 "AAAAAAAAAQAAAKRhdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAY4BhgBIAAAASAAAAAAAAAAB",
757 "AAAAAAAAAQAAAKRhdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAY4BhgBIAAAASAAAAAAAAAAB",
758 "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAAMmF2Y0MBZAAV/+EAGWdkABWs",
758 "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAAMmF2Y0MBZAAV/+EAGWdkABWs",
759 "2UGQz6mhAAADAAEAAAMAMg8WLZYBAAZo6+PLIsAAAAAcdXVpZGtoQPJfJE/FujmlG88DI/MAAAAA",
759 "2UGQz6mhAAADAAEAAAMAMg8WLZYBAAZo6+PLIsAAAAAcdXVpZGtoQPJfJE/FujmlG88DI/MAAAAA",
760 "AAAAGHN0dHMAAAAAAAAAAQAAABQAAAABAAAAFHN0c3MAAAAAAAAAAQAAAAEAAAAYY3R0cwAAAAAA",
760 "AAAAGHN0dHMAAAAAAAAAAQAAABQAAAABAAAAFHN0c3MAAAAAAAAAAQAAAAEAAAAYY3R0cwAAAAAA",
761 "AAABAAAAFAAAAAIAAAAcc3RzYwAAAAAAAAABAAAAAQAAAAEAAAABAAAAZHN0c3oAAAAAAAAAAAAA",
761 "AAABAAAAFAAAAAIAAAAcc3RzYwAAAAAAAAABAAAAAQAAAAEAAAABAAAAZHN0c3oAAAAAAAAAAAAA",
762 "ABQAAA05AAACqQAAAl8AAAITAAACiwAAAh8AAAIvAAABiAAAAVsAAAE5AAABWwAAAUQAAAFmAAAA",
762 "ABQAAA05AAACqQAAAl8AAAITAAACiwAAAh8AAAIvAAABiAAAAVsAAAE5AAABWwAAAUQAAAFmAAAA",
763 "/QAAAUEAAAEaAAABKQAAAQAAAADlAAAAzQAAAGBzdGNvAAAAAAAAABQAAAAsAAANZQAAEA4AABJt",
763 "/QAAAUEAAAEaAAABKQAAAQAAAADlAAAAzQAAAGBzdGNvAAAAAAAAABQAAAAsAAANZQAAEA4AABJt",
764 "AAAUgAAAFwsAABkqAAAbWQAAHOEAAB48AAAfdQAAINAAACIUAAAjegAAJHcAACW4AAAm0gAAJ/sA",
764 "AAAUgAAAFwsAABkqAAAbWQAAHOEAAB48AAAfdQAAINAAACIUAAAjegAAJHcAACW4AAAm0gAAJ/sA",
765 "ACj7AAAp4AAAAGF1ZHRhAAAAWW1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAA",
765 "ACj7AAAp4AAAAGF1ZHRhAAAAWW1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAA",
766 "AAAAAAAALGlsc3QAAAAkqXRvbwAAABxkYXRhAAAAAQAAAABMYXZmNTIuMTExLjA=",
766 "AAAAAAAALGlsc3QAAAAkqXRvbwAAABxkYXRhAAAAAQAAAABMYXZmNTIuMTExLjA=",
767 "\">"
767 "\">"
768 ],
768 ],
769 "output_type": "pyout",
769 "output_type": "pyout",
770 "prompt_number": 5,
770 "prompt_number": 5,
771 "text": [
771 "text": [
772 "&lt;IPython.core.display.HTML at 0x423a550&gt;"
772 "&lt;IPython.core.display.HTML at 0x423a550&gt;"
773 ]
773 ]
774 }
774 }
775 ],
775 ],
776 "prompt_number": 5
776 "prompt_number": 5
777 },
777 },
778 {
778 {
779 "cell_type": "markdown",
779 "cell_type": "markdown",
780 "source": [
780 "source": [
781 "## Local Files",
781 "## Local Files",
782 "",
782 "",
783 "The above examples embed images and video from the notebook filesystem in the output",
783 "The above examples embed images and video from the notebook filesystem in the output",
784 "areas of code cells. It is also possible to request these files directly in markdown cells",
784 "areas of code cells. It is also possible to request these files directly in markdown cells",
785 "if they reside in the notebook directory via relative urls prefixed with `files/`:",
785 "if they reside in the notebook directory via relative urls prefixed with `files/`:",
786 "",
786 "",
787 " files/[subdirectory/]<filename>",
787 " files/[subdirectory/]<filename>",
788 "",
788 "",
789 "",
789 "",
790 "For example, in the example notebook folder, we have the Python logo, addressed as:",
790 "For example, in the example notebook folder, we have the Python logo, addressed as:",
791 "",
791 "",
792 " <img src=\"files/python-logo.svg\" />",
792 " <img src=\"files/python-logo.svg\" />",
793 "",
793 "",
794 "<img src=\"/files/python-logo.svg\" />",
794 "<img src=\"/files/python-logo.svg\" />",
795 "",
795 "",
796 "and a video with the HTML5 video tag:",
796 "and a video with the HTML5 video tag:",
797 "",
797 "",
798 " <video controls src=\"files/animation.m4v\" />",
798 " <video controls src=\"files/animation.m4v\" />",
799 "",
799 "",
800 "<video controls src=\"/files/animation.m4v\" />",
800 "<video controls src=\"/files/animation.m4v\" />",
801 "",
801 "",
802 "These do not embed the data into the notebook file,",
802 "These do not embed the data into the notebook file,",
803 "and require that the files exist when you are viewing the notebook.",
803 "and require that the files exist when you are viewing the notebook.",
804 "",
804 "",
805 "### Security of local files",
805 "### Security of local files",
806 "",
806 "",
807 "Note that this means that the IPython notebook server also acts as a generic file server",
807 "Note that this means that the IPython notebook server also acts as a generic file server",
808 "for files inside the same tree as your notebooks. Access is not granted outside the",
808 "for files inside the same tree as your notebooks. Access is not granted outside the",
809 "notebook folder so you have strict control over what files are visible, but for this",
809 "notebook folder so you have strict control over what files are visible, but for this",
810 "reason it is highly recommended that you do not run the notebook server with a notebook",
810 "reason it is highly recommended that you do not run the notebook server with a notebook",
811 "directory at a high level in your filesystem (e.g. your home directory).",
811 "directory at a high level in your filesystem (e.g. your home directory).",
812 "",
812 "",
813 "When you run the notebook in a password-protected manner, local file access is restricted",
813 "When you run the notebook in a password-protected manner, local file access is restricted",
814 "to authenticated users unless read-only views are active."
814 "to authenticated users unless read-only views are active."
815 ]
815 ]
816 },
816 },
817 {
817 {
818 "cell_type": "markdown",
818 "cell_type": "markdown",
819 "source": [
819 "source": [
820 "### External sites",
820 "### External sites",
821 "",
821 "",
822 "You can even embed an entire page from another site in an iframe; for example this is today's Wikipedia",
822 "You can even embed an entire page from another site in an iframe; for example this is today's Wikipedia",
823 "page for mobile users:"
823 "page for mobile users:"
824 ]
824 ]
825 },
825 },
826 {
826 {
827 "cell_type": "code",
827 "cell_type": "code",
828 "collapsed": false,
828 "collapsed": false,
829 "input": [
829 "input": [
830 "HTML('<iframe src=http://en.mobile.wikipedia.org/?useformat=mobile width=700 height=350>')"
830 "HTML('<iframe src=http://en.mobile.wikipedia.org/?useformat=mobile width=700 height=350>')"
831 ],
831 ],
832 "language": "python",
832 "language": "python",
833 "outputs": [
833 "outputs": [
834 {
834 {
835 "html": [
835 "html": [
836 "<iframe src=http://en.mobile.wikipedia.org/?useformat=mobile width=700 height=350>"
836 "<iframe src=http://en.mobile.wikipedia.org/?useformat=mobile width=700 height=350>"
837 ],
837 ],
838 "output_type": "pyout",
838 "output_type": "pyout",
839 "prompt_number": 6,
839 "prompt_number": 6,
840 "text": [
840 "text": [
841 "&lt;IPython.core.display.HTML at 0x41d4710&gt;"
841 "&lt;IPython.core.display.HTML at 0x41d4710&gt;"
842 ]
842 ]
843 }
843 }
844 ],
844 ],
845 "prompt_number": 6
845 "prompt_number": 6
846 },
846 },
847 {
847 {
848 "cell_type": "markdown",
848 "cell_type": "markdown",
849 "source": [
849 "source": [
850 "### Mathematics",
850 "### Mathematics",
851 "",
851 "",
852 "And we also support the display of mathematical expressions typeset in LaTeX, which is rendered",
852 "And we also support the display of mathematical expressions typeset in LaTeX, which is rendered",
853 "in the browser thanks to the [MathJax library](http://mathjax.org). ",
853 "in the browser thanks to the [MathJax library](http://mathjax.org). ",
854 "",
854 "",
855 "Note that this is *different* from the above examples. Above we were typing mathematical expressions",
855 "Note that this is *different* from the above examples. Above we were typing mathematical expressions",
856 "in Markdown cells (along with normal text) and letting the browser render them; now we are displaying",
856 "in Markdown cells (along with normal text) and letting the browser render them; now we are displaying",
857 "the output of a Python computation as a LaTeX expression wrapped by the `Math()` object so the browser",
857 "the output of a Python computation as a LaTeX expression wrapped by the `Math()` object so the browser",
858 "renders it:"
858 "renders it:"
859 ]
859 ]
860 },
860 },
861 {
861 {
862 "cell_type": "code",
862 "cell_type": "code",
863 "collapsed": false,
863 "collapsed": false,
864 "input": [
864 "input": [
865 "from IPython.core.display import Math",
865 "from IPython.core.display import Math",
866 "Math(r'$F(k) = \\int_{-\\infty}^{\\infty} f(x) e^{2\\pi i k} dx$')"
866 "Math(r'$F(k) = \\int_{-\\infty}^{\\infty} f(x) e^{2\\pi i k} dx$')"
867 ],
867 ],
868 "language": "python",
868 "language": "python",
869 "outputs": [
869 "outputs": [
870 {
870 {
871 "latex": [
871 "latex": [
872 "$F(k) = \\int_{-\\infty}^{\\infty} f(x) e^{2\\pi i k} dx$"
872 "$F(k) = \\int_{-\\infty}^{\\infty} f(x) e^{2\\pi i k} dx$"
873 ],
873 ],
874 "output_type": "pyout",
874 "output_type": "pyout",
875 "prompt_number": 8,
875 "prompt_number": 8,
876 "text": [
876 "text": [
877 "&lt;IPython.core.display.Math at 0x45840d0&gt;"
877 "&lt;IPython.core.display.Math at 0x45840d0&gt;"
878 ]
878 ]
879 }
879 }
880 ],
880 ],
881 "prompt_number": 8
881 "prompt_number": 8
882 },
882 },
883 {
883 {
884 "cell_type": "markdown",
884 "cell_type": "markdown",
885 "source": [
885 "source": [
886 "# Loading external codes",
886 "# Loading external codes",
887 "* Drag and drop a ``.py`` in the dashboard",
887 "* Drag and drop a ``.py`` in the dashboard",
888 "* Use ``%loadpy`` with any local or remote url: [the Matplotlib Gallery!](http://matplotlib.sourceforge.net/gallery.html)",
888 "* Use ``%loadpy`` with any local or remote url: [the Matplotlib Gallery!](http://matplotlib.sourceforge.net/gallery.html)",
889 "",
889 "",
890 "In this notebook we've kept the output saved so you can see the result, but you should run the next",
890 "In this notebook we've kept the output saved so you can see the result, but you should run the next",
891 "cell yourself (with an active internet connection)."
891 "cell yourself (with an active internet connection)."
892 ]
892 ]
893 },
893 },
894 {
894 {
895 "cell_type": "code",
895 "cell_type": "code",
896 "collapsed": true,
896 "collapsed": true,
897 "input": [
897 "input": [
898 "%loadpy http://matplotlib.sourceforge.net/mpl_examples/pylab_examples/integral_demo.py"
898 "%loadpy http://matplotlib.sourceforge.net/mpl_examples/pylab_examples/integral_demo.py"
899 ],
899 ],
900 "language": "python",
900 "language": "python",
901 "outputs": [],
901 "outputs": [],
902 "prompt_number": 8
902 "prompt_number": 8
903 },
903 },
904 {
904 {
905 "cell_type": "code",
905 "cell_type": "code",
906 "collapsed": false,
906 "collapsed": false,
907 "input": [
907 "input": [
908 "#!/usr/bin/env python",
908 "#!/usr/bin/env python",
909 "",
909 "",
910 "# implement the example graphs/integral from pyx",
910 "# implement the example graphs/integral from pyx",
911 "from pylab import *",
911 "from pylab import *",
912 "from matplotlib.patches import Polygon",
912 "from matplotlib.patches import Polygon",
913 "",
913 "",
914 "def func(x):",
914 "def func(x):",
915 " return (x-3)*(x-5)*(x-7)+85",
915 " return (x-3)*(x-5)*(x-7)+85",
916 "",
916 "",
917 "ax = subplot(111)",
917 "ax = subplot(111)",
918 "",
918 "",
919 "a, b = 2, 9 # integral area",
919 "a, b = 2, 9 # integral area",
920 "x = arange(0, 10, 0.01)",
920 "x = arange(0, 10, 0.01)",
921 "y = func(x)",
921 "y = func(x)",
922 "plot(x, y, linewidth=1)",
922 "plot(x, y, linewidth=1)",
923 "",
923 "",
924 "# make the shaded region",
924 "# make the shaded region",
925 "ix = arange(a, b, 0.01)",
925 "ix = arange(a, b, 0.01)",
926 "iy = func(ix)",
926 "iy = func(ix)",
927 "verts = [(a,0)] + zip(ix,iy) + [(b,0)]",
927 "verts = [(a,0)] + zip(ix,iy) + [(b,0)]",
928 "poly = Polygon(verts, facecolor='0.8', edgecolor='k')",
928 "poly = Polygon(verts, facecolor='0.8', edgecolor='k')",
929 "ax.add_patch(poly)",
929 "ax.add_patch(poly)",
930 "",
930 "",
931 "text(0.5 * (a + b), 30,",
931 "text(0.5 * (a + b), 30,",
932 " r\"$\\int_a^b f(x)\\mathrm{d}x$\", horizontalalignment='center',",
932 " r\"$\\int_a^b f(x)\\mathrm{d}x$\", horizontalalignment='center',",
933 " fontsize=20)",
933 " fontsize=20)",
934 "",
934 "",
935 "axis([0,10, 0, 180])",
935 "axis([0,10, 0, 180])",
936 "figtext(0.9, 0.05, 'x')",
936 "figtext(0.9, 0.05, 'x')",
937 "figtext(0.1, 0.9, 'y')",
937 "figtext(0.1, 0.9, 'y')",
938 "ax.set_xticks((a,b))",
938 "ax.set_xticks((a,b))",
939 "ax.set_xticklabels(('a','b'))",
939 "ax.set_xticklabels(('a','b'))",
940 "ax.set_yticks([])",
940 "ax.set_yticks([])",
941 "show()"
941 "show()"
942 ],
942 ],
943 "language": "python",
943 "language": "python",
944 "outputs": [
944 "outputs": [
945 {
945 {
946 "output_type": "display_data",
946 "output_type": "display_data",
947 "png": "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\nSUVORK5CYII=\n"
947 "png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAADzCAYAAAAl6cWdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8VNXdx/HPZCU7CQQIgQSMICCBALILBUXrVjFU+xIp\nbvAgj7gUwSDUBYogFa1QsbhUK2KhSkUNIPpUiiwKQhDCmhAIYUsIexLINsnM88cAAmbPTG5u5vt+\nvfyDZOaenxK/+c2555xrmTx5sn3mzJmIiIjrWQ4cOGBv06aN0XWIiLgFi91utxtdhIiIu/AwugAR\nEXei0BURqUMKXRGROuRV0TctFktd1SEi0qCUd7uswtCt6I3uZurUqUydOtXoMkSkEnX1/2pJCbRp\nA199BV26XPm9ihpWTS+IiNTAsmWO0L06cCuj0BURqYH58+F//7f671PoVtGgQYOMLkFEqqAu/l/d\nvRu2b4d7763+eyvcHGGxWDSnKyJylbFjISICXnqp7O9XlJ0KXRGRajh9GmJiICUFmjcv+zUVZaem\nF0REquG992Do0PIDtzLqdEVEqshqhWuugcRE6Nat/Nep0xURcYLPP3eEbkWBWxmFrohIFc2ZA3/4\nQ+2uodAVEamCTZsgKwvuvrt211HoiohUwdy58OST4OlZu+voRpqISCWOHoXYWDhwAEJCKn+9bqSJ\niNTCX/8KI0dWLXAro05XRKQCOTmOFQs//QTR0VV7jzpdEZEaeucduP32qgduZdTpioiUo6jI0eWu\nXFm9IxzV6YqI1MDHHzvCtrpn5lZEna6ISBlsNujUyXFu7uDB1XuvOl0RkWpatgyCgsDZx/MqdEVE\nyvDqq5CQAM5+Pq9CV0TkKuvWQXY2DBvm/GsrdEVErjJ9Ojz3XO23/JZFoSsicpkff4TUVHjwQddc\nX6ErInKZ6dNh0iTw8XHN9bVkTETkgp9+gt/8Bvbvh0aNan4dLRkTEamCl1+GZ5+tXeBWRp2uiAiw\nYwfccgukp4O/f+2upU5XRKQSM2bAM8/UPnAro05XRNxeSgoMHOiYyw0Kqv311OmKiFRg6lQYP945\ngVsZdboi4taSk+HXv3Z0uQEBzrmmOl0RkXK8+KJj95mzArcy6nRFxG39+CPcey+kpTl3mZg6XRGR\nMrzwAjz/vGvX5V5NoSsibmnNGti3Dx55pG7HVeiKiNux2x0d7tSprjtjoTwKXRFxO19/DSdPwogR\ndT+2QldE3EppqeOJEK+84przciuj0BURt7JgATRuDEOHGjO+loyJiNs4fx6uuw7+/W/o08d142jJ\nmIgIMGcO9Ovn2sCtjDpdEXELx49Dp06ODRExMa4dq6LsVOiKiFsYNw68vGDuXNePpdAVEbeWmgr9\n+zuOcGza1PXjaU5XRNzaM884HjZZF4FbGS+jCxARcaUVKxzbfT//3OhKHBS6ItJgFRU5DiefO7fu\nt/uWR9MLItJgzZ3rWJd7++1GV/Iz3UgTkQYpKwtiY2HDBmjXrm7H1uoFEXE7Dz0EEREwa1bdj11R\ndmpOV0QanA0b4NtvHUvE6hvN6YpIg2K1wmOPwWuv1c3TfatLoSsiDcobbzimFe6/3+hKyqY5XRFp\nMDIy4IYb6uZ8hYpoR5qINHh2u+N8hWeeMTZwK6NOV0QahCefXMPixdeRmdnC8I0QWjImIg3akSO5\ntG6dS0DAaM6d+9rocrRkTEQatltv3YaPTzqDB3sbXUqlNKcrIqb2l79sJzX1GsaPzzK6lCpR6IqI\naWVn5zNpUhijRv1IeLiPKaZDFboiYlpDhvxEixa7eOyxNlgsFqPLqRLN6YqIKf3lL9vZvbsNS5fu\nu/Q1dboiIi6QmZlHQkIYo0dvolWrerjXtwLqdEXEdAYN2kZkZCFjxkRf8XUzdLoKXRExlUmTNnHg\nQCuWLTtyxdfNsq9A0wsiYhpbthxn9uy2TJq0nfBw/yu+pxtpIiJOZLXauOWWLHr02E98fHSZr1Gn\nKyLiJPfcs57iYitz50aW+X2zdLoKXRGp9xYs2M3KlR2ZO/cMvr7lf0BXpysiUksZGbmMHh3EAw+s\nJy4urNzXmaXT1ZyuiNRbpaV2+vZN5Zprshk/PqrS15uh01Xoiki9NXTo9+Tk+PPJJ02MLsVpNL0g\nIvXSvHk7+Oqrdsybd5KAgKqdSm6GTlehKyL1zrZt2Tz9dFPGjv2erl2r1uVqTldEpAZyc4sZMOAE\nPXqkM2pU2etxy2OGTlehKyL1hs1mp0ePLfj7FzJvXkS13qtOV0SkmoYN+57DhxuTmFiKp2f1Zz/N\n0OlqTldE6oXp07ewbFkMb711lCZN/Kr9frN0ugpdETFcYuJ+XnopioSETcTFNa3RNXTKmIhIFWzd\nepxhw3yJj1/Pvfe2qtW1zBC6mtMVEcMcPXqOfv3OcsMNO5kypXorFcxKoSsihjh3zkqXLvtp2fIw\nb75Z+RbfqlCnKyJShpISG507J+HhUcTCheF4eNT+JphZbqQpdEWkTjnW4q7j5MkgEhPtFR7VWF1m\n6HR1I01E6ozdDjfe+D179zZh8eJzhIT4Ou3aZul0FboiUmeGDFlHUlJTPv74JC1bBjj9+up0RUQu\nuOOOtaxdG8GCBUdp0ybI6ddXpysicsEdd6zlP/+J4v33M2jfvrHLxjFDp6sbaSLiMnY73HTTetav\nb8kHH+ynU6dQl41llk5XoSsiLmGz2enXbz1btzZl4cJDtGvnug73InW6IuKWrFYb3bqtZ//+xixe\nnE10dIjRJdUbCl0RcaqzZ4u4/vpt5OX58dlnuTRv7vybZmXRgTci4nbS03OIjk6jtPQcy5aV0Lx5\n9Y9orA2Froi4jbVrD9Ox4ykiI9P54osgAgOr9jBJZzHLjTSFrojU2l//uoPBg30ZODCZhQsj8fb2\nNKQOM3S6mtMVkRqz22HEiO/517+u5fHH1/PII8Ydz2iWTlehKyI1kpNTRO/em0hPD2fevK307m38\nebhm6HQ1vSAi1bZ69REiIg5w5oyNxMQT9O4dbnRJpqHQFZFqeeaZTdx8cyP69NnF8uUBhIf7G13S\nJWbodDW9ICJVkp19nkGDtrBvX2umTt3AnXe2MbqkK5hlTledrohU6m9/202rVqc4d66YL788yp13\ntjS6pDKp0xURUzt5soBbb91CcnIMDz74A0880cboksqlTldETG3WrG1ERGRz7FgRn36aUq8D9yJ1\nuiJiOklJ2cTHHyQrK5xHHtnK2LHOeVKvq6nTFRFTOXOmkNtu+45evbxo2jSTb77JNE3ggnkOvFGn\nK+LmiottjBu3iX/8I4rQUA/eemsLvXq1NrqsGlHoiki9VVpq5/nnN/PGG03w8vJi4sRN3Hdfa8D5\nD4yUnyl0RdxMcbGNZ5/dzLvvNsFuD2TkyGTGjInCw8Oc3e3l1OmKadjtdoqKisnJKSI310pRUSlg\nx2Kx4+npgbe3J40aeRMa6oufn49pblrIz44fz+fpp7fw739H4+vryciRyYweHYWnp/FnJjiDWX4m\nFboNmM1mZ8+ebDZuPMb27XmkpVnJzLRw5owHeXm+FBQEYrWGUFoaCPgBjXAErQ2wA5YL/3gAFux2\nDxw/MkXAeTw88vH0LMLbuxA/v/MEBBQSGmqlSRNo0cKTVq18iYkJpHPnxnTt2pyAAF+D/ku4t6+/\nPsjkyYdJTr6eJk1g/Pit/O53kVgsbYwuzenU6UqdSU09yeefH2D9+lz27PEkK6spBQXRWCy+NGrk\nS3DwecLCiggPL6ZdOwvNmnnSosVZWrTIJjzch9DQRvj7e+BRyXoWux3y822cOWPl7FkrZ84Ucfq0\nlezsUk6cgNOnLZw86Ul6ui/nztnJz7dQWOiNzWbBwyOTRo1OEBycR7NmxURFWWjf3pfu3UPo3z+C\n6OhQ03Qr9d2RI+d46aVkPvvMn9zcCGJjT/Lee5uIi2sK1J+zEpzJLD87Cl0TstnsLFu2j08+OcKG\nDRaOHGlNSUk4QUGetGhRSocO5xk+PJ++fc/SosXFx6U0uvBP7VgsEBDgQUCAL61a+QKBlbyjGMik\nuPgo+/adJy2tgAMHijl0CNLSvPnxR2/eesuLoiIf4DR+fkcJCztL69bFtG/vTdeugfTt25yePVvi\n5aUVjhU5cSKf2bN3sGgRHD3agSZNSrnrrgzGjCkiIMD887VVoU5XnCYt7RRz5+7mq69KOXiwPRaL\nLy1bQmxsLk8+mU6/fqfx9vYAmhhdapl8fCx06hRIp05lhfQ57PZUDh7MZ/v286SmFpOe7sF333mw\ndKkH+fme2GxF+PhkERJyilatCmjXzvNCIDejT5/m+Pm5ZyBv2nSMuXP385//NOLEifYEB1vo3/8w\nb75ZQFRUEO60EkGdrtTa1q2ZzJixh//8pzG5ue1o0sSbHj3OMmlSCj16hGCxBAPBRpfpFBYLtGnj\nT5s2V3/0tQGZnDlzgK1bz7JrVwH798PmzX58/bWF8+cLKC0txsvrNCEhJ4mIKODaa6FzZ3969WpC\nv37NadLEmEfHuEJSUjYffXSQVauK2bcvEqs1mIiIAgYPzuSBB/Jo1SoIaGN0mYYxQ6drsVdQpVl2\neDQkmZk5/PGPW1m6NJi8vGuIjEzm17/OZcSIcIKDvY0ur17Kzc0nOfk0O3c6AvnoUV9OnmxMXl4z\nSkqi8fCwEhiYTXh4LlFRVtq39yIuLpAbbmhCbGw4vr71L5RLS+389FM2K1YcZf36fHbv9uH48VbY\nbD40abKbTp1OcOutjbj55maGPY+svklJSeHVV18lOTnZ6FIqzE51uvWAzWbnww93MmvWCdLSutG0\nqS/x8Yd5+GErQUGBVD5v6t6Cg/0ZMMCfAQOu/k4hhYXbSUk5zc6d+aSl2Th82IfExGAWLmxEQYEF\nu92Gh8dJ/PxOExycR9OmxbRoYaN1aw9at/YlKiqAqKhg2rYNoXXrQHx8nPMRNj+/hJSUM+zZc4bU\n1DzS0wvYv9/G4cO+nDoVRmFhSywWC8HBVlq1Os2AAVYGDDhD795N8fDQz0R5zNAkKnQNlJ9fzMSJ\nG1iwIIzi4mB69jzItGk7aN8+AGhldHkNQqNGvsTFRRAXd/V3SoAj5OcfYO/eHPbvL+DgwRKysixk\nZXmzZ08A5897UlhYTHFxEaWlhTiW1eXj6ZmLp2chXl4leHmV4OlZgpeXFS+vEiwWsNs9sNst2GwW\nbDYoKfHCavXFavWjpMQfm80f8MViseLjU4S/fyHBwQU0a5ZPv35WOnU6RvfuR4mMDAK80c9Cw6LQ\nNUBWVh6PPbaZr75qh79/CMOHZzB6dAu8vSOMLs3t+Pt7ExfXtIxQvqgUOAucxWpN5/jxArKzi8nJ\nKeHcOSvnz9soKLBTWAiFhY6PlB4eNiwW8PKy4OXlgZ+fB0FB0LixJ2Fh3oSHN6JZM//LVmNcXFkS\nVgf/xg2XWaZDFbp1KDs7j4cf3sg333ShWTMvXnppJ3fc0Qyon6fwy5W8vb2IjAwiMtLoSqQ8Cl0B\nIDe3iIce+p7ExI6Eh/vz+uvbGTgwDHdaziPialoyJthsdiZNWs+cOa0JDvZjxozt3HJLU5yxSUFE\nfkmdrhv77LNURo3KpaAggnHjdjFyZAugqdFliTRY6nTdVHZ2Hrffvplt22IZMiSVqVPt+Pq2MLos\nEbdghk7XPfdOusiMGRuJjDzFiRMeLFmyh1deiayXC+9FGiJ1um7k4MEcbr55KxkZ1/LYY8k8+qg6\nWxEjqNN1A3PmJBETkwsUs2LFIQWuiFRInW4N5ecXM2TIGn78sStjxmxi9GhtbBAxmhk6XYVuDaxf\nf4TbbjuNj08IixenEhOjwBUxmlnmdDW9UE3Tp29k4EBvunfP4OuvPYiJaZin8IuYkTrdBqS01Mav\nf/0tq1d3ZcKELdx/v/aCitQnZul0FbpVcPx4PnFxW8nJacmCBSl07Njc6JJE5Co68KaByMyEG28s\noqAgm6++8iIwUOeYikjNaU63Ajt2QN++0KvXYXr3fo/AQP2OEqmvzDK9oNAtx7ffws03wyuvQHz8\nHkzy9yni1swwvaDQLcM//wkjRsC//w0PPGB0NSLSkOjz8lXeeQemT4fVq6FTJ6OrEZHqMEOnq9C9\nzGuvwVtvwZo1EBNjdDUiUh1mmdNV6AJ2O0ybBosXw9q10Lq10RWJSE2o0zUBux3++EdYscIRuM21\nBFfElNTpmsT06bBsmWMOt6ke7CBiaup067nZs2HRIsccrgJXxNzU6dZzb74Jb7+tKQWRhkSdbj31\nj3/A6687OtxInVsj0iCo062nvvoKpkxxBG50tNHViIgzqdOtZzZvhocfhsREaN/e6GpExB25zTbg\nfftg6FB4/33o08foakTE2cxytKNbhO7x43DbbTB1KvzmN0ZXIyKuotCtB4qK4J57YPhwGDPG6GpE\nxFXMciOtQYeu3Q5jx0LLlo5tvmIeH330EQMGDGDnzp1GlyImok7XYG+8Adu2wYIF4NGg/00bnt/+\n9rf4+flx/fXXG12KmIRZOt0Gu3ph5UrHqWEbN0JAgNHVSHUlJSXRrVs30/yPJPWDOl2DpKTAQw/B\nkiUQFWV0NVITP/74I0FBQaxdu5ZZs2axb98+o0uSes4sv6AbXOieOwfDhsHMmdC/v9HVSFWsWbOG\n+Ph4Ro0axcGDBwFH6A4dOpSBAwfSr18//va3vxlcpZiBOt06Zrc7Vij06QOjRxtdjVTF7t27SUhI\nYNq0aRQUFPD6669z7Ngx7HY7sbGxAGRnZ5Ofn29wpSLO0aDmdN9+G3btgg0bjK5EqurNN9+kV69e\ndLrwbKSIiAhSUlLo3Lnzpdds3LiRnj17GlWimIgZOt0GE7qbN8OLL8IPP4C/v9HVSFXs2rWLpKQk\nJk+ejJeXF4sWLQIgLS2Nxo0bA3Do0CEyMjKYMWOGkaWKCZhlTrdBhO7p0/C73zk63XbtjK5Gquqb\nb74B4Fe/+tUVX2/Xrh3NmjXjyy+/JD09nXfeeYdGjRoZUaKYiFm2AZs+dO12GDXKca7Cb39rdDVS\nHatWraJt27Y0adLkF9/7/e9/b0BFIq5n+htpf/87ZGTAn/9sdCVSHQcPHuT48ePExcUZXYo0EOp0\n60BqquNs3LVrwdfX6GqkOpKSkgCuuGEmUltmCF3TdrrFxfDAA/CnP0HHjkZXI9W1ZcsWADrqL0+c\nxCw30kwbui+84HjUztixRlciNbFlyxZ8fHy45pprjC5FGhAzdLqmnF5YvRo+/thxmI1JfrnJZTIy\nMjh9+jQdOnTA09PT6HJE6pTpOt28PHj0UXjvPQgPN7oaqYlt27YB0L4ePDOptLS0xu8tKSlxYiXi\nLkwXupMmweDBcMcdRlciNfXTTz8BxoduUlISX3zxRY3f//bbb186K0KMZ5Y5XVNNL/z3v7BsGezY\nYXQlUhs7LvwFXnvttS4f6/Dhw8yfP5/w8HCsVisJCQkA7Ny5k5UrV/LCCy/U+NojR47kD3/4A2+8\n8calHXQVmThxIllZWeTk5LB8+fIajyvlM8Ocrmk63bw8xyaId96BKvx8Sz115swZjhw5gsViISYm\nxqVjWa1WnnjiCfr27UtBQQGJiYkUFRVRVFTE7NmzefbZZ2t1/ZCQEO69914mTJhQpWmKV155hdjY\nWI4fP16rcaVsZul0TRO6kybBoEGaVjC77du3AxAaGlql7rA2NmzYQGZmJt27d2fo0KHMnz8fX19f\nFi9ezI033uiUrcV33nknXl5erFmzptLXent7c/3115uiGzMrM/y3NcX0wurVmlZoKOpyamHLli00\nbtyYyMhIIiMjASgqKuLjjz9myZIlThtn3LhxvPPOO9x0001Ou6ZUnzpdJyksdJyR+9ZbmlZoCC6G\nbrs6OJlo165dv3jGWlJSEi1atCA0NNRp48TExJCUlMSRI0ecdk2pPm0DdpKZM6FLF7j7bqMrkdoq\nLS1l9+7dgGtDd+bMmRw7dozk5GTatGnDU089RVRUFBMnTuSHH36ga9eu5b43PT2d5cuXU1xczLlz\n55gyZQoLFy4kJyeHU6dO8eSTT9KiRYsr3hMQEEBYWBhr1qxhxIgRl75+6NAhlixZwvnz5y+9Jzg4\n2Klji/nU69BNSYH58x2bIMT8Dhw4QGFhIRaLxaWhO2XKFI4ePco999zDuHHjGDRo0KXv7d69m7vL\n+Q2elZXFl19+yfjx4wF47rnnGDlyJBMmTCAoKIhHHnmEnj17cs899/zivdHR0WRmZl768+HDhxk7\ndiyTJk26dHRlfn4+jz/+eJkfg2sztvzMDJ1uvZ1esNsdW3wvbvcV89uzZw8AXl5eLt/+m5qaCvxy\nLfDp06cJCgoq8z2ffvopYy/bV261WmnUqBG9evUiLCyMRx99lCFDhpT53qioKLKysi79OSEhgZiY\nmCvOCvb39+fWW28tMxhqM7b8TKFbCwsWOB4yOW6c0ZWIs1ycWmjbti1eXq79kLV3714CAwNp2bLl\nFV+vKHTvu+8+/Pz8Lv15z5499OnTB4DmzZszZswYAgMDy3xvdHQ0x44dAxzPdNu3b9+lZ7xVRW3G\nFgez3Eirl9MLJ086loitXAnamt9wXAzd6667zuVj7d27t8wdbxaLhfPnz5f5nssDOiMjgxMnTnDD\nDTdUabzS0lJsNhsAKSkpgCMsq6o2Y8vP1OnW0HPPwfDh0L270ZWIs5SWlrJv3z6gbo5z3Lt3b5nh\nHhoaSkZGRqXvT0pKwtvbmy5dulz6WkWrEw4ePHjpCRgXl8MVFRVVs+qajS0OZul0613oJiXBihUw\nbZrRlYgzZWRkUFxcjMVicXnonj17luzs7DJv1jVt2pRDhw794uvFxcW89957l34x/PDDD7Rt2xbf\nC6fj5+fn8+mnn5Y75uWhGxkZSVRUFDt37vzF68o6JKe2Y8vP1OlWk80GTz3lWCYWEmJ0NeJMe/fu\nBRw30Tp06ODSsS7eRCsrdGNjY8s8pGbLli28++67HD16lJSUFI4dO3bp2Emr1crf//53HnjggXLH\nPHTo0BWd6ezZs9m8efOlE9XA0a1e3JRxeQ21HVsczNLp1qs53X/+E0pK4KGHjK5EnC0tLQ1wfPR2\n9U201NRUgoKCypzT7du3L4mJib/4emxsLLfddhubNm3Cx8eHjz76iDlz5jBz5kyCgoK47bbbyl0j\nm5uby5kzZ+jXr9+lr11zzTXMnTuX5cuX89133+Hl5UVQUBD3338/77//PhMmTGDEiBHEx8fXamy5\nkhk63XoTunl5jrnczz4Dj3rVf4szXPzoXBfPREtJSaFnz554lPGD1K1bNzw8PMjMzLzi5lVgYCDT\np0+/4rUTJ06s0nipqam0b9/+Fysl2rdvzzPPPPOL11++gaK2Y8vPzNLp1pt4mzEDbrkFLqySkQbm\nYuhevS3XWZYuXcpTTz0FOFZJ3FHOyUg+Pj6MGjWKOXPmOGVcm83GvHnzeOyxx5xyPakdM3S69SJ0\n09Icj1J/5RWjKxFXyMvL48SJE1gsFpeF7ooVK2jcuDE7d+4kLCzsik0JV7vvvvvYu3cv69atq/W4\nS5Yswdvbm4EDB9b6WuIe6kXoJiTAs89CRITRlYgr7N+/H3CcO9CmTRuXjPHggw/i6+vLqlWrfvFR\n/WpeXl689tprvP322xQWFtZ4zBMnTrB06VJefvnlGl9DnEcH3lTRunWwdSssXmx0JeIq6enpAMTF\nxblsjF/96lcVdrdXu/baa5k8eTKffPIJD9Xwzu2iRYuYPXu2bnJJtRgauna7o8OdMQOccJ601FMX\nQ7dbt24GV3Klzp071+rG3tNPP+3EaqS2zNLpGjq9sGQJWK2O3WfScF1cLubKTlfELAzrdIuLYfJk\nx6PUtUSsYUtLS8PPz8/lmyLEvanTrcT8+dChA+gJJw1bVlYWeXl5dO7c+dIuKxF3Zkine/asY6vv\nqlVGjC516eLJYj169DC4EmnotDmiAn/+M/zmN1AHm5PEYBdDt492vUgdMMP0Qp13useOwbvvQnJy\nXY8sRkhOTqZx48Yu2xQhYjZ13unOmgUjR0KrVnU9stS1/Px8du7cSe/evY0uRdyEOt2rHD4MCxfC\nhU+c0sBt3ryZ0tJSBgwYYHQp4gY0p1uGl1+GMWOgGk8xERN59913GT58+KWDupcuXUpkZCS33HKL\nwZWJu1Cne5n9+x3HNl44y1oaoB9++AGLxYLFYuHIkSNs3LiRF198scwjFkWcTZ3uVaZNczwVIiys\nrkaUujZ48GBat25NSkoKEyZMoF27duUesSjibGbZHFEnne7u3fDNNzBvXl2MJkYZNmwY2dnZjB8/\nnh49ejBlypRyuw+73c6iRYsICQnh1KlTHD58mIcffphWusMqDVydhO6f/gQTJkBwcF2MJkYJCgoi\nISGBhISESl87f/58QkNDueuuuzh79izDhg3j+eefr4MqpaFSp3tBSgr897+OQ8pFAI4ePcrixYv5\nv//7P8DxVInu3bsbXJVI3XD5nO7MmfD00xAY6OqRxCw2b95MbGwsfn5+AGzatImePXuSl5dncGVi\ndmbodF0auvv3w8qV8MQTrhxFzCY8PJxmzZoBjg0Uq1evpkuXLnz77bcGVyZm5/ahO2sWPP44hIS4\nchQxmz59+hAREcG3335LWloaw4YNY9WqVURHRxtdmpiYWZaMuWxO99AhWLrU8dBJkct5enpe8fTc\nrl27GliNNCRu3en++c/wP/+jdbkiUjfcutPNzHQ8aDIlxRVXFxEpm9t2uq+9Bg8/DBfulYiIuJzb\ndrqnTsGHH8LOnc6+soiI+Tm9033rLRg2DFq2dPaVRUTK55adbkGBI3S/+86ZVxURqTq73V6vA9ip\nne6CBdCnD3Ts6Myriog0HE7rdEtLHTfQPvzQWVcUEamei4feuEWn+8UXEB4O/fs764oiIg2PU0LX\nbodXX4WEBKjHv2Bq5fTp00aXICKVsFgsfFfPbyo5JXTXrYMzZ+Duu51xtfpJoStiDm4RurNnOw4p\n9/R0xtVERGqmPs/lXlTrG2l79sDmzfDpp84op35at24d+/btY+LEiUaXIiIVsNlsRpdQKYu9gs3K\nZvitISI7IbFgAAABr0lEQVRSH5UXrRV2umY4PEJExEzq7BHsIiKi0BURqVMK3UrEx8fTo0cPbrrp\nJj7//HOjyxGRMmRkZBAbG2t0GVXi8kewm90HH3xAaGgoubm5DBo0iPj4eKNLEhETU6dbiX/961/c\nfPPN9O/fn/T0dLZv3250SSJSBpvNxqhRo+jYsSPTpk2jqKjI6JLKpNCtQHp6OvPnz2fJkiXs2LGD\ntm3bcvbsWaPLEpEy7Nmzh7vuuott27axfft2li9fbnRJZVLoViAzM5Pw8HDCwsL4/vvvSU5ONrok\nESlHSEgI8fHx+Pr6Mnz4cL7++mujSyqT5nQrcOONNxIdHU3Hjh3p3LkzQ4YMMbokETE5hW4lPvjg\nA6NLEJEqyMnJ4YsvvuD222/nk08+Yfjw4UaXVCZNL4iI6VksFjp06EBiYiJxcXF07tyZO++80+iy\nylTh2QsiIuJc6nRFROqQQldEpA4pdEVE6pBCV0TEyTZv3kzXrl0pKiri/PnzdO7cmd27dwO6kSYi\n4hIvvPAChYWFFBQU0Lp1ayZNmgQodEVEXMJqtXLDDTfg5+fHhg0bLj2J5/8B9qXioKa743wAAAAA\nSUVORK5CYII=\n"
948 }
948 }
949 ],
949 ],
950 "prompt_number": 9
950 "prompt_number": 9
951 },
951 },
952 {
952 {
953 "cell_type": "code",
953 "cell_type": "code",
954 "collapsed": true,
954 "collapsed": true,
955 "input": [],
955 "input": [],
956 "language": "python",
956 "language": "python",
957 "outputs": []
957 "outputs": []
958 }
958 }
959 ]
959 ]
This diff has been collapsed as it changes many lines, (580 lines changed) Show them Hide them
@@ -1,416 +1,416 b''
1 {
1 {
2 "metadata": {
2 "metadata": {
3 "name": "01_notebook_introduction"
3 "name": "01_notebook_introduction"
4 },
4 },
5 "nbformat": 2,
5 "nbformat": 3,
6 "worksheets": [
6 "worksheets": [
7 {
7 {
8 "cells": [
8 "cells": [
9 {
9 {
10 "cell_type": "markdown",
10 "cell_type": "markdown",
11 "source": [
11 "source": [
12 "# An introduction to the IPython notebook",
12 "# An introduction to the IPython notebook",
13 "",
13 "",
14 "The IPython web notebook is a frontend that allows for new modes",
14 "The IPython web notebook is a frontend that allows for new modes",
15 "of interaction with IPython: this web-based interface allows you to execute Python and IPython",
15 "of interaction with IPython: this web-based interface allows you to execute Python and IPython",
16 "commands in each input cell just like you would at the IPython terminal or Qt console, but you can",
16 "commands in each input cell just like you would at the IPython terminal or Qt console, but you can",
17 "also save an entire session as a document in a file with the `.ipynb` extension.",
17 "also save an entire session as a document in a file with the `.ipynb` extension.",
18 "",
18 "",
19 "The document you are reading now is precisely an example of one such notebook, and we will show you",
19 "The document you are reading now is precisely an example of one such notebook, and we will show you",
20 "here how to best use this new interface.",
20 "here how to best use this new interface.",
21 "",
21 "",
22 "The first thing to understand is that a notebook consists of a sequence of 'cells' that can contain ",
22 "The first thing to understand is that a notebook consists of a sequence of 'cells' that can contain ",
23 "either text (such as this one) or code meant for execution (such as the next one):",
23 "either text (such as this one) or code meant for execution (such as the next one):",
24 "",
24 "",
25 "* Text cells can be written using [Markdown syntax](http://daringfireball.net/projects/markdown/syntax) ",
25 "* Text cells can be written using [Markdown syntax](http://daringfireball.net/projects/markdown/syntax) ",
26 "(in a future release we will also provide support for reStructuredText and Sphinx integration, and we ",
26 "(in a future release we will also provide support for reStructuredText and Sphinx integration, and we ",
27 "welcome help from interested contributors to make that happen).",
27 "welcome help from interested contributors to make that happen).",
28 "",
28 "",
29 "* Code cells take IPython input (i.e. Python code, `%magics`, `!system calls`, etc) like IPython at",
29 "* Code cells take IPython input (i.e. Python code, `%magics`, `!system calls`, etc) like IPython at",
30 "the terminal or at the Qt Console. The only difference is that in order to execute a cell, you *must*",
30 "the terminal or at the Qt Console. The only difference is that in order to execute a cell, you *must*",
31 "use `Shift-Enter`, as pressing `Enter` will add a new line of text to the cell. When you type ",
31 "use `Shift-Enter`, as pressing `Enter` will add a new line of text to the cell. When you type ",
32 "`Shift-Enter`, the cell content is executed, output displayed and a new cell is created below. Try",
32 "`Shift-Enter`, the cell content is executed, output displayed and a new cell is created below. Try",
33 "it now by putting your cursor on the next cell and typing `Shift-Enter`:"
33 "it now by putting your cursor on the next cell and typing `Shift-Enter`:"
34 ]
34 ]
35 },
35 },
36 {
36 {
37 "cell_type": "code",
37 "cell_type": "code",
38 "collapsed": false,
38 "collapsed": false,
39 "input": [
39 "input": [
40 "\"This is the new IPython notebook\""
40 "\"This is the new IPython notebook\""
41 ],
41 ],
42 "language": "python",
42 "language": "python",
43 "outputs": [
43 "outputs": [
44 {
44 {
45 "output_type": "pyout",
45 "output_type": "pyout",
46 "prompt_number": 1,
46 "prompt_number": 1,
47 "text": [
47 "text": [
48 "'This is the new IPython notebook'"
48 "'This is the new IPython notebook'"
49 ]
49 ]
50 }
50 }
51 ],
51 ],
52 "prompt_number": 1
52 "prompt_number": 1
53 },
53 },
54 {
54 {
55 "cell_type": "markdown",
55 "cell_type": "markdown",
56 "source": [
56 "source": [
57 "You can re-execute the same cell over and over as many times as you want. Simply put your",
57 "You can re-execute the same cell over and over as many times as you want. Simply put your",
58 "cursor in the cell again, edit at will, and type `Shift-Enter` to execute. ",
58 "cursor in the cell again, edit at will, and type `Shift-Enter` to execute. ",
59 "",
59 "",
60 "**Tip:** A cell can also be executed",
60 "**Tip:** A cell can also be executed",
61 "*in-place*, where IPython executes its content but leaves the cursor in the same cell. This is done by",
61 "*in-place*, where IPython executes its content but leaves the cursor in the same cell. This is done by",
62 "typing `Ctrl-Enter` instead, and is useful if you want to quickly run a command to check something ",
62 "typing `Ctrl-Enter` instead, and is useful if you want to quickly run a command to check something ",
63 "before tping the real content you want to leave in the cell. For example, in the next cell, try issuing",
63 "before tping the real content you want to leave in the cell. For example, in the next cell, try issuing",
64 "several system commands in-place with `Ctrl-Enter`, such as `pwd` and then `ls`:"
64 "several system commands in-place with `Ctrl-Enter`, such as `pwd` and then `ls`:"
65 ]
65 ]
66 },
66 },
67 {
67 {
68 "cell_type": "code",
68 "cell_type": "code",
69 "collapsed": false,
69 "collapsed": false,
70 "input": [
70 "input": [
71 "ls"
71 "ls"
72 ],
72 ],
73 "language": "python",
73 "language": "python",
74 "outputs": [
74 "outputs": [
75 {
75 {
76 "output_type": "stream",
76 "output_type": "stream",
77 "stream": "stdout",
77 "stream": "stdout",
78 "text": [
78 "text": [
79 "00_notebook_tour.ipynb formatting.ipynb sympy_quantum_computing.ipynb",
79 "00_notebook_tour.ipynb formatting.ipynb sympy_quantum_computing.ipynb",
80 "01_notebook_introduction.ipynb python-logo.svg trapezoid_rule.ipynb",
80 "01_notebook_introduction.ipynb python-logo.svg trapezoid_rule.ipynb",
81 "display_protocol.ipynb sympy.ipynb"
81 "display_protocol.ipynb sympy.ipynb"
82 ]
82 ]
83 }
83 }
84 ],
84 ],
85 "prompt_number": 2
85 "prompt_number": 2
86 },
86 },
87 {
87 {
88 "cell_type": "markdown",
88 "cell_type": "markdown",
89 "source": [
89 "source": [
90 "In a cell, you can type anything from a single python expression to an arbitrarily long amount of code ",
90 "In a cell, you can type anything from a single python expression to an arbitrarily long amount of code ",
91 "(although for reasons of readability, you should probably limit this to a few dozen lines):"
91 "(although for reasons of readability, you should probably limit this to a few dozen lines):"
92 ]
92 ]
93 },
93 },
94 {
94 {
95 "cell_type": "code",
95 "cell_type": "code",
96 "collapsed": false,
96 "collapsed": false,
97 "input": [
97 "input": [
98 "def f(x):",
98 "def f(x):",
99 " \"\"\"My function",
99 " \"\"\"My function",
100 " x : parameter\"\"\"",
100 " x : parameter\"\"\"",
101 " ",
101 " ",
102 " return x+1",
102 " return x+1",
103 "",
103 "",
104 "print \"f(3) = \", f(3)"
104 "print \"f(3) = \", f(3)"
105 ],
105 ],
106 "language": "python",
106 "language": "python",
107 "outputs": [
107 "outputs": [
108 {
108 {
109 "output_type": "stream",
109 "output_type": "stream",
110 "stream": "stdout",
110 "stream": "stdout",
111 "text": [
111 "text": [
112 "f(3) = 4"
112 "f(3) = 4"
113 ]
113 ]
114 }
114 }
115 ],
115 ],
116 "prompt_number": 3
116 "prompt_number": 3
117 },
117 },
118 {
118 {
119 "cell_type": "markdown",
119 "cell_type": "markdown",
120 "source": [
120 "source": [
121 "## User interface",
121 "## User interface",
122 "",
122 "",
123 "When you start a new notebook server with `ipython notebook`, your",
123 "When you start a new notebook server with `ipython notebook`, your",
124 "browser should open into the *Dashboard*, a page listing all notebooks",
124 "browser should open into the *Dashboard*, a page listing all notebooks",
125 "available in the current directory as well as letting you create new",
125 "available in the current directory as well as letting you create new",
126 "notebooks. In this page, you can also drag and drop existing `.py` files",
126 "notebooks. In this page, you can also drag and drop existing `.py` files",
127 "over the file list to import them as notebooks (see the manual for ",
127 "over the file list to import them as notebooks (see the manual for ",
128 "[further details on how these files are ",
128 "[further details on how these files are ",
129 "interpreted](http://ipython.org/ipython-doc/stable/interactive/htmlnotebook.html)).",
129 "interpreted](http://ipython.org/ipython-doc/stable/interactive/htmlnotebook.html)).",
130 "",
130 "",
131 "Once you open an existing notebook (like this one) or create a new one,",
131 "Once you open an existing notebook (like this one) or create a new one,",
132 "you are in the main notebook interface, which consists of a main editing",
132 "you are in the main notebook interface, which consists of a main editing",
133 "area (where these cells are contained) as well as a collapsible left panel, ",
133 "area (where these cells are contained) as well as a collapsible left panel, ",
134 "a permanent header area at the top, and a pager that rises from the",
134 "a permanent header area at the top, and a pager that rises from the",
135 "bottom when needed and can be collapsed again."
135 "bottom when needed and can be collapsed again."
136 ]
136 ]
137 },
137 },
138 {
138 {
139 "cell_type": "markdown",
139 "cell_type": "markdown",
140 "source": [
140 "source": [
141 "### Main editing area",
141 "### Main editing area",
142 "",
142 "",
143 "Here, you can move with the arrow keys or using the ",
143 "Here, you can move with the arrow keys or using the ",
144 "scroll bars. The cursor enters code cells immediately, but only selects",
144 "scroll bars. The cursor enters code cells immediately, but only selects",
145 "text (markdown) cells without entering in them; to enter a text cell,",
145 "text (markdown) cells without entering in them; to enter a text cell,",
146 "use `Enter`, and `Shift-Enter` to exit it again (just like to execute a ",
146 "use `Enter`, and `Shift-Enter` to exit it again (just like to execute a ",
147 "code cell)."
147 "code cell)."
148 ]
148 ]
149 },
149 },
150 {
150 {
151 "cell_type": "markdown",
151 "cell_type": "markdown",
152 "source": [
152 "source": [
153 "### Left panel",
153 "### Left panel",
154 "",
154 "",
155 "This panel contains a number of panes that can be",
155 "This panel contains a number of panes that can be",
156 "collapsed vertically by clicking on their title bar, and the whole panel",
156 "collapsed vertically by clicking on their title bar, and the whole panel",
157 "can also be collapsed by clicking on the vertical divider (note that you",
157 "can also be collapsed by clicking on the vertical divider (note that you",
158 "can not *drag* the divider, for now you can only click on it).",
158 "can not *drag* the divider, for now you can only click on it).",
159 "",
159 "",
160 "The *Notebook* section contains actions that pertain to the whole notebook,",
160 "The *Notebook* section contains actions that pertain to the whole notebook,",
161 "such as downloading the current notebook either in its original format",
161 "such as downloading the current notebook either in its original format",
162 "or as a `.py` script, and printing it. When you click the `Print` button,",
162 "or as a `.py` script, and printing it. When you click the `Print` button,",
163 "a new HTML page opens with a static copy of the notebook; you can then",
163 "a new HTML page opens with a static copy of the notebook; you can then",
164 "use your web browser's mechanisms to save or print this file.",
164 "use your web browser's mechanisms to save or print this file.",
165 "",
165 "",
166 "The *Cell* section lets you manipulate individual cells, and the names should ",
166 "The *Cell* section lets you manipulate individual cells, and the names should ",
167 "be fairly self-explanatory.",
167 "be fairly self-explanatory.",
168 "",
168 "",
169 "The *Kernel* section lets you signal the kernel executing your code. ",
169 "The *Kernel* section lets you signal the kernel executing your code. ",
170 "`Interrupt` does the equivalent of hitting `Ctrl-C` at a terminal, and",
170 "`Interrupt` does the equivalent of hitting `Ctrl-C` at a terminal, and",
171 "`Restart` fully kills the kernel process and starts a fresh one. Obviously",
171 "`Restart` fully kills the kernel process and starts a fresh one. Obviously",
172 "this means that all your previous variables are destroyed, but it also",
172 "this means that all your previous variables are destroyed, but it also",
173 "makes it easy to get a fresh kernel in which to re-execute a notebook, perhaps",
173 "makes it easy to get a fresh kernel in which to re-execute a notebook, perhaps",
174 "after changing an extension module for which Python's `reload` mechanism",
174 "after changing an extension module for which Python's `reload` mechanism",
175 "does not work. If you check the 'Kill kernel upon exit' box, when you ",
175 "does not work. If you check the 'Kill kernel upon exit' box, when you ",
176 "close the page IPython will automatically shut down the running kernel;",
176 "close the page IPython will automatically shut down the running kernel;",
177 "otherwise the kernels won't close until you stop the whole ",
177 "otherwise the kernels won't close until you stop the whole ",
178 "",
178 "",
179 "The *Help* section contains links to the documentation of some projects",
179 "The *Help* section contains links to the documentation of some projects",
180 "closely related to IPython as well as the minimal keybindings you need to",
180 "closely related to IPython as well as the minimal keybindings you need to",
181 "know. But you should use `Ctrl-m h` (or click the `QuickHelp` button at",
181 "know. But you should use `Ctrl-m h` (or click the `QuickHelp` button at",
182 "the top) and learn some of the other keybindings, as it will make your ",
182 "the top) and learn some of the other keybindings, as it will make your ",
183 "workflow much more fluid and efficient.",
183 "workflow much more fluid and efficient.",
184 "",
184 "",
185 "The *Configuration* section at the bottom lets you change some values",
185 "The *Configuration* section at the bottom lets you change some values",
186 "related to the display of tooltips and the behavior of the tab completer."
186 "related to the display of tooltips and the behavior of the tab completer."
187 ]
187 ]
188 },
188 },
189 {
189 {
190 "cell_type": "markdown",
190 "cell_type": "markdown",
191 "source": [
191 "source": [
192 "### Header bar",
192 "### Header bar",
193 "",
193 "",
194 "The header area at the top allows you to rename an existing ",
194 "The header area at the top allows you to rename an existing ",
195 "notebook and open up a short help tooltip. This area also indicates",
195 "notebook and open up a short help tooltip. This area also indicates",
196 "with a red **Busy** mark on the right whenever the kernel is busy executing",
196 "with a red **Busy** mark on the right whenever the kernel is busy executing",
197 "code."
197 "code."
198 ]
198 ]
199 },
199 },
200 {
200 {
201 "cell_type": "markdown",
201 "cell_type": "markdown",
202 "source": [
202 "source": [
203 "### The pager at the bottom",
203 "### The pager at the bottom",
204 "",
204 "",
205 "Whenever IPython needs to display additional ",
205 "Whenever IPython needs to display additional ",
206 "information, such as when you type `somefunction?` in a cell, the notebook",
206 "information, such as when you type `somefunction?` in a cell, the notebook",
207 "opens a pane at the bottom where this information is shown. You can keep",
207 "opens a pane at the bottom where this information is shown. You can keep",
208 "this pager pane open for reference (it doesn't block input in the main area)",
208 "this pager pane open for reference (it doesn't block input in the main area)",
209 "or dismiss it by clicking on its divider bar."
209 "or dismiss it by clicking on its divider bar."
210 ]
210 ]
211 },
211 },
212 {
212 {
213 "cell_type": "markdown",
213 "cell_type": "markdown",
214 "source": [
214 "source": [
215 "### Tab completion and tooltips",
215 "### Tab completion and tooltips",
216 "",
216 "",
217 "The notebook uses the same underlying machinery for tab completion that ",
217 "The notebook uses the same underlying machinery for tab completion that ",
218 "IPython uses at the terminal, but displays the information differently.",
218 "IPython uses at the terminal, but displays the information differently.",
219 "Whey you complete with the `Tab` key, IPython shows a drop list with all",
219 "Whey you complete with the `Tab` key, IPython shows a drop list with all",
220 "available completions. If you type more characters while this list is open,",
220 "available completions. If you type more characters while this list is open,",
221 "IPython automatically eliminates from the list options that don't match the",
221 "IPython automatically eliminates from the list options that don't match the",
222 "new characters; once there is only one option left you can hit `Tab` once",
222 "new characters; once there is only one option left you can hit `Tab` once",
223 "more (or `Enter`) to complete. You can also select the completion you",
223 "more (or `Enter`) to complete. You can also select the completion you",
224 "want with the arrow keys or the mouse, and then hit `Enter`.",
224 "want with the arrow keys or the mouse, and then hit `Enter`.",
225 "",
225 "",
226 "In addition, if you hit `Tab` inside of open parentheses, IPython will ",
226 "In addition, if you hit `Tab` inside of open parentheses, IPython will ",
227 "search for the docstring of the last object left of the parens and will",
227 "search for the docstring of the last object left of the parens and will",
228 "display it on a tooltip. For example, type `list(<TAB>` and you will",
228 "display it on a tooltip. For example, type `list(<TAB>` and you will",
229 "see the docstring for the builtin `list` constructor:"
229 "see the docstring for the builtin `list` constructor:"
230 ]
230 ]
231 },
231 },
232 {
232 {
233 "cell_type": "code",
233 "cell_type": "code",
234 "collapsed": true,
234 "collapsed": true,
235 "input": [
235 "input": [
236 "# Position your cursor after the ( and hit the Tab key:",
236 "# Position your cursor after the ( and hit the Tab key:",
237 "list("
237 "list("
238 ],
238 ],
239 "language": "python",
239 "language": "python",
240 "outputs": []
240 "outputs": []
241 },
241 },
242 {
242 {
243 "cell_type": "markdown",
243 "cell_type": "markdown",
244 "source": [
244 "source": [
245 "## The frontend/kernel model",
245 "## The frontend/kernel model",
246 "",
246 "",
247 "The IPython notebook works on a client/server model where an *IPython kernel*",
247 "The IPython notebook works on a client/server model where an *IPython kernel*",
248 "starts in a separate process and acts as a server to executes the code you type,",
248 "starts in a separate process and acts as a server to executes the code you type,",
249 "while the web browser provides acts as a client, providing a front end environment",
249 "while the web browser provides acts as a client, providing a front end environment",
250 "for you to type. But one kernel is capable of simultaneously talking to more than",
250 "for you to type. But one kernel is capable of simultaneously talking to more than",
251 "one client, and they do not all need to be of the same kind. All IPython frontends",
251 "one client, and they do not all need to be of the same kind. All IPython frontends",
252 "are capable of communicating with a kernel, and any number of them can be active",
252 "are capable of communicating with a kernel, and any number of them can be active",
253 "at the same time. In addition to allowing you to have, for example, more than one",
253 "at the same time. In addition to allowing you to have, for example, more than one",
254 "browser session active, this lets you connect clients with different user interface features.",
254 "browser session active, this lets you connect clients with different user interface features.",
255 "",
255 "",
256 "For example, you may want to connect a Qt console to your kernel and use it as a help",
256 "For example, you may want to connect a Qt console to your kernel and use it as a help",
257 "browser, calling `??` on objects in the Qt console (whose pager is more flexible than the",
257 "browser, calling `??` on objects in the Qt console (whose pager is more flexible than the",
258 "one in the notebook). You can start a new Qt console connected to your current kernel by ",
258 "one in the notebook). You can start a new Qt console connected to your current kernel by ",
259 "using the `%qtconsole` magic, this will automatically detect the necessary connection",
259 "using the `%qtconsole` magic, this will automatically detect the necessary connection",
260 "information.",
260 "information.",
261 "",
261 "",
262 "If you want to open one manually, or want to open a text console from a terminal, you can ",
262 "If you want to open one manually, or want to open a text console from a terminal, you can ",
263 "get your kernel's connection information with the `%connect_info` magic:"
263 "get your kernel's connection information with the `%connect_info` magic:"
264 ]
264 ]
265 },
265 },
266 {
266 {
267 "cell_type": "code",
267 "cell_type": "code",
268 "collapsed": false,
268 "collapsed": false,
269 "input": [
269 "input": [
270 "%connect_info"
270 "%connect_info"
271 ],
271 ],
272 "language": "python",
272 "language": "python",
273 "outputs": [
273 "outputs": [
274 {
274 {
275 "output_type": "stream",
275 "output_type": "stream",
276 "stream": "stdout",
276 "stream": "stdout",
277 "text": [
277 "text": [
278 "{",
278 "{",
279 " \"stdin_port\": 53970, ",
279 " \"stdin_port\": 53970, ",
280 " \"ip\": \"127.0.0.1\", ",
280 " \"ip\": \"127.0.0.1\", ",
281 " \"hb_port\": 53971, ",
281 " \"hb_port\": 53971, ",
282 " \"key\": \"30daac61-6b73-4bae-a7d9-9dca538794d5\", ",
282 " \"key\": \"30daac61-6b73-4bae-a7d9-9dca538794d5\", ",
283 " \"shell_port\": 53968, ",
283 " \"shell_port\": 53968, ",
284 " \"iopub_port\": 53969",
284 " \"iopub_port\": 53969",
285 "}",
285 "}",
286 "",
286 "",
287 "Paste the above JSON into a file, and connect with:",
287 "Paste the above JSON into a file, and connect with:",
288 " $> ipython <app> --existing <file>",
288 " $> ipython <app> --existing <file>",
289 "or, if you are local, you can connect with just:",
289 "or, if you are local, you can connect with just:",
290 " $> ipython <app> --existing kernel-dd85d1cc-c335-44f4-bed8-f1a2173a819a.json ",
290 " $> ipython <app> --existing kernel-dd85d1cc-c335-44f4-bed8-f1a2173a819a.json ",
291 "or even just:",
291 "or even just:",
292 " $> ipython <app> --existing ",
292 " $> ipython <app> --existing ",
293 "if this is the most recent IPython session you have started."
293 "if this is the most recent IPython session you have started."
294 ]
294 ]
295 }
295 }
296 ],
296 ],
297 "prompt_number": 4
297 "prompt_number": 4
298 },
298 },
299 {
299 {
300 "cell_type": "markdown",
300 "cell_type": "markdown",
301 "source": [
301 "source": [
302 "## The kernel's `raw_input` and `%debug`",
302 "## The kernel's `raw_input` and `%debug`",
303 "",
303 "",
304 "The one feature the notebook currently doesn't support as a client is the ability to send data to the kernel's",
304 "The one feature the notebook currently doesn't support as a client is the ability to send data to the kernel's",
305 "standard input socket. That is, if the kernel requires information to be typed interactively by calling the",
305 "standard input socket. That is, if the kernel requires information to be typed interactively by calling the",
306 "builtin `raw_input` function, the notebook will be blocked. This happens for example if you run a script",
306 "builtin `raw_input` function, the notebook will be blocked. This happens for example if you run a script",
307 "that queries interactively for parameters, and very importantly, is how the interactive IPython debugger that ",
307 "that queries interactively for parameters, and very importantly, is how the interactive IPython debugger that ",
308 "activates when you type `%debug` works.",
308 "activates when you type `%debug` works.",
309 "",
309 "",
310 "So, in order to be able to use `%debug` or anything else that requires `raw_input`, you can either use a Qt ",
310 "So, in order to be able to use `%debug` or anything else that requires `raw_input`, you can either use a Qt ",
311 "console or a terminal console:",
311 "console or a terminal console:",
312 "",
312 "",
313 "- From the notebook, typing `%qtconsole` finds all the necessary connection data for you.",
313 "- From the notebook, typing `%qtconsole` finds all the necessary connection data for you.",
314 "- From the terminal, first type `%connect_info` while still in the notebook, and then copy and paste the ",
314 "- From the terminal, first type `%connect_info` while still in the notebook, and then copy and paste the ",
315 "resulting information, using `qtconsole` or `console` depending on which type of client you want."
315 "resulting information, using `qtconsole` or `console` depending on which type of client you want."
316 ]
316 ]
317 },
317 },
318 {
318 {
319 "cell_type": "markdown",
319 "cell_type": "markdown",
320 "source": [
320 "source": [
321 "## Display of complex objects",
321 "## Display of complex objects",
322 "",
322 "",
323 "As the 'tour' notebook shows, the IPython notebook has fairly sophisticated display capabilities. In addition",
323 "As the 'tour' notebook shows, the IPython notebook has fairly sophisticated display capabilities. In addition",
324 "to the examples there, you can study the `display_protocol` notebook in this same examples folder, to ",
324 "to the examples there, you can study the `display_protocol` notebook in this same examples folder, to ",
325 "learn how to customize arbitrary objects (in your own code or external libraries) to display in the notebook",
325 "learn how to customize arbitrary objects (in your own code or external libraries) to display in the notebook",
326 "in any way you want, including graphical forms or mathematical expressions."
326 "in any way you want, including graphical forms or mathematical expressions."
327 ]
327 ]
328 },
328 },
329 {
329 {
330 "cell_type": "markdown",
330 "cell_type": "markdown",
331 "source": [
331 "source": [
332 "## Plotting support",
332 "## Plotting support",
333 "",
333 "",
334 "As we've explained already, the notebook is just another frontend talking to the same IPython kernel that",
334 "As we've explained already, the notebook is just another frontend talking to the same IPython kernel that",
335 "you're already familiar with, so the same options for plotting support apply.",
335 "you're already familiar with, so the same options for plotting support apply.",
336 "",
336 "",
337 "If you start the notebook with `--pylab`, you will get matplotlib's floating, interactive windows and you",
337 "If you start the notebook with `--pylab`, you will get matplotlib's floating, interactive windows and you",
338 "can call the `display` function to paste figures into the notebook document. If you start it with ",
338 "can call the `display` function to paste figures into the notebook document. If you start it with ",
339 "`--pylab inline`, all plots will appear inline automatically. In this regard, the notebook works identically",
339 "`--pylab inline`, all plots will appear inline automatically. In this regard, the notebook works identically",
340 "to the Qt console.",
340 "to the Qt console.",
341 "",
341 "",
342 "Note that if you start the notebook server with pylab support, *all* kernels are automatically started in",
342 "Note that if you start the notebook server with pylab support, *all* kernels are automatically started in",
343 "pylab mode and with the same choice of backend (i.e. floating windows or inline figures). But you can also",
343 "pylab mode and with the same choice of backend (i.e. floating windows or inline figures). But you can also",
344 "start the notebook server simply by typing `ipython notebook`, and then selectively turn on pylab support ",
344 "start the notebook server simply by typing `ipython notebook`, and then selectively turn on pylab support ",
345 "only for the notebooks you want by using the `%pylab` magic (see its docstring for details)."
345 "only for the notebooks you want by using the `%pylab` magic (see its docstring for details)."
346 ]
346 ]
347 },
347 },
348 {
348 {
349 "cell_type": "code",
349 "cell_type": "code",
350 "collapsed": false,
350 "collapsed": false,
351 "input": [
351 "input": [
352 "%pylab inline",
352 "%pylab inline",
353 "plot(rand(100))"
353 "plot(rand(100))"
354 ],
354 ],
355 "language": "python",
355 "language": "python",
356 "outputs": [
356 "outputs": [
357 {
357 {
358 "output_type": "stream",
358 "output_type": "stream",
359 "stream": "stdout",
359 "stream": "stdout",
360 "text": [
360 "text": [
361 "",
361 "",
362 "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].",
362 "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].",
363 "For more information, type 'help(pylab)'."
363 "For more information, type 'help(pylab)'."
364 ]
364 ]
365 },
365 },
366 {
366 {
367 "output_type": "pyout",
367 "output_type": "pyout",
368 "prompt_number": 5,
368 "prompt_number": 5,
369 "text": [
369 "text": [
370 "[<matplotlib.lines.Line2D at 0x11165bcd0>]"
370 "[<matplotlib.lines.Line2D at 0x11165bcd0>]"
371 ]
371 ]
372 },
372 },
373 {
373 {
374 "output_type": "display_data",
374 "output_type": "display_data",
375 "png": "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\n"
375 "png": "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\n"
376 }
376 }
377 ],
377 ],
378 "prompt_number": 5
378 "prompt_number": 5
379 },
379 },
380 {
380 {
381 "cell_type": "markdown",
381 "cell_type": "markdown",
382 "source": [
382 "source": [
383 "## Security",
383 "## Security",
384 "",
384 "",
385 "By default the notebook only listens on localhost, so it does not expose your computer to attacks coming from",
385 "By default the notebook only listens on localhost, so it does not expose your computer to attacks coming from",
386 "the internet. By default the notebook does not require any authentication, but you can configure it to",
386 "the internet. By default the notebook does not require any authentication, but you can configure it to",
387 "ask for a password before allowing access to the files. ",
387 "ask for a password before allowing access to the files. ",
388 "",
388 "",
389 "Furthermore, you can require the notebook to encrypt all communications by using SSL and making all connections",
389 "Furthermore, you can require the notebook to encrypt all communications by using SSL and making all connections",
390 "using the https protocol instead of plain http. This is a good idea if you decide to run your notebook on",
390 "using the https protocol instead of plain http. This is a good idea if you decide to run your notebook on",
391 "addresses that are visible from the internet. For further details on how to configure this, see the",
391 "addresses that are visible from the internet. For further details on how to configure this, see the",
392 "[security section](http://ipython.org/ipython-doc/stable/interactive/htmlnotebook.html#security) of the ",
392 "[security section](http://ipython.org/ipython-doc/stable/interactive/htmlnotebook.html#security) of the ",
393 "manual.",
393 "manual.",
394 "",
394 "",
395 "Finally, note that you can also run a notebook with the `--read-only` flag, which lets you provide access",
395 "Finally, note that you can also run a notebook with the `--read-only` flag, which lets you provide access",
396 "to your notebook documents to others without letting them execute code (which can be useful to broadcast",
396 "to your notebook documents to others without letting them execute code (which can be useful to broadcast",
397 "a computation to colleagues or students, for example). The read-only flag behaves differently depending",
397 "a computation to colleagues or students, for example). The read-only flag behaves differently depending",
398 "on whether the server has a password or not:",
398 "on whether the server has a password or not:",
399 "",
399 "",
400 "- Passwordless server: users directly see all notebooks in read-only mode.",
400 "- Passwordless server: users directly see all notebooks in read-only mode.",
401 "- Password-protected server: users can see all notebooks in read-only mode, but a login button is available",
401 "- Password-protected server: users can see all notebooks in read-only mode, but a login button is available",
402 "and once a user authenticates, he or she obtains write/execute privileges.",
402 "and once a user authenticates, he or she obtains write/execute privileges.",
403 "",
403 "",
404 "The first case above makes it easy to broadcast on the fly an existing notebook by simply starting a *second* ",
404 "The first case above makes it easy to broadcast on the fly an existing notebook by simply starting a *second* ",
405 "notebook server in the same directory as the first, but in read-only mode. This can be done without having",
405 "notebook server in the same directory as the first, but in read-only mode. This can be done without having",
406 "to configure a password first (which requires calling a hashing function and editing a configuration file)."
406 "to configure a password first (which requires calling a hashing function and editing a configuration file)."
407 ]
407 ]
408 },
408 },
409 {
409 {
410 "cell_type": "code",
410 "cell_type": "code",
411 "collapsed": true,
411 "collapsed": true,
412 "input": [],
412 "input": [],
413 "language": "python",
413 "language": "python",
414 "outputs": []
414 "outputs": []
415 }
415 }
416 ]
416 ]
This diff has been collapsed as it changes many lines, (522 lines changed) Show them Hide them
@@ -1,375 +1,375 b''
1 {
1 {
2 "metadata": {
2 "metadata": {
3 "name": "display_protocol"
3 "name": "display_protocol"
4 },
4 },
5 "nbformat": 2,
5 "nbformat": 3,
6 "worksheets": [
6 "worksheets": [
7 {
7 {
8 "cells": [
8 "cells": [
9 {
9 {
10 "cell_type": "markdown",
10 "cell_type": "markdown",
11 "source": [
11 "source": [
12 "# Using the IPython display protocol for your own objects",
12 "# Using the IPython display protocol for your own objects",
13 "",
13 "",
14 "IPython extends the idea of the ``__repr__`` method in Python to support multiple representations for a given",
14 "IPython extends the idea of the ``__repr__`` method in Python to support multiple representations for a given",
15 "object, which clients can use to display the object according to their capabilities. An object can return multiple",
15 "object, which clients can use to display the object according to their capabilities. An object can return multiple",
16 "representations of itself by implementing special methods, and you can also define at runtime custom display ",
16 "representations of itself by implementing special methods, and you can also define at runtime custom display ",
17 "functions for existing objects whose methods you can't or won't modify. In this notebook, we show how both approaches work.",
17 "functions for existing objects whose methods you can't or won't modify. In this notebook, we show how both approaches work.",
18 "",
18 "",
19 "<br/>",
19 "<br/>",
20 "**Note:** this notebook has had all output cells stripped out so we can include it in the IPython documentation with ",
20 "**Note:** this notebook has had all output cells stripped out so we can include it in the IPython documentation with ",
21 "a minimal file size. You'll need to manually execute the cells to see the output (you can run all of them with the ",
21 "a minimal file size. You'll need to manually execute the cells to see the output (you can run all of them with the ",
22 "\"Run All\" button, or execute each individually). You must start this notebook with",
22 "\"Run All\" button, or execute each individually). You must start this notebook with",
23 "<pre>",
23 "<pre>",
24 "ipython notebook --pylab inline",
24 "ipython notebook --pylab inline",
25 "</pre>",
25 "</pre>",
26 "",
26 "",
27 "to ensure pylab support is available for plots.",
27 "to ensure pylab support is available for plots.",
28 "",
28 "",
29 "## Custom-built classes with dedicated ``_repr_*_`` methods",
29 "## Custom-built classes with dedicated ``_repr_*_`` methods",
30 "",
30 "",
31 "In our first example, we illustrate how objects can expose directly to IPython special representations of",
31 "In our first example, we illustrate how objects can expose directly to IPython special representations of",
32 "themselves, by providing methods such as ``_repr_svg_``, ``_repr_png_``, ``_repr_latex_``, etc. For a full",
32 "themselves, by providing methods such as ``_repr_svg_``, ``_repr_png_``, ``_repr_latex_``, etc. For a full",
33 "list of the special ``_repr_*_`` methods supported, see the code in ``IPython.core.displaypub``.",
33 "list of the special ``_repr_*_`` methods supported, see the code in ``IPython.core.displaypub``.",
34 "",
34 "",
35 "As an illustration, we build a class that holds data generated by sampling a Gaussian distribution with given mean ",
35 "As an illustration, we build a class that holds data generated by sampling a Gaussian distribution with given mean ",
36 "and variance. The class can display itself in a variety of ways: as a LaTeX expression or as an image in PNG or SVG ",
36 "and variance. The class can display itself in a variety of ways: as a LaTeX expression or as an image in PNG or SVG ",
37 "format. Each frontend can then decide which representation it can handle.",
37 "format. Each frontend can then decide which representation it can handle.",
38 "Further, we illustrate how to expose directly to the user the ability to directly access the various alternate ",
38 "Further, we illustrate how to expose directly to the user the ability to directly access the various alternate ",
39 "representations (since by default displaying the object itself will only show one, and which is shown will depend on the ",
39 "representations (since by default displaying the object itself will only show one, and which is shown will depend on the ",
40 "required representations that even cache necessary data in cases where it may be expensive to compute.",
40 "required representations that even cache necessary data in cases where it may be expensive to compute.",
41 "",
41 "",
42 "The next cell defines the Gaussian class:"
42 "The next cell defines the Gaussian class:"
43 ]
43 ]
44 },
44 },
45 {
45 {
46 "cell_type": "code",
46 "cell_type": "code",
47 "collapsed": false,
47 "collapsed": false,
48 "input": [
48 "input": [
49 "from IPython.core.pylabtools import print_figure",
49 "from IPython.core.pylabtools import print_figure",
50 "from IPython.core.display import Image, SVG, Math",
50 "from IPython.core.display import Image, SVG, Math",
51 "",
51 "",
52 "class Gaussian(object):",
52 "class Gaussian(object):",
53 " \"\"\"A simple object holding data sampled from a Gaussian distribution.",
53 " \"\"\"A simple object holding data sampled from a Gaussian distribution.",
54 " \"\"\"",
54 " \"\"\"",
55 " def __init__(self, mean=0, std=1, size=1000):",
55 " def __init__(self, mean=0, std=1, size=1000):",
56 " self.data = np.random.normal(mean, std, size)",
56 " self.data = np.random.normal(mean, std, size)",
57 " self.mean = mean",
57 " self.mean = mean",
58 " self.std = std",
58 " self.std = std",
59 " self.size = size",
59 " self.size = size",
60 " # For caching plots that may be expensive to compute",
60 " # For caching plots that may be expensive to compute",
61 " self._png_data = None",
61 " self._png_data = None",
62 " self._svg_data = None",
62 " self._svg_data = None",
63 " ",
63 " ",
64 " def _figure_data(self, format):",
64 " def _figure_data(self, format):",
65 " fig, ax = plt.subplots()",
65 " fig, ax = plt.subplots()",
66 " ax.plot(self.data, 'o')",
66 " ax.plot(self.data, 'o')",
67 " ax.set_title(self._repr_latex_())",
67 " ax.set_title(self._repr_latex_())",
68 " data = print_figure(fig, format)",
68 " data = print_figure(fig, format)",
69 " # We MUST close the figure, otherwise IPython's display machinery",
69 " # We MUST close the figure, otherwise IPython's display machinery",
70 " # will pick it up and send it as output, resulting in a double display",
70 " # will pick it up and send it as output, resulting in a double display",
71 " plt.close(fig)",
71 " plt.close(fig)",
72 " return data",
72 " return data",
73 " ",
73 " ",
74 " # Here we define the special repr methods that provide the IPython display protocol",
74 " # Here we define the special repr methods that provide the IPython display protocol",
75 " # Note that for the two figures, we cache the figure data once computed.",
75 " # Note that for the two figures, we cache the figure data once computed.",
76 " ",
76 " ",
77 " def _repr_png_(self):",
77 " def _repr_png_(self):",
78 " if self._png_data is None:",
78 " if self._png_data is None:",
79 " self._png_data = self._figure_data('png')",
79 " self._png_data = self._figure_data('png')",
80 " return self._png_data",
80 " return self._png_data",
81 "",
81 "",
82 "",
82 "",
83 " def _repr_svg_(self):",
83 " def _repr_svg_(self):",
84 " if self._svg_data is None:",
84 " if self._svg_data is None:",
85 " self._svg_data = self._figure_data('svg')",
85 " self._svg_data = self._figure_data('svg')",
86 " return self._svg_data",
86 " return self._svg_data",
87 " ",
87 " ",
88 " def _repr_latex_(self):",
88 " def _repr_latex_(self):",
89 " return r'$\\mathcal{N}(\\mu=%.2g, \\sigma=%.2g),\\ N=%d$' % (self.mean,",
89 " return r'$\\mathcal{N}(\\mu=%.2g, \\sigma=%.2g),\\ N=%d$' % (self.mean,",
90 " self.std, self.size)",
90 " self.std, self.size)",
91 " ",
91 " ",
92 " # We expose as properties some of the above reprs, so that the user can see them",
92 " # We expose as properties some of the above reprs, so that the user can see them",
93 " # directly (since otherwise the client dictates which one it shows by default)",
93 " # directly (since otherwise the client dictates which one it shows by default)",
94 " @property",
94 " @property",
95 " def png(self):",
95 " def png(self):",
96 " return Image(self._repr_png_(), embed=True)",
96 " return Image(self._repr_png_(), embed=True)",
97 " ",
97 " ",
98 " @property",
98 " @property",
99 " def svg(self):",
99 " def svg(self):",
100 " return SVG(self._repr_svg_())",
100 " return SVG(self._repr_svg_())",
101 " ",
101 " ",
102 " @property",
102 " @property",
103 " def latex(self):",
103 " def latex(self):",
104 " return Math(self._repr_svg_())",
104 " return Math(self._repr_svg_())",
105 " ",
105 " ",
106 " # An example of using a property to display rich information, in this case",
106 " # An example of using a property to display rich information, in this case",
107 " # the histogram of the distribution. We've hardcoded the format to be png",
107 " # the histogram of the distribution. We've hardcoded the format to be png",
108 " # in this case, but in production code it would be trivial to make it an option",
108 " # in this case, but in production code it would be trivial to make it an option",
109 " @property",
109 " @property",
110 " def hist(self):",
110 " def hist(self):",
111 " fig, ax = plt.subplots()",
111 " fig, ax = plt.subplots()",
112 " ax.hist(self.data, bins=100)",
112 " ax.hist(self.data, bins=100)",
113 " ax.set_title(self._repr_latex_())",
113 " ax.set_title(self._repr_latex_())",
114 " data = print_figure(fig, 'png')",
114 " data = print_figure(fig, 'png')",
115 " plt.close(fig)",
115 " plt.close(fig)",
116 " return Image(data, embed=True)"
116 " return Image(data, embed=True)"
117 ],
117 ],
118 "language": "python",
118 "language": "python",
119 "outputs": [],
119 "outputs": [],
120 "prompt_number": 1
120 "prompt_number": 1
121 },
121 },
122 {
122 {
123 "cell_type": "markdown",
123 "cell_type": "markdown",
124 "source": [
124 "source": [
125 "Now, we create an instance of the Gaussian distribution, whose default representation will be its LaTeX form:"
125 "Now, we create an instance of the Gaussian distribution, whose default representation will be its LaTeX form:"
126 ]
126 ]
127 },
127 },
128 {
128 {
129 "cell_type": "code",
129 "cell_type": "code",
130 "collapsed": false,
130 "collapsed": false,
131 "input": [
131 "input": [
132 "x = Gaussian()",
132 "x = Gaussian()",
133 "x"
133 "x"
134 ],
134 ],
135 "language": "python",
135 "language": "python",
136 "outputs": [],
136 "outputs": [],
137 "prompt_number": 2
137 "prompt_number": 2
138 },
138 },
139 {
139 {
140 "cell_type": "markdown",
140 "cell_type": "markdown",
141 "source": [
141 "source": [
142 "We can view the data in png or svg formats:"
142 "We can view the data in png or svg formats:"
143 ]
143 ]
144 },
144 },
145 {
145 {
146 "cell_type": "code",
146 "cell_type": "code",
147 "collapsed": false,
147 "collapsed": false,
148 "input": [
148 "input": [
149 "x.png"
149 "x.png"
150 ],
150 ],
151 "language": "python",
151 "language": "python",
152 "outputs": [],
152 "outputs": [],
153 "prompt_number": 3
153 "prompt_number": 3
154 },
154 },
155 {
155 {
156 "cell_type": "code",
156 "cell_type": "code",
157 "collapsed": false,
157 "collapsed": false,
158 "input": [
158 "input": [
159 "x.svg"
159 "x.svg"
160 ],
160 ],
161 "language": "python",
161 "language": "python",
162 "outputs": [],
162 "outputs": [],
163 "prompt_number": 4
163 "prompt_number": 4
164 },
164 },
165 {
165 {
166 "cell_type": "markdown",
166 "cell_type": "markdown",
167 "source": [
167 "source": [
168 "Since IPython only displays by default as an ``Out[]`` cell the result of the last computation, we can use the",
168 "Since IPython only displays by default as an ``Out[]`` cell the result of the last computation, we can use the",
169 "``display()`` function to show more than one representation in a single cell:"
169 "``display()`` function to show more than one representation in a single cell:"
170 ]
170 ]
171 },
171 },
172 {
172 {
173 "cell_type": "code",
173 "cell_type": "code",
174 "collapsed": false,
174 "collapsed": false,
175 "input": [
175 "input": [
176 "display(x.png)",
176 "display(x.png)",
177 "display(x.svg)"
177 "display(x.svg)"
178 ],
178 ],
179 "language": "python",
179 "language": "python",
180 "outputs": [],
180 "outputs": [],
181 "prompt_number": 5
181 "prompt_number": 5
182 },
182 },
183 {
183 {
184 "cell_type": "markdown",
184 "cell_type": "markdown",
185 "source": [
185 "source": [
186 "Now let's create a new Gaussian with different parameters"
186 "Now let's create a new Gaussian with different parameters"
187 ]
187 ]
188 },
188 },
189 {
189 {
190 "cell_type": "code",
190 "cell_type": "code",
191 "collapsed": false,
191 "collapsed": false,
192 "input": [
192 "input": [
193 "x2 = Gaussian(0.5, 0.2, 2000)",
193 "x2 = Gaussian(0.5, 0.2, 2000)",
194 "x2"
194 "x2"
195 ],
195 ],
196 "language": "python",
196 "language": "python",
197 "outputs": [],
197 "outputs": [],
198 "prompt_number": 6
198 "prompt_number": 6
199 },
199 },
200 {
200 {
201 "cell_type": "markdown",
201 "cell_type": "markdown",
202 "source": [
202 "source": [
203 "We can easily compare them by displaying their histograms"
203 "We can easily compare them by displaying their histograms"
204 ]
204 ]
205 },
205 },
206 {
206 {
207 "cell_type": "code",
207 "cell_type": "code",
208 "collapsed": false,
208 "collapsed": false,
209 "input": [
209 "input": [
210 "display(x.hist)",
210 "display(x.hist)",
211 "display(x2.hist)"
211 "display(x2.hist)"
212 ],
212 ],
213 "language": "python",
213 "language": "python",
214 "outputs": [],
214 "outputs": [],
215 "prompt_number": 7
215 "prompt_number": 7
216 },
216 },
217 {
217 {
218 "cell_type": "markdown",
218 "cell_type": "markdown",
219 "source": [
219 "source": [
220 "## Adding IPython display support to existing objects",
220 "## Adding IPython display support to existing objects",
221 "",
221 "",
222 "When you are directly writing your own classes, you can adapt them for display in IPython by ",
222 "When you are directly writing your own classes, you can adapt them for display in IPython by ",
223 "following the above example. But in practice, we often need to work with existing code we",
223 "following the above example. But in practice, we often need to work with existing code we",
224 "can't modify. ",
224 "can't modify. ",
225 "",
225 "",
226 "We now illustrate how to add these kinds of extended display capabilities to existing objects.",
226 "We now illustrate how to add these kinds of extended display capabilities to existing objects.",
227 "We will use the numpy polynomials and change their default representation to be a formatted",
227 "We will use the numpy polynomials and change their default representation to be a formatted",
228 "LaTeX expression.",
228 "LaTeX expression.",
229 "",
229 "",
230 "First, consider how a numpy polynomial object renders by default:"
230 "First, consider how a numpy polynomial object renders by default:"
231 ]
231 ]
232 },
232 },
233 {
233 {
234 "cell_type": "code",
234 "cell_type": "code",
235 "collapsed": false,
235 "collapsed": false,
236 "input": [
236 "input": [
237 "p = np.polynomial.Polynomial([1,2,3], [-10, 10])",
237 "p = np.polynomial.Polynomial([1,2,3], [-10, 10])",
238 "p"
238 "p"
239 ],
239 ],
240 "language": "python",
240 "language": "python",
241 "outputs": [],
241 "outputs": [],
242 "prompt_number": 8
242 "prompt_number": 8
243 },
243 },
244 {
244 {
245 "cell_type": "markdown",
245 "cell_type": "markdown",
246 "source": [
246 "source": [
247 "Next, we define a function that pretty-prints a polynomial as a LaTeX string:"
247 "Next, we define a function that pretty-prints a polynomial as a LaTeX string:"
248 ]
248 ]
249 },
249 },
250 {
250 {
251 "cell_type": "code",
251 "cell_type": "code",
252 "collapsed": true,
252 "collapsed": true,
253 "input": [
253 "input": [
254 "def poly2latex(p):",
254 "def poly2latex(p):",
255 " terms = ['%.2g' % p.coef[0]]",
255 " terms = ['%.2g' % p.coef[0]]",
256 " if len(p) > 1:",
256 " if len(p) > 1:",
257 " term = 'x'",
257 " term = 'x'",
258 " c = p.coef[1]",
258 " c = p.coef[1]",
259 " if c!=1:",
259 " if c!=1:",
260 " term = ('%.2g ' % c) + term",
260 " term = ('%.2g ' % c) + term",
261 " terms.append(term)",
261 " terms.append(term)",
262 " if len(p) > 2:",
262 " if len(p) > 2:",
263 " for i in range(2, len(p)):",
263 " for i in range(2, len(p)):",
264 " term = 'x^%d' % i",
264 " term = 'x^%d' % i",
265 " c = p.coef[i]",
265 " c = p.coef[i]",
266 " if c!=1:",
266 " if c!=1:",
267 " term = ('%.2g ' % c) + term",
267 " term = ('%.2g ' % c) + term",
268 " terms.append(term)",
268 " terms.append(term)",
269 " px = '$P(x)=%s$' % '+'.join(terms)",
269 " px = '$P(x)=%s$' % '+'.join(terms)",
270 " dom = r', domain: $[%.2g,\\ %.2g]$' % tuple(p.domain)",
270 " dom = r', domain: $[%.2g,\\ %.2g]$' % tuple(p.domain)",
271 " return px+dom"
271 " return px+dom"
272 ],
272 ],
273 "language": "python",
273 "language": "python",
274 "outputs": [],
274 "outputs": [],
275 "prompt_number": 9
275 "prompt_number": 9
276 },
276 },
277 {
277 {
278 "cell_type": "markdown",
278 "cell_type": "markdown",
279 "source": [
279 "source": [
280 "This produces, on our polynomial ``p``, the following:"
280 "This produces, on our polynomial ``p``, the following:"
281 ]
281 ]
282 },
282 },
283 {
283 {
284 "cell_type": "code",
284 "cell_type": "code",
285 "collapsed": false,
285 "collapsed": false,
286 "input": [
286 "input": [
287 "poly2latex(p)"
287 "poly2latex(p)"
288 ],
288 ],
289 "language": "python",
289 "language": "python",
290 "outputs": [],
290 "outputs": [],
291 "prompt_number": 10
291 "prompt_number": 10
292 },
292 },
293 {
293 {
294 "cell_type": "markdown",
294 "cell_type": "markdown",
295 "source": [
295 "source": [
296 "Note that this did *not* produce a formated LaTeX object, because it is simply a string ",
296 "Note that this did *not* produce a formated LaTeX object, because it is simply a string ",
297 "with LaTeX code. In order for this to be interpreted as a mathematical expression, it",
297 "with LaTeX code. In order for this to be interpreted as a mathematical expression, it",
298 "must be properly wrapped into a Math object:"
298 "must be properly wrapped into a Math object:"
299 ]
299 ]
300 },
300 },
301 {
301 {
302 "cell_type": "code",
302 "cell_type": "code",
303 "collapsed": false,
303 "collapsed": false,
304 "input": [
304 "input": [
305 "from IPython.core.display import Math",
305 "from IPython.core.display import Math",
306 "Math(poly2latex(p))"
306 "Math(poly2latex(p))"
307 ],
307 ],
308 "language": "python",
308 "language": "python",
309 "outputs": [],
309 "outputs": [],
310 "prompt_number": 11
310 "prompt_number": 11
311 },
311 },
312 {
312 {
313 "cell_type": "markdown",
313 "cell_type": "markdown",
314 "source": [
314 "source": [
315 "But we can configure IPython to do this automatically for us as follows. We hook into the",
315 "But we can configure IPython to do this automatically for us as follows. We hook into the",
316 "IPython display system and instruct it to use ``poly2latex`` for the latex mimetype, when",
316 "IPython display system and instruct it to use ``poly2latex`` for the latex mimetype, when",
317 "encountering objects of the ``Polynomial`` type defined in the",
317 "encountering objects of the ``Polynomial`` type defined in the",
318 "``numpy.polynomial.polynomial`` module:"
318 "``numpy.polynomial.polynomial`` module:"
319 ]
319 ]
320 },
320 },
321 {
321 {
322 "cell_type": "code",
322 "cell_type": "code",
323 "collapsed": true,
323 "collapsed": true,
324 "input": [
324 "input": [
325 "ip = get_ipython()",
325 "ip = get_ipython()",
326 "latex_formatter = ip.display_formatter.formatters['text/latex']",
326 "latex_formatter = ip.display_formatter.formatters['text/latex']",
327 "latex_formatter.for_type_by_name('numpy.polynomial.polynomial',",
327 "latex_formatter.for_type_by_name('numpy.polynomial.polynomial',",
328 " 'Polynomial', poly2latex)"
328 " 'Polynomial', poly2latex)"
329 ],
329 ],
330 "language": "python",
330 "language": "python",
331 "outputs": [],
331 "outputs": [],
332 "prompt_number": 12
332 "prompt_number": 12
333 },
333 },
334 {
334 {
335 "cell_type": "markdown",
335 "cell_type": "markdown",
336 "source": [
336 "source": [
337 "For more examples on how to use the above system, and how to bundle similar print functions",
337 "For more examples on how to use the above system, and how to bundle similar print functions",
338 "into a convenient IPython extension, see the ``IPython/extensions/sympyprinting.py`` file. ",
338 "into a convenient IPython extension, see the ``IPython/extensions/sympyprinting.py`` file. ",
339 "The machinery that defines the display system is in the ``display.py`` and ``displaypub.py`` ",
339 "The machinery that defines the display system is in the ``display.py`` and ``displaypub.py`` ",
340 "files in ``IPython/core``.",
340 "files in ``IPython/core``.",
341 "",
341 "",
342 "Once our special printer has been loaded, all polynomials will be represented by their ",
342 "Once our special printer has been loaded, all polynomials will be represented by their ",
343 "mathematical form instead:"
343 "mathematical form instead:"
344 ]
344 ]
345 },
345 },
346 {
346 {
347 "cell_type": "code",
347 "cell_type": "code",
348 "collapsed": false,
348 "collapsed": false,
349 "input": [
349 "input": [
350 "p"
350 "p"
351 ],
351 ],
352 "language": "python",
352 "language": "python",
353 "outputs": [],
353 "outputs": [],
354 "prompt_number": 13
354 "prompt_number": 13
355 },
355 },
356 {
356 {
357 "cell_type": "code",
357 "cell_type": "code",
358 "collapsed": false,
358 "collapsed": false,
359 "input": [
359 "input": [
360 "p2 = np.polynomial.Polynomial([-20, 71, -15, 1])",
360 "p2 = np.polynomial.Polynomial([-20, 71, -15, 1])",
361 "p2"
361 "p2"
362 ],
362 ],
363 "language": "python",
363 "language": "python",
364 "outputs": [],
364 "outputs": [],
365 "prompt_number": 14
365 "prompt_number": 14
366 },
366 },
367 {
367 {
368 "cell_type": "code",
368 "cell_type": "code",
369 "collapsed": true,
369 "collapsed": true,
370 "input": [],
370 "input": [],
371 "language": "python",
371 "language": "python",
372 "outputs": [],
372 "outputs": [],
373 "prompt_number": 14
373 "prompt_number": 14
374 }
374 }
375 ]
375 ]
@@ -1,122 +1,122 b''
1 {
1 {
2 "metadata": {
2 "metadata": {
3 "name": "formatting"
3 "name": "formatting"
4 },
4 },
5 "nbformat": 2,
5 "nbformat": 3,
6 "worksheets": [
6 "worksheets": [
7 {
7 {
8 "cells": [
8 "cells": [
9 {
9 {
10 "cell_type": "markdown",
10 "cell_type": "markdown",
11 "source": [
11 "source": [
12 "# Examples of basic formatting in the notebook",
12 "# Examples of basic formatting in the notebook",
13 "",
13 "",
14 "Normal and formatted text cells such as this one use the ",
14 "Normal and formatted text cells such as this one use the ",
15 "[Markdown](http://daringfireball.net/projects/markdown/basics) syntax.",
15 "[Markdown](http://daringfireball.net/projects/markdown/basics) syntax.",
16 "",
16 "",
17 "",
17 "",
18 "# Title (h1)",
18 "# Title (h1)",
19 "",
19 "",
20 "## Heading (h2)",
20 "## Heading (h2)",
21 "",
21 "",
22 "### Heading (h3)",
22 "### Heading (h3)",
23 "",
23 "",
24 "Here is a paragraph of text.",
24 "Here is a paragraph of text.",
25 "",
25 "",
26 "* One.",
26 "* One.",
27 " - Sublist",
27 " - Sublist",
28 " - Here we go",
28 " - Here we go",
29 " - Sublist",
29 " - Sublist",
30 " - Here we go",
30 " - Here we go",
31 " - Here we go",
31 " - Here we go",
32 "* Two.",
32 "* Two.",
33 " - Sublist",
33 " - Sublist",
34 "* Three.",
34 "* Three.",
35 " - Sublist",
35 " - Sublist",
36 "",
36 "",
37 "Now another list:",
37 "Now another list:",
38 "",
38 "",
39 "---",
39 "---",
40 "",
40 "",
41 "1. Here we go",
41 "1. Here we go",
42 " 1. Sublist",
42 " 1. Sublist",
43 " 2. Sublist",
43 " 2. Sublist",
44 "2. There we go",
44 "2. There we go",
45 "3. Now this",
45 "3. Now this",
46 "",
46 "",
47 "And another paragraph.",
47 "And another paragraph.",
48 "",
48 "",
49 "### Heading (h3)",
49 "### Heading (h3)",
50 "",
50 "",
51 "#### Heading (h4)",
51 "#### Heading (h4)",
52 "",
52 "",
53 "##### Heading (h5)",
53 "##### Heading (h5)",
54 "",
54 "",
55 "###### Heading (h6)",
55 "###### Heading (h6)",
56 "",
56 "",
57 "## Heading (h2)"
57 "## Heading (h2)"
58 ]
58 ]
59 },
59 },
60 {
60 {
61 "cell_type": "markdown",
61 "cell_type": "markdown",
62 "source": [
62 "source": [
63 "# Heading (h1)",
63 "# Heading (h1)",
64 "",
64 "",
65 "## Heading (h2)",
65 "## Heading (h2)",
66 "",
66 "",
67 "### Heading (h3)",
67 "### Heading (h3)",
68 "",
68 "",
69 "#### Heading (h4)",
69 "#### Heading (h4)",
70 "",
70 "",
71 "##### Heading (h5)",
71 "##### Heading (h5)",
72 "",
72 "",
73 "###### Heading (h6)",
73 "###### Heading (h6)",
74 "",
74 "",
75 "Now for a simple code example:",
75 "Now for a simple code example:",
76 "",
76 "",
77 " for i in range(10):",
77 " for i in range(10):",
78 " print i",
78 " print i",
79 "",
79 "",
80 "Now more text"
80 "Now more text"
81 ]
81 ]
82 },
82 },
83 {
83 {
84 "cell_type": "markdown",
84 "cell_type": "markdown",
85 "source": [
85 "source": [
86 "## Heading (h2)",
86 "## Heading (h2)",
87 "",
87 "",
88 "Here is text.",
88 "Here is text.",
89 "",
89 "",
90 "> This is a *block* quote. This is a block quote. This is a block quote. ",
90 "> This is a *block* quote. This is a block quote. This is a block quote. ",
91 "> This is a **block** quote. This is a block quote. This is a block quote. ",
91 "> This is a **block** quote. This is a block quote. This is a block quote. ",
92 "> This is a `block` quote. This is a block quote. This is a block quote. ",
92 "> This is a `block` quote. This is a block quote. This is a block quote. ",
93 "> This is a block quote. This is a block quote. This is a block quote. ",
93 "> This is a block quote. This is a block quote. This is a block quote. ",
94 "> This is a block quote. This is a block quote. This is a block quote. ",
94 "> This is a block quote. This is a block quote. This is a block quote. ",
95 "> This is a block quote. This is a block quote. This is a block quote. ",
95 "> This is a block quote. This is a block quote. This is a block quote. ",
96 "",
96 "",
97 "Here is text",
97 "Here is text",
98 "",
98 "",
99 "<table>",
99 "<table>",
100 "<tr>",
100 "<tr>",
101 "<th>Header 1</th>",
101 "<th>Header 1</th>",
102 "<th>Header 2</th>",
102 "<th>Header 2</th>",
103 "</tr>",
103 "</tr>",
104 "<tr>",
104 "<tr>",
105 "<td>row 1, cell 1</td>",
105 "<td>row 1, cell 1</td>",
106 "<td>row 1, cell 2</td>",
106 "<td>row 1, cell 2</td>",
107 "</tr>",
107 "</tr>",
108 "<tr>",
108 "<tr>",
109 "<td>row 2, cell 1</td>",
109 "<td>row 2, cell 1</td>",
110 "<td>row 2, cell 2</td>",
110 "<td>row 2, cell 2</td>",
111 "</tr>",
111 "</tr>",
112 "</table>"
112 "</table>"
113 ]
113 ]
114 },
114 },
115 {
115 {
116 "cell_type": "code",
116 "cell_type": "code",
117 "collapsed": true,
117 "collapsed": true,
118 "input": [],
118 "input": [],
119 "language": "python",
119 "language": "python",
120 "outputs": [],
120 "outputs": [],
121 "prompt_number": "&nbsp;"
121 "prompt_number": "&nbsp;"
122 }
122 }
This diff has been collapsed as it changes many lines, (684 lines changed) Show them Hide them
@@ -1,322 +1,322 b''
1 {
1 {
2 "metadata": {
2 "metadata": {
3 "name": "sympy"
3 "name": "sympy"
4 },
4 },
5 "nbformat": 2,
5 "nbformat": 3,
6 "worksheets": [
6 "worksheets": [
7 {
7 {
8 "cells": [
8 "cells": [
9 {
9 {
10 "cell_type": "markdown",
10 "cell_type": "markdown",
11 "source": [
11 "source": [
12 "# SymPy: Open Source Symbolic Mathematics",
12 "# SymPy: Open Source Symbolic Mathematics",
13 "",
13 "",
14 "This notebook uses the [SymPy](http://sympy.org) package to perform symbolic manipulations,",
14 "This notebook uses the [SymPy](http://sympy.org) package to perform symbolic manipulations,",
15 "and combined with numpy and matplotlib, also displays numerical visualizations of symbolically",
15 "and combined with numpy and matplotlib, also displays numerical visualizations of symbolically",
16 "constructed expressions.",
16 "constructed expressions.",
17 "",
17 "",
18 "We first load sympy printing and plotting support, as well as all of sympy:"
18 "We first load sympy printing and plotting support, as well as all of sympy:"
19 ]
19 ]
20 },
20 },
21 {
21 {
22 "cell_type": "code",
22 "cell_type": "code",
23 "collapsed": false,
23 "collapsed": false,
24 "input": [
24 "input": [
25 "%load_ext sympyprinting",
25 "%load_ext sympyprinting",
26 "%pylab inline",
26 "%pylab inline",
27 "",
27 "",
28 "from __future__ import division",
28 "from __future__ import division",
29 "import sympy as sym",
29 "import sympy as sym",
30 "from sympy import *",
30 "from sympy import *",
31 "x, y, z = symbols(\"x y z\")",
31 "x, y, z = symbols(\"x y z\")",
32 "k, m, n = symbols(\"k m n\", integer=True)",
32 "k, m, n = symbols(\"k m n\", integer=True)",
33 "f, g, h = map(Function, 'fgh')"
33 "f, g, h = map(Function, 'fgh')"
34 ],
34 ],
35 "language": "python",
35 "language": "python",
36 "outputs": [
36 "outputs": [
37 {
37 {
38 "output_type": "stream",
38 "output_type": "stream",
39 "stream": "stdout",
39 "stream": "stdout",
40 "text": [
40 "text": [
41 "",
41 "",
42 "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].",
42 "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].",
43 "For more information, type 'help(pylab)'."
43 "For more information, type 'help(pylab)'."
44 ]
44 ]
45 }
45 }
46 ],
46 ],
47 "prompt_number": 1
47 "prompt_number": 1
48 },
48 },
49 {
49 {
50 "cell_type": "markdown",
50 "cell_type": "markdown",
51 "source": [
51 "source": [
52 "<h2>Elementary operations</h2>"
52 "<h2>Elementary operations</h2>"
53 ]
53 ]
54 },
54 },
55 {
55 {
56 "cell_type": "code",
56 "cell_type": "code",
57 "collapsed": false,
57 "collapsed": false,
58 "input": [
58 "input": [
59 "Rational(3,2)*pi + exp(I*x) / (x**2 + y)"
59 "Rational(3,2)*pi + exp(I*x) / (x**2 + y)"
60 ],
60 ],
61 "language": "python",
61 "language": "python",
62 "outputs": [
62 "outputs": [
63 {
63 {
64 "latex": [
64 "latex": [
65 "$$\\frac{3}{2} \\pi + \\frac{e^{\\mathbf{\\imath} x}}{x^{2} + y}$$"
65 "$$\\frac{3}{2} \\pi + \\frac{e^{\\mathbf{\\imath} x}}{x^{2} + y}$$"
66 ],
66 ],
67 "output_type": "pyout",
67 "output_type": "pyout",
68 "png": "iVBORw0KGgoAAAANSUhEUgAAAFAAAAAlCAYAAADV/m7fAAAABHNCSVQICAgIfAhkiAAAA91JREFU\naIHt2luIVVUcx/HPjFNm2YxhZA0hk5HkJbtAWTReioIuUyFRmBZGE12wIoiUHoLpoXsRCRFBDyNS\nPmQWVg9RD0FRD5bagwRpdKUYGro4mSHk9PDfR7cnxzn7nL3P8cj5wmHWOrPP//8/e6/1X7+1/ocW\nNdHW6ADqxDm4AluxDb2Yi2FcjnuwqxrD7al2L27DA3gzcXi0sAun4yechHfRgS9xrypvXjk/YEXS\n7sdfmJiH4SOA47EeZ6BT3LxNYgD11GK4I9W+Bt8m7T8xoRbDRxhTxQA5FXfie/FdF+N3fFet4bFy\n4OvYjserNdxg7sbf+AcnYLAoRx1l/QtwHXbjhaKcFswTYga9gsm4vxFB3IUvMKkOvub5/4Oslqni\n4a/ActwkbmLhzMeQSLIwG6O4qg6+B9WYyFNcj89zslURJRkzjB34Oemfi71iFDYTOxwszY4RGq8w\nvVuaOt/geZEvjsUlWIhfy64/EauwUuipQzGKRfg472Ar4CusxcP4Rciw15KYCiGde96q4PqX8Rtu\nxQ3YLCTAgyJp7xEr36e5RpmNFxvo+7DcgqWp/hsOaMWParA7KL8cWHeyrH7rU+0pyWf/FSv1yXkG\n1UxUKx+W47OkPUuI1vFYKxancqbjIrFoldOvSRay0XFe5WzDhUn7WoyofqUbVNkUHi/GhrxKIzDL\nl18oRs2WpN8pxOpZ+DqDnayMF2M7VmOfSC3PFRjLQU6z8hA+FEFyQDuen0tE1dOHjXhayLCz6+E0\nfQPn4zE8ibfFFutQzMSaVH+zyId7iggwAzOEtCJ07cx6Op+Ml1L9m0Ve66qD70H5yJiJQujD++jO\nwWbFzBO548yk3ymSZF8dfK8R53R5sQCP5GivItrEFC4l6jniBs6qdyA10oVHGx0ErBN742ZjpThA\nmIQrM3zuvjyD6Mczmq9it0wUh4bFMf3cDJ8dyCuIPnEDiafYk5fhnLhUVA6fxY1ixG0UK3AtDIzx\n/gTcgVdFWiO2rft3R2kZswjT8J5I6ktwWo2B5Umn0HbrxGnPKqEcRlS2layGJXhH1FVmJ+9dhh9L\nF5Sm6QxRIy0//u6SU800B44TSmEvnsIfyd+sTBPHb+kU1YtPUv0RUVArybidYjbuFg9tp+atGSGm\nUGkvPiUHewOH+d9SbEj1t4viG6rbyjWKq8XI6RELxFYR/7KC/XaLnQ2hk7vFYQqaq3i+QPzG5RRx\ngHte0t+g9m3kYmMfCg+Jw+R9Qu4MiTJBixSrK7zuA9xeYBxHHXNEzadNSKgtQqjvp5mmcCNoF6v2\ndFwsfldTlGRq0aJFi6bjP9GM0XhICUQDAAAAAElFTkSuQmCC\n",
68 "png": "iVBORw0KGgoAAAANSUhEUgAAAFAAAAAlCAYAAADV/m7fAAAABHNCSVQICAgIfAhkiAAAA91JREFU\naIHt2luIVVUcx/HPjFNm2YxhZA0hk5HkJbtAWTReioIuUyFRmBZGE12wIoiUHoLpoXsRCRFBDyNS\nPmQWVg9RD0FRD5bagwRpdKUYGro4mSHk9PDfR7cnxzn7nL3P8cj5wmHWOrPP//8/e6/1X7+1/ocW\nNdHW6ADqxDm4AluxDb2Yi2FcjnuwqxrD7al2L27DA3gzcXi0sAun4yechHfRgS9xrypvXjk/YEXS\n7sdfmJiH4SOA47EeZ6BT3LxNYgD11GK4I9W+Bt8m7T8xoRbDRxhTxQA5FXfie/FdF+N3fFet4bFy\n4OvYjserNdxg7sbf+AcnYLAoRx1l/QtwHXbjhaKcFswTYga9gsm4vxFB3IUvMKkOvub5/4Oslqni\n4a/ActwkbmLhzMeQSLIwG6O4qg6+B9WYyFNcj89zslURJRkzjB34Oemfi71iFDYTOxwszY4RGq8w\nvVuaOt/geZEvjsUlWIhfy64/EauwUuipQzGKRfg472Ar4CusxcP4Rciw15KYCiGde96q4PqX8Rtu\nxQ3YLCTAgyJp7xEr36e5RpmNFxvo+7DcgqWp/hsOaMWParA7KL8cWHeyrH7rU+0pyWf/FSv1yXkG\n1UxUKx+W47OkPUuI1vFYKxancqbjIrFoldOvSRay0XFe5WzDhUn7WoyofqUbVNkUHi/GhrxKIzDL\nl18oRs2WpN8pxOpZ+DqDnayMF2M7VmOfSC3PFRjLQU6z8hA+FEFyQDuen0tE1dOHjXhayLCz6+E0\nfQPn4zE8ibfFFutQzMSaVH+zyId7iggwAzOEtCJ07cx6Op+Ml1L9m0Ve66qD70H5yJiJQujD++jO\nwWbFzBO548yk3ymSZF8dfK8R53R5sQCP5GivItrEFC4l6jniBs6qdyA10oVHGx0ErBN742ZjpThA\nmIQrM3zuvjyD6Mczmq9it0wUh4bFMf3cDJ8dyCuIPnEDiafYk5fhnLhUVA6fxY1ixG0UK3AtDIzx\n/gTcgVdFWiO2rft3R2kZswjT8J5I6ktwWo2B5Umn0HbrxGnPKqEcRlS2layGJXhH1FVmJ+9dhh9L\nF5Sm6QxRIy0//u6SU800B44TSmEvnsIfyd+sTBPHb+kU1YtPUv0RUVArybidYjbuFg9tp+atGSGm\nUGkvPiUHewOH+d9SbEj1t4viG6rbyjWKq8XI6RELxFYR/7KC/XaLnQ2hk7vFYQqaq3i+QPzG5RRx\ngHte0t+g9m3kYmMfCg+Jw+R9Qu4MiTJBixSrK7zuA9xeYBxHHXNEzadNSKgtQqjvp5mmcCNoF6v2\ndFwsfldTlGRq0aJFi6bjP9GM0XhICUQDAAAAAElFTkSuQmCC\n",
69 "prompt_number": 2,
69 "prompt_number": 2,
70 "text": [
70 "text": [
71 "",
71 "",
72 " \u2148\u22c5x ",
72 " \u2148\u22c5x ",
73 "3\u22c5\u03c0 \u212f ",
73 "3\u22c5\u03c0 \u212f ",
74 "\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500",
74 "\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500",
75 " 2 2 ",
75 " 2 2 ",
76 " x + y"
76 " x + y"
77 ]
77 ]
78 }
78 }
79 ],
79 ],
80 "prompt_number": 2
80 "prompt_number": 2
81 },
81 },
82 {
82 {
83 "cell_type": "code",
83 "cell_type": "code",
84 "collapsed": false,
84 "collapsed": false,
85 "input": [
85 "input": [
86 "exp(I*x).subs(x,pi).evalf()"
86 "exp(I*x).subs(x,pi).evalf()"
87 ],
87 ],
88 "language": "python",
88 "language": "python",
89 "outputs": [
89 "outputs": [
90 {
90 {
91 "latex": [
91 "latex": [
92 "$$-1.0$$"
92 "$$-1.0$$"
93 ],
93 ],
94 "output_type": "pyout",
94 "output_type": "pyout",
95 "png": "iVBORw0KGgoAAAANSUhEUgAAACsAAAASCAYAAADCKCelAAAABHNCSVQICAgIfAhkiAAAAU1JREFU\nSInt1csrBlEcxvGPWxKFhcsCK5QFJVlYsfJPsLKQjf8CG8qejVKWkhUbsRBZuWzct0okxQK5LGam\npmmU923evMpTp9N5njm/+c7MmXP4QyopQM0WbKM9j3mzuMEjKjCP+yzhIlVjGOf4zHFuGS4xHvOm\nsInSTOhi6sIaZrArd9gRvAgeOFJHWGcsC8DvtCR32ENspfhXWI0Gmb/iPFSOHlykZJcYigbFANsk\n+NGfUrJn1KOS4oBtDvvnlCzy6igO2Jew/0jJKuJZMcCe4fWbrBpvuCNY3JG6seDnB8UhJvIEjOsN\np4K1mVQNboW7Sxz2BAMZ3DwfHaM14ZWhF3uR8RvLoBVVCe8Igwm/H7WYKyTMuuCzNaZkfXjHRsKv\nFxzTkzFvAfuFAGzEjmBj/wzbAw4wGruuDdeYTqnRiWUshm0FDYWA/def1heszTze5axPeQAAAABJ\nRU5ErkJggg==\n",
95 "png": "iVBORw0KGgoAAAANSUhEUgAAACsAAAASCAYAAADCKCelAAAABHNCSVQICAgIfAhkiAAAAU1JREFU\nSInt1csrBlEcxvGPWxKFhcsCK5QFJVlYsfJPsLKQjf8CG8qejVKWkhUbsRBZuWzct0okxQK5LGam\npmmU923evMpTp9N5njm/+c7MmXP4QyopQM0WbKM9j3mzuMEjKjCP+yzhIlVjGOf4zHFuGS4xHvOm\nsInSTOhi6sIaZrArd9gRvAgeOFJHWGcsC8DvtCR32ENspfhXWI0Gmb/iPFSOHlykZJcYigbFANsk\n+NGfUrJn1KOS4oBtDvvnlCzy6igO2Jew/0jJKuJZMcCe4fWbrBpvuCNY3JG6seDnB8UhJvIEjOsN\np4K1mVQNboW7Sxz2BAMZ3DwfHaM14ZWhF3uR8RvLoBVVCe8Igwm/H7WYKyTMuuCzNaZkfXjHRsKv\nFxzTkzFvAfuFAGzEjmBj/wzbAw4wGruuDdeYTqnRiWUshm0FDYWA/def1heszTze5axPeQAAAABJ\nRU5ErkJggg==\n",
96 "prompt_number": 4,
96 "prompt_number": 4,
97 "text": [
97 "text": [
98 "-1.00000000000000"
98 "-1.00000000000000"
99 ]
99 ]
100 }
100 }
101 ],
101 ],
102 "prompt_number": 4
102 "prompt_number": 4
103 },
103 },
104 {
104 {
105 "cell_type": "code",
105 "cell_type": "code",
106 "collapsed": true,
106 "collapsed": true,
107 "input": [
107 "input": [
108 "e = x + 2*y"
108 "e = x + 2*y"
109 ],
109 ],
110 "language": "python",
110 "language": "python",
111 "outputs": [],
111 "outputs": [],
112 "prompt_number": 5
112 "prompt_number": 5
113 },
113 },
114 {
114 {
115 "cell_type": "code",
115 "cell_type": "code",
116 "collapsed": false,
116 "collapsed": false,
117 "input": [
117 "input": [
118 "srepr(e)"
118 "srepr(e)"
119 ],
119 ],
120 "language": "python",
120 "language": "python",
121 "outputs": [
121 "outputs": [
122 {
122 {
123 "output_type": "pyout",
123 "output_type": "pyout",
124 "prompt_number": 6,
124 "prompt_number": 6,
125 "text": [
125 "text": [
126 "Add(Symbol('x'), Mul(Integer(2), Symbol('y')))"
126 "Add(Symbol('x'), Mul(Integer(2), Symbol('y')))"
127 ]
127 ]
128 }
128 }
129 ],
129 ],
130 "prompt_number": 6
130 "prompt_number": 6
131 },
131 },
132 {
132 {
133 "cell_type": "code",
133 "cell_type": "code",
134 "collapsed": false,
134 "collapsed": false,
135 "input": [
135 "input": [
136 "exp(pi * sqrt(163)).evalf(50)"
136 "exp(pi * sqrt(163)).evalf(50)"
137 ],
137 ],
138 "language": "python",
138 "language": "python",
139 "outputs": [
139 "outputs": [
140 {
140 {
141 "latex": [
141 "latex": [
142 "$$262537412640768743.99999999999925007259719818568888$$"
142 "$$262537412640768743.99999999999925007259719818568888$$"
143 ],
143 ],
144 "output_type": "pyout",
144 "output_type": "pyout",
145 "png": "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\n",
145 "png": "iVBORw0KGgoAAAANSUhEUgAAAfwAAAASCAYAAAC+a2xVAAAABHNCSVQICAgIfAhkiAAACXRJREFU\neJztnXusXUUVxn/tvRcrl1JAuSDclhJbC01pTAgiNCERAkIQYkrEpqAUUIEQlEchGm2sQHmUl0UN\nUjU5UAKWVqg8lMYEawAfrcqjvGoVKOAtINryrlCBP9YMd84+M3uv2WdujqeZLznJPTNrr7Xm27PW\nnjOPfSEjIyMjIyNjm8eowvepwBXAdsA44PfA94BNnmvHAxcC/wNeAV4HFgJv1NA3BCwHbgZeAmYB\nXzSfJx25KcBcYCuwj5G9BHjYkTkK+AnwkPHlv8C7Tv0a4Eee9mB09wGXBuoHgVXApEB9av60/g0a\nuxuNrj7gGuDfjkwsLxr/dga+CfSY9vYA3wWea8Oupr2afhDCIPB14MPAO8BrwA+Al7PcNiGXOudo\nYksrFxMLI9GOKv7qxGpVTtTeN00uibGr1aflD9LlxE7KfYApwP3ABEfBWvPZoyA7ADwNHGy+7wKs\nA86pqe+9wucN4NiCzGRgJTDWfB8FLAVeBaY5cud59Lmfo7yth72M3fmeun7gCOBvRocPqfnT+tcD\n/B34mlN2McLVaKcshheNfzsh/H/MKZsOPIYEYx27mvZq+4EPHwWeAL7slJ0G/IrmwW+W60651DlH\nG1upYzB1O7T8xcSqJidq7WpzidZujD4Nf5A2J3ZKrgm3O42xOBghYVGh/DbgbOf7ALAB+EpNfRuA\nxcbps/GP2uYhI6tjnLLZRt8lTtmPgb2REXaPUz4D+KFHr8Vio2t+oXxfYIWx8QDhTpaaP61/JyAj\n8X6nbLKRPcUpi+FF49+JwHc8fi4Ezq1p10Wovdp+4MMS4D80J+HdzLWzs1zXy6XOOdrYSh2Dqduh\n5U/rnzYnau1qc4nWrlYf6PiDtDmxU3JNeBGZwhjrlPUCW5CRgsUXgLeRUUUZtPpApmaqMBN4Hul8\nFrOQm36BU3ad59odgHuA7Ut0W13zS3xoEO5kqfnT+vcQcK/nmn8gndRCy4vWv6uB9cCHCuWXIlOP\nsXZdlLVX2w98GAJWe8pfRqb0slx3y6XOOdrYSh2Dqduh5a9OrDYI50StXW0u0dqN0bcqoMNF6pzY\nKbkmPAC8CexeKH8FWduwWAo8HlJSQx/oSPdhERIEUyvkrgMODNTtAPzU/N3OAz81fxr/epE1tus9\n161ERtdl8PGi9e94489SZMoRJCmsRUbisXYtYu6HhaYf7GT03eepW4MkpyzXvXKQNudoY2skYjBl\nO2L40/rnooE/J8bYrZNLQnZj9a0K6HCROid2Sq4JvbSOYCYYRXc6ZeuA3yGdYAFC/O20ToVo9QH8\nATjf6FuEbOrYO+SowTRkQ8zsCrkZNI+yi1gAfNz83c4DPzV/Gv/2NGVXea67zdQVR30WIV60/m0H\n/MbY2Ah8CbgLWV8rQ8r7Afp+APAM8musiOeNrd4s19VyKXOONrZGIgZT585n0PGn9c9Fg3BO1Nqt\nk0vK7Mbo0/CXOid2Sq4SlyHrpXY9qd98Xwuc6cjNRHaPhh5aIX0W65EdkBZnAI/SvCZm8TmjZyNw\nUmUL4C/A5wN1nwS+5Xxv54HvQ7v8Vfm3vym70GN7ianbLeCbj5dY//qRDTh2w8tdJfbK7FrE3I/Y\nfgCyDrkJGOOUTUR+ob2HrMtlue6V86FuztHGVuoYDKGd3FmXP41/DcI5McZubC4psxujr4q/kcqJ\nnZILYhJy7MBdA7AbLrYgU68Wo4EXgFsj9bnXu+hDprQuL9HXi4xq7kWOfPhwGDIF1heweQMyOrJI\n+cBvlz+Nf9NKfP65qdvVUxfiJfb+zkaO6RwNPGWufYrwztDU9wN0/cBiDDKin2d8GIvcnweRoN4+\ny3W1XBHt5BxtbKWOQR/azZ11+NP61yCcE2PsxuaSMrsx+qr4G6mc2Ck5L8Yg6ywLC+V9RtGjnmv+\ninTK4tn+Mn1l2AD8qULmEONPI1D/C+DGQN0ZwGcKZake+Cn40/jXh+wOnk8r7kQ2mvjuR4iXGP/m\nAHc79f3IueN3kTPDPqS+HxZV/cDFOOBk4FpkZ+sg0t71WW6bkLNoN+doYyt1DBaRKnfG8qf1r0F5\nTtTYnUN8LimzW0efi2I/SJ0TOyXnxSjgFuCiQP0Q/o0Y9yHE7BKp75fAHZ7yF2h+ycR45Gyhix2N\nzVdpHYn2ITfj+x7duyNrNUWkeOCn4C/Gv4dpPaoD8FtkrayIMl60/oGM3D/lkTsd6WjFXzWp7kds\nP9BgiOq1yizXPXKpco42tlLHoEWqdoQQ4k/rH8Qvc/rsxuaSKrtafVr+UufETsl5cTEyBeNijvP3\nEuRlCkWswf9Wnyp9Q8iGCBcDCJErzfcxyA7VrQxv6ILh6ZbXaV4nAtlwElpbOxGZBl7hfO428k+a\n7zM91zWo7twp+IvxbwmtQdsDbAZ+7bFTxovWv36kI/mOqYxCHrzFjS8p7kedflAFe176hCy3zcil\nyDmgj63UMWiRqh0+lPGn9Q/iH/hFu3VySZndGH0x/SBVTuyUnBcn47/JP3P+Pg54i+Ht/1bxZlqn\nVDX6FtM6K3AkQrp90cFo4J/I2o+7TnuskVvhsXGSqZvrqfNhIu3/wk/Nn8a/ucgudZeXTxvZwzx6\nqnjR+rea5pffWBxE61lhjd0iJtLa3th+ML4g91Vk57A74p1H6xnqLNedcpAu54A+tlLHIKRtRwx/\nWv8sGoRzotZubC6psqvVp+UvdU7slFwTDkVeiHBT4bMMOd/nYjlyPMGuXZyCjIBcQrT6piKk2Q0c\no5HR8s00b6iwRyeszQHkhRDP4j9reD5y404LNbiA6Ub+6hKZOwjvak3Nn9a/nZHXTJ7llC0G/hjQ\no+FF498xpmwfp2wQ+UVzeE27LkLt1faD/ZGNQfc4ZTORtUM7Gp6BzBhMKdjIct0plzrnaGMrdQym\nboeWP61/LspyotZubC6psqvVp+UP0ubETsk1bSbZRPhNQsWppXHIW832Rd49/BKyhvVsTX0HAKcy\n/A8W1iGbDrYWrjua4fPWk4BHkF2fvnWyzyKj4SPxb7iw2BFZy9kP+AgyPbIa2aW5AulQy5B3WNsj\nGJuRjnwtEoiQnj+tfwCfMPq3mO/9wDeAf3n0aXjR+jcdOUbXYz7vAFcCf65pF3Tt1fSDCchLNW4B\nvu2UL0Du5YDx+QJzfRFZrvvkRiLnaGMrZQyORDu0PGv80+bEGLuaXBJjV5ubtPylzomdksvIyMjI\nyMjIyMjIyMjIyMjIyMjIyMjI+P/H+4goW6CaW6G1AAAAAElFTkSuQmCC\n",
146 "prompt_number": 7,
146 "prompt_number": 7,
147 "text": [
147 "text": [
148 "262537412640768743.99999999999925007259719818568888"
148 "262537412640768743.99999999999925007259719818568888"
149 ]
149 ]
150 }
150 }
151 ],
151 ],
152 "prompt_number": 7
152 "prompt_number": 7
153 },
153 },
154 {
154 {
155 "cell_type": "markdown",
155 "cell_type": "markdown",
156 "source": [
156 "source": [
157 "<h2>Algebra<h2>"
157 "<h2>Algebra<h2>"
158 ]
158 ]
159 },
159 },
160 {
160 {
161 "cell_type": "code",
161 "cell_type": "code",
162 "collapsed": false,
162 "collapsed": false,
163 "input": [
163 "input": [
164 "eq = ((x+y)**2 * (x+1))",
164 "eq = ((x+y)**2 * (x+1))",
165 "eq"
165 "eq"
166 ],
166 ],
167 "language": "python",
167 "language": "python",
168 "outputs": [
168 "outputs": [
169 {
169 {
170 "latex": [
170 "latex": [
171 "$$\\left(x + 1\\right) \\left(x + y\\right)^{2}$$"
171 "$$\\left(x + 1\\right) \\left(x + y\\right)^{2}$$"
172 ],
172 ],
173 "output_type": "pyout",
173 "output_type": "pyout",
174 "png": "iVBORw0KGgoAAAANSUhEUgAAAHQAAAAbCAYAAACtOKuoAAAABHNCSVQICAgIfAhkiAAAA/tJREFU\naIHt2luoVFUcx/GPZp7Ek0bUKcrsImVmnlMhSUFmUhbhSxASkUQJBV3einrq9tCN0tDEkB4mouuT\nLxldKC0sDOqhyEq7GEFlGBVGZlb28N+Hs9yz9zkz4+wzh858YZi9Lnvt/3+tvX7rv9YMXf5XTOi0\nAV1aYgGuxGTMwT34uKMWdWmZXqxN0suwB9M7Y06XQ6Uf/2JWlp6GA1jaMYu6HBIThOQOLpdzxYDO\nGe6mS3FEtXY1zQx8WZDfI+wdrzyLxwcTEwsqLMZM/DlaFo3AVCzBW4ZkJmUfFuKc0TRqjLACP+CO\nsgq9eKFiI/oxqcG6c7ABD2KLkJYijsRWwwcGVatOM341wkjKs1QMKEzBKUWV7lf94lore3gD95UN\nKFyD20rKFuPGFp7ZDDWt+TUcDyhWnovFYB6ffa7FBUUNbMNhbTYqT001A9qreC82GqpDNQNapDyn\niW3KgdxnGgdLxDyhx//kGj0LNwgJmI6bhWYfg+NwN75trx8t8buw6Ux8nuTfiecK6nfSrz7cgvlY\nh1eSsltxlZDbPViF5XgyK/9aDPSIXIencnknY6Wh4OllfIrLMmP246amXKluhsImcYKSUqQ6nfbr\nMfES3YX3cmVb8WKSLlOeQtIo91j8liu/HfeKjSxx1LQXb2AXHhKdMVbY7uBOLVOdTvrVjx2iry/B\n90nZVJyHzUleqjwjkg5oj/o3ea2Y9oPMx2vZ9XfiDPHXRh40SuxxsBwNiM7L00m/fsIzOFEoQroc\nXCiWwXdy92wXa+eIpGvobvWR0jfJ9ezMiLcbaVgYPVCQPxPn46+CshX4sMH2izgdnyTpItWhs379\nmH0vE7NvY1LvIjEO23L355WnlHRAd+KMYeouzoxNNX8Wviqpf31Jfg33Zc9rN7NF0DBIkerk6ZRf\nl4uXaF+StxDvqo8V8spTSiq5W3CCoQ7oEdIzL0tfIaLHP7J0r/J9XyeYJNaa95O83WLWpowVv07C\nFzm7FqiXW8KHXY00mg7oXvHGnJ2lF4mDhlk4V0z5v7OyyaJTnmjkIW3i6Oy7r6R8rlgH9yd5O9Wr\nziJjw6/PhEwPsk6cZG0uqJtXnoYZwKvZ9VFiwV4jDn8Px2qsxyOiM1qhpvHwvk84uMPQBvoXfCC2\nWSkb1f/iMEWsoansjgW/iBn6Jp4WivC6CMTy5+uT8HNmZ0usFAt2VdS0/0RlmdjbFbFBcRDTbmpa\n92uiCJZWFZQN4PkW20X8zvaweLurYLU4f2wXPXhU+d9pUtWpkmb8WoOPkvRyERzNKKhbpDzjnqpV\np1l2iogYThVHjEsK6g2nPOOaqlWnWa7GS+J8dr3iX1RGUp4uXbp06dKlSxv5DwKJ3tRzwoGmAAAA\nAElFTkSuQmCC\n",
174 "png": "iVBORw0KGgoAAAANSUhEUgAAAHQAAAAbCAYAAACtOKuoAAAABHNCSVQICAgIfAhkiAAAA/tJREFU\naIHt2luoVFUcx/GPZp7Ek0bUKcrsImVmnlMhSUFmUhbhSxASkUQJBV3einrq9tCN0tDEkB4mouuT\nLxldKC0sDOqhyEq7GEFlGBVGZlb28N+Hs9yz9zkz4+wzh858YZi9Lnvt/3+tvX7rv9YMXf5XTOi0\nAV1aYgGuxGTMwT34uKMWdWmZXqxN0suwB9M7Y06XQ6Uf/2JWlp6GA1jaMYu6HBIThOQOLpdzxYDO\nGe6mS3FEtXY1zQx8WZDfI+wdrzyLxwcTEwsqLMZM/DlaFo3AVCzBW4ZkJmUfFuKc0TRqjLACP+CO\nsgq9eKFiI/oxqcG6c7ABD2KLkJYijsRWwwcGVatOM341wkjKs1QMKEzBKUWV7lf94lore3gD95UN\nKFyD20rKFuPGFp7ZDDWt+TUcDyhWnovFYB6ffa7FBUUNbMNhbTYqT001A9qreC82GqpDNQNapDyn\niW3KgdxnGgdLxDyhx//kGj0LNwgJmI6bhWYfg+NwN75trx8t8buw6Ux8nuTfiecK6nfSrz7cgvlY\nh1eSsltxlZDbPViF5XgyK/9aDPSIXIencnknY6Wh4OllfIrLMmP246amXKluhsImcYKSUqQ6nfbr\nMfES3YX3cmVb8WKSLlOeQtIo91j8liu/HfeKjSxx1LQXb2AXHhKdMVbY7uBOLVOdTvrVjx2iry/B\n90nZVJyHzUleqjwjkg5oj/o3ea2Y9oPMx2vZ9XfiDPHXRh40SuxxsBwNiM7L00m/fsIzOFEoQroc\nXCiWwXdy92wXa+eIpGvobvWR0jfJ9ezMiLcbaVgYPVCQPxPn46+CshX4sMH2izgdnyTpItWhs379\nmH0vE7NvY1LvIjEO23L355WnlHRAd+KMYeouzoxNNX8Wviqpf31Jfg33Zc9rN7NF0DBIkerk6ZRf\nl4uXaF+StxDvqo8V8spTSiq5W3CCoQ7oEdIzL0tfIaLHP7J0r/J9XyeYJNaa95O83WLWpowVv07C\nFzm7FqiXW8KHXY00mg7oXvHGnJ2lF4mDhlk4V0z5v7OyyaJTnmjkIW3i6Oy7r6R8rlgH9yd5O9Wr\nziJjw6/PhEwPsk6cZG0uqJtXnoYZwKvZ9VFiwV4jDn8Px2qsxyOiM1qhpvHwvk84uMPQBvoXfCC2\nWSkb1f/iMEWsoansjgW/iBn6Jp4WivC6CMTy5+uT8HNmZ0usFAt2VdS0/0RlmdjbFbFBcRDTbmpa\n92uiCJZWFZQN4PkW20X8zvaweLurYLU4f2wXPXhU+d9pUtWpkmb8WoOPkvRyERzNKKhbpDzjnqpV\np1l2iogYThVHjEsK6g2nPOOaqlWnWa7GS+J8dr3iX1RGUp4uXbp06dKlSxv5DwKJ3tRzwoGmAAAA\nAElFTkSuQmCC\n",
175 "prompt_number": 8,
175 "prompt_number": 8,
176 "text": [
176 "text": [
177 "",
177 "",
178 " 2",
178 " 2",
179 "(x + 1)\u22c5(x + y) "
179 "(x + 1)\u22c5(x + y) "
180 ]
180 ]
181 }
181 }
182 ],
182 ],
183 "prompt_number": 8
183 "prompt_number": 8
184 },
184 },
185 {
185 {
186 "cell_type": "code",
186 "cell_type": "code",
187 "collapsed": false,
187 "collapsed": false,
188 "input": [
188 "input": [
189 "expand(eq)"
189 "expand(eq)"
190 ],
190 ],
191 "language": "python",
191 "language": "python",
192 "outputs": [
192 "outputs": [
193 {
193 {
194 "latex": [
194 "latex": [
195 "$$x^{3} + 2 x^{2} y + x^{2} + x y^{2} + 2 x y + y^{2}$$"
195 "$$x^{3} + 2 x^{2} y + x^{2} + x y^{2} + 2 x y + y^{2}$$"
196 ],
196 ],
197 "output_type": "pyout",
197 "output_type": "pyout",
198 "png": "iVBORw0KGgoAAAANSUhEUgAAAQ0AAAAbCAYAAABm6to6AAAABHNCSVQICAgIfAhkiAAABQhJREFU\neJzt3FmoVVUcx/GPF/FaWiY0SINlBqKWUUiiZNpgSPgimFA+lAhFgw9BUBBNZBSNRlRQQTuKiqDh\nQUMwaCACi6KBJposIpKCBqPRtIe1Lx5P9+reZ+199jnd9YXL2Wutff7r//uv5Tp7DVsSiUSiBGM6\n/N6pmIbJWIQH8GJVTjXAPJyDcZiJ6/Beox7FkfQkYqgl3l/jgvx6DX7FYKzRhpiI+1rSK7Edk5px\nJ5qkJxFDbfE+HhPy6xX4Xf8OGnOwE9Pz9IHYhWWNeRRH0pOIoSvxfgLXVGmwy4wRHseGpmqzhSDN\nbMyjOJKeRAy1xvtkXI+HsH8VBkswCxuxGW9gvbC+UgWP4c6KbPUCSU88dfa3XqeWeF+Et7Bf1YZH\nYAZew9Q8PRnv53+HR9peg9t0vkDcayQ98dTZ33qdyuI9D9uE3RPCKLwLSyNszsHYgvc+hwVteQty\nH+6J8GGZECTCAHhMhK2ilNFdlir11OlnUZrSU1d/q5I62qfSfw/ThZF3aOHzPPyJQyJsZiWc2oaP\ncUBL3lj8gQ86rH+REKAp+d/5mN+hrTJk6hmcqtaT6c4gOhJN6qmjv1VNptr22Wu8OxmdPhfmOGuF\nfdz5OA3fx3pakM9wkrB7sz3P26HzgetYbBC2mlrp1y29pKdaqu5vvc4+490+aMzCauEpYhIuxpU4\nGIfhanwlPLI1xSJB0E8teVOFraENbfcW0fOFPX9F9sWhuBRzhUNtG1vKLsNynFXCXhnq0FMHRftR\n0Vg2qafq/lZGdx0UqbtwvI/GXRjI008Lj19L8gr+FhY96yAT93h1K/6x59yzLj13CB3iKrzeVrYF\nT5WwlSmuu1/ap4yfVcayDJlm+1vVujPF9UTXPdByvVbYQt2Zp8cJh7Y2C/O6W4RA9BrH4XKss2cQ\n6tAzB5/iZ5yOb1vKJgjb0K+UtFmUfmmfon42GcsYYvtbk7orr3taW/ob3BzhYBkynY384/GmsC3U\nTh16puR1HiH80ixvKVsirKjPLmEvU1x3v7RPUT+rjmUZMs31tzp0Z4rpqaTu1jWNL1uuZ+SGXyrg\nSBkexYnD5E/FKfhrmLI1wjmQdsbgEWzCtcOU16Hnu/xzpfC+zQstZQvxAz4c5ntV6O6X9inqZ6ex\nLEMv9rcY3bF6ao35JcLqcOtJz+kj3FsFmfIj/zr/bbwLR7i3aj2b8Hxb3st4tqSdTGe/eP3QPhTz\ns6pYliHTfH+rUnemnJ6ouofWNAaF119PyNNLhb3p3/L0RGEe1yusFuaON7XlL8w/69ZzFD5pSQ8K\nh95ejbC5N/qlfTrxs9ux7IQ6+luTuqPqHpqeLMaNwjvzY4VRa0deNk4IyPpoV6vhDNwujJaPt+QP\n2r0ItVi9ej6y+1gxYetqvPoWsBbrj/ZZrLyf3Y5lWerqb03qjqp7aNDYIryteqYwL5orHOB6ED/i\nSWF/uRd4Bgdh1TBl6/LPuvVcIcxvH8Y7OFJYkX43wube6Jf26cTPbseyLHX1tyZ193rMC5Fp9phy\nDAPCAtPdHXw30x+6M93xMyaWZcj0VtxjdWc611O67oF939IVfhHO8vcD9+LtlvQq4c3HTl4f7hfd\ndflZZSzL0HTcq9ZdRk9TMR/VbMUN+fU04bHz7Kac6XO2Gp2x3Ko53dF1/1/+n4VusgLnCi/ojcP9\nwrwwUZ7RGssmdY/WmCcSiUQikUgkEolEIpEY5fwLmrvyxplDsPoAAAAASUVORK5CYII=\n",
198 "png": "iVBORw0KGgoAAAANSUhEUgAAAQ0AAAAbCAYAAABm6to6AAAABHNCSVQICAgIfAhkiAAABQhJREFU\neJzt3FmoVVUcx/GPF/FaWiY0SINlBqKWUUiiZNpgSPgimFA+lAhFgw9BUBBNZBSNRlRQQTuKiqDh\nQUMwaCACi6KBJposIpKCBqPRtIe1Lx5P9+reZ+199jnd9YXL2Wutff7r//uv5Tp7DVsSiUSiBGM6\n/N6pmIbJWIQH8GJVTjXAPJyDcZiJ6/Beox7FkfQkYqgl3l/jgvx6DX7FYKzRhpiI+1rSK7Edk5px\nJ5qkJxFDbfE+HhPy6xX4Xf8OGnOwE9Pz9IHYhWWNeRRH0pOIoSvxfgLXVGmwy4wRHseGpmqzhSDN\nbMyjOJKeRAy1xvtkXI+HsH8VBkswCxuxGW9gvbC+UgWP4c6KbPUCSU88dfa3XqeWeF+Et7Bf1YZH\nYAZew9Q8PRnv53+HR9peg9t0vkDcayQ98dTZ33qdyuI9D9uE3RPCKLwLSyNszsHYgvc+hwVteQty\nH+6J8GGZECTCAHhMhK2ilNFdlir11OlnUZrSU1d/q5I62qfSfw/ThZF3aOHzPPyJQyJsZiWc2oaP\ncUBL3lj8gQ86rH+REKAp+d/5mN+hrTJk6hmcqtaT6c4gOhJN6qmjv1VNptr22Wu8OxmdPhfmOGuF\nfdz5OA3fx3pakM9wkrB7sz3P26HzgetYbBC2mlrp1y29pKdaqu5vvc4+490+aMzCauEpYhIuxpU4\nGIfhanwlPLI1xSJB0E8teVOFraENbfcW0fOFPX9F9sWhuBRzhUNtG1vKLsNynFXCXhnq0FMHRftR\n0Vg2qafq/lZGdx0UqbtwvI/GXRjI008Lj19L8gr+FhY96yAT93h1K/6x59yzLj13CB3iKrzeVrYF\nT5WwlSmuu1/ap4yfVcayDJlm+1vVujPF9UTXPdByvVbYQt2Zp8cJh7Y2C/O6W4RA9BrH4XKss2cQ\n6tAzB5/iZ5yOb1vKJgjb0K+UtFmUfmmfon42GcsYYvtbk7orr3taW/ob3BzhYBkynY384/GmsC3U\nTh16puR1HiH80ixvKVsirKjPLmEvU1x3v7RPUT+rjmUZMs31tzp0Z4rpqaTu1jWNL1uuZ+SGXyrg\nSBkexYnD5E/FKfhrmLI1wjmQdsbgEWzCtcOU16Hnu/xzpfC+zQstZQvxAz4c5ntV6O6X9inqZ6ex\nLEMv9rcY3bF6ao35JcLqcOtJz+kj3FsFmfIj/zr/bbwLR7i3aj2b8Hxb3st4tqSdTGe/eP3QPhTz\ns6pYliHTfH+rUnemnJ6ouofWNAaF119PyNNLhb3p3/L0RGEe1yusFuaON7XlL8w/69ZzFD5pSQ8K\nh95ejbC5N/qlfTrxs9ux7IQ6+luTuqPqHpqeLMaNwjvzY4VRa0deNk4IyPpoV6vhDNwujJaPt+QP\n2r0ItVi9ej6y+1gxYetqvPoWsBbrj/ZZrLyf3Y5lWerqb03qjqp7aNDYIryteqYwL5orHOB6ED/i\nSWF/uRd4Bgdh1TBl6/LPuvVcIcxvH8Y7OFJYkX43wube6Jf26cTPbseyLHX1tyZ193rMC5Fp9phy\nDAPCAtPdHXw30x+6M93xMyaWZcj0VtxjdWc611O67oF939IVfhHO8vcD9+LtlvQq4c3HTl4f7hfd\ndflZZSzL0HTcq9ZdRk9TMR/VbMUN+fU04bHz7Kac6XO2Gp2x3Ko53dF1/1/+n4VusgLnCi/ojcP9\nwrwwUZ7RGssmdY/WmCcSiUQikUgkEolEIpEY5fwLmrvyxplDsPoAAAAASUVORK5CYII=\n",
199 "prompt_number": 9,
199 "prompt_number": 9,
200 "text": [
200 "text": [
201 "",
201 "",
202 " 3 2 2 2 2",
202 " 3 2 2 2 2",
203 "x + 2\u22c5x \u22c5y + x + x\u22c5y + 2\u22c5x\u22c5y + y "
203 "x + 2\u22c5x \u22c5y + x + x\u22c5y + 2\u22c5x\u22c5y + y "
204 ]
204 ]
205 }
205 }
206 ],
206 ],
207 "prompt_number": 9
207 "prompt_number": 9
208 },
208 },
209 {
209 {
210 "cell_type": "code",
210 "cell_type": "code",
211 "collapsed": false,
211 "collapsed": false,
212 "input": [
212 "input": [
213 "a = 1/x + (x*sin(x) - 1)/x",
213 "a = 1/x + (x*sin(x) - 1)/x",
214 "a"
214 "a"
215 ],
215 ],
216 "language": "python",
216 "language": "python",
217 "outputs": [
217 "outputs": [
218 {
218 {
219 "latex": [
219 "latex": [
220 "$$\\frac{x \\operatorname{sin}\\left(x\\right) -1}{x} + \\frac{1}{x}$$"
220 "$$\\frac{x \\operatorname{sin}\\left(x\\right) -1}{x} + \\frac{1}{x}$$"
221 ],
221 ],
222 "output_type": "pyout",
222 "output_type": "pyout",
223 "png": "iVBORw0KGgoAAAANSUhEUgAAAFwAAAAbCAYAAADxsuiMAAAABHNCSVQICAgIfAhkiAAAAolJREFU\naIHt2duLjVEYx/HPMONYaHIYFyYkF3KYQkiKuEEyLgwhh5kQV3Io/4C4JbmR2pMLKTXiSiTlAiHl\nmEPKFSlFKUY0LtaavGl2+52xZ+/X3vtbb3u9z177+a3D8z5rvWtT479kLh6XuxF/MQ7X0Zwl3foi\nibzE+iL5Kga7MR6rMKQKdDNDD6ZmSTcZ4UsxXUgPd9GElTiMt1iHKfiIblwVZnEnFuMknqERezEf\nxzAz/m4yDkWtmXiVQndk9FlxjEFHLG/AvVjuFAZgOB5E2wRcSdSdiPPYGG17MAyvsSnh/0ssNwiP\nXBrdSVjyD/3KbIT/EAYNFqErlnck6o3FE1xDe7TfQB1WCAMNF4RJGY6L0Tbfn0hdlCgX0oU1uIP9\nwpOQj/sJvWIyF8/xcxB8g4dYGMvjEvaRaMVtHE/Y9+E0RgvRC9uRS9Q5g4PCpG3V92KdT7e9j7pp\nKUaE5wbgI69u70q6Ggdipdl4FL/bImxv3uMXLuMc3iR8bBNSQFsUIuTgm4k6bULkb8ZnIV0U0u2l\nQQUxNH4uwxwhH99CS7y/JCyS9ZgmDH4jziZ8zBAi9yneRdsRnMDXeD8LI4R14Hn0/baA7reo24wX\n/ezXDmEiW2K7m4QFeSC0xrZ9LrFuUVmbst5yjBrEdqQhpzwLb9WSU8QBr8q3oXJSV+4GZIhOzOvD\n3owPwhb2bzqE3VW/6amyqz/kpEspqbR798O1SP93Uo1hLYeXmGIdz6al0AHZ/06m+lfooCqr5KTL\n4Znr3wjhFJHwFnq0HI0YAKekG7BM9y/fQVWlkIn+JQ+quoX1Y4hw7FoJpOpfKbeDu7BA+GOiHt/j\n1YVPJWzHYFHp/atRo0aNquc3S/HNyBXE+1kAAAAASUVORK5CYII=\n",
223 "png": "iVBORw0KGgoAAAANSUhEUgAAAFwAAAAbCAYAAADxsuiMAAAABHNCSVQICAgIfAhkiAAAAolJREFU\naIHt2duLjVEYx/HPMONYaHIYFyYkF3KYQkiKuEEyLgwhh5kQV3Io/4C4JbmR2pMLKTXiSiTlAiHl\nmEPKFSlFKUY0LtaavGl2+52xZ+/X3vtbb3u9z177+a3D8z5rvWtT479kLh6XuxF/MQ7X0Zwl3foi\nibzE+iL5Kga7MR6rMKQKdDNDD6ZmSTcZ4UsxXUgPd9GElTiMt1iHKfiIblwVZnEnFuMknqERezEf\nxzAz/m4yDkWtmXiVQndk9FlxjEFHLG/AvVjuFAZgOB5E2wRcSdSdiPPYGG17MAyvsSnh/0ssNwiP\nXBrdSVjyD/3KbIT/EAYNFqErlnck6o3FE1xDe7TfQB1WCAMNF4RJGY6L0Tbfn0hdlCgX0oU1uIP9\nwpOQj/sJvWIyF8/xcxB8g4dYGMvjEvaRaMVtHE/Y9+E0RgvRC9uRS9Q5g4PCpG3V92KdT7e9j7pp\nKUaE5wbgI69u70q6Ggdipdl4FL/bImxv3uMXLuMc3iR8bBNSQFsUIuTgm4k6bULkb8ZnIV0U0u2l\nQQUxNH4uwxwhH99CS7y/JCyS9ZgmDH4jziZ8zBAi9yneRdsRnMDXeD8LI4R14Hn0/baA7reo24wX\n/ezXDmEiW2K7m4QFeSC0xrZ9LrFuUVmbst5yjBrEdqQhpzwLb9WSU8QBr8q3oXJSV+4GZIhOzOvD\n3owPwhb2bzqE3VW/6amyqz/kpEspqbR798O1SP93Uo1hLYeXmGIdz6al0AHZ/06m+lfooCqr5KTL\n4Znr3wjhFJHwFnq0HI0YAKekG7BM9y/fQVWlkIn+JQ+quoX1Y4hw7FoJpOpfKbeDu7BA+GOiHt/j\n1YVPJWzHYFHp/atRo0aNquc3S/HNyBXE+1kAAAAASUVORK5CYII=\n",
224 "prompt_number": 10,
224 "prompt_number": 10,
225 "text": [
225 "text": [
226 "",
226 "",
227 "x\u22c5sin(x) - 1 1",
227 "x\u22c5sin(x) - 1 1",
228 "\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500",
228 "\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500",
229 " x x"
229 " x x"
230 ]
230 ]
231 }
231 }
232 ],
232 ],
233 "prompt_number": 10
233 "prompt_number": 10
234 },
234 },
235 {
235 {
236 "cell_type": "code",
236 "cell_type": "code",
237 "collapsed": false,
237 "collapsed": false,
238 "input": [
238 "input": [
239 "simplify(a)"
239 "simplify(a)"
240 ],
240 ],
241 "language": "python",
241 "language": "python",
242 "outputs": [
242 "outputs": [
243 {
243 {
244 "latex": [
244 "latex": [
245 "$$\\operatorname{sin}\\left(x\\right)$$"
245 "$$\\operatorname{sin}\\left(x\\right)$$"
246 ],
246 ],
247 "output_type": "pyout",
247 "output_type": "pyout",
248 "png": "iVBORw0KGgoAAAANSUhEUgAAADAAAAASCAYAAAAdZl26AAAABHNCSVQICAgIfAhkiAAAAnNJREFU\nSInt1VuojmkUB/Df3mO22cgph7Bz2kn5UCMXUqa5MG3JuFNuHAs55kJsZWaScOHQ1IxpXM0lI8lc\nKHMqKRGGpI2UiJkmJYfSyGHsuXjW63u8fV8T7ZLa/5vv+6/nWev5r+dZa7285/jgLf164w8043TX\nyXlzNL6lXz/8gzNdqKUb3XgXaKhhG4CteCTV+XPsjrUWrMRk7MPxzG82Fkj9sRgDMR+9MA1bcDLb\n34jP8HPwCViCnhFjBTZgEIaiPbQ9ws16CTXiKiYGb8U9fBJ8H/pgM05lfk34Pv5fxlGsUr2gdlwp\nnTUvYsEo7FUdKofQEQlOlS5xeaxtKgvOMR0jcSv4Q+zEObThBB5jJu5kfjOk223AcLzAd+iM9QYM\nKZ01LGLBWnyFl8Gb8AS/4m5oOBRrHaiogwlx6A18E8IKjJK+G2PjoLaSmGaptDpLfnAQv2S8Gesz\nPqa0/09sr6NxvFRqdbEMt0NIp1TzOXZIL1TrG7Je6pumzPah9JIbM9tw1ZKoJbBTeuVaaJZK+H9R\nwSWcz2w98De+CN5a8vkJv5dsc/EvRkgN2iI19rY6567E09hTID9nHNYUJL/F/biY8Q78KDV1gTZp\nIvyA/liarTVKzX6iJGhh2P7CIgyWXulFrPfEl5gUfBauxR5So78SHAmcq5VABUcyPgSfY1dma8F1\nqUbXqU4e+DiSKicwAr9JI7Ciekl3IplPpbHdGjFGZ8k1RXJfZ/Em42xB8u9ARcq+L55FkONSGRUY\ngAORxGGvz/W5Un9MCf8Cc7BaKsVvpalSiJuHY9J4vh9+7diDj/BAGgBF0lPi94JudKNr8B+fxX1B\n89kW1gAAAABJRU5ErkJggg==\n",
248 "png": "iVBORw0KGgoAAAANSUhEUgAAADAAAAASCAYAAAAdZl26AAAABHNCSVQICAgIfAhkiAAAAnNJREFU\nSInt1VuojmkUB/Df3mO22cgph7Bz2kn5UCMXUqa5MG3JuFNuHAs55kJsZWaScOHQ1IxpXM0lI8lc\nKHMqKRGGpI2UiJkmJYfSyGHsuXjW63u8fV8T7ZLa/5vv+6/nWev5r+dZa7285/jgLf164w8043TX\nyXlzNL6lXz/8gzNdqKUb3XgXaKhhG4CteCTV+XPsjrUWrMRk7MPxzG82Fkj9sRgDMR+9MA1bcDLb\n34jP8HPwCViCnhFjBTZgEIaiPbQ9ws16CTXiKiYGb8U9fBJ8H/pgM05lfk34Pv5fxlGsUr2gdlwp\nnTUvYsEo7FUdKofQEQlOlS5xeaxtKgvOMR0jcSv4Q+zEObThBB5jJu5kfjOk223AcLzAd+iM9QYM\nKZ01LGLBWnyFl8Gb8AS/4m5oOBRrHaiogwlx6A18E8IKjJK+G2PjoLaSmGaptDpLfnAQv2S8Gesz\nPqa0/09sr6NxvFRqdbEMt0NIp1TzOXZIL1TrG7Je6pumzPah9JIbM9tw1ZKoJbBTeuVaaJZK+H9R\nwSWcz2w98De+CN5a8vkJv5dsc/EvRkgN2iI19rY6567E09hTID9nHNYUJL/F/biY8Q78KDV1gTZp\nIvyA/liarTVKzX6iJGhh2P7CIgyWXulFrPfEl5gUfBauxR5So78SHAmcq5VABUcyPgSfY1dma8F1\nqUbXqU4e+DiSKicwAr9JI7Ciekl3IplPpbHdGjFGZ8k1RXJfZ/Em42xB8u9ARcq+L55FkONSGRUY\ngAORxGGvz/W5Un9MCf8Cc7BaKsVvpalSiJuHY9J4vh9+7diDj/BAGgBF0lPi94JudKNr8B+fxX1B\n89kW1gAAAABJRU5ErkJggg==\n",
249 "prompt_number": 11,
249 "prompt_number": 11,
250 "text": [
250 "text": [
251 "sin(x)"
251 "sin(x)"
252 ]
252 ]
253 }
253 }
254 ],
254 ],
255 "prompt_number": 11
255 "prompt_number": 11
256 },
256 },
257 {
257 {
258 "cell_type": "code",
258 "cell_type": "code",
259 "collapsed": false,
259 "collapsed": false,
260 "input": [
260 "input": [
261 "eq = Eq(x**3 + 2*x**2 + 4*x + 8, 0)",
261 "eq = Eq(x**3 + 2*x**2 + 4*x + 8, 0)",
262 "eq"
262 "eq"
263 ],
263 ],
264 "language": "python",
264 "language": "python",
265 "outputs": [
265 "outputs": [
266 {
266 {
267 "latex": [
267 "latex": [
268 "$$x^{3} + 2 x^{2} + 4 x + 8 = 0$$"
268 "$$x^{3} + 2 x^{2} + 4 x + 8 = 0$$"
269 ],
269 ],
270 "output_type": "pyout",
270 "output_type": "pyout",
271 "png": "iVBORw0KGgoAAAANSUhEUgAAALIAAAAZCAYAAACVUXRFAAAABHNCSVQICAgIfAhkiAAABSRJREFU\neJzt2nnsHVMUwPHPrz+UtlpNiKK6KJFaSkQsjajtD0sliFRCE0uF8I9dbN2oiCKI0NhfEZTYUoJY\n/7DE9gciSC2xhFhraS1Ff/44M/p+09f2zXtvOn0y32QyM3fu3HvOzJ1zzzl3qKj4H9DT4n37YCyG\nYxLm4dlOCVUCe+JQbIDxmIF3SpWoYq3wOY5PjqdhCQaWJ05bDMGNdedT8CuGlSNOxdpkJwxOjo/G\n77p3IE/AcoxLzoeiD5NLk6iiFO7FxWUL0QY9wrVI3awdxUAeX5pEFblp1UeG3XA4RuIM/NYRiZpj\nB1wlfNpheAWzsbgDbd+Nb3FOB9pqlXOxPq4oUYZGDMcF6BXPvRcz8UXB/Y4U7/tr/CyezbX4oZOd\nnIK3sFEnG10N2+MljErOh+PdZNuyzbanYa72PvB2GY2lmFWiDI3YBAuwRV3ZBLwnBlpR9OIjMc5S\n5uBpDGin4T3xjchaENaxDwe30eYErNdk3UcwMVM2MZHh+jZkmCwGMvFRjmmjrTz6ZLlF6DKrjf6b\nJY+cU3FJg/K5OLtjEq3McfjTipgMthPP6KS0oJUR/T0W4avkfBcsE1a5Vc7W/Fc9EXdg47qy14Wy\nB7XY/yRsjicwAkfqb3nykkefeo7C8230m5c8cu4mMlXZoP4fxWZ4zsPLYpZKWYRPdCAgP1L4cRdh\nobDS7VDTvAV8WfjjIzLlPwvfNi/biHRbX2Yb2kJbKTX5LfoQ3JYcry2LXNO8nFOEXAuEOweDhEtX\nVGC8nsgo3dzg2tP4sb5iPTvgRPHVDcOpYsBuKizWBfhMTO9lMUm89J/qykaJgfd4pm4z+nyiv3Uv\niwutObhr9v0UwaNi0WsK9sX5OEYExe8X1OfmIl5Z0uDaUvFBDcSf9QN5NE4WD2Y5HhDuwpkiG/Aq\nXhA+XJn8rf8ghtOFzPUDoVv0gV3Fy/p4NXXK1mcZjsCDOAR3CVfs7dXcc4dwSfJwJl5MjtNZd2mD\nemnZJiJm+4+r9bdMj+LN5HhrXJrcVAQ1rQdX24pBMDtT3i36DMB8kUpMaeRaFKFPTb7nfqxYBT1M\nzGR9yb6orMVOVu1m3Z9c2yx7YWzm/Etc3mnJVkFNawN5Q7whIucs3aLPadg/U9bo5RWhT03zcp4g\nLHDKYJHLXS7y+EWwvgjiZzW4tlDMEj3095E/rTveHluJqaqTzBdZjiyjsEciWJZpGmdEenAnnsL0\nBte7QZ8Rwu+d10Rf7ejTied+qlj4SlmKs/AhbhKW8bsm5WmWv/CBFcFlPUNEcN+3ugZOE1/CoLqy\ncauo2wlq8lvkOVYewCesou66qs9UPCPchHR7QrycD5Lzoxrc1yl9mpVzsLC8jVyXHvxi5RkDbhXu\nT55tUqaNu/FwpqxXxElPZjscKH5d3Dk5f0x/J36ImEaKoibfQD5R+IRZbk/23aZPPWOs7FoUpU9N\n83K+Ln5JyLK3WN0rinPFUnT9yvFe4hkdmBakrsV+Ilh6JykbI7IDRBAyA9cVKGweDhDr7k/hnrry\ngcJq0F36ZBma2bNu6HOZiEUWidmCCPJmiExDUdwulqdPxg1J2Ul4Dc+lldKB/Jr4i+1A4S/tjmtE\nKmcx7lNcfjIvD4kp7rgG1+Yk+27SJ2WosLSp1T1DWLsrRTqqbH0WJn3MFFN7r/Bhp1uRPSmCxWIF\nb7pwVQhXp9HsUDo17f3bsK5R0x361HSHnGukrb+HOsgv+KNsITpIt+jTLXJWVFRUVFRUVFRUVOTk\nX/JnRRiZjdxGAAAAAElFTkSuQmCC\n",
271 "png": "iVBORw0KGgoAAAANSUhEUgAAALIAAAAZCAYAAACVUXRFAAAABHNCSVQICAgIfAhkiAAABSRJREFU\neJzt2nnsHVMUwPHPrz+UtlpNiKK6KJFaSkQsjajtD0sliFRCE0uF8I9dbN2oiCKI0NhfEZTYUoJY\n/7DE9gciSC2xhFhraS1Ff/44M/p+09f2zXtvOn0y32QyM3fu3HvOzJ1zzzl3qKj4H9DT4n37YCyG\nYxLm4dlOCVUCe+JQbIDxmIF3SpWoYq3wOY5PjqdhCQaWJ05bDMGNdedT8CuGlSNOxdpkJwxOjo/G\n77p3IE/AcoxLzoeiD5NLk6iiFO7FxWUL0QY9wrVI3awdxUAeX5pEFblp1UeG3XA4RuIM/NYRiZpj\nB1wlfNpheAWzsbgDbd+Nb3FOB9pqlXOxPq4oUYZGDMcF6BXPvRcz8UXB/Y4U7/tr/CyezbX4oZOd\nnIK3sFEnG10N2+MljErOh+PdZNuyzbanYa72PvB2GY2lmFWiDI3YBAuwRV3ZBLwnBlpR9OIjMc5S\n5uBpDGin4T3xjchaENaxDwe30eYErNdk3UcwMVM2MZHh+jZkmCwGMvFRjmmjrTz6ZLlF6DKrjf6b\nJY+cU3FJg/K5OLtjEq3McfjTipgMthPP6KS0oJUR/T0W4avkfBcsE1a5Vc7W/Fc9EXdg47qy14Wy\nB7XY/yRsjicwAkfqb3nykkefeo7C8230m5c8cu4mMlXZoP4fxWZ4zsPLYpZKWYRPdCAgP1L4cRdh\nobDS7VDTvAV8WfjjIzLlPwvfNi/biHRbX2Yb2kJbKTX5LfoQ3JYcry2LXNO8nFOEXAuEOweDhEtX\nVGC8nsgo3dzg2tP4sb5iPTvgRPHVDcOpYsBuKizWBfhMTO9lMUm89J/qykaJgfd4pm4z+nyiv3Uv\niwutObhr9v0UwaNi0WsK9sX5OEYExe8X1OfmIl5Z0uDaUvFBDcSf9QN5NE4WD2Y5HhDuwpkiG/Aq\nXhA+XJn8rf8ghtOFzPUDoVv0gV3Fy/p4NXXK1mcZjsCDOAR3CVfs7dXcc4dwSfJwJl5MjtNZd2mD\nemnZJiJm+4+r9bdMj+LN5HhrXJrcVAQ1rQdX24pBMDtT3i36DMB8kUpMaeRaFKFPTb7nfqxYBT1M\nzGR9yb6orMVOVu1m3Z9c2yx7YWzm/Etc3mnJVkFNawN5Q7whIucs3aLPadg/U9bo5RWhT03zcp4g\nLHDKYJHLXS7y+EWwvgjiZzW4tlDMEj3095E/rTveHluJqaqTzBdZjiyjsEciWJZpGmdEenAnnsL0\nBte7QZ8Rwu+d10Rf7ejTied+qlj4SlmKs/AhbhKW8bsm5WmWv/CBFcFlPUNEcN+3ugZOE1/CoLqy\ncauo2wlq8lvkOVYewCesou66qs9UPCPchHR7QrycD5Lzoxrc1yl9mpVzsLC8jVyXHvxi5RkDbhXu\nT55tUqaNu/FwpqxXxElPZjscKH5d3Dk5f0x/J36ImEaKoibfQD5R+IRZbk/23aZPPWOs7FoUpU9N\n83K+Ln5JyLK3WN0rinPFUnT9yvFe4hkdmBakrsV+Ilh6JykbI7IDRBAyA9cVKGweDhDr7k/hnrry\ngcJq0F36ZBma2bNu6HOZiEUWidmCCPJmiExDUdwulqdPxg1J2Ul4Dc+lldKB/Jr4i+1A4S/tjmtE\nKmcx7lNcfjIvD4kp7rgG1+Yk+27SJ2WosLSp1T1DWLsrRTqqbH0WJn3MFFN7r/Bhp1uRPSmCxWIF\nb7pwVQhXp9HsUDo17f3bsK5R0x361HSHnGukrb+HOsgv+KNsITpIt+jTLXJWVFRUVFRUVFRUVOTk\nX/JnRRiZjdxGAAAAAElFTkSuQmCC\n",
272 "prompt_number": 12,
272 "prompt_number": 12,
273 "text": [
273 "text": [
274 "",
274 "",
275 " 3 2 ",
275 " 3 2 ",
276 "x + 2\u22c5x + 4\u22c5x + 8 = 0"
276 "x + 2\u22c5x + 4\u22c5x + 8 = 0"
277 ]
277 ]
278 }
278 }
279 ],
279 ],
280 "prompt_number": 12
280 "prompt_number": 12
281 },
281 },
282 {
282 {
283 "cell_type": "code",
283 "cell_type": "code",
284 "collapsed": false,
284 "collapsed": false,
285 "input": [
285 "input": [
286 "solve(eq, x)"
286 "solve(eq, x)"
287 ],
287 ],
288 "language": "python",
288 "language": "python",
289 "outputs": [
289 "outputs": [
290 {
290 {
291 "output_type": "pyout",
291 "output_type": "pyout",
292 "prompt_number": 13,
292 "prompt_number": 13,
293 "text": [
293 "text": [
294 "[-2, -2\u22c5\u2148, 2\u22c5\u2148]"
294 "[-2, -2\u22c5\u2148, 2\u22c5\u2148]"
295 ]
295 ]
296 }
296 }
297 ],
297 ],
298 "prompt_number": 13
298 "prompt_number": 13
299 },
299 },
300 {
300 {
301 "cell_type": "code",
301 "cell_type": "code",
302 "collapsed": false,
302 "collapsed": false,
303 "input": [
303 "input": [
304 "a, b = symbols('a b')",
304 "a, b = symbols('a b')",
305 "Sum(6*n**2 + 2**n, (n, a, b))"
305 "Sum(6*n**2 + 2**n, (n, a, b))"
306 ],
306 ],
307 "language": "python",
307 "language": "python",
308 "outputs": [
308 "outputs": [
309 {
309 {
310 "latex": [
310 "latex": [
311 "$$\\sum_{n=a}^{b} \\left(2^{n} + 6 n^{2}\\right)$$"
311 "$$\\sum_{n=a}^{b} \\left(2^{n} + 6 n^{2}\\right)$$"
312 ],
312 ],
313 "output_type": "pyout",
313 "output_type": "pyout",
314 "png": "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\nTkSuQmCC\n",
314 "png": "iVBORw0KGgoAAAANSUhEUgAAAHgAAAA4CAYAAAA2PDy+AAAABHNCSVQICAgIfAhkiAAABt1JREFU\neJztnHlsFUUcxz+v4MFRakulQDmUS61aMagVjBIoigo2kQASVEQgEK8oCgnEKyiHYkiQiAKS+Agm\nohJEA94HGg8UNVFUQDzwIIiiiEhAQPCP766773X73r7deS3V+SRN3uzOzvx2fnP85je/LVgsdXAr\n8CfQu6EFseSHQuBnoElDC2Kpm4IYz/YH3gT+NiSLJQ/EGX03AYeQgicCPwDbTQhlOTLYBFQ5v2uA\n5xpQFksdRJ2iOwMJ4H0n3QFoaUQii1GiKrgX8IEvfRHwRnxxLKZpGvG5r4FfnN/dgVOAq4xIZDFK\nVAV/AmwFxgEVQD+0J7ZYLBaLxWKx1MFG4HAe/x6ov1exBDECTxl70BYoG0cDJUBHJ//ZwEBgFvAR\ncmm6Zf4GNDcutSUnFuMp5FOgWczyjgdGAuucMifELM8Sk+bAF3hKXmio3KbANGC9ofIsMTgd2Iun\n5CsMlr0IqDZYniUi1+EpeBfQxVC5hcDVGe7HXRL+j0S2a5bjKXkdMqjyySRkpFlyYwFQGuXB44At\neEqea06mWkwAbs5j+Y2NKmSzzAJWApUZ8p4MvEbEAdgbOICn5MuiFJKFrsDreSi3sdISmO9LDwd2\nA0UZnrkfeDRqhVPxFPwr2vOaZBkwxHCZjZlK5D/o6qRbobYfnOGZlsB3QKcoFRYAr+Ip+W3MRVR2\nRzFdQeVVAKuBV1CQwVyg2He/BHW+5cCZyNqfBMwxJFsudAQeQ36EOWh6bRGxrASaohNO+lTU7tkc\nT7cA90Ssk7YosM5V8syoBQUI9UTA9ZNQR3J7ZDHaQ68H2jvXxqN1ZzPeVq4VsvrrkzbAt0AfJ12C\n4tYmGip/KeE67YXAj8QYfAPxXI+HnALj8jxScjrP4DWYSx+n7geddCFQDnzvy9MPeDemTJXkFhCx\ngtR3aIOmy3Ex5QAYC8zGG82ZOAG1z1lxKpyNN4p/IqJ57mM7iusKur4RKdGlKbAP+Nx3bRSQ9KUf\nRl9eFBGuUYJIosYKwzBgP9pxmGYwUjDIP5BNpgLUPkPdRBRuxwu6+4Z44ToFqIP8HnDvKzQ9+9ex\ng8BfyL/tUk2qBT4cTfnuwUm+GYpkDXqHOPQFypAN0ha4HGiX5ZlDSCedIXpM1gFgDVpnalCPiUop\nUnJQ4/RFlqH/Xie0xq7yXesGTPGlVwGDSI38zCc90UxWhdqjHM0ek5HiXS5FHrwiYDRqvxHIC3Uu\ncAfwlpO3C3qP9HDkTNskly9xFByVK1FUZfc4hTiUktuacR/6miJ9bTZNknBTdAskz3rgBt/1IcBO\n1PlAhuAC5/d65Li4Hm8JmYIOeEywGpgX9eELkIV6niFhEmhGGBkibze0HEwzVHcmkoRTcBnqoPtI\nHW0FaFQ/5aSr0TsmkB9heVo5U4EdkaVNZTOaDXKmBxq5ww0J4rIVuDtLnmORL3y24brrIkk4BR+F\nFPxZwL2PUYdMoLWzGbLODwPnp+VdBrwcTdQUmqIBM85NhKUUbWcewOuVplhL5uk+gRwILwJ3Gq57\nCXBGwPVOwDnIOk5nLIpUATXmNjQdp7MHTeHFTh7QV5l78T77AXWSizHjV+iC9PpOLg8dgxwOjxgQ\nIIjxZDaIplNbsaPzJItLkvDbpKXAhoDr65CHzs+z6FDATw1ax8tRW3cIK2QAg9DhEBBum5RAL7sL\nuDFGxX5akKqg1ajnBZ0DX4tM/3vTrqdPcQ3JStQZ/C7UBJqV/MosQDbMmrTnRznXtgLXkLoFzJWe\njjyhmYnWEpNfD87B2Yj7WEhtH2p/ZHg8nvb3NPCkQXmCSBJ+BIOMphl4VvEYNKr9Su9F8Pr7HjKy\nivE8dFEoRW7K9tkyuoxBLsBsm+uwJNB573Zqn1uWo3Wsq+/aTuoOv00f0aZJkpuCi5CCV+D5jdNP\ndWqQMZb+7oOBF9A7leUu6r8sJgcjtBpZzKfFqNClEL3cS0g5D9WRbyhHzofkSXJTcENThZwkocKd\nKpByB4QsvAlSYls0AivRNDQFfTe8n9TRl8mpMYZgv3R9Mw+9T2NhEanLQZ2UoWOvfH3ZYENm65Gg\nffBdyJm/KU91zs+exWKxWCwWi6Vx43pdSlDQeS+0We+BIgTbAbf58pegQ+xMYTAH0XHeAV8dE5FH\nqgxFBc5A/6nHUk/kMzJxOl5kYWvknYrzPzItEchXZOKJ6MjMDZrrh05TLPWEuw/ejQK6/IFrw5AD\nvQj4AzkpWqOg8rBT9AB07rnbuecGxxUTfH5qySNL0LGVyw60Bsf5Gv8Sp1zQadQG5KY0EStsCYE/\n+n0yCmhzQ2ArUJjMhyi2KApbULREGToD3oac4mtRULjFYrFYLBbLf5J/AJU7iOeJWdTXAAAAAElF\nTkSuQmCC\n",
315 "prompt_number": 14,
315 "prompt_number": 14,
316 "text": [
316 "text": [
317 "",
317 "",
318 " b ",
318 " b ",
319 " ___ ",
319 " ___ ",
320 " \u2572 ",
320 " \u2572 ",
321 " \u2572 \u239b n 2\u239e",
321 " \u2572 \u239b n 2\u239e",
322 " \u2571 \u239d2 + 6\u22c5n \u23a0",
322 " \u2571 \u239d2 + 6\u22c5n \u23a0",
@@ -325,299 +325,299 b''
325 "n = a "
325 "n = a "
326 ]
326 ]
327 }
327 }
328 ],
328 ],
329 "prompt_number": 14
329 "prompt_number": 14
330 },
330 },
331 {
331 {
332 "cell_type": "markdown",
332 "cell_type": "markdown",
333 "source": [
333 "source": [
334 "<h2>Calculus</h2>"
334 "<h2>Calculus</h2>"
335 ]
335 ]
336 },
336 },
337 {
337 {
338 "cell_type": "code",
338 "cell_type": "code",
339 "collapsed": false,
339 "collapsed": false,
340 "input": [
340 "input": [
341 "limit((sin(x)-x)/x**3, x, 0)"
341 "limit((sin(x)-x)/x**3, x, 0)"
342 ],
342 ],
343 "language": "python",
343 "language": "python",
344 "outputs": [
344 "outputs": [
345 {
345 {
346 "latex": [
346 "latex": [
347 "$$- \\frac{1}{6}$$"
347 "$$- \\frac{1}{6}$$"
348 ],
348 ],
349 "output_type": "pyout",
349 "output_type": "pyout",
350 "png": "iVBORw0KGgoAAAANSUhEUgAAABkAAAAeCAYAAADZ7LXbAAAABHNCSVQICAgIfAhkiAAAAPpJREFU\nSInt1aFKBFEUh/Gfq0WDCO6iguhoMwg2k6YFi7DRaBKMvoDZavYhDBaDLyBo2CfQJhgMgm6wjGHu\nLOOAgnIWXHa/cs+ce/n+3GHmXoaMOdxgpT4xFRRwhCbaaAQ5vyVHVm8OPHUc8j9DJoM8hzjBFtaw\niNsg96gxUak3cVHr/UQXx78N+St5gGNIiHhdJR1MYwazOA90o7hHzlKd4SMFhdHAE1YrvfXqgoib\ncQNLih3sYhtXeAhw9zlQfMY76Xker1guF0Scwm9pvE/jC3rYjwzpKnZSPdFzvAe4v3CNvVS38IyF\ncjLqP2niFI9Jfom7IPeYAfAJyood4uaM00cAAAAASUVORK5CYII=\n",
350 "png": "iVBORw0KGgoAAAANSUhEUgAAABkAAAAeCAYAAADZ7LXbAAAABHNCSVQICAgIfAhkiAAAAPpJREFU\nSInt1aFKBFEUh/Gfq0WDCO6iguhoMwg2k6YFi7DRaBKMvoDZavYhDBaDLyBo2CfQJhgMgm6wjGHu\nLOOAgnIWXHa/cs+ce/n+3GHmXoaMOdxgpT4xFRRwhCbaaAQ5vyVHVm8OPHUc8j9DJoM8hzjBFtaw\niNsg96gxUak3cVHr/UQXx78N+St5gGNIiHhdJR1MYwazOA90o7hHzlKd4SMFhdHAE1YrvfXqgoib\ncQNLih3sYhtXeAhw9zlQfMY76Xker1guF0Scwm9pvE/jC3rYjwzpKnZSPdFzvAe4v3CNvVS38IyF\ncjLqP2niFI9Jfom7IPeYAfAJyood4uaM00cAAAAASUVORK5CYII=\n",
351 "prompt_number": 15,
351 "prompt_number": 15,
352 "text": [
352 "text": [
353 "-1/6"
353 "-1/6"
354 ]
354 ]
355 }
355 }
356 ],
356 ],
357 "prompt_number": 15
357 "prompt_number": 15
358 },
358 },
359 {
359 {
360 "cell_type": "code",
360 "cell_type": "code",
361 "collapsed": false,
361 "collapsed": false,
362 "input": [
362 "input": [
363 "(1/cos(x)).series(x, 0, 6)"
363 "(1/cos(x)).series(x, 0, 6)"
364 ],
364 ],
365 "language": "python",
365 "language": "python",
366 "outputs": [
366 "outputs": [
367 {
367 {
368 "latex": [
368 "latex": [
369 "$$1 + \\frac{1}{2} x^{2} + \\frac{5}{24} x^{4} + \\operatorname{\\mathcal{O}}\\left(x^{6}\\right)$$"
369 "$$1 + \\frac{1}{2} x^{2} + \\frac{5}{24} x^{4} + \\operatorname{\\mathcal{O}}\\left(x^{6}\\right)$$"
370 ],
370 ],
371 "output_type": "pyout",
371 "output_type": "pyout",
372 "png": "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\n",
372 "png": "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\n",
373 "prompt_number": 16,
373 "prompt_number": 16,
374 "text": [
374 "text": [
375 "",
375 "",
376 " 2 4 ",
376 " 2 4 ",
377 " x 5\u22c5x \u239b 6\u239e",
377 " x 5\u22c5x \u239b 6\u239e",
378 "1 + \u2500\u2500 + \u2500\u2500\u2500\u2500 + O\u239dx \u23a0",
378 "1 + \u2500\u2500 + \u2500\u2500\u2500\u2500 + O\u239dx \u23a0",
379 " 2 24 "
379 " 2 24 "
380 ]
380 ]
381 }
381 }
382 ],
382 ],
383 "prompt_number": 16
383 "prompt_number": 16
384 },
384 },
385 {
385 {
386 "cell_type": "code",
386 "cell_type": "code",
387 "collapsed": false,
387 "collapsed": false,
388 "input": [
388 "input": [
389 "diff(cos(x**2)**2 / (1+x), x)"
389 "diff(cos(x**2)**2 / (1+x), x)"
390 ],
390 ],
391 "language": "python",
391 "language": "python",
392 "outputs": [
392 "outputs": [
393 {
393 {
394 "latex": [
394 "latex": [
395 "$$- 4 \\frac{x \\operatorname{sin}\\left(x^{2}\\right) \\operatorname{cos}\\left(x^{2}\\right)}{x + 1} - \\frac{\\operatorname{cos}^{2}\\left(x^{2}\\right)}{\\left(x + 1\\right)^{2}}$$"
395 "$$- 4 \\frac{x \\operatorname{sin}\\left(x^{2}\\right) \\operatorname{cos}\\left(x^{2}\\right)}{x + 1} - \\frac{\\operatorname{cos}^{2}\\left(x^{2}\\right)}{\\left(x + 1\\right)^{2}}$$"
396 ],
396 ],
397 "output_type": "pyout",
397 "output_type": "pyout",
398 "png": "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\nRCKRSCQWBq8BH7XPIH70GuoAAAAASUVORK5CYII=\n",
398 "png": "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\nRCKRSCQWBq8BH7XPIH70GuoAAAAASUVORK5CYII=\n",
399 "prompt_number": 17,
399 "prompt_number": 17,
400 "text": [
400 "text": [
401 "",
401 "",
402 " 2 ",
402 " 2 ",
403 " \u239b 2\u239e \u239b 2\u239e \u239b 2\u239e",
403 " \u239b 2\u239e \u239b 2\u239e \u239b 2\u239e",
404 " 4\u22c5x\u22c5sin\u239dx \u23a0\u22c5cos\u239dx \u23a0 cos \u239dx \u23a0",
404 " 4\u22c5x\u22c5sin\u239dx \u23a0\u22c5cos\u239dx \u23a0 cos \u239dx \u23a0",
405 "- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 - \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500",
405 "- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 - \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500",
406 " x + 1 2",
406 " x + 1 2",
407 " (x + 1) "
407 " (x + 1) "
408 ]
408 ]
409 }
409 }
410 ],
410 ],
411 "prompt_number": 17
411 "prompt_number": 17
412 },
412 },
413 {
413 {
414 "cell_type": "code",
414 "cell_type": "code",
415 "collapsed": false,
415 "collapsed": false,
416 "input": [
416 "input": [
417 "integrate(x**2 * cos(x), (x, 0, pi/2))"
417 "integrate(x**2 * cos(x), (x, 0, pi/2))"
418 ],
418 ],
419 "language": "python",
419 "language": "python",
420 "outputs": [
420 "outputs": [
421 {
421 {
422 "latex": [
422 "latex": [
423 "$$-2 + \\frac{1}{4} \\pi^{2}$$"
423 "$$-2 + \\frac{1}{4} \\pi^{2}$$"
424 ],
424 ],
425 "output_type": "pyout",
425 "output_type": "pyout",
426 "png": "iVBORw0KGgoAAAANSUhEUgAAAEwAAAAfCAYAAABNjStyAAAABHNCSVQICAgIfAhkiAAAArVJREFU\naIHt2UuojVEUwPHfRd7PgRK6ySNdQgaIcCUjr5HkMUAoQyUDA0oMRPIoAyaOmBmYEGFgIEIkjwgD\nIzGhkLwZ7A+f757rnu/Y373Hdf61u3vvb5+11ll37bXW16FOLho62oAaZBrmozuasA13OtSiyAzE\nBTRGkNUXh1LrpXiDARFk1wTrsQXfMCKCvIn4ilHJun8ie2EE2TVFLIc1CFfyR6oan8huiiC7BeNw\nRrge17Efg4pQVIZYDstyHHsLkGssLvuVRwbhbjKGFqEwQxEOW4vdCiqMpzAjszdD+CIHqpA3Ed1y\nnI/tsIWCw6BXZNngBR6iX2qvG97jfhXySvIZGdNhzYKzhiRjBab/eJjnv/gnnmAy+ghlGD7jAwZH\n0tEejMRpob1I87Ot6BJJUbOQq56n9hqFsnwtko5yrMLRZL4fG1s51w878FKIxnLjK4YlZxsy43Ux\n5v/OLnzRMrdVQkncvHECB4UO/jDWYZ4QTYuS+UzxAig3o/EW26v8fEk8hy3HstT6JLom80uRdPwV\nPXFDKMnVUlJMXzVQqOiE6ncvr4B00p+AIyrvO25jQ2avQcgp57C1AhnHMKnMfiOm4mOZZ2txs0Ib\ns6zE1WTehHdVyonGTi0dtboKOSVtR1hryTs9stzGlGS+QKjouRrTmElujVBpdmT2Z0XUkSZbycqN\nNLOFyL2VrPsL7cOYPEpj9WFzsUe4iidS+z0EJ9YCm3BRqNzwLPk7GY/a25hXWr8W2YirhJL8SX+v\n0Bq0xoPM8964gsU59dQkJfkc1iy8ns0pwJbf6LBGrQ1eC++hlTBAqLQPijOnc7FZyJWX/McRVimL\ncVZ4yW8X/mWHDRU699zd+t/Qte0jNcsSwWkzkzHfrzbmcQfa9c/wVDvksM7AcOzDJ5zXCX8Sq1On\nTp1YfAdxIoFGVphKVAAAAABJRU5ErkJggg==\n",
426 "png": "iVBORw0KGgoAAAANSUhEUgAAAEwAAAAfCAYAAABNjStyAAAABHNCSVQICAgIfAhkiAAAArVJREFU\naIHt2UuojVEUwPHfRd7PgRK6ySNdQgaIcCUjr5HkMUAoQyUDA0oMRPIoAyaOmBmYEGFgIEIkjwgD\nIzGhkLwZ7A+f757rnu/Y373Hdf61u3vvb5+11ll37bXW16FOLho62oAaZBrmozuasA13OtSiyAzE\nBTRGkNUXh1LrpXiDARFk1wTrsQXfMCKCvIn4ilHJun8ie2EE2TVFLIc1CFfyR6oan8huiiC7BeNw\nRrge17Efg4pQVIZYDstyHHsLkGssLvuVRwbhbjKGFqEwQxEOW4vdCiqMpzAjszdD+CIHqpA3Ed1y\nnI/tsIWCw6BXZNngBR6iX2qvG97jfhXySvIZGdNhzYKzhiRjBab/eJjnv/gnnmAy+ghlGD7jAwZH\n0tEejMRpob1I87Ot6BJJUbOQq56n9hqFsnwtko5yrMLRZL4fG1s51w878FKIxnLjK4YlZxsy43Ux\n5v/OLnzRMrdVQkncvHECB4UO/jDWYZ4QTYuS+UzxAig3o/EW26v8fEk8hy3HstT6JLom80uRdPwV\nPXFDKMnVUlJMXzVQqOiE6ncvr4B00p+AIyrvO25jQ2avQcgp57C1AhnHMKnMfiOm4mOZZ2txs0Ib\ns6zE1WTehHdVyonGTi0dtboKOSVtR1hryTs9stzGlGS+QKjouRrTmElujVBpdmT2Z0XUkSZbycqN\nNLOFyL2VrPsL7cOYPEpj9WFzsUe4iidS+z0EJ9YCm3BRqNzwLPk7GY/a25hXWr8W2YirhJL8SX+v\n0Bq0xoPM8964gsU59dQkJfkc1iy8ns0pwJbf6LBGrQ1eC++hlTBAqLQPijOnc7FZyJWX/McRVimL\ncVZ4yW8X/mWHDRU699zd+t/Qte0jNcsSwWkzkzHfrzbmcQfa9c/wVDvksM7AcOzDJ5zXCX8Sq1On\nTp1YfAdxIoFGVphKVAAAAABJRU5ErkJggg==\n",
427 "prompt_number": 18,
427 "prompt_number": 18,
428 "text": [
428 "text": [
429 "",
429 "",
430 " 2",
430 " 2",
431 " \u03c0 ",
431 " \u03c0 ",
432 "-2 + \u2500\u2500",
432 "-2 + \u2500\u2500",
433 " 4 "
433 " 4 "
434 ]
434 ]
435 }
435 }
436 ],
436 ],
437 "prompt_number": 18
437 "prompt_number": 18
438 },
438 },
439 {
439 {
440 "cell_type": "code",
440 "cell_type": "code",
441 "collapsed": false,
441 "collapsed": false,
442 "input": [
442 "input": [
443 "eqn = Eq(Derivative(f(x),x,x) + 9*f(x), 1)",
443 "eqn = Eq(Derivative(f(x),x,x) + 9*f(x), 1)",
444 "display(eqn)",
444 "display(eqn)",
445 "dsolve(eqn, f(x))"
445 "dsolve(eqn, f(x))"
446 ],
446 ],
447 "language": "python",
447 "language": "python",
448 "outputs": [
448 "outputs": [
449 {
449 {
450 "latex": [
450 "latex": [
451 "$$9 \\operatorname{f}\\left(x\\right) + \\frac{\\partial^{2}}{\\partial^{2} x} \\operatorname{f}\\left(x\\right) = 1$$"
451 "$$9 \\operatorname{f}\\left(x\\right) + \\frac{\\partial^{2}}{\\partial^{2} x} \\operatorname{f}\\left(x\\right) = 1$$"
452 ],
452 ],
453 "output_type": "display_data",
453 "output_type": "display_data",
454 "png": "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\n",
454 "png": "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\n",
455 "text": [
455 "text": [
456 "",
456 "",
457 " 2 ",
457 " 2 ",
458 " d ",
458 " d ",
459 "9\u22c5f(x) + \u2500\u2500\u2500(f(x)) = 1",
459 "9\u22c5f(x) + \u2500\u2500\u2500(f(x)) = 1",
460 " 2 ",
460 " 2 ",
461 " dx "
461 " dx "
462 ]
462 ]
463 },
463 },
464 {
464 {
465 "latex": [
465 "latex": [
466 "$$\\operatorname{f}\\left(x\\right) = C_{1} \\operatorname{sin}\\left(3 x\\right) + C_{2} \\operatorname{cos}\\left(3 x\\right) + \\frac{1}{9}$$"
466 "$$\\operatorname{f}\\left(x\\right) = C_{1} \\operatorname{sin}\\left(3 x\\right) + C_{2} \\operatorname{cos}\\left(3 x\\right) + \\frac{1}{9}$$"
467 ],
467 ],
468 "output_type": "pyout",
468 "output_type": "pyout",
469 "png": "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\n",
469 "png": "iVBORw0KGgoAAAANSUhEUgAAAQUAAAAeCAYAAAAl8At9AAAABHNCSVQICAgIfAhkiAAACFtJREFU\neJzt3HvQVVUZx/EPCBgKKIlgJiAgYoI0gYoYKTPh2CDiZYZqKgejAbKbjmVi3tJKy6jMZIqcqdex\nTBMdbWoKm+6hTYOalNLkkMpQlBYmVnax6I9n784++z2Xfc5747zs78yZ9+y19tr72eu39lrPetY6\nLyUlJSUlJSX7PAfju5iUzxjW/7aUlJQMMCsxDoswdIBtKSkp2YvYgyPziUV6iaNwBz6Ndb1rU59z\nNC7GXdiE+3E7pmAIbsVhvXSvA7EluV9PGa67WDNwCz6PH+BOvLrN60/AmHaN6wX6U5feJK/LYNKk\nMCOwDSuwHi/igAG1qBj7YQ1+j3dheiZvIn6IL+PXvXjPw/EznNzD6wzD1arreTo2YnRyPEQ0wN2Y\n1cY9hmOt/p8+DoQuvUVel8GgSU1PoRlnJgWn4UQ9b/D9wSQ8iKdwTJ1z5ojnurmfbGqF92N2Lu1K\n/EfokfIW8QzXtXmf1+KGNsvO1nrjHWy6DAZN2po+LMSfhbfwczzQ4k37m2HCJT0M89UfcR7GM/he\nP9lVlNGi492SS38MO7Erk/bf5O9f2rzXJhGBPqiNshfjiBbOH4y6dLomdWnWKZwoOoNO4Vph85VC\nsEY8IeaBexOnidE0zz1C8E2ZtPn4J77Zg/ttwfIelC/KYNSl0zWpSz13Yz0mY4Ho1b8jxLpQVNDG\nzLnH4u3YX/Rwq/EBseQxQcwhx+J5PNnrT1DhNbgUj4ugVTM+p3iPPhbXiGf4O/4t5n9Ew7hAuG/r\nRF2lLMZ5ol7Ox8vxZjEvPQlX4MeZ8xfi7gL2zMLbRKzn8VxeET2eTs79TWLXTQXu2S59qcvRwmWf\nJNrn31Q/y1RR39MwUrT3C3XvmBrpSzFdOkmT5eKZ4EYRy7mxSMGpYs5xbiZtGUZljieLVYnU4/i6\ncKtOw/GiclcleZc2uNeX8IsWPwtz17g8sXdlkYdrgaHYqhI8moY/4ZTkeJ2ok8tUjxoj8IXk+y9x\nrwiuDUnS1ujeeO7BzAa2LMHHRaOuNZq0okd6fjtTwi7FA1R9pcvx+J3oeNPjZ1TiXrOxA2ep1PlH\nsVm1h9xMXxrr0omatM25QsypmbT35c5ZqxJ9JRr+5uT7ROE2HpwcL9G4wfeUbwt75/bydReIESjt\nDA8RQaeROF10lMQ8+I5MudeLUWyIiMtsyF33MtH4smzEqwrYNEzsRvt+YkdKK3oQy6jtRPq7FG+A\nfaHLDDyLqzJpZ4oR71CxjL5TPG+WBYkt83Np9fRNKaJLJ2nSNtcKdyrtZUfiotw5U3LHO/CxOteb\nIVyovmKXiAaPbHaicDuLcqxoSNuEa/u6TN5kscw2VQSZTs/kvSKxZXZSPluO6EDuz6V9RXU0uxGn\nJNftyqS1oofEtp8UvF+WLsUbYF/ocqd46Q+sk387/qDaqyUGpj04J5PWSN+Uorp0iiZt8w38KHN8\nuGo3J88MUSGL6uSPFKNjX/GIGJGbcSiub/HaK7FdPN8eEUPIcp1YaqsVuL1IzFNHZNKGi3nzB3Pn\nXiHmmnkm6r5MOSaxZXdyvTzN9CC8nC82yL9V7anbLjH1qZWX9wh6W5ehwsPqapD/bJ38NaJO8i9q\nM31r6dLJmrTN0/hs5vgAfKTB+ReIyGt20820zPfpeE+dsrcIl6qVz6m5a3xGVHi3H3jkuEYEd7LU\n/XFIjpl4VMX9I9zGnSKyTvUzw326L7EtFaPnK0XwKV1KmivqIsvLhMf2Uu7aE8Tz/jU5J08zPYjG\nflaNss3oUnxUaleXeUna9cLlTl/A45Lr1eo8m+U/pnscJ0stfemuSydrsqfApyaHJJkrculXZ77v\nL+Z0xyXH94kKTRklGkTKYiF0X3ES/iFGg3qsTj5ZVgoPptZGjvVipMvyIdyWOT5DTB2OEJ1L1jUc\niudUOoyUDSodxSoRoU+5W/U69VARUHtEtQu+NLH53uS4VT2GC28w68EUpUvxTqEdXUap3lL/Rrwg\n6uUgUd/n1bjOLPFC1cpPO+JsPKGIvilZXTpdk7ZYpHZwaIVw84j58x6cLRr1o3goyRshdmZNzpRd\noxKf6CveIFz196oWa4aIEC+uVSihVqfwU9Uv9HixXp11G1erBIauEm5lyly14wkPio5orGpvjFjP\nzy8PXSI6m7T+xoulz+0qAbB29FimPbq01gBb1WW2eLHTUTR1y5ckx3eJeX6WxSKoN7xG/jHiJT4/\nV6aIvil5XTpdk7rUe0kvEUtJ44SLlDJCGP1VMSquE3OZf4kH+pRwm54TgbS0F56T/H24N4xuwgl4\nk/BKXhSu/ROJzY32SaRzzacyaTNFgx4jnvElIXy2tx+Lr4n15Q2q9x0sFfGGOUn5lCV4t3BTb8Yf\nc7acLRpXtr7OEKsZRHR9i3CvdyRpregxUYyo7W4n7sKHVddVM1rRZYjKxrk9QodfiaDgVjECrxUD\n1HYxcj8kdJDL350cfzK5RpYi+mbJ69KpmhwlBrPfCl3WajytQhhbZBPNYKKtH4fso3Tp37q6TbxM\nJfXpUkyTkcJrSqc0U4Sn+/8geTZavkplN94JurtnJSUpu0WcoD94h/Aq6gUWS4KimiwQK4lbk+Mn\nRYB0fq2THxAdwTzxE+B9jdJT2PtYIjoFYoQ7cuBMGTTME209uwLyvNhti2pP4RNirrcMb+0P60pK\nGnCqGMG+JX5deY7YEFbSMzaLnZ/pkv7JYgNefqPXPs1y8Y890qWk/K7Nkv5nqliCzK+fd8R/JuoA\nRuOd4gdcc8XmsiUNS5SUlAxqsquO48Rmq/EDZEtJSclewDaVX5NeLvd/Rffrd3NKSkoGmhfExrD0\np9s3abC9uaSkpKSkpKSkpKSkpKSkpKQI/wMAw3NBVNU8+QAAAABJRU5ErkJggg==\n",
470 "prompt_number": 19,
470 "prompt_number": 19,
471 "text": [
471 "text": [
472 "f(x) = C\u2081\u22c5sin(3\u22c5x) + C\u2082\u22c5cos(3\u22c5x) + 1/9"
472 "f(x) = C\u2081\u22c5sin(3\u22c5x) + C\u2082\u22c5cos(3\u22c5x) + 1/9"
473 ]
473 ]
474 }
474 }
475 ],
475 ],
476 "prompt_number": 19
476 "prompt_number": 19
477 },
477 },
478 {
478 {
479 "cell_type": "markdown",
479 "cell_type": "markdown",
480 "source": [
480 "source": [
481 "# Illustrating Taylor series",
481 "# Illustrating Taylor series",
482 "",
482 "",
483 "We will define a function to compute the Taylor series expansions of a symbolically defined expression at",
483 "We will define a function to compute the Taylor series expansions of a symbolically defined expression at",
484 "various orders and visualize all the approximations together with the original function"
484 "various orders and visualize all the approximations together with the original function"
485 ]
485 ]
486 },
486 },
487 {
487 {
488 "cell_type": "code",
488 "cell_type": "code",
489 "collapsed": true,
489 "collapsed": true,
490 "input": [
490 "input": [
491 "# You can change the default figure size to be a bit larger if you want,",
491 "# You can change the default figure size to be a bit larger if you want,",
492 "# uncomment the next line for that:",
492 "# uncomment the next line for that:",
493 "#plt.rc('figure', figsize=(10, 6))"
493 "#plt.rc('figure', figsize=(10, 6))"
494 ],
494 ],
495 "language": "python",
495 "language": "python",
496 "outputs": [],
496 "outputs": [],
497 "prompt_number": 20
497 "prompt_number": 20
498 },
498 },
499 {
499 {
500 "cell_type": "code",
500 "cell_type": "code",
501 "collapsed": true,
501 "collapsed": true,
502 "input": [
502 "input": [
503 "def plot_taylor_approximations(func, x0=None, orders=(2, 4), xrange=(0,1), yrange=None, npts=200):",
503 "def plot_taylor_approximations(func, x0=None, orders=(2, 4), xrange=(0,1), yrange=None, npts=200):",
504 " \"\"\"Plot the Taylor series approximations to a function at various orders.",
504 " \"\"\"Plot the Taylor series approximations to a function at various orders.",
505 "",
505 "",
506 " Parameters",
506 " Parameters",
507 " ----------",
507 " ----------",
508 " func : a sympy function",
508 " func : a sympy function",
509 " x0 : float",
509 " x0 : float",
510 " Origin of the Taylor series expansion. If not given, x0=xrange[0].",
510 " Origin of the Taylor series expansion. If not given, x0=xrange[0].",
511 " orders : list",
511 " orders : list",
512 " List of integers with the orders of Taylor series to show. Default is (2, 4).",
512 " List of integers with the orders of Taylor series to show. Default is (2, 4).",
513 " xrange : 2-tuple or array.",
513 " xrange : 2-tuple or array.",
514 " Either an (xmin, xmax) tuple indicating the x range for the plot (default is (0, 1)),",
514 " Either an (xmin, xmax) tuple indicating the x range for the plot (default is (0, 1)),",
515 " or the actual array of values to use.",
515 " or the actual array of values to use.",
516 " yrange : 2-tuple",
516 " yrange : 2-tuple",
517 " (ymin, ymax) tuple indicating the y range for the plot. If not given,",
517 " (ymin, ymax) tuple indicating the y range for the plot. If not given,",
518 " the full range of values will be automatically used. ",
518 " the full range of values will be automatically used. ",
519 " npts : int",
519 " npts : int",
520 " Number of points to sample the x range with. Default is 200.",
520 " Number of points to sample the x range with. Default is 200.",
521 " \"\"\"",
521 " \"\"\"",
522 " if not callable(func):",
522 " if not callable(func):",
523 " raise ValueError('func must be callable')",
523 " raise ValueError('func must be callable')",
524 " if isinstance(xrange, (list, tuple)):",
524 " if isinstance(xrange, (list, tuple)):",
525 " x = np.linspace(float(xrange[0]), float(xrange[1]), npts)",
525 " x = np.linspace(float(xrange[0]), float(xrange[1]), npts)",
526 " else:",
526 " else:",
527 " x = xrange",
527 " x = xrange",
528 " if x0 is None: x0 = x[0]",
528 " if x0 is None: x0 = x[0]",
529 " xs = sym.Symbol('x')",
529 " xs = sym.Symbol('x')",
530 " # Make a numpy-callable form of the original function for plotting",
530 " # Make a numpy-callable form of the original function for plotting",
531 " fx = func(xs)",
531 " fx = func(xs)",
532 " f = sym.lambdify(xs, fx, modules=['numpy'])",
532 " f = sym.lambdify(xs, fx, modules=['numpy'])",
533 " # We could use latex(fx) instead of str(), but matploblib gets confused",
533 " # We could use latex(fx) instead of str(), but matploblib gets confused",
534 " # with some of the (valid) latex constructs sympy emits. So we play it safe.",
534 " # with some of the (valid) latex constructs sympy emits. So we play it safe.",
535 " plot(x, f(x), label=str(fx), lw=2)",
535 " plot(x, f(x), label=str(fx), lw=2)",
536 " # Build the Taylor approximations, plotting as we go",
536 " # Build the Taylor approximations, plotting as we go",
537 " apps = {}",
537 " apps = {}",
538 " for order in orders:",
538 " for order in orders:",
539 " app = fx.series(xs, x0, n=order).removeO()",
539 " app = fx.series(xs, x0, n=order).removeO()",
540 " apps[order] = app",
540 " apps[order] = app",
541 " # Must be careful here: if the approximation is a constant, we can't",
541 " # Must be careful here: if the approximation is a constant, we can't",
542 " # blindly use lambdify as it won't do the right thing. In that case, ",
542 " # blindly use lambdify as it won't do the right thing. In that case, ",
543 " # evaluate the number as a float and fill the y array with that value.",
543 " # evaluate the number as a float and fill the y array with that value.",
544 " if isinstance(app, sym.numbers.Number):",
544 " if isinstance(app, sym.numbers.Number):",
545 " y = np.zeros_like(x)",
545 " y = np.zeros_like(x)",
546 " y.fill(app.evalf())",
546 " y.fill(app.evalf())",
547 " else:",
547 " else:",
548 " fa = sym.lambdify(xs, app, modules=['numpy'])",
548 " fa = sym.lambdify(xs, app, modules=['numpy'])",
549 " y = fa(x)",
549 " y = fa(x)",
550 " tex = sym.latex(app).replace('$', '')",
550 " tex = sym.latex(app).replace('$', '')",
551 " plot(x, y, label=r'$n=%s:\\, %s$' % (order, tex) )",
551 " plot(x, y, label=r'$n=%s:\\, %s$' % (order, tex) )",
552 " ",
552 " ",
553 " # Plot refinements",
553 " # Plot refinements",
554 " if yrange is not None:",
554 " if yrange is not None:",
555 " plt.ylim(*yrange)",
555 " plt.ylim(*yrange)",
556 " grid()",
556 " grid()",
557 " legend(loc='best').get_frame().set_alpha(0.8)"
557 " legend(loc='best').get_frame().set_alpha(0.8)"
558 ],
558 ],
559 "language": "python",
559 "language": "python",
560 "outputs": [],
560 "outputs": [],
561 "prompt_number": 21
561 "prompt_number": 21
562 },
562 },
563 {
563 {
564 "cell_type": "markdown",
564 "cell_type": "markdown",
565 "source": [
565 "source": [
566 "With this function defined, we can now use it for any sympy function or expression"
566 "With this function defined, we can now use it for any sympy function or expression"
567 ]
567 ]
568 },
568 },
569 {
569 {
570 "cell_type": "code",
570 "cell_type": "code",
571 "collapsed": false,
571 "collapsed": false,
572 "input": [
572 "input": [
573 "plot_taylor_approximations(sin, 0, [2, 4, 6], (0, 2*pi), (-2,2))"
573 "plot_taylor_approximations(sin, 0, [2, 4, 6], (0, 2*pi), (-2,2))"
574 ],
574 ],
575 "language": "python",
575 "language": "python",
576 "outputs": [
576 "outputs": [
577 {
577 {
578 "output_type": "display_data",
578 "output_type": "display_data",
579 "png": "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\nfgk2a5wJG34AAAAASUVORK5CYII=\n"
579 "png": "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\nfgk2a5wJG34AAAAASUVORK5CYII=\n"
580 }
580 }
581 ],
581 ],
582 "prompt_number": 22
582 "prompt_number": 22
583 },
583 },
584 {
584 {
585 "cell_type": "code",
585 "cell_type": "code",
586 "collapsed": false,
586 "collapsed": false,
587 "input": [
587 "input": [
588 "plot_taylor_approximations(cos, 0, [2, 4, 6], (0, 2*pi), (-2,2))"
588 "plot_taylor_approximations(cos, 0, [2, 4, 6], (0, 2*pi), (-2,2))"
589 ],
589 ],
590 "language": "python",
590 "language": "python",
591 "outputs": [
591 "outputs": [
592 {
592 {
593 "output_type": "display_data",
593 "output_type": "display_data",
594 "png": "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\n"
594 "png": "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\n"
595 }
595 }
596 ],
596 ],
597 "prompt_number": 23
597 "prompt_number": 23
598 },
598 },
599 {
599 {
600 "cell_type": "markdown",
600 "cell_type": "markdown",
601 "source": [
601 "source": [
602 "This shows easily how a Taylor series is useless beyond its convergence radius, illustrated by ",
602 "This shows easily how a Taylor series is useless beyond its convergence radius, illustrated by ",
603 "a simple function that has singularities on the real axis:"
603 "a simple function that has singularities on the real axis:"
604 ]
604 ]
605 },
605 },
606 {
606 {
607 "cell_type": "code",
607 "cell_type": "code",
608 "collapsed": false,
608 "collapsed": false,
609 "input": [
609 "input": [
610 "# For an expression made from elementary functions, we must first make it into",
610 "# For an expression made from elementary functions, we must first make it into",
611 "# a callable function, the simplest way is to use the Python lambda construct.",
611 "# a callable function, the simplest way is to use the Python lambda construct.",
612 "plot_taylor_approximations(lambda x: 1/cos(x), 0, [2,4,6], (0, 2*pi), (-5,5))"
612 "plot_taylor_approximations(lambda x: 1/cos(x), 0, [2,4,6], (0, 2*pi), (-5,5))"
613 ],
613 ],
614 "language": "python",
614 "language": "python",
615 "outputs": [
615 "outputs": [
616 {
616 {
617 "output_type": "display_data",
617 "output_type": "display_data",
618 "png": "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\nYII=\n"
618 "png": "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\nYII=\n"
619 }
619 }
620 ],
620 ],
621 "prompt_number": 24
621 "prompt_number": 24
622 }
622 }
623 ]
623 ]
@@ -2,7 +2,7 b''
2 "metadata": {
2 "metadata": {
3 "name": "sympy_quantum_computing"
3 "name": "sympy_quantum_computing"
4 },
4 },
5 "nbformat": 2,
5 "nbformat": 3,
6 "worksheets": [
6 "worksheets": [
7 {
7 {
8 "cells": [
8 "cells": [
@@ -1,115 +1,115 b''
1 {
1 {
2 "metadata": {
2 "metadata": {
3 "name": "trapezoid_rule"
3 "name": "trapezoid_rule"
4 },
4 },
5 "nbformat": 2,
5 "nbformat": 3,
6 "worksheets": [
6 "worksheets": [
7 {
7 {
8 "cells": [
8 "cells": [
9 {
9 {
10 "cell_type": "markdown",
10 "cell_type": "markdown",
11 "source": [
11 "source": [
12 "Basic numerical integration: the trapezoid rule",
12 "Basic numerical integration: the trapezoid rule",
13 "===============================================",
13 "===============================================",
14 "",
14 "",
15 "A simple illustration of the trapezoid rule for definite integration:",
15 "A simple illustration of the trapezoid rule for definite integration:",
16 "",
16 "",
17 "$$",
17 "$$",
18 "\\int_{a}^{b} f(x)\\, dx \\approx \\frac{1}{2} \\sum_{k=1}^{N} \\left( x_{k} - x_{k-1} \\right) \\left( f(x_{k}) + f(x_{k-1}) \\right).",
18 "\\int_{a}^{b} f(x)\\, dx \\approx \\frac{1}{2} \\sum_{k=1}^{N} \\left( x_{k} - x_{k-1} \\right) \\left( f(x_{k}) + f(x_{k-1}) \\right).",
19 "$$",
19 "$$",
20 "<br>",
20 "<br>",
21 "First, we define a simple function and sample it between 0 and 10 at 200 points"
21 "First, we define a simple function and sample it between 0 and 10 at 200 points"
22 ]
22 ]
23 },
23 },
24 {
24 {
25 "cell_type": "code",
25 "cell_type": "code",
26 "collapsed": true,
26 "collapsed": true,
27 "input": [
27 "input": [
28 "def f(x):",
28 "def f(x):",
29 " return (x-3)*(x-5)*(x-7)+85",
29 " return (x-3)*(x-5)*(x-7)+85",
30 "",
30 "",
31 "x = linspace(0, 10, 200)",
31 "x = linspace(0, 10, 200)",
32 "y = f(x)"
32 "y = f(x)"
33 ],
33 ],
34 "language": "python",
34 "language": "python",
35 "outputs": [],
35 "outputs": [],
36 "prompt_number": 1
36 "prompt_number": 1
37 },
37 },
38 {
38 {
39 "cell_type": "markdown",
39 "cell_type": "markdown",
40 "source": [
40 "source": [
41 "Choose a region to integrate over and take only a few points in that region"
41 "Choose a region to integrate over and take only a few points in that region"
42 ]
42 ]
43 },
43 },
44 {
44 {
45 "cell_type": "code",
45 "cell_type": "code",
46 "collapsed": true,
46 "collapsed": true,
47 "input": [
47 "input": [
48 "a, b = 1, 9",
48 "a, b = 1, 9",
49 "xint = x[logical_and(x>=a, x<=b)][::30]",
49 "xint = x[logical_and(x>=a, x<=b)][::30]",
50 "yint = y[logical_and(x>=a, x<=b)][::30]"
50 "yint = y[logical_and(x>=a, x<=b)][::30]"
51 ],
51 ],
52 "language": "python",
52 "language": "python",
53 "outputs": [],
53 "outputs": [],
54 "prompt_number": 2
54 "prompt_number": 2
55 },
55 },
56 {
56 {
57 "cell_type": "markdown",
57 "cell_type": "markdown",
58 "source": [
58 "source": [
59 "Plot both the function and the area below it in the trapezoid approximation"
59 "Plot both the function and the area below it in the trapezoid approximation"
60 ]
60 ]
61 },
61 },
62 {
62 {
63 "cell_type": "code",
63 "cell_type": "code",
64 "collapsed": false,
64 "collapsed": false,
65 "input": [
65 "input": [
66 "plot(x, y, lw=2)",
66 "plot(x, y, lw=2)",
67 "axis([0, 10, 0, 140])",
67 "axis([0, 10, 0, 140])",
68 "fill_between(xint, 0, yint, facecolor='gray', alpha=0.4)",
68 "fill_between(xint, 0, yint, facecolor='gray', alpha=0.4)",
69 "text(0.5 * (a + b), 30,r\"$\\int_a^b f(x)dx$\", horizontalalignment='center', fontsize=20);"
69 "text(0.5 * (a + b), 30,r\"$\\int_a^b f(x)dx$\", horizontalalignment='center', fontsize=20);"
70 ],
70 ],
71 "language": "python",
71 "language": "python",
72 "outputs": [
72 "outputs": [
73 {
73 {
74 "output_type": "display_data",
74 "output_type": "display_data",
75 "png": "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\nAElFTkSuQmCC\n"
75 "png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD3CAYAAADmBxSSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt8jGf+//HX5BwycmgIRQgiCdJINIIV4tT6bg+01rYs\nug67lR4cqu23VRbdlm1V9bAr1G72u+qnVHXFWR0aWodMokVFCHKOEBIi50yS+f1xNyeCZExyT5LP\n8/GYx9y5Z+77/mQevOfOdV/3dWkMBoMBIYQQzYqF2gUIIYQwPQl3IYRohiTchRCiGZJwF0KIZkjC\nXQghmiEJdyGEaIbuGe7Tpk3Dzc0NX1/fO15bsWIFFhYWZGdnV6777LPP8PT0pFevXvz444+mr1YI\nIUSd3DPcp06dyp49e+5Yn5qayr59++jSpUvluszMTFatWsWBAwcICwtj1qxZpq9WCCFEndwz3IOD\ng3F2dr5j/WuvvcaHH35YY11UVBSjR4/G3d2doUOHYjAYyM3NNW21Qggh6sSqvhtERETQqVMnHnnk\nkRrrdTodPj4+lT97eXmh0+kYMWJEjfdpNBojSxVCiJatPgMK1OuCakFBAUuXLmXJkiV3HKy2g94t\nyA0GgzwMBhYtWqR6DebykM9CPoum8lkMHWoADHz4YeMet77qFe6XLl0iKSkJPz8/PDw8SEtLo1+/\nfly9epWgoCDOnj1b+d5z584RGBhY74KEEMJcRUXBoUPg6Agvvqh2NfdWr2YZX19frl69Wvmzh4cH\nJ06cwMXFhf79+/PGG2+QkpJCQkICFhYWaLVakxcshBBq+eAD5Tk0FNq0UbeW+7nnmfuECRMYNGgQ\n8fHxdO7cmX//+981Xq/e7OLm5kZoaCjDhw/npZde4tNPP22YipuRkJAQtUswG/JZVJHPooo5fRbn\nz8PWrWBrC7Nnq13N/WkMxjTmPMgBNRqj2o+EEEJNM2bAv/4Ff/4zrFnT+Mevb3ZKuAshxH1cvgwe\nHqDXK2fwnp6NX0N9s1OGHxBCiPtYuRJKSmDcOHWC3Rhy5i6EEPdw/Tp07Qr5+RAdDY8+qk4dcuYu\nhBAmtHKlEuz/8z/qBbsx5MxdCCHu4sYN6NIFcnPh6FEYOFC9WuTMXQghTOTTT5VgHzlS3WA3hpy5\nCyFELXJylLP2nBw4fBiCg9WtR87chRDCBD7/XAn2kBD1g90YcuYuhBC3uXVL6deenQ0HD8KwYWpX\nJGfuQgjxwFauVIJ98GDlzL0pkjN3IYSoJitLOWvPzVVGgBwyRO2KFHLmLoQQD+DDD5Vgf+wx8wl2\nY8iZuxBC/CojA7p3h8JC0OnAnKakkDN3IYQw0tKlSrCPHWtewW4MOXMXQgggOVkZFKy0FE6fhj59\n1K6oJjlzF0III/zlL8qQvs8/b37Bbgw5cxdCtHgnT0JAAFhZwblz0K2b2hXdSc7chRCint58EwwG\nePll8wx2Y8iZuxCiRdu7F0aPBkdHuHQJHnpI7YpqJ2fuQghRR2Vl8MYbyvI775hvsBtDwl0I0WKt\nWwe//KKM/vjqq2pXY1oS7kKIFik3VzlbB3j/fbCzU7ceU7tnuE+bNg03Nzd8fX0r173xxhv4+PgQ\nEBDAnDlzKCwsrHzts88+w9PTk169evHjjz82XNVCCPGAli5V7kjt3x8mTFC7GtO7Z7hPnTqVPXv2\n1Fj32GOPERsbS0xMDPn5+WzYsAGAzMxMVq1axYEDBwgLC2PWrFkNV7UQQjyAixfh44+V5c8+A4tm\n2IZxz18pODgYZ2fnGutGjRqFhYUFFhYWPP744xw6dAiAqKgoRo8ejbu7O0OHDsVgMJCbm9twlQsh\nhJFeew1KSuCFFyAoSO1qGobVg2y8du1aZsyYAYBOp8PHx6fyNS8vL3Q6HSNGjLhju8WLF1cuh4SE\nENJUB0wWQjQ5e/fC9u2g1cKyZWpXc3eRkZFERkYavb3R4f7uu++i1WoZP348QK39LzUaTa3bVg93\nIYRoLCUlMGeOsrxwIXTooG4993L7ie+SJUvqtb1RLU3/93//x969e1m/fn3luqCgIM6ePVv587lz\n5whs6sOqCSGalRUrlOEFPD1h9my1q2lY9Q73PXv2sHz5crZt24Zdtb5D/fv3Z+/evaSkpBAZGYmF\nhQVardakxQohhLESEuDdd5XlVavAxkbdehraPZtlJkyYwKFDh7h+/TqdO3dmyZIlLFu2jJKSEkaO\nHAnAwIEDWbVqFW5uboSGhjJ8+HBsbGxYs2ZNo/wCQghxPxXjxhQVwcSJ8Gt8NWsytowQotn7+mt4\n7jlwclKaZdzc1K6o/mRsGSGEqCYnp+oi6t/+1jSD3RgS7kKIZu2114rJyICBA+FPf1K7msYjzTJC\niGbrv//N4dlnHbG0LOPnny2pNpJKkyPNMkIIAVy8eKXyTH3UqKgmHezGkHAXQjQ7SUlJTJ9+haws\nR3r2zGfEiGi1S2p0Eu5CiGbl/PnzrFgRzeHDfbG0NLBgQQKWluVql9XoJNyFEM3GqVOn2Lp1P//9\n75MATJ2aQc+eBSpXpY4HGjhMCCHMxfHjx4mKiuKHH54jPd0eT88Cpk+/onZZqpFwF0I0aQaDgUOH\nDnHmzBny8x9n58722NiU8957iVhbGygtVbtCdUi4CyGarLKyMr777jsSExPp2nUQkyb1AGDWrDS6\ndy9SuTp1SbgLIZokvV7Pzp07yczMJCDgUebM6UFOjhUDB+bw3HPX1C5PdRLuQogmp7i4mK1bt5Kf\nn09AQADr1rUnKqoNTk56Fi1K4i5TSbQoEu5CiCYlPz+fLVu2YGFhgZ+fHydPtmbVqo4ALFqUjKtr\nC21kv42EuxCiycjJyWHz5s04ODjg6enJjRtWvP12N8rKNEyZcoXg4By1SzQbEu5CiCbh+vXrbN68\nGTc3N7p06UJZGSxc2JVr12zw88vjpZfS1S7RrEi4CyHMXkZGBlu2bKFLly48/PDDAPzrXx04ftwR\nJyc9S5cmYCVpVoN8HEIIs5acnExERAQ9e/akbdu2AERGOvLFFw+j0Rj461+TcHPTq1yl+ZFwF0KY\nrfPnz7N792769OmDs7MzAJcu2fGXv3gA8Mor6QwceEvNEs2WhLsQwiydOnWK77//nr59+6LVagHI\nybFk3rzuFBRY8vjj2UyZclXlKs2XhLsQwuxUjBPTr18/WrVqBUBpKbz9djfS0uzw8ipg4ULpz34v\nEu5CCLNRMU7ML7/8QmBgILa2tr+uh6VLu6DTtcHZWc+KFRexs5MZ3e5Fwl0IYRaqjxPTv39/rKp1\nfwkPb8+2ba7Y2pazcuVF2reXC6j3c8/x3KdNm4abmxu+1eanys3NZcyYMbi7uzN27Fjy8vIqX/vs\ns8/w9PSkV69e/Pjjjw1XtRCiWdHr9Wzfvp3U1FQeffTRGsG+c6cLYWEd0WgMLF2aQJ8+LXN89vq6\nZ7hPnTqVPXv21FgXFhaGu7s7Fy5coFOnTqxevRqAzMxMVq1axYEDBwgLC2PWrFkNV7UQotkoLi7m\n22+/JTs7m4CAACwtLStfO35cy7vvdgXg9ddTGTpU7kCtq3uGe3BwcGX3owo6nY7p06dja2vLtGnT\niIqKAiAqKorRo0fj7u7O0KFDMRgM5ObmNlzlQogmLz8/n02bNqHX6/Hz80NT7QrpyZOtmTevB2Vl\nGiZNuiIjPdZTvdvco6Oj8fb2BsDb2xudTgco4e7j41P5Pi8vL3Q6HSNGjLhjH4sXL65cDgkJISQk\npL5lCCGauNvHianu3Dl7Zs/2pLjYgqefvs6sWS1vaIHIyEgiIyON3r7e4W4w1P0KteYu/ZSqh7sQ\nouW5fZyY6hIT7XjlFU/y8y0ZOTKbd95JxqIFzvZ8+4nvkiVL6rV9vT+ywMBA4uLiAIiLiyMwMBCA\noKAgzp49W/m+c+fOVb4mhBAVMjIy2LhxIx07drwj2C9dsmPmzJ7cvGnNb36Tw1//mkS1JnhRD/UO\n96CgIMLDwyksLCQ8PJwBAwYA0L9/f/bu3UtKSgqRkZFYWFhU3lUmhBCgjBOzefNmevToQceOHWu8\nFh9vz4sv9iQry5r+/W/xwQeXsLaWvuzGumezzIQJEzh06BBZWVl07tyZd999l9DQUCZNmoSXlxcB\nAQF88MEHALi5uREaGsrw4cOxsbFhzZo1jfILCCGahtrGialw7pw9L7/ck5wcKwYNymH58kvY2kqw\nPwiNoT6N6KY4oEZTr3Z7IUTTd/r0aQ4ePFhjnJgKJ044MG9ed/LyrBgy5CZ/+1sCNjamy4jS0lKO\nHj3K3LlzTbZPNdQ3O+UOVSFEg6ptnJgKBw44sXChByUlFowYcYP33kuUphgTkXAXQjQIg8HA4cOH\nOX36dI1xYips2tSWjz7qjMGgYfz4TF5/PVUunpqQhLsQwuTuNU5MaSl8/nkn/t//cwPgpZfSmTr1\niozwaGIS7kIIk9Lr9ezcuZOrV6/y6KOP1hhOIDfXkvnzPTh2zBFLSwPvvJPM009nqVht8yXhLoQw\nmeLiYrZu3Up+fj79+vWrcSNjUpIt8+b1IDnZDicnPR9+mEBAQN499iYehIS7EMIk8vPz2bJlCxqN\nBj8/vxqv7d3rzPvvd6GgwBJPzwJWrLjEww+XqFRpyyDhLoR4YBXjxGi1Wnr06FG5vqhIw8cfd+bb\nb5WJrUeNymbhwmRatSpXq9QWQ8JdCPFAsrKy2Lx5M23btqVr166V6y9csGfhwq5cvNgKG5ty5s1L\n5dlnr8uF00Yi4S6EMFpGRgZbtmzB3d29cjiB0lL4z3/as3ZtB0pLLXB3L2LZsgS8vApVrrZlkXAX\nQhglOTmZrVu30rNnT9q1awfAxYt2vPtuV86ebQ3A+PGZvPpqujTDqEDCXQhRb/Hx8ezatatynJj8\nfAu++OJhNm5sR1mZhvbti1m4MJmgIJmwRy0S7kKIeqk+Tkzr1lr27nXmk086ce2aDRYWBn7/+0xe\neikdBwc5W1eThLswWnk5pKbC+fOQlARXryqPK1eU5+xsKCys+dDrwdISrKyqHjY2Blq1KkOrLcfZ\n2QIXF0ucnTW4uUH79tChg/L88MPQuTPcdhe7aEQ6nY5jx47Rr18/YmPd+OyzjsTFKU0wvXvn89Zb\nKfj4yATW5kDCXdTJjRsQHa08Tp1SAv3CBSWw66u0VHlU0VDXf4oaDXTsCB4eVY9u3aB7d/DxAReX\n+tcj7q/6ODH29sN4660uHD3qCICrawkzZ17m6aezWuSMSeZKwl3UKjMTIiPh4EH4/nuIj6/9fW5u\n4OUFPXooZ9dublWPhx6CVq3A3h70+hyysy+Tnp5IQkIyJSXltG7tSJs2LrRp0xa93p68PEvy8iy5\ndQuuXSvj6lUDmZmWZGXZcPOmHTdutCInR0tamgVpafDDD7XX4+MDvXopj4plNzekC56RysvL2bv3\nO/bsKebIkSmcOKGEeuvWZUyZcoWJEzOxt5cmGHMj4S4AMBggNhYiIpRHdHTN1+3sICAAAgOVZ29v\nJdQdHWvfX35+Punp6SQkJJOQkEBhYSFt2rTB2dmZgABf7O3tb9uiuE515uUVk5CgJykJUlOtyciw\nJzOzFZmZTmRmunD1qjVXrypfTNU5O0Pv3uDrC336VD3fNmeEuE1Ojp7588+wffujpKa6AkqoP/dc\nJhMnXsXJqUzlCsXdyGQdLVxSEqxfrzzOn69ab2cHgwfD8OHKIyAArK3vvp+ioiIuX75MSkoKCQkJ\n5OTk4ODggLOzM23btsXBwaFBf4+ysjJyc/NJTCwlPt6KlJTWpKY6cPmyE1evulBYaFfrdh071gx7\nX1/lbP+O754WpLzcgE6nZ926ctatsyA/3wYAJyc9EyZk8vvfX0OrbTqh3lIn65Bwb4FKSmDLFli9\nGg4frlrv6gpPPQVjxsCoUUqTyt33UUJGRgapqalcunSJrKwsHBwccHR0xNXVFUdHxxqDRqmpqKiY\nlBQ9cXEWXLxoT3KylrQ0JzIyXNDr7/zGsrAw0KOH5o7Q795duQDcVJSVlVFcXFzro6ioiMLCQgoK\nCigsLKSwsJCEBCt0uk7odD25etW1cj99+uQxfvw1Ro680SSnvpNwbyQS7uq5cgVWrYIvvlB6s4By\nhvrMMzB5MowceffwKisr48qVK6SlpXHp0iWuXLlC69at0Wq1tG3bFmdnZ7MJ87oqLTVw6VIZZ89a\nEh9vQ1KSltRURzIznSgvv/PKoK2tAR8f8PXV1Aj9jh0btj2/pKTkriF9e0BXLBcVFaHX67GxscHS\n0hIrKyssLS0rH8r46rYkJrpx6lQHoqLak5pa9deVk5Oexx67wZNPZtGrV9Pu/dJSw70JnYcIYyUl\nwfLl8K9/QfGvTdt9+sDLL8PEidCmzZ3blJeXc+3aNdLS0khISCAtLQ07Ozu0Wi2urq706NGjxjjd\nTZGVlQYvLyu8vAD0QDaQTXGxhkuXrIiNtSA+3oaEhNakprYhO1vLyZNw8mTN/Tg6ltOrVzl+fpb4\n+lad8Vdvzy8vL7/vWXRFOBcUFFSuKyoqQqPRYGlpibW1dY1wrni2sbHB2toarVaLi4sLtra2WFtb\n15ggAyAnx5K4uFbExrbmxAktp045UFxc9SWm1ZYyeHAOo0bdYNCgnCb1V4q4k5y5N2OpqbB4Maxb\nV9X18JlnYM4cCA6uebZpMBjIzs4mPT2dxMREkpOTsbS0xMHBAVdXV1xdXe8Ii5YmL8+CS5fsOHvW\nivh4ay5dakVychvy82tvz3d0LMTF5RaOjjk4Od3ExSWPtm3zadu2ABeXIrTaMqytLSuD28bGpjKo\nqz9b1KN/YWkpXL9uTWamDenptiQm2pGQYMfFi/akpd1Zp6dnAYGBuQwZcpO+ffOaZaDLmbtoNm7c\ngGXL4LPPlDN1S0uYNAneflvpFljh5s2bXL58maSkJBITEykvL688+3v00UfvmPOypXNwKMfPr4Cq\nocqzMBggK8uKS5fsOX/elvPnrUlIaEVKipacHHtycuwBt1r3Z2lpwMmpFGdnPS4upTg4lNGqVRn2\n9uWVD2vrO7sYlpRYUFBgQUGB0nW0oMCCmzetyMy04fp1a8rLa28jsrUtx8urgN6983nkkXwefTQX\nZ+fSWt8rmj6jw33t2rX8+9//pri4mODgYD755BNyc3OZNGkSP//8MwEBAaxfv77Be0mIKmVlSnv6\nO+8oAQ/w3HPw3ntKP/S8vDzOn08nOTmZxMRECgsLK8Pcz8+vlu6J4n40GnB1LcXVNbfGOCplZXDt\nmjUZGbZkZNiQkWHDlSs2vy7bkpVlRV6eFVlZ1mRl3aMbUr3rMeDqWoKbm5727Uvw8CjEw6OIbt2K\n8PAobJZn5qJ2RjXLZGdn069fP86cOYO9vT1PPvkks2fP5tSpU6SmpvLRRx8xb948unbtyuuvv17z\ngNIs0yCio+GllyAmRvl52DB4990iOnRIJzU1lYsXL5Kbm4tWq8XJyalRuieKeysp0XDzphXZ2Vbc\nvGlFbq4VhYUW1R6W6PWaOy7WWlkZaN26rPLRqlU5bdqU4uamx9VVj7W1/P+qTppl6sHe3h6DwUBO\nTg4ABQUFODk5odPpWLBgAba2tkybNo1ly5YZs3tRD/n5SnPL3/+u3IjUoUMpL798gY4ddeh0Vd0T\nu3XrRps2bZpcj5bmzMbGQLt2etq106tdimiGjA73sLAwunbtiq2tLbNmzSIoKIjo6Gi8vb0B8Pb2\nRqfTmbRYUdOPP8LkyaUkJVlhaVlOcPAJxo49Tbt2rXB1fZg+fXpLmAvRQhkV7teuXSM0NJSzZ8/i\n7OzM+PHj2bFjR53/ZFi8eHHlckhICCEhIcaU0WIVFyvt6h9/bMBgsKJz5xv87//GERhohaVlX7XL\nE0KYQGRkJJG3j6NRD0aFu06nY8CAAZUT4Y4fP54ffviBwMBA4uLi8Pf3Jy4ujsDAwFq3rx7uon4S\nEuD3v4cTJ5Q7KZ9/PoFZs3KwtpaeLUI0J7ef+C5ZsqRe2xs1QGdwcDAxMTFkZ2dTXFzM7t27eeyx\nxwgKCiI8PJzCwkLCw8MZMGCAMbsXd7FlC/j7K8Hetm0+ixcfYN68m3IBTQhxB6PCvU2bNixYsIBn\nnnmGwYMH4+fnx7BhwwgNDSUlJQUvLy/S09OZOXOmqettkcrK4I034He/g1u3IDj4Om+99TW//a0M\nXi6EqJ3coWrmbt6ECRNgzx5l3Je33rqOi8t6Bg4cgPW9hmkUQgAttyukzJtixuLjYcAAJdhdXWHr\n1lzatfuKRx7xlWAXQtyThLuZOnoUBg5Uxlh/5BE4dqyU7OytPPzwwzg5OaldnhDCzEm4m6Ft22DE\nCGWC6aeegiNHIDHxe0pKSujatava5QkhmgAJdzOzdq0ycmNREfzpT/Dtt5CScpa4uDj69OmjdnlC\niCZCwt2MrFgBf/4zlJfDokWwZg3cuHGNffv24efn1+KH3BVC1J2khZlYtgzmz1eWV62C0FAoLi4m\nIiICDw8PGeRLCFEvEu4qMxjg3XeVSTU0GmW2pKlTlckzvvvuO2xsbOjYsaPaZQohmhhpllHZkiVK\nsFtYKDMmTZ2qrP/pp59ISUnBx8dH1fqEEE2ThLuKVqxQwt3CAjZsUGZLArh8+TI//PADfn5+9Zpi\nTQghKkhyqGTtWqiYxyQ8XJkxCSA/P5+IiAi8vLxkZiQhhNEk3FWwcSO8+KKy/Pnn8MILynJ5eTm7\ndu3CycmJdu3aqVegEKLJk3BvZAcPwpQpyoXUpUvhlVeqXjt27BhZWVl4enqqV6AQolmQcG9EZ87A\ns8+CXg9z5yrT41VITEwkOjoaPz8/mT1JCPHAJNwbyeXL8NvfQk4OjBsHH31U9VpOTg47d+6kT58+\n2NjYqFekEKLZkHBvBLm58MQTkJoKgwbBl18qPWQAysrK2LFjB+3bt8fZ2VndQoUQzYaEewMrL1cu\nmJ48CZ6eEBEB1TvBREZGUlhYiIeHh3pFCiGaHQn3BvbXv8J//wuOjrBjhzIue4Vz585x5swZfH19\n1StQCNEsSbg3oP/+t+ru040boWfPqteysrLYu3evDAgmhGgQEu4N5MwZmDxZWf7b32D06KrXSkpK\niIiIoGvXrmi1WnUKFEI0axLuDeDWLaXLY34+TJxYdSdqhX379mFpaUmnTp3UKVAI0exJuJuYwaCM\nyX7hAvj6KsMMVO+2fvLkSRITE2VAMCFEg5JwN7HVq2HTJnBwgM2boVWrqtcyMjI4dOgQfn5+WFpa\nqlekEKLZMzrc8/PzeeGFF+jZsye9evUiKiqK3NxcxowZg7u7O2PHjiUvL8+UtZq9n36COXOU5X/+\nE7y8ql4rLCxk27Zt9OjRg1bVE18IIRqA0eG+aNEi3N3dOX36NKdPn8bb25uwsDDc3d25cOECnTp1\nYvXq1aas1azdugXjx0NJiTKLUsUoj6BMvLFr1y4cHBxo3769ekUKIVoMo8N9//79zJ8/Hzs7O6ys\nrHB0dESn0zF9+nRsbW2ZNm0aUVFRpqzVrM2aBQkJ0LcvfPxxzdeioqLIzMzEq/qpvBBCNCCjwj0t\nLY2ioiJCQ0MJCgrigw8+oLCwkOjoaLy9vQHw9vZGp9OZtFhztXkz/Oc/YGenTLphZ1f1WnJyMseP\nH5cBwYQQjcqou2eKioqIj49n+fLljBw5khdffJGvv/4ag8FQp+0XL15cuRwSEkJISIgxZZiFtLSq\nsdlXrIDqnWByc3PZsWMHvXr1wtbWVp0ChRBNUmRkJJGRkUZvrzHUNZFv4+PjQ1xcHAC7d+9m3bp1\nlJSUsGDBAvz9/Tlx4gTLli3jm2++qXlAjabOXwLmrrwcRo1Sxmh/4gnYvr2q22NZWRmbNm3CysqK\n7t27q1uoEC1YaWkpR48eZe7cuWqX8kDqm51Gt7l7enoSFRVFeXk5O3fuZOTIkQQFBREeHk5hYSHh\n4eEMGDDA2N03CZ99pgR727bwr3/V7M/+448/kp+fL8EuhFCF0eH+0UcfMXv2bAICArCzs+P5558n\nNDSUlJQUvLy8SE9PZ+bMmaas1axcvAjz5yvL//wnuLlVvRYfH8/Jkyd55JFH1ClOCNHiGT1iVc+e\nPTl+/Pgd6yMiIh6ooKagvBymT4fCQvjDH+Dpp6tey87OZvfu3fj6+sqAYEII1cgdqkZYtQoOH1bO\n1j/9tGq9Xq9n+/btuLu74+joqF6BQogWT8K9nhIT4a23lOVVq+Chh6pe279/P+Xl5bi7u6tTnBBC\n/ErCvR4qBgXLz1fuQH322arXfvnlFy5evEjv3r3VK1AIIX4l4V4PGzbA/v3g4gKff161/urVqxw4\ncEAGBBNCmA0J9zq6cQNee01ZXr5c6f4Iyg1dERER9OjRg9atW6tXoBBCVCPhXkdvvw2ZmRAcDFOn\nKusMBgN79uzB3t6eDh06qFugEEJUI+FeB8eOwZo1YG2tjNdecbNSTEwMly9flok3hBBmR8L9PvT6\nqrFj3ngDevVSllNTUzly5IgMCNaI1q1bR3BwMGfOnFG7FCHMnoT7fYSFwS+/QLdusGCBsi4vL4/t\n27fj4+ODXfUhIEWDGjduHPb29tIjSYg6kHC/h2vXYNEiZXnlSrC3h/Lycnbs2IGLiwuurq7qFtjC\nxMTE4O/vL38pCVEHEu73sGAB3LwJjz8OTz2lrDty5Ag5OTl4enqqW1wLFBUVhVar5fDhw/ztb3/j\n4sWLapckhNmScL+Ln3+GtWvBygo++US5iHrp0iVOnDiBn5+f2uU1e4cOHeKZZ55h+vTpJCcnA0q4\njxkzhiFDhjBo0CBWrVqlcpVCmC8J91oYDPDqq8rzrFng7Q03b95k586d+Pr6Ym1trXaJzdrZs2d5\n8803WbJkCYWFhaxYsYIrV65gMBjw9fUFlBvHCgoKVK5UCPMl4V6LTZvgyBFo1w7+8hdlQLBt27bR\nqVMnnJyc1C6v2fv888/p378/vX7tmtShQwfOnTtHnz59Kt9z/PhxAgMD1SpRCLMnY9Lepri4amCw\n998HR0fYty8SvV5Ply5d1C2uBYiNjSUmJoa3334bKysrNmzYAMCFCxcqv1hTUlJISkri/fffV7NU\nIcyahPs1Tm1gAAAUnUlEQVRt/v53SE6GPn2UO1FjY2OJi4sjKChI7dJahL179wIwdOjQGus9PT1p\n164dERERJCQksGbNGumGKsQ9SLhXk50N772nLH/4IWRnX2P//v307dtXJt5oJAcOHMDDw4OHqo+l\n/KtJkyapUJEQTZO0uVfz/vtK18cRI2DYsGIiIiLw8PDAwcFB7dJahOTkZDIzM+nbt6/apQjR5Em4\n/yoxUWmSAfjwQwP79n2HjY0NHTt2VLewFiQmJgagxoVTIYRxJNx/9c47UFICkyaBwfATKSkpMiBY\nIztx4gSAfO5CmICEO3DqFHz1FdjYwCuvXOHw4cP07dsXCwv5eBrTiRMnsLGxoVu3bmqXIkSTJ+kF\nLFyoPM+Yoeenn/4rA4KpICkpiezsbLp16yazWQlhAkaHe1lZGf7+/jz166Arubm5jBkzBnd3d8aO\nHUteXp7JimxIx4/D9u3QqpWBvn134+TkRNuKaZZEozl58iQAPXv2VLkSIZoHo8P9008/pVevXpUj\n9IWFheHu7s6FCxfo1KkTq1evNlmRDaliGN9x49IoK7ssA4Kp5KeffgIk3IUwFaPCPS0tjV27djFj\nxgwMBgMAOp2O6dOnY2try7Rp04iKijJpoQ3h++/hwAHQasvw9t4hE2+o6JdffgGgR48eKlei/FVq\nrNLSUhNWIoTxjAr3uXPnsnz58hoXHKOjo/H29gbA29sbnU5nmgobiMGg9JABGDIkmv79PbGxsVG3\nqBbqxo0bpKWlodFo6N69u6q1xMTEsHXrVqO3X716deUolkKoqd63Xe7YsYN27drh7+9PZGRk5fqK\nM/i6WLx4ceVySEgIISEh9S3jge3dq8yNqtUW8fzzV3F27tToNQjF6dOnAXB2dm6UgdlSU1MJCwuj\nbdu26PV63nzzTQDOnDnD7t27WVhxhd0IkydPZs6cOaxcubLOv8vKlSvZu3cvWVlZrF69mn79+hl9\nfNF8REZG1sjY+qp3uB89epRt27axa9cuioqKuHXrFpMnTyYwMJC4uDj8/f2Ji4u754h91cNdDQYD\nLFmiLD/++Cl8fCTY1dSYTTJ6vZ5XXnmFGTNm8Msvv7Br1y5mz54NwPLly1mzZs0D7d/R0ZHf/e53\nzJs3jy+++KJOPX/mzp1Lx44d+fTTTyuHNBbi9hPfJRWhVUf1bpZZunQpqampJCYmsnHjRoYPH86X\nX35JUFAQ4eHhFBYWEh4ezoABA+q760Zz4IDSS6Z160Jeekl6g6qtItwb42L2sWPHuHz5MgEBAYwZ\nM4awsDBsbW356quvGDx4sEm6wD7xxBNYWVlx6NChOm9z8uRJevXqJU2DwmQeONkqLkCGhoaSkpKC\nl5cX6enpzJw584GLayh/+YsegIkTM2jTRsJdTWVlZZw9exZonHA/ceIETk5OdOzYkd69e+Pr60tx\ncTHr16/nd7/7ncmO8/LLL7Nly5Y6v//nn38mICDAZMcX4oGGOhw6dGjl0KxarZaIiAiTFNWQDh2C\nY8esad26mD/8IUftclq8xMREioqK0Gg0jRLusbGx9O7du8a6mJgY2rdvj7Ozs8mO0717d2JiYkhL\nS6NTp3s3+6WlpXH9+nUJd2FSLW4c23ffVZ5HjTqLg0O5usUI4uLiALCysmrQYQeWLl3KlStXOHXq\nFF27dmXWrFm4u7vz+uuvc/To0XvOi5uQkMCOHTsoKSkhLy+P+fPn8+WXX5KTk0NWVhavvvoq7du3\nr7FN69atcXFx4dChQ/zhD3+o8dq5c+c4ePAger2enJwcvLy8sLS0vKMGY44rRIUWFe4//ggHD4KD\nQxmjRsUBXmqX1OJVNMl4eHg06Jj58+fPJz09nbFjx/Lyyy/XuFB19uxZnn766Vq3y8jIICIigrlz\n5wLw1ltvMXnyZObNm4dWq2Xq1KkEBgYyduzYO7bt0qULly9frrHu+PHjLFq0iPXr19O2bVuSkpKY\nMGECvXv3rtHe/yDHFQJa2NgyS5cqz5MmZdOqVYm6xQigKty9vBr+i/b8+fPAnXfBZmdno9Vqa93m\n66+/rnH9SK/XY2dnR//+/XFxcWHatGmMHDmy1m3d3d3JyMio/Pny5cu88847zJ07t3KIi65du9Kq\nVas7mmQe5LhCQAsK99OnYfdusLeHyZNvqF2OQLmYevHiRaBxhvmNj4/HwcGBhx9+uMb6e4X7+PHj\nsbe3r/w5Li6usieYm5sbf/7zn+86mUuXLl24cuVK5c+ff/45paWlDB8+vHJdQkICt27duiPcH+S4\nQkALCvcPP1SeZ8wAZ2fjby8XppOUlERJSQkajabRwr22sWs0Gg35+fm1blP9iyApKYlr167x6KOP\n1ul4ZWVllJcr13UMBgMxMTEMHDiwRnfHEydOYGFhccfsUw9yXCGghYR7UhJs3AiWlvDaa2pXIyrE\nx8cDysXUiqErGvp4tTX/ODs7k5SUdN/tY2JisLa25pFHHqlcl5aWdtf3JycnV84Fm5SUxM2bN+/4\ncomJicHHxwd7e3vS09NNclwhoIWE+8cfQ1kZTJgAXbuqXY2ocOHCBUC5M7WhJyC/efMmV69erbW7\npaurKykpKXesLykpYe3atZVNR0ePHsXDwwNbW1sACgoK+Prrr+96zOrh3rZtW6ytrencuXPl60VF\nRfz000/4+/sD8NVXX5nkuEJAC+gtc/06/POfyvKvQ4gIM1ERXo0xZ2rFxdTawt3X15dTp07dsf7E\niRN88cUX9OzZk9LSUq5cuVL5JaTX6/nnP//JxIkT73rMlJQURo8eDYCDgwOBgYGVXyKlpaWsWLEC\ngIceeogrV67QoUMHkxxXCGgB4f73v0NhIfz2tyDDdpiXinC//aaihnD+/Hm0Wm2tbe4DBw5k27Zt\nd6z39fVl9OjR6HQ6bGxsWLduHZ988glLly5Fq9UyevTou/Yzv3XrFjdu3GDQoEGV6xYuXMjGjRv5\n8MMPKSsr48UXX+Q3v/kN69atIy8vjylTpjzwcYWo0KzDvaBACXeA//1fdWsRNeXm5nLt2jU0Gk2j\nhPu5c+cIDAysdV5cf39/LCwsuHz5co0LmQ4ODvz1r3+t8d7XX3+9Tsc7f/48PXv2rLE/V1dXXnnl\nlRrvq21U1Ac5rhAVmnWb+5dfQlYW9O8PwcFqVyOqu3TpEgBt2rShawNdCPn222+ZNWsWoPSn/+1v\nf1vr+2xsbJg+fTqffPKJSY5bXl7O3//+d1588UWT7E8IYzTbcC8vh4r/q3PngkywZF4SEhIA7ugC\naEo7d+7EycmJM2fO4OLiUjkOUm3Gjx9PfHw8P/zwwwMfd/PmzVhbWzNkyJAH3pcQxmq24b53L5w7\nB506wbhxalcjblcR7hU9RRrClClTsLW15cCBA3c0c9zOysqKjz76iNWrV1NUVGT0Ma9du8a3337L\ne++9Z/Q+hDCFZtvmvnKl8vzKK2BtrW4t4k4V3SAb8sy9+qilddGjRw/efvttNm3axAsvvGDUMTds\n2MDy5cvlgqdQXbMM9zNnYN8+aNUK/vxntasRtblw4QL29vaNcvNSffTp0+eBumZWzOokhNqaZbNM\nRVv7H/8IJhyiW5hIRkYGubm59OnTp07T0Akh6q/Zhfu1a7B+vbIsJ1HmqWIkSJkIWoiG0+zCfe1a\nKC6GJ5+EWu5XEWagItzNeZ5dIZq6ZhXupaUQFqYsv/qqurWIuzt16hROTk6NcvOSEC1Vswr37dsh\nLQ08PUHmMTBPBQUFnDlzhqCgILVLEaJZa1bhXjHUwMsvQy13mQszEB0dTVlZGcFyy7AQDarZRGBc\nnDI/aqtWYGQXZdEAvvjiCyZMmEBpaSmgDAnQsWNHRo0apXJlQjRvRoV7amoqw4YNo3fv3oSEhLBh\nwwZAGQxqzJgxuLu7M3bsWPLy8kxa7L384x/K8+TJ4OTUaIcV93H06FE0Gg0ajYa0tDSOHz/On/70\np1oH8BJCmI5R/8Osra1ZuXIlsbGxfPPNNyxYsIDc3FzCwsJwd3fnwoULdOrUidWrV5u63lrdugX/\n+Y+y/PLLjXJIUUfDhg2jc+fOnDt3jnnz5uHp6XnXAbyEEKZj1B2q7du3r7y92tXVld69exMdHY1O\np2PBggXY2toybdo0li1bZtJi7+bLLyEvD4YMkTHbzc2zzz7L1atXmTt3Lv369WP+/Plo7jKKm8Fg\nYMOGDTg6OpKVlUVqaip//OMf6dSpUyNXLUTT98B/G1+8eJHY2Fj69+9PdHR05e3k3t7e6HS6By7w\nfgwGqPgDQc7azY9Wq+XNN9/ku+++Y9myZWi12ru+NywsDAsLC5588knGjBnDwYMHJdiFMNIDjS2T\nm5vLc889x8qVK3FwcMBgMNRpu8WLF1cu1zZZQX0cP66MJdOuHYwda/RuhMrS09P56quv+O677wDl\npCEgIEDlqoRQT2RkJJGRkUZvb3S46/V6xo0bx+TJkxkzZgwAgYGBxMXF4e/vT1xcHIGBgbVuWz3c\nH9QXXyjPU6eCjY3JdisaWXR0NL6+vtjb2wOg0+kIDAwkNzf3nmf7QjRXt5/4LlmypF7bG9UsYzAY\nmD59On369GHOnDmV64OCgggPD6ewsJDw8PAGv7385k3YtElZnjGjQQ8lGljbtm1p164doNzo9P33\n3/PII4+wf/9+lSsTomkyKtyPHDnC+vXrOXjwIP7+/vj7+7Nnzx5CQ0NJSUnBy8uL9PR0Zs6caep6\na1i/Xpn8esQI6NGjQQ8lGtiAAQPo0KED+/fv58KFCzz77LMcOHCALl26qF2aEE2SUc0ygwcPpry8\nvNbXIiIiHqigujIYqppkZMz2ps/S0rLGnKN+fn4qViNE09dk7ySJioJffoG2beVCqhBC3K7JhnvF\nWfsf/ygXUoUQ4nZNMtxzcmDjRmX5T39StxYhhDBHTTLcN29WLqQOHaoM7yuEEKKmJhnu//d/yvPU\nqaqWIYQQZqvJhXt8PBw5Aq1bw7hxalcjhBDmqcmFe8Xoj+PHg4ODurUIIYS5alLhXlYG69Ypy3/8\no6qlCCGEWWtS4X7woDJHarduILO0CSHE3TWpcK+4kPrCCzJHqhBC3EuTicicHPj2W2V5yhR1axFC\nCHPXZMJ90yYoKoJhw6BrV7WrEUII89Zkwl36tgshRN01iXA/fx6OHVO6Pj77rNrVCCGE+WsS4V7R\nt/33v1duXhJCCHFvZh/u0rddCCHqz+zD/dAhSE9X+rYPHqx2NUII0TSYfbhv2KA8T5wIGo26tQgh\nRFNh1uFeXAzffKMsT5yobi1CCNGUmHW4796t3LzUty/4+KhdjRBCNB1mHe5ffaU8T5igbh1CCNHU\nmG245+bCtm3K8vPPq1uLEEI0NSYP98OHD+Pj44Onpyeff/650fvZulUZbiA4GNzdTVigGTlx4oTa\nJZgN+SyqyGdRRT4L45k83GfPns2aNWvYv38///jHP7h+/bpR+2kJTTLyD7eKfBZV5LOoIp+F8Uwa\n7jk5OQAMGTKELl268NhjjxEVFVXv/Vy7Bt99B1ZWyoxLQggh6sfKlDuLjo7G29u78udevXpx/Phx\nnnjiiXrtZ/Nm5c7U//kfcHU1ZYUKjUZDdnY2P/30k+l3Xg8ZGRmq12Au5LOoIp9FFVN8FuXl5VhZ\nmTTqmgRVfmNNHe9G2r27+d+4tH37drVLMBvyWVSRz6KKqT6LWbNmmWQ/TYVJwz0wMJA33nij8ufY\n2FhGjx5d4z0Gg8GUhxRCCFELk7a5Ozo6AkqPmaSkJPbt20dQUJApDyGEEKIOTN4s88knn/Diiy+i\n1+uZNWsWrg3RaC6EEOKeTN4VcujQocTFxXHx4sUabVym6v/eHKSmpjJs2DB69+5NSEgIGypGR2uh\nysrK8Pf356mnnlK7FFXl5+fzwgsv0LNnz8rOCC3V2rVrGTRoEP369WPOnDlql9Oopk2bhpubG76+\nvpXrcnNzGTNmDO7u7owdO5a8vLz77qfR7lA1Vf/35sDa2pqVK1cSGxvLN998w4IFC8jNzVW7LNV8\n+umn9OrVq84X2purRYsW4e7uzunTpzl9+jQ+LXRApezsbJYuXcq+ffuIjo4mPj6evXv3ql1Wo5k6\ndSp79uypsS4sLAx3d3cuXLhAp06dWL169X330yjhbqr+781F+/bt6du3LwCurq707t2bmJgYlatS\nR1paGrt27WLGjBkt/mL7/v37mT9/PnZ2dlhZWVVew2pp7O3tMRgM5OTkUFhYSEFBAc7OzmqX1WiC\ng4Pv+H11Oh3Tp0/H1taWadOm1Sk/GyXc79b/XcDFixeJjY2lf//+apeiirlz57J8+XIsLMx2mKNG\nkZaWRlFREaGhoQQFBfHBBx9QVFSkdlmqsLe3JywsjK5du9K+fXt+85vftNj/HxWqZ6i3tzc6ne6+\n27Ts/1Eqy83N5bnnnmPlypW0boGTw+7YsYN27drh7+/f4s/ai4qKiI+PZ9y4cURGRhIbG8vXX3+t\ndlmquHbtGqGhoZw9e5akpCSOHTvGzp071S5LVcb8/2iUcA8MDOTcuXOVP8fGxjJgwIDGOLTZ0uv1\njBs3jsmTJzNmzBi1y1HF0aNH2bZtGx4eHkyYMIGDBw8yZcoUtctSRY8ePfDy8uKpp57C3t6eCRMm\nsHv3brXLUoVOp2PAgAH06NGDhx56iPHjx3P48GG1y1JVYGAgcXFxAMTFxREYGHjfbRol3KX/e00G\ng4Hp06fTp0+fFtcToLqlS5eSmppKYmIiGzduZPjw4ayrmA29BfL09CQqKory8nJ27tzJyJEj1S5J\nFcHBwcTExJCdnU1xcTG7d+/mscceU7ssVQUFBREeHk5hYSHh4eF1OjlutGaZiv7vI0eO5KWXXmrR\n/d+PHDnC+vXrOXjwIP7+/vj7+99xdbwlaum9ZT766CNmz55NQEAAdnZ2PN9CJzJo06YNCxYs4Jln\nnmHw4MH4+fkxbNgwtctqNBMmTGDQoEHEx8fTuXNn/v3vfxMaGkpKSgpeXl6kp6czc+bM++5HY2jp\njZ1CCNEMyQVVIYRohiTchRCiGZJwF0KIZkjCXQghmiEJdyGEaIYk3IUQohn6/0A3Dhj0UlGDAAAA\nAElFTkSuQmCC\n"
76 }
76 }
77 ],
77 ],
78 "prompt_number": 3
78 "prompt_number": 3
79 },
79 },
80 {
80 {
81 "cell_type": "markdown",
81 "cell_type": "markdown",
82 "source": [
82 "source": [
83 "Compute the integral both at high accuracy and with the trapezoid approximation"
83 "Compute the integral both at high accuracy and with the trapezoid approximation"
84 ]
84 ]
85 },
85 },
86 {
86 {
87 "cell_type": "code",
87 "cell_type": "code",
88 "collapsed": false,
88 "collapsed": false,
89 "input": [
89 "input": [
90 "from scipy.integrate import quad, trapz",
90 "from scipy.integrate import quad, trapz",
91 "integral, error = quad(f, 1, 9)",
91 "integral, error = quad(f, 1, 9)",
92 "print \"The integral is:\", integral, \"+/-\", error",
92 "print \"The integral is:\", integral, \"+/-\", error",
93 "print \"The trapezoid approximation with\", len(xint), \"points is:\", trapz(yint, xint)"
93 "print \"The trapezoid approximation with\", len(xint), \"points is:\", trapz(yint, xint)"
94 ],
94 ],
95 "language": "python",
95 "language": "python",
96 "outputs": [
96 "outputs": [
97 {
97 {
98 "output_type": "stream",
98 "output_type": "stream",
99 "stream": "stdout",
99 "stream": "stdout",
100 "text": [
100 "text": [
101 "The integral is: 680.0 +/- 7.54951656745e-12",
101 "The integral is: 680.0 +/- 7.54951656745e-12",
102 "The trapezoid approximation with 6 points is: 621.286411141"
102 "The trapezoid approximation with 6 points is: 621.286411141"
103 ]
103 ]
104 }
104 }
105 ],
105 ],
106 "prompt_number": 4
106 "prompt_number": 4
107 },
107 },
108 {
108 {
109 "cell_type": "code",
109 "cell_type": "code",
110 "collapsed": true,
110 "collapsed": true,
111 "input": [],
111 "input": [],
112 "language": "python",
112 "language": "python",
113 "outputs": []
113 "outputs": []
114 }
114 }
115 ]
115 ]
@@ -1,89 +1,89 b''
1 {
1 {
2 "metadata": {
2 "metadata": {
3 "name": "helloworld"
3 "name": "helloworld"
4 },
4 },
5 "nbformat": 2,
5 "nbformat": 3,
6 "worksheets": [
6 "worksheets": [
7 {
7 {
8 "cells": [
8 "cells": [
9 {
9 {
10 "cell_type": "markdown",
10 "cell_type": "markdown",
11 "source": [
11 "source": [
12 "# Distributed hello world",
12 "# Distributed hello world",
13 "",
13 "",
14 "Originally by Ken Kinder (ken at kenkinder dom com)"
14 "Originally by Ken Kinder (ken at kenkinder dom com)"
15 ]
15 ]
16 },
16 },
17 {
17 {
18 "cell_type": "code",
18 "cell_type": "code",
19 "collapsed": true,
19 "collapsed": true,
20 "input": [
20 "input": [
21 "from IPython.parallel import Client"
21 "from IPython.parallel import Client"
22 ],
22 ],
23 "language": "python",
23 "language": "python",
24 "outputs": [],
24 "outputs": [],
25 "prompt_number": 1
25 "prompt_number": 1
26 },
26 },
27 {
27 {
28 "cell_type": "code",
28 "cell_type": "code",
29 "collapsed": true,
29 "collapsed": true,
30 "input": [
30 "input": [
31 "rc = Client()",
31 "rc = Client()",
32 "view = rc.load_balanced_view()"
32 "view = rc.load_balanced_view()"
33 ],
33 ],
34 "language": "python",
34 "language": "python",
35 "outputs": [],
35 "outputs": [],
36 "prompt_number": 2
36 "prompt_number": 2
37 },
37 },
38 {
38 {
39 "cell_type": "code",
39 "cell_type": "code",
40 "collapsed": true,
40 "collapsed": true,
41 "input": [
41 "input": [
42 "def sleep_and_echo(t, msg):",
42 "def sleep_and_echo(t, msg):",
43 " import time",
43 " import time",
44 " time.sleep(t)",
44 " time.sleep(t)",
45 " return msg"
45 " return msg"
46 ],
46 ],
47 "language": "python",
47 "language": "python",
48 "outputs": [],
48 "outputs": [],
49 "prompt_number": 3
49 "prompt_number": 3
50 },
50 },
51 {
51 {
52 "cell_type": "code",
52 "cell_type": "code",
53 "collapsed": true,
53 "collapsed": true,
54 "input": [
54 "input": [
55 "world = view.apply_async(sleep_and_echo, 3, 'World!')",
55 "world = view.apply_async(sleep_and_echo, 3, 'World!')",
56 "hello = view.apply_async(sleep_and_echo, 2, 'Hello')"
56 "hello = view.apply_async(sleep_and_echo, 2, 'Hello')"
57 ],
57 ],
58 "language": "python",
58 "language": "python",
59 "outputs": [],
59 "outputs": [],
60 "prompt_number": 4
60 "prompt_number": 4
61 },
61 },
62 {
62 {
63 "cell_type": "code",
63 "cell_type": "code",
64 "collapsed": false,
64 "collapsed": false,
65 "input": [
65 "input": [
66 "print \"Submitted tasks:\", hello.msg_ids, world.msg_ids",
66 "print \"Submitted tasks:\", hello.msg_ids, world.msg_ids",
67 "print hello.get(), world.get()"
67 "print hello.get(), world.get()"
68 ],
68 ],
69 "language": "python",
69 "language": "python",
70 "outputs": [
70 "outputs": [
71 {
71 {
72 "output_type": "stream",
72 "output_type": "stream",
73 "stream": "stdout",
73 "stream": "stdout",
74 "text": [
74 "text": [
75 "Submitted tasks: ['dd1052e0-aa75-4b25-9d35-ecbdaf6e3ed7'] ['1b46aa21-20d1-459c-bc36-2d8d03336f74']",
75 "Submitted tasks: ['dd1052e0-aa75-4b25-9d35-ecbdaf6e3ed7'] ['1b46aa21-20d1-459c-bc36-2d8d03336f74']",
76 "Hello"
76 "Hello"
77 ]
77 ]
78 },
78 },
79 {
79 {
80 "output_type": "stream",
80 "output_type": "stream",
81 "stream": "stdout",
81 "stream": "stdout",
82 "text": [
82 "text": [
83 " World!"
83 " World!"
84 ]
84 ]
85 }
85 }
86 ],
86 ],
87 "prompt_number": 5
87 "prompt_number": 5
88 }
88 }
89 ]
89 ]
@@ -1,221 +1,221 b''
1 {
1 {
2 "metadata": {
2 "metadata": {
3 "name": "parallel_mpi"
3 "name": "parallel_mpi"
4 },
4 },
5 "nbformat": 2,
5 "nbformat": 3,
6 "worksheets": [
6 "worksheets": [
7 {
7 {
8 "cells": [
8 "cells": [
9 {
9 {
10 "cell_type": "markdown",
10 "cell_type": "markdown",
11 "source": [
11 "source": [
12 "# Simple usage of a set of MPI engines",
12 "# Simple usage of a set of MPI engines",
13 "",
13 "",
14 "This example assumes you've started a cluster of N engines (4 in this example) as part",
14 "This example assumes you've started a cluster of N engines (4 in this example) as part",
15 "of an MPI world. ",
15 "of an MPI world. ",
16 "",
16 "",
17 "Our documentation describes [how to create an MPI profile](http://ipython.org/ipython-doc/dev/parallel/parallel_process.html#using-ipcluster-in-mpiexec-mpirun-mode)",
17 "Our documentation describes [how to create an MPI profile](http://ipython.org/ipython-doc/dev/parallel/parallel_process.html#using-ipcluster-in-mpiexec-mpirun-mode)",
18 "and explains [basic MPI usage of the IPython cluster](http://ipython.org/ipython-doc/dev/parallel/parallel_mpi.html).",
18 "and explains [basic MPI usage of the IPython cluster](http://ipython.org/ipython-doc/dev/parallel/parallel_mpi.html).",
19 "",
19 "",
20 "",
20 "",
21 "For the simplest possible way to start 4 engines that belong to the same MPI world, ",
21 "For the simplest possible way to start 4 engines that belong to the same MPI world, ",
22 "you can run this in a terminal or antoher notebook:",
22 "you can run this in a terminal or antoher notebook:",
23 "",
23 "",
24 "<pre>",
24 "<pre>",
25 "ipcluster start --engines=MPI -n 4",
25 "ipcluster start --engines=MPI -n 4",
26 "</pre>",
26 "</pre>",
27 "",
27 "",
28 "Note: to run the above in a notebook, use a *new* notebook and prepend the command with `!`, but do not run",
28 "Note: to run the above in a notebook, use a *new* notebook and prepend the command with `!`, but do not run",
29 "it in *this* notebook, as this command will block until you shut down the cluster. To stop the cluster, use ",
29 "it in *this* notebook, as this command will block until you shut down the cluster. To stop the cluster, use ",
30 "the 'Interrupt' button on the left, which is the equivalent of sending `Ctrl-C` to the kernel.",
30 "the 'Interrupt' button on the left, which is the equivalent of sending `Ctrl-C` to the kernel.",
31 "",
31 "",
32 "Once the cluster is running, we can connect to it and open a view into it:"
32 "Once the cluster is running, we can connect to it and open a view into it:"
33 ]
33 ]
34 },
34 },
35 {
35 {
36 "cell_type": "code",
36 "cell_type": "code",
37 "collapsed": true,
37 "collapsed": true,
38 "input": [
38 "input": [
39 "from IPython.parallel import Client",
39 "from IPython.parallel import Client",
40 "c = Client()",
40 "c = Client()",
41 "view = c[:]"
41 "view = c[:]"
42 ],
42 ],
43 "language": "python",
43 "language": "python",
44 "outputs": [],
44 "outputs": [],
45 "prompt_number": 21
45 "prompt_number": 21
46 },
46 },
47 {
47 {
48 "cell_type": "markdown",
48 "cell_type": "markdown",
49 "source": [
49 "source": [
50 "Let's define a simple function that gets the MPI rank from each engine."
50 "Let's define a simple function that gets the MPI rank from each engine."
51 ]
51 ]
52 },
52 },
53 {
53 {
54 "cell_type": "code",
54 "cell_type": "code",
55 "collapsed": true,
55 "collapsed": true,
56 "input": [
56 "input": [
57 "@view.remote(block=True)",
57 "@view.remote(block=True)",
58 "def mpi_rank():",
58 "def mpi_rank():",
59 " from mpi4py import MPI",
59 " from mpi4py import MPI",
60 " comm = MPI.COMM_WORLD",
60 " comm = MPI.COMM_WORLD",
61 " return comm.Get_rank()"
61 " return comm.Get_rank()"
62 ],
62 ],
63 "language": "python",
63 "language": "python",
64 "outputs": [],
64 "outputs": [],
65 "prompt_number": 22
65 "prompt_number": 22
66 },
66 },
67 {
67 {
68 "cell_type": "code",
68 "cell_type": "code",
69 "collapsed": false,
69 "collapsed": false,
70 "input": [
70 "input": [
71 "mpi_rank()"
71 "mpi_rank()"
72 ],
72 ],
73 "language": "python",
73 "language": "python",
74 "outputs": [
74 "outputs": [
75 {
75 {
76 "output_type": "pyout",
76 "output_type": "pyout",
77 "prompt_number": 23,
77 "prompt_number": 23,
78 "text": [
78 "text": [
79 "[3, 0, 2, 1]"
79 "[3, 0, 2, 1]"
80 ]
80 ]
81 }
81 }
82 ],
82 ],
83 "prompt_number": 23
83 "prompt_number": 23
84 },
84 },
85 {
85 {
86 "cell_type": "markdown",
86 "cell_type": "markdown",
87 "source": [
87 "source": [
88 "For interactive convenience, we load the parallel magic extensions and make this view",
88 "For interactive convenience, we load the parallel magic extensions and make this view",
89 "the active one for the automatic parallelism magics.",
89 "the active one for the automatic parallelism magics.",
90 "",
90 "",
91 "This is not necessary and in production codes likely won't be used, as the engines will ",
91 "This is not necessary and in production codes likely won't be used, as the engines will ",
92 "load their own MPI codes separately. But it makes it easy to illustrate everything from",
92 "load their own MPI codes separately. But it makes it easy to illustrate everything from",
93 "within a single notebook here."
93 "within a single notebook here."
94 ]
94 ]
95 },
95 },
96 {
96 {
97 "cell_type": "code",
97 "cell_type": "code",
98 "collapsed": true,
98 "collapsed": true,
99 "input": [
99 "input": [
100 "%load_ext parallelmagic",
100 "%load_ext parallelmagic",
101 "view.activate()"
101 "view.activate()"
102 ],
102 ],
103 "language": "python",
103 "language": "python",
104 "outputs": [],
104 "outputs": [],
105 "prompt_number": 4
105 "prompt_number": 4
106 },
106 },
107 {
107 {
108 "cell_type": "markdown",
108 "cell_type": "markdown",
109 "source": [
109 "source": [
110 "Use the autopx magic to make the rest of this cell execute on the engines instead",
110 "Use the autopx magic to make the rest of this cell execute on the engines instead",
111 "of locally"
111 "of locally"
112 ]
112 ]
113 },
113 },
114 {
114 {
115 "cell_type": "code",
115 "cell_type": "code",
116 "collapsed": true,
116 "collapsed": true,
117 "input": [
117 "input": [
118 "view.block = True"
118 "view.block = True"
119 ],
119 ],
120 "language": "python",
120 "language": "python",
121 "outputs": [],
121 "outputs": [],
122 "prompt_number": 24
122 "prompt_number": 24
123 },
123 },
124 {
124 {
125 "cell_type": "code",
125 "cell_type": "code",
126 "collapsed": false,
126 "collapsed": false,
127 "input": [
127 "input": [
128 "%autopx"
128 "%autopx"
129 ],
129 ],
130 "language": "python",
130 "language": "python",
131 "outputs": [
131 "outputs": [
132 {
132 {
133 "output_type": "stream",
133 "output_type": "stream",
134 "stream": "stdout",
134 "stream": "stdout",
135 "text": [
135 "text": [
136 "%autopx enabled"
136 "%autopx enabled"
137 ]
137 ]
138 }
138 }
139 ],
139 ],
140 "prompt_number": 32
140 "prompt_number": 32
141 },
141 },
142 {
142 {
143 "cell_type": "markdown",
143 "cell_type": "markdown",
144 "source": [
144 "source": [
145 "With autopx enabled, the next cell will actually execute *entirely on each engine*:"
145 "With autopx enabled, the next cell will actually execute *entirely on each engine*:"
146 ]
146 ]
147 },
147 },
148 {
148 {
149 "cell_type": "code",
149 "cell_type": "code",
150 "collapsed": true,
150 "collapsed": true,
151 "input": [
151 "input": [
152 "from mpi4py import MPI",
152 "from mpi4py import MPI",
153 "",
153 "",
154 "comm = MPI.COMM_WORLD",
154 "comm = MPI.COMM_WORLD",
155 "size = comm.Get_size()",
155 "size = comm.Get_size()",
156 "rank = comm.Get_rank()",
156 "rank = comm.Get_rank()",
157 "",
157 "",
158 "if rank == 0:",
158 "if rank == 0:",
159 " data = [(i+1)**2 for i in range(size)]",
159 " data = [(i+1)**2 for i in range(size)]",
160 "else:",
160 "else:",
161 " data = None",
161 " data = None",
162 "data = comm.scatter(data, root=0)",
162 "data = comm.scatter(data, root=0)",
163 "",
163 "",
164 "assert data == (rank+1)**2, 'data=%s, rank=%s' % (data, rank)"
164 "assert data == (rank+1)**2, 'data=%s, rank=%s' % (data, rank)"
165 ],
165 ],
166 "language": "python",
166 "language": "python",
167 "outputs": [],
167 "outputs": [],
168 "prompt_number": 29
168 "prompt_number": 29
169 },
169 },
170 {
170 {
171 "cell_type": "markdown",
171 "cell_type": "markdown",
172 "source": [
172 "source": [
173 "Though the assertion at the end of the previous block validated the code, we can now ",
173 "Though the assertion at the end of the previous block validated the code, we can now ",
174 "pull the 'data' variable from all the nodes for local inspection.",
174 "pull the 'data' variable from all the nodes for local inspection.",
175 "First, don't forget to toggle off `autopx` mode so code runs again in the notebook:"
175 "First, don't forget to toggle off `autopx` mode so code runs again in the notebook:"
176 ]
176 ]
177 },
177 },
178 {
178 {
179 "cell_type": "code",
179 "cell_type": "code",
180 "collapsed": false,
180 "collapsed": false,
181 "input": [
181 "input": [
182 "%autopx"
182 "%autopx"
183 ],
183 ],
184 "language": "python",
184 "language": "python",
185 "outputs": [
185 "outputs": [
186 {
186 {
187 "output_type": "stream",
187 "output_type": "stream",
188 "stream": "stdout",
188 "stream": "stdout",
189 "text": [
189 "text": [
190 "%autopx disabled"
190 "%autopx disabled"
191 ]
191 ]
192 }
192 }
193 ],
193 ],
194 "prompt_number": 33
194 "prompt_number": 33
195 },
195 },
196 {
196 {
197 "cell_type": "code",
197 "cell_type": "code",
198 "collapsed": false,
198 "collapsed": false,
199 "input": [
199 "input": [
200 "view['data']"
200 "view['data']"
201 ],
201 ],
202 "language": "python",
202 "language": "python",
203 "outputs": [
203 "outputs": [
204 {
204 {
205 "output_type": "pyout",
205 "output_type": "pyout",
206 "prompt_number": 34,
206 "prompt_number": 34,
207 "text": [
207 "text": [
208 "[16, 1, 9, 4]"
208 "[16, 1, 9, 4]"
209 ]
209 ]
210 }
210 }
211 ],
211 ],
212 "prompt_number": 34
212 "prompt_number": 34
213 },
213 },
214 {
214 {
215 "cell_type": "code",
215 "cell_type": "code",
216 "collapsed": true,
216 "collapsed": true,
217 "input": [],
217 "input": [],
218 "language": "python",
218 "language": "python",
219 "outputs": []
219 "outputs": []
220 }
220 }
221 ]
221 ]
@@ -1,89 +1,118 b''
1 {
1 {
2 "nbformat": 2,
2 "metadata": {
3 "metadata": {
3 "name": "task1"
4 "name": "task_1"
4 },
5 },
5 "nbformat": 3,
6 "worksheets": [
6 "worksheets": [
7 {
7 {
8 "cells": [
8 "cells": [
9 {
9 {
10 "source": "# Simple task farming example",
10 "cell_type": "markdown",
11 "cell_type": "markdown"
11 "source": [
12 },
12 "# Simple task farming example"
13 {
13 ]
14 "cell_type": "code",
14 },
15 "language": "python",
15 {
16 "outputs": [],
16 "cell_type": "code",
17 "collapsed": true,
17 "collapsed": true,
18 "prompt_number": 3,
18 "input": [
19 "input": "from IPython.parallel import Client"
19 "from IPython.parallel import Client"
20 },
20 ],
21 {
21 "language": "python",
22 "source": "A `Client.load_balanced_view` is used to get the object used for working with load balanced tasks.",
22 "outputs": [],
23 "cell_type": "markdown"
23 "prompt_number": 3
24 },
24 },
25 {
25 {
26 "cell_type": "code",
26 "cell_type": "markdown",
27 "language": "python",
27 "source": [
28 "outputs": [],
28 "A `Client.load_balanced_view` is used to get the object used for working with load balanced tasks."
29 "collapsed": true,
29 ]
30 "prompt_number": 4,
30 },
31 "input": "rc = Client()\nv = rc.load_balanced_view()"
31 {
32 },
32 "cell_type": "code",
33 {
33 "collapsed": true,
34 "source": "Set the variable `d` on all engines:",
34 "input": [
35 "cell_type": "markdown"
35 "rc = Client()",
36 },
36 "v = rc.load_balanced_view()"
37 {
37 ],
38 "cell_type": "code",
38 "language": "python",
39 "language": "python",
39 "outputs": [],
40 "outputs": [],
40 "prompt_number": 4
41 "collapsed": true,
41 },
42 "prompt_number": 5,
42 {
43 "input": "rc[:]['d'] = 30"
43 "cell_type": "markdown",
44 },
44 "source": [
45 {
45 "Set the variable `d` on all engines:"
46 "source": "Define a function that will be our task:",
46 ]
47 "cell_type": "markdown"
47 },
48 },
48 {
49 {
49 "cell_type": "code",
50 "cell_type": "code",
50 "collapsed": true,
51 "language": "python",
51 "input": [
52 "outputs": [],
52 "rc[:]['d'] = 30"
53 "collapsed": true,
53 ],
54 "prompt_number": 6,
54 "language": "python",
55 "input": "def task(a):\n return a, 10*d, a*10*d"
55 "outputs": [],
56 },
56 "prompt_number": 5
57 {
57 },
58 "source": "Run the task once:",
58 {
59 "cell_type": "markdown"
59 "cell_type": "markdown",
60 },
60 "source": [
61 {
61 "Define a function that will be our task:"
62 "cell_type": "code",
62 ]
63 "language": "python",
63 },
64 "outputs": [],
64 {
65 "collapsed": true,
65 "cell_type": "code",
66 "prompt_number": 7,
66 "collapsed": true,
67 "input": "ar = v.apply(task, 5)"
67 "input": [
68 },
68 "def task(a):",
69 {
69 " return a, 10*d, a*10*d"
70 "source": "Print the results:",
70 ],
71 "cell_type": "markdown"
71 "language": "python",
72 },
72 "outputs": [],
73 {
73 "prompt_number": 6
74 "cell_type": "code",
74 },
75 "language": "python",
75 {
76 "outputs": [
76 "cell_type": "markdown",
77 {
77 "source": [
78 "output_type": "stream",
78 "Run the task once:"
79 "text": "a, b, c: [5, 300, 1500]"
79 ]
80 }
80 },
81 ],
81 {
82 "collapsed": false,
82 "cell_type": "code",
83 "prompt_number": 8,
83 "collapsed": true,
84 "input": "print \"a, b, c: \", ar.get()"
84 "input": [
85 }
85 "ar = v.apply(task, 5)"
86 ]
86 ],
87 }
87 "language": "python",
88 ]
88 "outputs": [],
89 "prompt_number": 7
90 },
91 {
92 "cell_type": "markdown",
93 "source": [
94 "Print the results:"
95 ]
96 },
97 {
98 "cell_type": "code",
99 "collapsed": false,
100 "input": [
101 "print \"a, b, c: \", ar.get()"
102 ],
103 "language": "python",
104 "outputs": [
105 {
106 "output_type": "stream",
107 "stream": "stdout",
108 "text": [
109 "a, b, c: [5, 300, 1500]"
110 ]
111 }
112 ],
113 "prompt_number": 8
114 }
115 ]
116 }
117 ]
89 } No newline at end of file
118 }
@@ -1,106 +1,106 b''
1 {
1 {
2 "metadata": {
2 "metadata": {
3 "name": "taskmap"
3 "name": "taskmap"
4 },
4 },
5 "nbformat": 2,
5 "nbformat": 3,
6 "worksheets": [
6 "worksheets": [
7 {
7 {
8 "cells": [
8 "cells": [
9 {
9 {
10 "cell_type": "markdown",
10 "cell_type": "markdown",
11 "source": [
11 "source": [
12 "# Load balanced map and parallel function decorator"
12 "# Load balanced map and parallel function decorator"
13 ]
13 ]
14 },
14 },
15 {
15 {
16 "cell_type": "code",
16 "cell_type": "code",
17 "collapsed": true,
17 "collapsed": true,
18 "input": [
18 "input": [
19 "from IPython.parallel import Client"
19 "from IPython.parallel import Client"
20 ],
20 ],
21 "language": "python",
21 "language": "python",
22 "outputs": [],
22 "outputs": [],
23 "prompt_number": 1
23 "prompt_number": 1
24 },
24 },
25 {
25 {
26 "cell_type": "code",
26 "cell_type": "code",
27 "collapsed": false,
27 "collapsed": false,
28 "input": [
28 "input": [
29 "rc = Client()",
29 "rc = Client()",
30 "v = rc.load_balanced_view()"
30 "v = rc.load_balanced_view()"
31 ],
31 ],
32 "language": "python",
32 "language": "python",
33 "outputs": [],
33 "outputs": [],
34 "prompt_number": 3
34 "prompt_number": 3
35 },
35 },
36 {
36 {
37 "cell_type": "code",
37 "cell_type": "code",
38 "collapsed": false,
38 "collapsed": false,
39 "input": [
39 "input": [
40 "result = v.map(lambda x: 2*x, range(10))",
40 "result = v.map(lambda x: 2*x, range(10))",
41 "print \"Simple, default map: \", list(result)"
41 "print \"Simple, default map: \", list(result)"
42 ],
42 ],
43 "language": "python",
43 "language": "python",
44 "outputs": [
44 "outputs": [
45 {
45 {
46 "output_type": "stream",
46 "output_type": "stream",
47 "stream": "stdout",
47 "stream": "stdout",
48 "text": [
48 "text": [
49 "Simple, default map: "
49 "Simple, default map: "
50 ]
50 ]
51 },
51 },
52 {
52 {
53 "output_type": "stream",
53 "output_type": "stream",
54 "stream": "stdout",
54 "stream": "stdout",
55 "text": [
55 "text": [
56 "[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]"
56 "[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]"
57 ]
57 ]
58 }
58 }
59 ],
59 ],
60 "prompt_number": 4
60 "prompt_number": 4
61 },
61 },
62 {
62 {
63 "cell_type": "code",
63 "cell_type": "code",
64 "collapsed": false,
64 "collapsed": false,
65 "input": [
65 "input": [
66 "ar = v.map_async(lambda x: 2*x, range(10))",
66 "ar = v.map_async(lambda x: 2*x, range(10))",
67 "print \"Submitted tasks, got ids: \", ar.msg_ids",
67 "print \"Submitted tasks, got ids: \", ar.msg_ids",
68 "result = ar.get()",
68 "result = ar.get()",
69 "print \"Using a mapper: \", result"
69 "print \"Using a mapper: \", result"
70 ],
70 ],
71 "language": "python",
71 "language": "python",
72 "outputs": [
72 "outputs": [
73 {
73 {
74 "output_type": "stream",
74 "output_type": "stream",
75 "stream": "stdout",
75 "stream": "stdout",
76 "text": [
76 "text": [
77 "Submitted tasks, got ids: ['5100a4c7-73a4-4832-aa91-e774f6f3ede8', 'd0cae1cf-2b32-4092-9eb7-f17b43fb3849', 'e08d3ee2-f221-47fe-9556-ed938e692030', '065585e4-cdf9-4240-a5fe-e44b2ae5d023', 'd2162f23-68e5-4318-ba1e-e34fd03a72ac', '5b3b835f-2099-4a70-9896-d1aa810c77e6', 'e2c2a823-bd44-4f91-8db3-c154d0d86e56', '991e0c25-f98a-44b5-9d9e-889d4180b9a5', '4ad41221-28bd-482f-a300-97c404648161', '5b730eb3-e0bb-4cdd-b228-c3b8d158828a']",
77 "Submitted tasks, got ids: ['5100a4c7-73a4-4832-aa91-e774f6f3ede8', 'd0cae1cf-2b32-4092-9eb7-f17b43fb3849', 'e08d3ee2-f221-47fe-9556-ed938e692030', '065585e4-cdf9-4240-a5fe-e44b2ae5d023', 'd2162f23-68e5-4318-ba1e-e34fd03a72ac', '5b3b835f-2099-4a70-9896-d1aa810c77e6', 'e2c2a823-bd44-4f91-8db3-c154d0d86e56', '991e0c25-f98a-44b5-9d9e-889d4180b9a5', '4ad41221-28bd-482f-a300-97c404648161', '5b730eb3-e0bb-4cdd-b228-c3b8d158828a']",
78 "Using a mapper: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]"
78 "Using a mapper: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]"
79 ]
79 ]
80 }
80 }
81 ],
81 ],
82 "prompt_number": 5
82 "prompt_number": 5
83 },
83 },
84 {
84 {
85 "cell_type": "code",
85 "cell_type": "code",
86 "collapsed": false,
86 "collapsed": false,
87 "input": [
87 "input": [
88 "@v.parallel(block=True)",
88 "@v.parallel(block=True)",
89 "def f(x): return 2*x",
89 "def f(x): return 2*x",
90 "",
90 "",
91 "result = f.map(range(10))",
91 "result = f.map(range(10))",
92 "print \"Using a parallel function: \", result"
92 "print \"Using a parallel function: \", result"
93 ],
93 ],
94 "language": "python",
94 "language": "python",
95 "outputs": [
95 "outputs": [
96 {
96 {
97 "output_type": "stream",
97 "output_type": "stream",
98 "stream": "stdout",
98 "stream": "stdout",
99 "text": [
99 "text": [
100 "Using a parallel function: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]"
100 "Using a parallel function: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]"
101 ]
101 ]
102 }
102 }
103 ],
103 ],
104 "prompt_number": 6
104 "prompt_number": 6
105 }
105 }
106 ]
106 ]
1 NO CONTENT: file was removed
NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now