Changeset 3614
- Timestamp:
- 03/29/07 15:47:40 (2 years ago)
- Files:
-
- trunk/numpy/doc/swig/numpy_swig.html (modified) (11 diffs)
- trunk/numpy/doc/swig/numpy_swig.pdf (modified) (22 diffs)
- trunk/numpy/doc/swig/numpy_swig.txt (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/numpy/doc/swig/numpy_swig.html
r3597 r3614 6 6 <title>numpy.i: a SWIG Interface File for NumPy</title> 7 7 <meta name="author" content="Bill Spotz" /> 8 <meta name="date" content=" 18March, 2007" />8 <meta name="date" content="29 March, 2007" /> 9 9 <style type="text/css"> 10 10 … … 303 303 </tr> 304 304 <tr><th class="docinfo-name">Date:</th> 305 <td> 18March, 2007</td></tr>305 <td>29 March, 2007</td></tr> 306 306 </tbody> 307 307 </table> … … 315 315 <li><a class="reference" href="#in-place-arrays" id="id5" name="id5">In-Place Arrays</a></li> 316 316 <li><a class="reference" href="#argout-arrays" id="id6" name="id6">Argout Arrays</a></li> 317 <li><a class="reference" href="#other-common-types-bool" id="id7" name="id7">Other Common Types: bool</a></li> 318 <li><a class="reference" href="#other-common-types-complex" id="id8" name="id8">Other Common Types: complex</a></li> 317 <li><a class="reference" href="#output-arrays" id="id7" name="id7">Output Arrays</a></li> 318 <li><a class="reference" href="#other-common-types-bool" id="id8" name="id8">Other Common Types: bool</a></li> 319 <li><a class="reference" href="#other-common-types-complex" id="id9" name="id9">Other Common Types: complex</a></li> 319 320 </ul> 320 321 </li> 321 <li><a class="reference" href="#helper-functions" id="id 9" name="id9">Helper Functions</a><ul>322 <li><a class="reference" href="#macros" id="id1 0" name="id10">Macros</a></li>323 <li><a class="reference" href="#routines" id="id1 1" name="id11">Routines</a></li>322 <li><a class="reference" href="#helper-functions" id="id10" name="id10">Helper Functions</a><ul> 323 <li><a class="reference" href="#macros" id="id11" name="id11">Macros</a></li> 324 <li><a class="reference" href="#routines" id="id12" name="id12">Routines</a></li> 324 325 </ul> 325 326 </li> 326 <li><a class="reference" href="#beyond-the-provided-typemaps" id="id12" name="id12">Beyond the Provided Typemaps</a></li> 327 <li><a class="reference" href="#acknowledgements" id="id13" name="id13">Acknowledgements</a></li> 327 <li><a class="reference" href="#beyond-the-provided-typemaps" id="id13" name="id13">Beyond the Provided Typemaps</a><ul> 328 <li><a class="reference" href="#a-common-example" id="id14" name="id14">A Common Example</a></li> 329 <li><a class="reference" href="#other-situations" id="id15" name="id15">Other Situations</a></li> 330 <li><a class="reference" href="#a-final-note" id="id16" name="id16">A Final Note</a></li> 331 </ul> 332 </li> 333 <li><a class="reference" href="#acknowledgements" id="id17" name="id17">Acknowledgements</a></li> 328 334 </ul> 329 335 </div> … … 495 501 </blockquote> 496 502 <p>The first signature listed, <tt class="docutils literal"><span class="pre">(DATA_TYPE</span> <span class="pre">IN_ARRAY[ANY])</span></tt> is for 497 hard-coded one-dimensional arrays. Likewise, <tt class="docutils literal"><span class="pre">(DATA_TYPE</span> 498 <span class="pre">IN_ARRAY2[ANY][ANY])</span></tt> is for two-dimensional arrays.</p> 503 one-dimensional arrays with hard-coded dimensions. Likewise, 504 <tt class="docutils literal"><span class="pre">(DATA_TYPE</span> <span class="pre">IN_ARRAY2[ANY][ANY])</span></tt> is for two-dimensional arrays with 505 hard-coded dimensions.</p> 499 506 </div> 500 507 <div class="section"> … … 535 542 </div> 536 543 <div class="section"> 537 <h2><a class="toc-backref" href="#id7" id="other-common-types-bool" name="other-common-types-bool">Other Common Types: bool</a></h2> 544 <h2><a class="toc-backref" href="#id7" id="output-arrays" name="output-arrays">Output Arrays</a></h2> 545 <p>The <tt class="docutils literal"><span class="pre">numpy.i</span></tt> interface file does not support typemaps for output 546 arrays, for several reasons. First, C/C++ function return arguments 547 do not have names, so signatures for <tt class="docutils literal"><span class="pre">%typemap(out)</span></tt> do not include 548 names. This means that if <tt class="docutils literal"><span class="pre">numpy.i</span></tt> supported them, they would 549 apply to all pointer return arguments for the supported numeric 550 types. This seems too dangerous. Second, C/C++ return arguments are 551 limited to a single value. This prevents obtaining dimension 552 information in a general way. Third, arrays with hard-coded lengths 553 are not permitted as return arguments. In other words:</p> 554 <pre class="literal-block"> 555 double[3] newVector(double x, double y, double z); 556 </pre> 557 <p>is not legal C/C++ syntax. Therefore, we cannot provide typemaps of 558 the form:</p> 559 <pre class="literal-block"> 560 %typemap(out) (TYPE[ANY]); 561 </pre> 562 <p>If you run into a situation where a function or method is returning a 563 pointer to an array, your best bet is to write your own version of the 564 function to be wrapped, either with <tt class="docutils literal"><span class="pre">%extend</span></tt> for the case of class 565 methods or <tt class="docutils literal"><span class="pre">%ignore</span></tt> and <tt class="docutils literal"><span class="pre">%rename</span></tt> for the case of functions.</p> 566 </div> 567 <div class="section"> 568 <h2><a class="toc-backref" href="#id8" id="other-common-types-bool" name="other-common-types-bool">Other Common Types: bool</a></h2> 538 569 <p>Note that C++ type <tt class="docutils literal"><span class="pre">bool</span></tt> is not supported in the list in the 539 570 <a class="reference" href="#available-typemaps">Available Typemaps</a> section. NumPy bools are a single byte, while … … 552 583 </div> 553 584 <div class="section"> 554 <h2><a class="toc-backref" href="#id 8" id="other-common-types-complex" name="other-common-types-complex">Other Common Types: complex</a></h2>585 <h2><a class="toc-backref" href="#id9" id="other-common-types-complex" name="other-common-types-complex">Other Common Types: complex</a></h2> 555 586 <p>Typemap conversions for complex floating-point types is also not 556 587 supported automatically. This is because <a class="reference" href="http://www.python.org">python</a> and <a class="reference" href="http://numpy.scipy.org">NumPy</a> are … … 586 617 </div> 587 618 <div class="section"> 588 <h1><a class="toc-backref" href="#id 9" id="helper-functions" name="helper-functions">Helper Functions</a></h1>619 <h1><a class="toc-backref" href="#id10" id="helper-functions" name="helper-functions">Helper Functions</a></h1> 589 620 <p>The <tt class="docutils literal"><span class="pre">numpy.i</span></tt> file containes several macros and routines that it 590 621 uses internally to build its typemaps. However, these functions may 591 622 be useful elsewhere in your interface file.</p> 592 623 <div class="section"> 593 <h2><a class="toc-backref" href="#id1 0" id="macros" name="macros">Macros</a></h2>624 <h2><a class="toc-backref" href="#id11" id="macros" name="macros">Macros</a></h2> 594 625 <blockquote> 595 626 <dl class="docutils"> … … 613 644 </div> 614 645 <div class="section"> 615 <h2><a class="toc-backref" href="#id1 1" id="routines" name="routines">Routines</a></h2>646 <h2><a class="toc-backref" href="#id12" id="routines" name="routines">Routines</a></h2> 616 647 <blockquote> 617 648 <dl class="docutils"> … … 665 696 </div> 666 697 <div class="section"> 667 <h1><a class="toc-backref" href="#id1 2" id="beyond-the-provided-typemaps" name="beyond-the-provided-typemaps">Beyond the Provided Typemaps</a></h1>698 <h1><a class="toc-backref" href="#id13" id="beyond-the-provided-typemaps" name="beyond-the-provided-typemaps">Beyond the Provided Typemaps</a></h1> 668 699 <p>There are many C or C++ array/<a class="reference" href="http://numpy.scipy.org">NumPy</a> array situations not covered by 669 a simple <tt class="docutils literal"><span class="pre">%include</span> <span class="pre">"numpy.i"</span></tt> and subsequent <tt class="docutils literal"><span class="pre">%apply</span></tt> directives. 670 Nevertheless, <tt class="docutils literal"><span class="pre">numpy.i</span></tt> may still be helpful when you encounter 671 them.</p> 700 a simple <tt class="docutils literal"><span class="pre">%include</span> <span class="pre">"numpy.i"</span></tt> and subsequent <tt class="docutils literal"><span class="pre">%apply</span></tt> directives.</p> 701 <div class="section"> 702 <h2><a class="toc-backref" href="#id14" id="a-common-example" name="a-common-example">A Common Example</a></h2> 703 <p>Consider a reasonable prototype for a dot product function:</p> 704 <pre class="literal-block"> 705 double dot(int len, double* vec1, double* vec2); 706 </pre> 707 <p>The python interface that we want is:</p> 708 <pre class="literal-block"> 709 def dot(vec1, vec2): 710 </pre> 711 <p>The problem here is that there is one dimension argument and two array 712 arguments, and our typemaps are set up for dimensions that apply to a 713 single array (in fact, <a class="reference" href="http://www.swig.org">SWIG</a> does not provide a mechanism for 714 associating <tt class="docutils literal"><span class="pre">len</span></tt> with <tt class="docutils literal"><span class="pre">vec2</span></tt> that takes two python input 715 arguments). The recommended solution is the following:</p> 716 <pre class="literal-block"> 717 %apply (int DIM1, double* IN_ARRAY1) {(int len1, double* vec1), 718 (int len2, double* vec2)} 719 %rename (dot) my_dot; 720 %inline %{ 721 double my_dot(int len1, double* vec1, int len2, double* vec2) { 722 if (len1 != len2) { 723 PyErr_Format(PyExc_ValueError, 724 "Arrays of lengths (%d,%d) given", 725 len1, len2); 726 return 0.0; 727 } 728 return dot(len1, vec1, vec2); 729 } 730 %} 731 </pre> 732 <p>If the header file that contains the prototype for <tt class="docutils literal"><span class="pre">dot()</span></tt> also 733 contains other prototypes that you want to wrap, so that you need to 734 <tt class="docutils literal"><span class="pre">%include</span></tt> this header file, then you will also need a <tt class="docutils literal"><span class="pre">%ignore</span> 735 <span class="pre">dot;</span></tt> directive, placed after the <tt class="docutils literal"><span class="pre">%rename</span></tt> and before the 736 <tt class="docutils literal"><span class="pre">%include</span></tt> directives.</p> 737 </div> 738 <div class="section"> 739 <h2><a class="toc-backref" href="#id15" id="other-situations" name="other-situations">Other Situations</a></h2> 740 <p>There are other wrapping situations in which <tt class="docutils literal"><span class="pre">numpy.i</span></tt> may be 741 helpful when you encounter them.</p> 672 742 <blockquote> 673 743 <ul> … … 685 755 For example, if you had a three-dimensional array as a function 686 756 argument, you could cut-and-paste the appropriate two-dimensional 687 typemap into your interface file. The modification for the third757 typemap into your interface file. The modifications for the third 688 758 dimension would be trivial.</p> 689 759 </li> … … 704 774 </div> 705 775 <div class="section"> 706 <h1><a class="toc-backref" href="#id13" id="acknowledgements" name="acknowledgements">Acknowledgements</a></h1> 707 <p>Many people have worked to glue <a class="reference" href="http://www.swig.org">SWIG</a> and <a class="reference" href="http://numpy.scipy.org">NumPy</a> (and its 708 predecessors Numeric and numarray) together. The effort to 709 standardize this work into <tt class="docutils literal"><span class="pre">numpy.i</span></tt> began at the 2005 SciPy 710 Conference with a conversation between Fernando Perez and myself. 711 Fernando collected helper functions and typemaps from Michael Hunter, 712 Anna Omelchenko and Michael Sanner. Their work has made this end 713 result possible.</p> 776 <h2><a class="toc-backref" href="#id16" id="a-final-note" name="a-final-note">A Final Note</a></h2> 777 <p>When you use the <tt class="docutils literal"><span class="pre">%apply</span></tt> directive, as is usually necessary to use 778 <tt class="docutils literal"><span class="pre">numpy.i</span></tt>, it will remain in effect until you tell <a class="reference" href="http://www.swig.org">SWIG</a> that it 779 shouldn't be. If the arguments to the functions or methods that you 780 are wrapping have common names, such as <tt class="docutils literal"><span class="pre">length</span></tt> or <tt class="docutils literal"><span class="pre">vector</span></tt>, 781 these typemaps may get applied in situations you do not expect or 782 want. Therefore, it is always a good idea to add a <tt class="docutils literal"><span class="pre">%clear</span></tt> 783 directive after you are done with a specific typemap:</p> 784 <pre class="literal-block"> 785 %apply (double* IN_ARRAY1, int DIM1) {(double* vector, int length)} 786 %include "my_header.h" 787 %clear (double* vector, int length); 788 </pre> 789 <p>In general, you should target these typemap signatures specifically 790 where you want them, and then clear them after you are done.</p> 791 </div> 792 </div> 793 <div class="section"> 794 <h1><a class="toc-backref" href="#id17" id="acknowledgements" name="acknowledgements">Acknowledgements</a></h1> 795 <p>Many people have worked to glue <a class="reference" href="http://www.swig.org">SWIG</a> and <a class="reference" href="http://numpy.scipy.org">NumPy</a> together (as well 796 as <a class="reference" href="http://www.swig.org">SWIG</a> and the predecessors of <a class="reference" href="http://numpy.scipy.org">NumPy</a>, Numeric and numarray). 797 The effort to standardize this work into <tt class="docutils literal"><span class="pre">numpy.i</span></tt> began at the 2005 798 <a class="reference" href="http://scipy.org">SciPy</a> Conference with a conversation between 799 Fernando Perez and myself. Fernando collected helper functions and 800 typemaps from Michael Hunter, Anna Omelchenko and Michael Sanner. 801 Their work has made this end result possible.</p> 714 802 </div> 715 803 </div> 716 804 <div class="footer"> 717 805 <hr class="footer" /> 718 Generated on: 2007-03-2 5 03:02UTC.806 Generated on: 2007-03-29 20:45 UTC. 719 807 Generated by <a class="reference" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source. 720 808 trunk/numpy/doc/swig/numpy_swig.pdf
r3597 r3614 43 43 endobj 44 44 33 0 obj 45 << /S /GoTo /D (output-arrays.1) >> 46 endobj 47 36 0 obj 48 (Output Arrays) 49 endobj 50 37 0 obj 45 51 << /S /GoTo /D (other-common-types-bool.1) >> 46 52 endobj 47 360 obj53 40 0 obj 48 54 (Other Common Types: bool) 49 55 endobj 50 370 obj56 41 0 obj 51 57 << /S /GoTo /D (other-common-types-complex.1) >> 52 58 endobj 53 4 00 obj59 44 0 obj 54 60 (Other Common Types: complex) 55 61 endobj 56 4 10 obj62 45 0 obj 57 63 << /S /GoTo /D (helper-functions.0) >> 58 64 endobj 59 4 40 obj65 48 0 obj 60 66 (Helper Functions) 61 67 endobj 62 4 50 obj68 49 0 obj 63 69 << /S /GoTo /D (macros.1) >> 64 70 endobj 65 480 obj71 52 0 obj 66 72 (Macros) 67 73 endobj 68 490 obj74 53 0 obj 69 75 << /S /GoTo /D (routines.1) >> 70 76 endobj 71 5 20 obj77 56 0 obj 72 78 (Routines) 73 79 endobj 74 5 30 obj80 57 0 obj 75 81 << /S /GoTo /D (beyond-the-provided-typemaps.0) >> 76 82 endobj 77 560 obj83 60 0 obj 78 84 (Beyond the Provided Typemaps) 79 85 endobj 80 57 0 obj 86 61 0 obj 87 << /S /GoTo /D (a-common-example.1) >> 88 endobj 89 64 0 obj 90 (A Common Example) 91 endobj 92 65 0 obj 93 << /S /GoTo /D (other-situations.1) >> 94 endobj 95 68 0 obj 96 (Other Situations) 97 endobj 98 69 0 obj 99 << /S /GoTo /D (a-final-note.1) >> 100 endobj 101 72 0 obj 102 (A Final Note) 103 endobj 104 73 0 obj 81 105 << /S /GoTo /D (acknowledgements.0) >> 82 106 endobj 83 600 obj107 76 0 obj 84 108 (Acknowledgements) 85 109 endobj 86 610 obj87 << /S /GoTo /D [ 620 R /Fit ] >>88 endobj 89 640 obj <<90 /Length 2919110 77 0 obj 111 << /S /GoTo /D [78 0 R /Fit ] >> 112 endobj 113 80 0 obj << 114 /Length 1904 91 115 /Filter /FlateDecode 92 116 >> 93 117 stream 94 xÚœÉr×ñ®¯ÀLiߟ8¥D\rò!ÎÀ%JQŸ>Ýýy3oÈå 95 bÞ÷Xpø§æÁ,ÌZ#ëýŸž{o_£µeÚX'3w;å<S<èEgsʪZ2c¬_tN€µþêòÅWo4 8&96 ÑË« 97 ÐåÅw¹ùçòîBºåã 98 Xîïñèó 99 K§·ðùú¢Ó\/Wâ|ùwžò|ÞÁç-^àž}žã|ÖÛxï 100 bØÁ'ãý| 101 âé÷Dóýç]~÷âÏE 3R/¬ÂIÙ3pWCGÑÍŽÒä\Â]¡Öhæ Á¿E7 102 +àã«7ŸzJY&²@ ÁA2»|ÅÚ 103 JVîá] 104 pøßgDŸË:¡XÐÎÂww Þ#·Gbåö@Úlø0)ÄÀAî105 Ql±ÐJJ-¿_ 106 Ó 107 Þ]%6ÿºú|ÀBG·íçxÎTG<ÿ 108 Þ¶<JÍž®ŽÐb)|äéoø[£¯ Ê_F®$çnž0 109 dzàÚôu²ÔÝ<xÜÆ¯~ê>9üsÌIççÜßšùèÓ,xQîáëtëÇÚóSÂÂAM<¯VK*@ÉðÒ/ät(R:A#¢¬+ãM$`ÏA+§Dë 110 P"B@±Êýÿå7páwZþòÿ£¿%3åutÒGNA 111 R×)MU`h£ïðò9U És®O« QîùxaìrS Äæ*A!1çIJݯî)WLÕá=JVžgÕáöŽ6,Êߥ112 !JAÐ)UÖͪ£šïS 113 cnøö!EÈ*k£U FæjmHxŠX)Vûà114 Ÿg4¡º÷Ù!ÖÉŸD Ðhî䢊ÚVJÎD"+áÜ@ÈW.èÓJHP&Jz}øNà!åK«T³Q`\=§üíÂýù3Êÿ .šBn¢^ö{(t<Í=Z©ŽS%9ìŠ 115 Z3ÀïkfÚHÃæÃD[0ò2ÔïÑÐú°¿Ï9ö? ¬8è#5C ®ìîùê 116 ÎÄöÿɺRP=ÙîÙzÞ`9}Lw=jgªbVXµšI· 117 sù%EK ô¹XÊPš 118 ê9×Ôaµb,*¯ÂÛ ýÖÏ!$PâhÒÓBf(òÇ+£MïJ3?¢ÞAo^ãÍçsn³8»rîŸÚ~Æöð 119 òí 120 bµ|_zjÈV°µÞnæÓÃT 2Þ_3Ù&Ì.<£Ê ÝÞ»Ó*Ë@TPiàú%ù©åÓ.ê 121 ív¿-£ÈLY 122 ^[@[QSI ªeò)¶ÙËsR̵ÔôÄq<ø|o 123 ×0ÏÌÀ|ÑA øT'/Í¥W4ßÆÙ¡ôÐxý'L{Ô9ÜR"ÞKs3124 ËjÛ"ôUîŸî-^œË·òÔLýÌ 125 §SßvË JÀ 126 b<cÝßÕ4æmÑ¢"ÊJæí 127 ðhøÐ|#6ŠŠux 128 DTÆ-9PT-~éŒ!ÃE·qsO 129 Ëô{HW®*_O_ÍHàÓ¬i%ú2OÓ«!ï°nLrœTHš[/šI^ø 130 ÃUüúTòK<S]Ù« 131 ã4K4Wñ»_çÛ÷ÌMTP92úç5ªjuœíYk[ÅT~¡žaRó°ÞUð36 =ã_3ó0u¯t²ÊkÊkÐ)ì>ïú€dýÕ&5ò3:ÿ¡|â|®ª>ì3Tè46@n>;M,·#ç#GÜQÅ9Ædð¡ûDfŒ[Í·äÆé9ÎÙ']/qu©Ë§€kp3BµËÁì8Z_©¯b0µtj[@N6ÇsNá»úÖ 132 Ú3n# WÎNØhâ êq(FÐèØ1ñ@iwÑH€®Ãþ®bÙÞõ0)gÊðL ءЌŸ¢8Þq¹ 133 Ø5%Ç+ã 134 «ìJûx>émN{Ú×OíAa0f:û.@ñVÐw5XÙÝLßQ PøMÚÕ¢ëU»-È/$Ã>mŸSË?Ä'útúkÜ㥠135 ÌÇxzq øúcÛ;ttùßB!c(º 136 137 Û¡a!éÒlSá M4*-žj T)UÞÖó/AŽ|×GjÙ3àp¿äƧb²KzÙFÈð~ 138 úÓu+9ÚÝDöJ÷Ã^é?0c)'®ÉÎ" ×õV€q_ÅûÄQ¥SÃn zL0ŸPj139 .»Üj]g¿Fµ 140 Q1hMb 141 C±JèåÙ*³ÀïZsÏ~3WaV05æP°óåà»úÙz<F{® Æ 142 Ôï1MENPgk 143 ØË1ñI 144 ©·Û!4Þ-¬§~ /o¬JÁ³ÒXh·ýP¡÷ŽpuB¥ÚJìïÄ£Òçf8ìÔQát4Þu§µÁ/Ó~SÅ145 ýå¶Œ©åZTs·}ì>$Hßh¬îÞx¬ÉÿÖ9¶7ÃÔUQ{äÄMß4Û¥&|š_"|p«C÷-ÁÓÔ@xà}egC.g¢ÆhºœÂàæº=±VŸý6ûâf××3óa`KîÞ°>£/9í+`ð~®sÖdä 146 W 147 ¬ºË6ó 148 #X[ÏÉÙ@*Ǫé!GÍcÒar)$^5 4TÇxe¿EâQÿkBA¶ÀîÐYUFiDF~HýçcèâOIЬ7c§t.±] 149 É£4øÚÎ/p€°gwc Ÿ«ÙMÑNŽþSÐÙ®62Ôâ 150 2$þ2ªàfèñ0}€Ðz}L wy$æCMÇÜüÃádð"F7p 151 µ§;ßXVaÏórüv<Cq 152 ô.qÄÃc!?* ç-5Ó=µ4£È¢q\ip« 153 ýŠŒ/èOÑÐLCñrÛ 154 155 rv¹ÿ:~=N}M)OvwÃ"gòc*ÏSåãÃBXÜás=FïêZßmÐ"÷y¶Èù-²,8m&üL#(Cá¢AVEP=öÚaÞŠ4µÍE 156 ª°µcâÚºÀ÷MýcÝ€ºZ,ÈÉT·ÙgÈÊ}Œ?lû 157 Žü%ÏC!H=s,ãÉ@¡ÂŠnšÇìÈí 158 ËÍLaæÇ»\¹ÒÖ 159 žÈÑ~Ùô&kÑûCZ§%¡âܪ%jÕ7yáÆéa|V1[EÐùh%¡ûñOYJà_0¬rÒ&7ùeÄÓá»úÖ 160 Ž(JúYèF[ZAMLø8p:MœE 161 Ø8Ý¿}É¡qk^TôQWwQÛÐäuF/ÿMŸç²i 162 Í&X×ÐF\e€6,VGoq²²~Z\Þ¡ò*ÿh,/>gŒmz7÷>uãä«×9RŠ¡a8ÇÝÐ ~Ö/2xWÁ·n1Eú¥éÍ9ŠcfŠÙ-fÁsfep#Nlýrí;<L«PÛZ:É 163 z[LÃb¥ÝIà;ïàœÒ£zÈ®^}8³d 164 øÃzYL0]ÔFP0Lh'&äSLÉhœµrÞÿ =Õendstream165 endobj 166 62 0 obj << 118 xÚœYKsEŸûWìqMe'ÓópJ()b*à äµqaYÆR¯§{^í®µ@@åµéî¯{º¿AÃñ«â^7Öyff¹:áÍ5Ÿ;?$£aJ7o;i 119 Ü«Š3Yét-5%ÖÆ5ÏŒ0Ä_\<=ŸËhÕ\\5 ,ÓÒ¡YîâòÇöîTØöí)Ž«{ºúpj}Ëðö?ÏN;ÅU»8í$çík|ò?_áç 120 ÅË0Á¶žÂë~}|wF3Üâ'ÝÓû5~ 121 âíË óÕÓ/Ÿ>ùâ¢øãY-Tc^÷}ÏÂ]- 122 \WªA'0Ás.ð-ÈÆhŬ 123 àøs2`ûk± 124 íxzæªQÒ0¡¥AM$XŠ}ݺE?€šÜã;Ó®·xùggO}gê@2¯¬ 125 ~uâ²áfL¹Y4GvhÉ€ö°³ÐÑ wAS\Š`Q€l_.¶éÁÞ.ß,~F>ÐC W$×oŠlÎZ÷lþ<îÇ6 126 ÅžòV 127 ŽÂGŸ¥a€nI¹B?V ÎírЧTBI?Kº;ÅÛ>~mé¶¥ÆÄé¯åôêSÌ;(ïèÉÃuzõ}yI0xQ+ 128 WÃ¥P 129 Œpí6$ 130 ¹Ô!&DJeŒgq 131 Q9äZgQ£\ÙÉÿÝ4KýÏBäÿFh¯cz<r rXJ%h9éZég8qL$®î0Y(Ôw§ÚŽ\JpmîJ%r+q.,ýjqjÅçHQÍ= cLFCL¢aF 132 §ÓX1€ÚP 133 G+R¥Þ§5°µáùCZ!Æk±þ£qµÊñpLItŒËÿå-ª4ò0Eª ÐœÊ ±Lðw@@¢¡¹MuÜ)9A8B([̥² O¯×ÿ0 134 |aTS+ 135 ¯Í0öGôßhäeÚÏø¥ÈÿïÊ 136 øW«}Žc\k 137 ÔSécâ ¶38d©a@L¡|¶^°)ëa}ÜáP²M'tÔõí¡sÞŠ¶hN#xN 138 !,߯j=PúëÕ}î5ÂöjO7µAc°¿¢ïöxýUau·:FâÑþZ/ûÛï 3¢oóXîäÆÒZõž±(ìº\ 139 â?Íé 140 5SSAž÷20ͱ·Á«ç 141 ¹I\ëËAbWwNÍ"EN~¿Îe3SË~ÂYì÷(õü}Âr8^rKm×þðþ¡³/úD×qór»È^œVw ÚbôÓåá)$Bænj#'*&gÂÎîÿ6E€c\ªnQ€·ÐÔEòôùZ 142 »8B3«ŠÖ8Fè§PÇdRÆœ«Yê±ñ:%Ç6±ÅL]Ä:a%wM~Ì5²ÇDÜ˹¥ª|8«jF>+yNrúqSpÌpMm\!ÓvæxD ¥Â 143 ® E(ø 144 Îa~Kn*ñþ6äßýª/'$·à»ZëGHRcã4Î}SAæåã\<CÉM<UÈåðûòír{³8㚣 ÐÀT 145 %³«µ 146 ¿!ôý 147 E wé< 148 ¯EuJÓôUÞÜ9=œË¯òiZö×<Þ+ nÓžð²h± fÂ[ä»zÀ(Ÿãi rT{>4Óâ·gÆð:K 149 V>#Áž ¡¥/OJCÆÑ¿íÛx¢J£¶åTl\U_¯ÎHÁûÉÐ 150 $Ÿå-,lô¥2ØÜtd;U>M=ÎZ¥çÅ^Œ\į÷¥ßÆûxÚSÎ[·ñ+èX_ÅïÍ2¿Ÿ0 151 À1?¯CŸî7l 152 [ÉŽ®š3)Vä»zÀDÓ΀òãÁÌŠXQ 153 AS9ÜSŸD$l÷ùdy `qZ 154 üÄAå°yBR®Zè>dÞfÒÐýhDÒ_ÅÔ1 155 Y"ž:±úì¥^Ù`]àaÛø/}·'#cmCäûÅv7.xgÍ£ ÄÊB±5Ì·kL¶0Õmþ¹ §Ã 156 ¡PíH!ÔXU·Øš,3`.²|Ws4íL&Y,nÒ£ËÔrìIHÿÍŸò\¢Ž»€×zuWcùmg×xaKªéTòIÌÉq»ì,ìÝÉÎ2%+§'û9ò«J«x?`ü3íÙc¿ÑÌ*nþ1G!'¥¢PMŒ E¿L¿äPêU'ßXc«ô»Xj¥ÓÒÐ~GlÒíïñW%zó6ÞÞŹ¿>}ïpkýcÛü ÓUBã>ìqãš°f!rêŽàžÒ÷í×eªendstream 157 endobj 158 78 0 obj << 167 159 /Type /Page 168 /Contents 640 R169 /Resources 630 R160 /Contents 80 0 R 161 /Resources 79 0 R 170 162 /MediaBox [0 0 595.2757 841.8898] 171 /Parent 1 100 R172 /Annots [ 78 0 R 79 0 R 80 0 R 81 0 R 82 0 R 83 0 R 84 0 R 85 0 R 86 0 R 87 0 R 88 0 R 89 0 R 90 0 R 96 0 R 97 0 R 98 0 R 102 0 R 103 0 R 104 0 R 108 0 R 1090 R ]173 >> endobj 174 780 obj <<163 /Parent 122 0 R 164 /Annots [ 94 0 R 95 0 R 96 0 R 97 0 R 98 0 R 99 0 R 100 0 R 101 0 R 102 0 R 103 0 R 104 0 R 105 0 R 106 0 R 107 0 R 108 0 R 109 0 R 110 0 R 116 0 R 117 0 R 118 0 R ] 165 >> endobj 166 94 0 obj << 175 167 /Type /Annot 176 168 /Border[0 0 0]/H/I/C[1 0 0] 177 /Rect [98.3198 57 6.7316 154.7972 585.6381]169 /Rect [98.3198 572.1561 154.7972 581.0627] 178 170 /Subtype /Link 179 171 /A << /S /GoTo /D (introduction) >> 180 172 >> endobj 181 790 obj <<173 95 0 obj << 182 174 /Type /Annot 183 175 /Border[0 0 0]/H/I/C[1 0 0] 184 /Rect [98.3198 55 6.4352 162.5882 567.0851]176 /Rect [98.3198 550.2982 162.5882 560.9481] 185 177 /Subtype /Link 186 178 /A << /S /GoTo /D (using-numpy-i) >> 187 179 >> endobj 188 800 obj <<180 96 0 obj << 189 181 /Type /Annot 190 182 /Border[0 0 0]/H/I/C[1 0 0] 191 /Rect [98.3198 53 8.0715 189.1283 548.9107]183 /Rect [98.3198 530.3729 189.1283 541.2121] 192 184 /Subtype /Link 193 185 /A << /S /GoTo /D (available-typemaps) >> 194 186 >> endobj 195 810 obj <<187 97 0 obj << 196 188 /Type /Annot 197 189 /Border[0 0 0]/H/I/C[1 0 0] 198 /Rect [120.2376 51 9.7078 178.7476 530.3577]190 /Rect [120.2376 510.4476 178.7476 521.0976] 199 191 /Subtype /Link 200 192 /A << /S /GoTo /D (input-arrays) >> 201 193 >> endobj 202 820 obj <<194 98 0 obj << 203 195 /Type /Annot 204 196 /Border[0 0 0]/H/I/C[1 0 0] 205 /Rect [120.2376 505.3291 190.5034 516.1684]197 /Rect [120.2376 494.5074 190.5034 505.3466] 206 198 /Subtype /Link 207 199 /A << /S /GoTo /D (in-place-arrays) >> 208 200 >> endobj 209 830 obj <<201 99 0 obj << 210 202 /Type /Annot 211 203 /Border[0 0 0]/H/I/C[1 0 0] 212 /Rect [120.2376 4 90.9505 185.4226 501.6004]204 /Rect [120.2376 478.5672 185.4226 489.2171] 213 205 /Subtype /Link 214 206 /A << /S /GoTo /D (argout-arrays) >> 215 207 >> endobj 216 840 obj <<208 100 0 obj << 217 209 /Type /Annot 218 210 /Border[0 0 0]/H/I/C[1 0 0] 219 /Rect [120.2376 476.5719 245.8948 487.4111] 211 /Rect [120.2376 462.6269 186.7573 473.2769] 212 /Subtype /Link 213 /A << /S /GoTo /D (output-arrays) >> 214 >> endobj 215 101 0 obj << 216 /Type /Annot 217 /Border[0 0 0]/H/I/C[1 0 0] 218 /Rect [120.2376 446.6867 245.8948 457.5259] 220 219 /Subtype /Link 221 220 /A << /S /GoTo /D (other-common-types-bool) >> 222 221 >> endobj 223 850 obj <<222 102 0 obj << 224 223 /Type /Annot 225 224 /Border[0 0 0]/H/I/C[1 0 0] 226 /Rect [120.2376 4 62.1932 262.7715 473.0324]225 /Rect [120.2376 430.7465 262.7715 441.5857] 227 226 /Subtype /Link 228 227 /A << /S /GoTo /D (other-common-types-complex) >> 229 228 >> endobj 230 860 obj <<229 103 0 obj << 231 230 /Type /Annot 232 231 /Border[0 0 0]/H/I/C[1 0 0] 233 /Rect [98.3198 4 43.8295 174.6126 454.6688]232 /Rect [98.3198 410.8212 174.6126 421.6604] 234 233 /Subtype /Link 235 234 /A << /S /GoTo /D (helper-functions) >> 236 235 >> endobj 237 870 obj <<236 104 0 obj << 238 237 /Type /Annot 239 238 /Border[0 0 0]/H/I/C[1 0 0] 240 /Rect [120.2376 427.3985 153.5624 436.1158]239 /Rect [120.2376 392.8286 153.5624 401.5459] 241 240 /Subtype /Link 242 241 /A << /S /GoTo /D (macros) >> 243 242 >> endobj 244 880 obj <<243 105 0 obj << 245 244 /Type /Annot 246 245 /Border[0 0 0]/H/I/C[1 0 0] 247 /Rect [120.2376 413.0199 160.5759 421.7371]246 /Rect [120.2376 376.8884 160.5759 385.6056] 248 247 /Subtype /Link 249 248 /A << /S /GoTo /D (routines) >> 250 249 >> endobj 251 890 obj <<250 106 0 obj << 252 251 /Type /Annot 253 252 /Border[0 0 0]/H/I/C[1 0 0] 254 /Rect [98.3198 3 92.7235 240.5847 403.5627]253 /Rect [98.3198 355.0304 240.5847 365.8697] 255 254 /Subtype /Link 256 255 /A << /S /GoTo /D (beyond-the-provided-typemaps) >> 257 256 >> endobj 258 900 obj <<257 107 0 obj << 259 258 /Type /Annot 260 259 /Border[0 0 0]/H/I/C[1 0 0] 261 /Rect [98.3198 374.3598 182.5135 385.199] 260 /Rect [120.2376 335.1051 213.6367 345.9444] 261 /Subtype /Link 262 /A << /S /GoTo /D (a-common-example) >> 263 >> endobj 264 108 0 obj << 265 /Type /Annot 266 /Border[0 0 0]/H/I/C[1 0 0] 267 /Rect [120.2376 321.0976 194.7271 330.0042] 268 /Subtype /Link 269 /A << /S /GoTo /D (other-situations) >> 270 >> endobj 271 109 0 obj << 272 /Type /Annot 273 /Border[0 0 0]/H/I/C[1 0 0] 274 /Rect [120.2376 305.1574 179.6044 314.0639] 275 /Subtype /Link 276 /A << /S /GoTo /D (a-final-note) >> 277 >> endobj 278 110 0 obj << 279 /Type /Annot 280 /Border[0 0 0]/H/I/C[1 0 0] 281 /Rect [98.3198 283.2994 182.5135 294.1386] 262 282 /Subtype /Link 263 283 /A << /S /GoTo /D (acknowledgements) >> 264 284 >> endobj 265 96 0 obj <<266 /Type /Annot 267 /Border[0 0 0]/H/I/C[0 1 1] 268 /Rect [288.033 313.6803 317.1934 325.5408]285 116 0 obj << 286 /Type /Annot 287 /Border[0 0 0]/H/I/C[0 1 1] 288 /Rect [288.033 218.0445 317.1934 229.905] 269 289 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 270 290 >> endobj 271 97 0 obj <<272 /Type /Annot 273 /Border[0 0 0]/H/I/C[0 1 1] 274 /Rect [312.5275 302.2831 341.6879 313.1223]291 117 0 obj << 292 /Type /Annot 293 /Border[0 0 0]/H/I/C[0 1 1] 294 /Rect [312.5275 206.6473 341.6879 217.4865] 275 295 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 276 296 >> endobj 277 98 0 obj <<278 /Type /Annot 279 /Border[0 0 0]/H/I/C[0 1 1] 280 /Rect [350.8735 290.3279 380.0339 301.1671]297 118 0 obj << 298 /Type /Annot 299 /Border[0 0 0]/H/I/C[0 1 1] 300 /Rect [350.8735 194.6921 380.0339 205.5314] 281 301 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 282 302 >> endobj 283 102 0 obj << 284 /Type /Annot 285 /Border[0 0 0]/H/I/C[0 1 1] 286 /Rect [312.8897 232.8134 342.0501 243.6526] 287 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 288 >> endobj 289 103 0 obj << 290 /Type /Annot 291 /Border[0 0 0]/H/I/C[0 1 1] 292 /Rect [124.3686 184.9927 153.529 195.8319] 293 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 294 >> endobj 295 104 0 obj << 296 /Type /Annot 297 /Border[0 0 0]/H/I/C[0 1 1] 298 /Rect [105.5626 160.5244 137.9707 172.3849] 299 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.python.org)>> 300 >> endobj 301 108 0 obj << 302 /Type /Annot 303 /Border[0 0 0]/H/I/C[0 1 1] 304 /Rect [178.0471 149.1272 213.3644 159.9664] 305 /Subtype/Link/A<</Type/Action/S/URI/URI(http://numpy.scipy.org)>> 306 >> endobj 307 109 0 obj << 308 /Type /Annot 309 /Border[0 0 0]/H/I/C[0 1 1] 310 /Rect [145.9004 137.172 178.3085 148.0112] 311 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.python.org)>> 312 >> endobj 313 65 0 obj << 314 /D [62 0 R /XYZ 74.4095 789.6651 null] 315 >> endobj 316 66 0 obj << 317 /D [62 0 R /XYZ 74.4095 771.7323 null] 318 >> endobj 319 76 0 obj << 320 /D [62 0 R /XYZ 74.4095 617.2303 null] 303 81 0 obj << 304 /D [78 0 R /XYZ 74.4095 789.6651 null] 305 >> endobj 306 82 0 obj << 307 /D [78 0 R /XYZ 74.4095 771.7323 null] 308 >> endobj 309 92 0 obj << 310 /D [78 0 R /XYZ 74.4095 613.3264 null] 321 311 >> endobj 322 312 6 0 obj << 323 /D [ 62 0 R /XYZ 74.4095 617.2303null]324 >> endobj 325 770 obj <<326 /D [ 62 0 R /XYZ 74.4095 589.683null]327 >> endobj 328 91 0 obj <<329 /D [ 62 0 R /XYZ 74.4095 369.2974null]313 /D [78 0 R /XYZ 74.4095 613.3264 null] 314 >> endobj 315 93 0 obj << 316 /D [78 0 R /XYZ 74.4095 585.1076 null] 317 >> endobj 318 111 0 obj << 319 /D [78 0 R /XYZ 74.4095 274.333 null] 330 320 >> endobj 331 321 10 0 obj << 332 /D [ 62 0 R /XYZ 74.4095 369.2974null]333 >> endobj 334 95 0 obj <<335 /D [ 62 0 R /XYZ 74.4095 329.1224null]336 >> endobj 337 630 obj <<338 /Font << /F 40 69 0 R /F45 72 0 R /F8 75 0 R /F52 94 0 R /F57 101 0 R /F58 1070 R >>322 /D [78 0 R /XYZ 74.4095 274.333 null] 323 >> endobj 324 115 0 obj << 325 /D [78 0 R /XYZ 74.4095 233.4866 null] 326 >> endobj 327 79 0 obj << 328 /Font << /F39 85 0 R /F44 88 0 R /F8 91 0 R /F51 114 0 R /F56 121 0 R >> 339 329 /ProcSet [ /PDF /Text ] 340 330 >> endobj 341 1 250 obj <<342 /Length 3654331 141 0 obj << 332 /Length 4182 343 333 /Filter /FlateDecode 344 334 >> 345 335 stream 346 xÚœÙn#Çñ}¿BH<œÓÇôá<9×v8##â ¥(°HÊ¢Ž`øßSÕ×ô5$µÅ,çšîª®»ª[ô¢ôB "z3\(mœXmßô7ðíË7ÔÃ!€Æ×.~î"Ú¢E 347 1là3SA8ú¢S%Bšß_ŸyûnP0R2yqy}aáTÑêòê«%]¬áº^vãžÝÂuëû~èý-Büè^Qøùtù¯Ë?Ÿ}§É;{«€âäÏ·8öÁN`Gdô0Mž±BØ M57Õd0LxÀç%SýÞÁuµìá÷ð#a<<ÅSŒùârb€=ÈIP¢ 348 ð<ÆO7 349 æÛ¡ŸKXætÓ"}ß iÛ¿Â/% 350 ÃõÀ 351 : 352 qFšãØc(OcÛxÈŠÇýuý\.=WQöp!ñï=o×µ(ž Ü0èÃrñÎ[>YvŒÔ»I0ž}ŽZdEc§ÅÏ7øò¶A(óæßÕhB: 353 ëÿxü%+Œ[_¹O×þí~Û ö sâŽjv÷DT 354 R¿ÌÀUïL[ÔÖ pÍSwV1:ÑÓ@)²wF¯Yxœñ£nÜÛ{àp@êqìãŒìÇÉ8üs÷cöäWæZe'~ñÜ@ú@))355 ÞÒT/aðj]ê3Wð¬^1CŽ6ü]Eø. 356 Piv=í »L€RCAGéiÔqìr"59öb¿·rÊÊËë5r{µG 357 Š!ð*0~ïy쬞À 358 aÑ\eJÃõ&cR=ëê 359 à{?wTí_šLZE1\ÐS~/ÀwéÚïUÓâîQ^<M·nÝ%=TÏr 360 1 ã4°€Îi8¬ÎÈi,ž€Úž 361 `ͳ.z²õÌh{æ}Lê}ÒJÌZ7~ 362 yLvpµ÷:DåœûÎ1Úº òàÞ¯ÇêÑS9^Ucª]Èz»öª 363 b±ç 364 7jZƪ7À8T]B>ÚÐaáÆ+åéÁŒ2ÐPÂYÍ;,}!¶ÄÞñ!ògËÁÉFP¶âW d7ìŽÏ¶ü©9G{F~è:ZA\ ŠúHOXdïҵϪŠ=á1Ö365 FPÐQb:=dÁެg\·ÎY+âqÎ[Q:~€ø² 366 íäö9jà(Sº åê![çR3HàŽ<! Þ¥ðªIôëë/+_H%å¥3PÇqSæÒó367 wTÝ=Jà#î'£9¬Ãï·œÕx8VP 368 Ó?lËIfÄTD»4b°ŠÎàŸï©ÉÇñïèûíÚ;,?"ÄaëŸâR 369 %Ñ[k÷HoŽËÛ0sPbA 370 /r4çÐ3¬¬LnPséëÁvAš"ègTåíÆ{q¿ÜÅB+÷>øž}²ñ€UõÂ1vsë«Õ®v 0o¹µ£!TBñ UO(å§*¢ß¥êÌöžpÙcéÊ 371 2 372 #P'KÈ©Ê×nýÚ:µ×Ï;ïŒxn±Ï{ 373 ÝÏÁιI><GPc¹ÚÍh.º vt=-ÜnǬAºai Ž9 374 ÷ 375 Öfg]ñ]ð©<aù8¥3U`÷îÚÑ=zÍmb%,`¶¶÷\d«ÈÙ>pF OÀÑÑBºA³Å»% 376 p 377 6Ôž5ŸJïÑ9rëgeP)§\éM:¯4D ¯œqïÊ¢FGôèþ«$î±åhqlSoÓ(Â378 Ê9x÷Ù®oŒræb?dFât ޹nÛièÝ 379 µ¯yãüØmÍ#& í<H|Úâr îtï{ï}J0ú0Csñd 380 Êt¥À1a"È á»t@£ 381 )§=³bÀÐSÐSvÔ *à#í¡Êš8âøaVilŽÑÏ5 382 µÒ|â*|°IóCíÆÈóÏån?Ÿ®zÚÑÄ(Òk*35B@eš1¿©y4Á7sFé,Ç(ÕXQªÙ4#ÏçbüiÉCxø 383 åtùrBR4ýûi·_pæ¹R®õ 384 å 385 ×pý®wþùOp}áßKžŸòïðùø~wìcy6>Ez,þ_yOû% 386 ï1ùsøÀ8ši/â3Í't B7/¯æõµ&Î5ËìM2ùÞ¯ìÑskôÏþþejöûÿï^œæ1ÆÏX.#}~ÚvÑO¿uPA|HÜgp}ë/Œÿ\Ôu#4ðÀ¯ÿ^èöP®Q_~u{ºÁÑÆ²8óó1îü 387 ;c;å2$leê(šo®ÝœË 388 Ãvýb³Økâîvt@w! <zkÿ»&¬ ßm§þŽÏWìäxT[ÉHÌ& k?÷{-í}߀TLzÒ÷\ÏK#žif(O®2Cß°þÔyXxv²389 q³oµÙ¢/WcÏaÀŸG1úÄoÈ2¿AÅbxðãn㣮³êØÈS¥I,â/EŽ6Íç4« àõvÜyî¹µÌ!Ÿ¹R¥¶yc5_¥ ÞÒê#UCô EÒaõ4žÂØKRPØÂ¹Á5³[t¹ï& 390 Ü}Æ¿q³uÈ·Ífb!ÙôRNÍÈÿ¿O«knR]k|>ÔhùàMà@ùGªO.ú«c pfŽÌmËZÅÍÍ 391 392 f9ií>·X¬VDühYÛÒ ÓZ1"ÞÍÛ(ŽIW`ùœÇâ!»§ÌZýÝMi]È·M¡0vsìŠDï5,` Pð:1§Íýp¥yRKCž>$^×-9¡Á%J7ÎDÝ 393 «DI:j±ëo#êÕ&îŒL.3ñA÷ÁØ» 394 ÛL·G9ÔDòž-{¬ÀÖØ¬<^C¯Óvw°g¹AÜ[ 395 V<zù~°b?»ÐOŸ 396 ýä¶ìÐã$ 397 ܰÇii 398 ª 399 Ô.Ų 400 Hnâw&õ2°€µlDñÉ+4Jw°1nh°²Ó[šØîbtéf5QR 401 Îeîëö@OŽŠ*º?( @J£ÛåcÃÕªã1U[pï§o'žÃRÈôDÅ&ÚFÞërÄ$ÅXäÎ9} 402 ºÙÖd|ÚE룺9k 403 ïRËÜ¥¢µž]RQç 404 ÍF$õ¯?W°. 5+"iÙBT7 405 sk§f8*dvÀ|j¡Îp9à$Mã1 406 ß 407 Š}¬«¡:îqŸ.mêYÜÆ\y'9€Y7M7àüg{ö£Ö 408 409 «~ðk(úîãsoBÏæŸg(HßSY€qÉ> w^xš(ž¶ñ}Ò.vú"ê,pøØcÏù 410 f%ðUÂÉ6n¿Ã>w?ó=[2ZºB#v_9O#ß8eßõP\"7ævä8Ûùá°RõÇw~Ò)æ;?jÞÖçÎ6jl¿¢^OûgTÐy.oÇBVÄ$¿ìP@:*à»t@œ1[M{bWk¢`å®p: 411 Âaþ%Ã]5$õ¹ö(÷¡ºÅ¯é3:Ž×{ 412 v³ÉÁŒ 413 !ÁÅ»káo¥054(q±áw(X¶SççdaÉe·Á7ž 414 µÄ7R 415 (.ùžÚYÆEL.ä°NãúªÿyêÍŽü^yâÂïýp;4tè¶92ë²ELþN1ï²"ÔyËÅùy.ëf@³uù¿t?Ot"᢫dÂõ7:YµÎçÝõfgpÔ È9 ÛÞãÏËÒih%¶)Ñœ;t9¿W416 %¬¡õXÙQ[1Ù~±ÖÛÕSÒçÊâpO0¿bÄo&bTÆÛ£ŸL)åk-âmÒ'Zy~Ÿõ¿Ï±÷Wrî¡BNÆwuI±>'ìÜ$¿ç`8MM]ti# 417 418 k×ñNzÆõº®gí~Cµð<s¶» 419 ì*9ç2[Ί}IÈXTÞÅÅglÅN((å»=Q:àËaR7Hõ<Ù[ò÷öEF[Ìtý<ë)SßßGÞšÎö[ÝìõùF{䩱ñ5z|ÚOk74"~p0àÐQg#" 420 ¡4©²EIÒ~H/øÉÍÞߥêd¥öxŠÄ@{YgNF¹421 #ÇãV 422 ·³2äµ&¶£òÑ€¬ÚïU€ÉZJglÇ1ŸUuáž`Ýã/èµÜ&xQüÑMvúTa>ÃĹ¢ðǹWO{\tCÏÆãGE¡#ðd*g<GÇ}ÿ r_Vn§'»WSÅ÷ζ+ÆÏ|ZU423 NÂíéñSþ¥,-m&éº>D¹EWp×<Ì"%Qj@Š! 424 425 þùÃ,ŸKÔFPM{ 426 G. 427 ¥šÈ!J0ÈÎ2ÜÇÎîq^ÝCÆÝ¿z¹ËEkëôbK¶ê±ñ;fa4aÃ.j¬} ÷õ®Í 428 Ùnàû/jCÉendstream 429 endobj 430 124 0 obj << 336 xÚœ[mo#·þ~¿Bh@.Nå;~(Ú4IS4Iº(Š(Ö²ìsϲ.^_. ÿœ3$K.)Ü+ΫÝápv8óÌ)¶êá[ÙÉÞ©±®ÓZ±Õvÿ¢_ݳ/^°H#¥î€ÒŸ4nï;«5_mr&¿»|ññçvå:§¹^]Þ¬àPB®fÑά.¯ÿ±~÷ê§Pfœûñ¯íܺÏû^þñãÏÎ(×£L£G ÚÁçû@ÏÆ\ǹ`ðÆîb£Y9Ùð^xFŒõÛ{ÏnÚõJ¯Œñn5xϯ.6\Ó}Owøßõ4²ÝŒo6lw¿É 337 ±00×Cä 338 ,ð3\pʰrýhlñŸ Ç(QŠS 339 Þ<¿¶V':'¹XmëRÜ+Ê¿žWR"#T 340 eÖØôZo¢npÄæðV/ý&#X$þ²fÙû|]&3LtÖ*í:Ë€ 341 ¶ 342 o#Í·Õ&úM> ²Ú-ªé/ Áßàóåuœv&ÆÌeÕÂäRvY^NŸõëC\k\µdv{Z]xJ+¹ý 343 ;wQÿ#ZseEŠ`Q`{»h1\œ5d2Ì 344 .ÚÿþM4žKÞ"1ÅËñÐy¶L 345 346 WÚáW(Ýkø/¹$Hb 347 wn9ºV° 348 =[ ò>:âëpÇá¹õT{ÿbcà±%&[o[òíë 2$!¡!%}¿#.|ºÞ.Qñ+ 349 rlÚÓ 350 Æ?'ãÍèØlðò û.NF7].,NSyçc¿yžÁ¿¶òý} 351 úÓTjÔøï9ÏoÍÜiK,9w!œíj¶BuŠú3DIÙêÞëvàpº·ËÙ4ùªéŒæmÔa4)<¹ØD\ 352 ïìwžx5~YøµØAP2Z¬/i40óvxoã=EÿŒÚªÒÿbzE«úC4°Ã#Jàâ2äÅž>0ª>æ4T&úM> B«íišdwJp3cjaòNþ2šà_ÐÍ;üo÷w-T¿Ç~ýpð 353 ݬb:~è 354 [¿dqàáÁ;ïSoŒgú¡Q÷7q=Îç 355 1ÏÜ 356 ž<h,»1JwÝóLÀÓñv§÷Ï÷AÃèS³0KëRFã\>TÀõ 357 AÛ>|ÏÝcž×È]D€§¯Àg;þ»7ùÛ8.P¥àqô+DèÔxþiøsN'c>¬÷¡Ûu¶>~>Çl 358 hn±œî²n¥AœK9F¢ßäjÛØ¢oPê÷ñ_»Ë#t瀥<s"ª)*fe«ÀµIÏÃÔÂZk70ÂàßWd 359 ×Ñ"óèl1 Ç¥º#ñ«<çßõª'dv~I·8Ï«ÈçÎg÷É!|Î 360 AñNiLêŠhðD|œ»P|}ÝüXCDaA 361 ò®ø^×Èù«ö[o»øRÞ 362 363 ä 364 ªó=Ð ÂŒÞVaAü÷|mr¡)9~a8Æa+5KLô|@mB[|¯}ögªèr98óÍäp¢:={ÍØªPyóö*âSâÇÍëT .o2%ÞmC·Qrýoo{¡>!ÓÙM@s 365 &¶[ÈF/#p9OÃâÒÊ`-g«ùä2æÉåü»1óìrª 366 Ð3ÜÜÆ{[œ%OúáéV²c¢Äaý&PFÅö\3ŠRÊR9ÂÕ¶ï4wŠ¢Ÿö%úpÊXT'wFij8ø:||.À¬5ðhóy =^19ùd®*êähÀqÅt3b ÷íìÀ4/gáµXV 367 oš¯v¡¡žÈÞjO97èÉÖÔÚÙøK,1M§S(XCóÜvÂÕ²r\FÂJ¹Ü,ósàŠ5ZÝõº 368 +«{œä 369 D¿É4ìrÎv6a ,8z)Gêôìs\OQÎ^UšfEè#¬xnE';°C}€¢ÃnDR?õÔŒòKsF*;u¢R 370 371 X1u¶)ì~ó{lÆ;§Èr·ËŠ ¥aßïÄklÂwÎìI:Œ"˱ð.ÆŒa 372 Qz 373 EÈ!<ÉXøúiøÓÎŽ!,iÕ¯?ëPM=¢<åmPXMÉìÔ]ÝVé0º 374 Œ 375 ¬¯sœZJGý&P·Ï*¶~øÙicÔL_%ªÓ³K& Édº}|¥X¡=NvÚ-©,íí<* ë Y`e; [8Wr}¯"ïdÚ-œÈwܹRàUNõb ÷~šq¯b{nV!Èy)Î<)D§eà=UÒ¶aÜQf,v|Ùpn !JsuVàÑRe{~Åw÷!^rgaÝôq9ú8¿?Ñ·Ê}yjýàê]ÂmÊÀû>(:b8åîï0TQÕb£ÝÒ_šhlh² 376 i²ýéšÀ0€HI-éBä:ªëU*ÚÎ 377 4¬<QšÚPŸÔéŠHaòV3ɶSaEU~&ÍíõSk"*Lú°u&"žLYÞ9GûvG=2Ñoò5fUl3íýr 378 Ý!<9;e°Ê°®Îµ,Î# 379 æê(=ëGeimGPßUÄ:©Ü 380 ëæoO[`]nqz|ÓÝ'MD]TY8gb&Ä 381 êôÜ»ô¢;nh¡b€²}¹«nDÜ^éüîižþxGqÄTÄ4BùDÄÆü»IJ>®G*Ø0<þÙO 382 ¡ZBã><+ö<¹Ð{ï÷žUlm¬ºïŠV¯bE£S{?ÞO&Ì·Z 383 ae²ÏdÊû¡š±ùxe]lð.c˶QAî¡)¹IÈ{oÕ8] 384 `0ÚbFîtCà4 385 ÓP<(»¥(ÑoòuæV±]ØuÕ=®|&Æ|ך&×&gŠüTV Ú' 386 387 Ëvâá{eÆÑðgÜ¥6R|@y 388 D0W 389 ûŠåâ {Œë 390 O§@ûžÏåÐ-§wÑ¡qhhn<ߊéôç#Ëài/!¢{v_£MÂÝ¥J,Ì<Æœi]4 391 UÔl_fÎ%ñ~êæáÁËÓŠ.a"÷ÒWéœßGÉúçÞ=ÙIb 392 r©ø$×IÉøb+ &L@ôþ«VÖöM űÍÀ]¯ŽÑ·¥â\CxìßožîâNlÀX-KÛö ÓŸ¹ùÆÎÝ\7Ç^5Úöºc=Ñûnª[_^ 393 bOã*ŠC|îX¹<Eç¥2Ý&k¹w%úM> Q 394 ÌÙY qÐØÉ3ïÕ¯ 395 'ÏX\SôÑ/4P 396 µÑŒÅ{ürè0ç«ÝDúœj¶ÑÄÈ~<ÔDµ09¡Îqñ,¥Ñï4ZT<8))Œ°Y+(Õø¬TóiFÏ¥ùhG°N+®? £³8ÞQNT(êG ÓO-þe:«Žmÿbë9+|ŸÏ¿àóyüþ'ø|ïÍ%|þïá÷¯ÓýbnæN}¬šÆììÎÿŽ%.1žßà/ù3=àÌ4v >:o¢ã ]6á1Ÿ±ÖD^ 397 eO 398 Hb~oöµ5ÄïñúýÔì 399 þ_?û?S¹òE¶í¢šhùPžßÂçÛøÁë¿Ã 400 n$âûÿ>.úW*4 401 ðÉOÓK-ÌopŽgy4óó)í| 402 ±rI Û<u,¶wá:ä 403 °C¿ØM"\öñqÑSÜÄ¿#ÌðÞ~êO8 404 ã?Ò,ÃÂÜeAqy_ 405 hé¯ëü&b¢ŽG(c u°å 406 æR@fH§O²³DBÇ$æ§!}¶HÒÔsž£pìQcãSº3<å#@uO!ž*îͱ7J ŠÉ"xoÊS4>ͬÚG 407 408 ¢ö» 409 +Bbs¥J'}óÆj$Ÿê-¶FS¬ºÎ*+óÓÞùYŠž nV¿7³[uEì&áºPHÜÖž} :6{É®×Ùÿ?ŠÕ5bp¹-(#z=Ôèõ]`ÌšâÕ§ÐYýµá°àÜÍO.x¯žœÝ! `S 410 u»ðP=bTmË$-Lëqb:ãâ9dÇr=ec÷à 411 ø÷aJë({Þ{5éx ãÙîçóTÀaAlætŽÞ7VdµÔ. 412 ì3Ô 413 ¯ÉLHÖ %0¶_Èd 414 µÔiêí]Ú 415 i|CÎuØ=]óXa«)Š:-Ò¶ìâY 416 Råéº6íw{^g÷'pð¡üë¬_~ÝÁáÏCvNhK2ÄÓG§EšOMÛHð¥Úاã¯&4 417 ivʬé#FLšÐ(ÝÁÇcäeËÀVÇ-×Ôîbô 418 fmgŽ¡ÎeãÞÖ2à/ 419 ÚÙNQ^gdOø¢ëÈŸà¶Gh©ówÉ7Ê^W&Ë(Yî\ÙÍí]f:é$"Fmyóp;\^Ö 420 4Î 421 :oh6ztgyÿüs%ê²P#$À³òÜ€qÓ±ô6¹Ü4ÃQaøÇSý4pä6iÇcŠÖ~ÖRìM{ÏKz6Š1Ws+ÐI«<ëEôý5í7'« 422 ª^ÓÏÊŸCx~µÆ¥=WÆ¡ìúͲ!Ûà 423 Ú«¬<Ûé~0{Œá8*þõáiâZŽy£Ü:Ç~òøßÑÔòØ1÷ð¬)ûŸóY,êcv:ÕùE»Šu<ÚùaNuÜ2õÅñÎO¢:îëÇÎ6jì?£^ÏûgTÐe.TnÇBVÄÚÂQ¢ßäêÙí®°°uÏÄš~©&pØŸsW 424 IÉdú- €àq#ª[|0cª 425 päq»Ça·wÅ¡3àÛªà ü®5+ 426 A²¢¡ÁÒ àî*(x6šs²Úe 427 Ù-aCØP«~ÔP€P\:÷ßÕÎ:œÄTé 428 BqG qsFÕÿ:¡{óqlÞ÷CËŠþÈà#Ç!KÚ Ï~de,N@Q׺\(ÎϬsÍÖåÿ$Së²¥~g¡ø4íòÍ&#ª7¡ 0lNª=wÔï?n.²endstream 429 endobj 430 140 0 obj << 431 431 /Type /Page 432 /Contents 1 250 R433 /Resources 1 230 R432 /Contents 141 0 R 433 /Resources 139 0 R 434 434 /MediaBox [0 0 595.2757 841.8898] 435 /Parent 110 0 R 436 /Annots [ 127 0 R 128 0 R 129 0 R 130 0 R 131 0 R 132 0 R 133 0 R 134 0 R 135 0 R 137 0 R 138 0 R 139 0 R ] 437 >> endobj 438 127 0 obj << 439 /Type /Annot 440 /Border[0 0 0]/H/I/C[0 1 1] 441 /Rect [185.0642 738.6365 220.3815 749.7547] 435 /Parent 122 0 R 436 /Annots [ 143 0 R 144 0 R 145 0 R 149 0 R 150 0 R 151 0 R 152 0 R 153 0 R 154 0 R 155 0 R 156 0 R 157 0 R 158 0 R 159 0 R ] 437 >> endobj 438 143 0 obj << 439 /Type /Annot 440 /Border[0 0 0]/H/I/C[0 1 1] 441 /Rect [312.8897 746.8856 342.0501 757.7248] 442 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 443 >> endobj 444 144 0 obj << 445 /Type /Annot 446 /Border[0 0 0]/H/I/C[0 1 1] 447 /Rect [124.3686 699.0649 153.529 709.9041] 448 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 449 >> endobj 450 145 0 obj << 451 /Type /Annot 452 /Border[0 0 0]/H/I/C[0 1 1] 453 /Rect [105.5626 674.5966 137.9707 686.4571] 454 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.python.org)>> 455 >> endobj 456 149 0 obj << 457 /Type /Annot 458 /Border[0 0 0]/H/I/C[0 1 1] 459 /Rect [178.0471 663.1994 213.3644 674.0386] 442 460 /Subtype/Link/A<</Type/Action/S/URI/URI(http://numpy.scipy.org)>> 443 461 >> endobj 444 128 0 obj << 445 /Type /Annot 446 /Border[0 0 0]/H/I/C[0 1 1] 447 /Rect [375.3565 726.9603 410.6737 737.7995] 462 150 0 obj << 463 /Type /Annot 464 /Border[0 0 0]/H/I/C[0 1 1] 465 /Rect [145.9004 651.2442 178.3085 662.0835] 466 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.python.org)>> 467 >> endobj 468 151 0 obj << 469 /Type /Annot 470 /Border[0 0 0]/H/I/C[0 1 1] 471 /Rect [185.0642 615.6527 220.3815 626.7709] 448 472 /Subtype/Link/A<</Type/Action/S/URI/URI(http://numpy.scipy.org)>> 449 473 >> endobj 450 129 0 obj << 451 /Type /Annot 452 /Border[0 0 0]/H/I/C[0 1 1] 453 /Rect [168.2912 714.4472 200.6993 726.3076] 474 152 0 obj << 475 /Type /Annot 476 /Border[0 0 0]/H/I/C[0 1 1] 477 /Rect [375.3565 603.9765 410.6737 614.8157] 478 /Subtype/Link/A<</Type/Action/S/URI/URI(http://numpy.scipy.org)>> 479 >> endobj 480 153 0 obj << 481 /Type /Annot 482 /Border[0 0 0]/H/I/C[0 1 1] 483 /Rect [168.2912 591.4633 200.6993 603.3238] 454 484 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.python.org)>> 455 485 >> endobj 456 1 300 obj <<457 /Type /Annot 458 /Border[0 0 0]/H/I/C[0 1 1] 459 /Rect [486.5452 702.492 521.8625 714.3525]486 154 0 obj << 487 /Type /Annot 488 /Border[0 0 0]/H/I/C[0 1 1] 489 /Rect [486.5452 579.5082 521.8625 591.3687] 460 490 /Subtype/Link/A<</Type/Action/S/URI/URI(http://numpy.scipy.org)>> 461 491 >> endobj 462 1 310 obj <<463 /Type /Annot 464 /Border[0 0 0]/H/I/C[0 1 1] 465 /Rect [88.3572 679.1396 117.5176 689.9789]492 155 0 obj << 493 /Type /Annot 494 /Border[0 0 0]/H/I/C[0 1 1] 495 /Rect [88.3572 556.1558 117.5176 566.995] 466 496 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 467 497 >> endobj 468 1 320 obj <<469 /Type /Annot 470 /Border[0 0 0]/H/I/C[0 1 1] 471 /Rect [332.17 666.9055 361.3304 678.0237]498 156 0 obj << 499 /Type /Annot 500 /Border[0 0 0]/H/I/C[0 1 1] 501 /Rect [332.17 543.9217 361.3304 555.0399] 472 502 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 473 503 >> endobj 474 1 330 obj <<475 /Type /Annot 476 /Border[0 0 0]/H/I/C[0 1 1] 477 /Rect [199.781 631.319 232.1891 642.1582]504 157 0 obj << 505 /Type /Annot 506 /Border[0 0 0]/H/I/C[0 1 1] 507 /Rect [199.781 508.3351 232.1891 519.1744] 478 508 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.python.org)>> 479 509 >> endobj 480 1 340 obj <<481 /Type /Annot 482 /Border[0 0 0]/H/I/C[0 1 1] 483 /Rect [368.9173 631.319 398.0777 642.1582]510 158 0 obj << 511 /Type /Annot 512 /Border[0 0 0]/H/I/C[0 1 1] 513 /Rect [368.9173 508.3351 398.0777 519.1744] 484 514 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 485 515 >> endobj 486 1 350 obj <<487 /Type /Annot 488 /Border[0 0 0]/H/I/C[0 1 1] 489 /Rect [110.73 288.6041 139.8904 299.4434]516 159 0 obj << 517 /Type /Annot 518 /Border[0 0 0]/H/I/C[0 1 1] 519 /Rect [110.73 174.6963 139.8904 185.5355] 490 520 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 491 521 >> endobj 492 137 0 obj << 493 /Type /Annot 494 /Border[0 0 0]/H/I/C[0 1 1] 495 /Rect [175.0442 170.1089 204.2046 180.9482] 496 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 497 >> endobj 498 138 0 obj << 499 /Type /Annot 500 /Border[0 0 0]/H/I/C[0 1 1] 501 /Rect [474.6661 170.1089 503.8266 180.9482] 502 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 522
