Changeset 3659
- Timestamp:
- 04/04/07 11:11:49 (2 years ago)
- Files:
-
- trunk/numpy/doc/swig/numpy_swig.html (modified) (8 diffs)
- trunk/numpy/doc/swig/numpy_swig.pdf (modified) (43 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
r3652 r3659 331 331 </ul> 332 332 </li> 333 <li><a class="reference" href="#acknowledgements" id="id17" name="id17">Acknowledgements</a></li> 333 <li><a class="reference" href="#summary" id="id17" name="id17">Summary</a></li> 334 <li><a class="reference" href="#acknowledgements" id="id18" name="id18">Acknowledgements</a></li> 334 335 </ul> 335 336 </div> … … 358 359 with the module <a class="reference" href="http://numpy.scipy.org">NumPy</a>, which provides full 359 360 object-oriented access to arrays of data. Therefore, the most logical 360 <a class="reference" href="http://www.python.org">python</a> interface for the <tt class="docutils literal"><span class="pre">rms</span></tt> function would be:</p> 361 <a class="reference" href="http://www.python.org">python</a> interface for the <tt class="docutils literal"><span class="pre">rms</span></tt> function would be (including doc 362 string):</p> 361 363 <pre class="literal-block"> 362 364 def rms(seq): 365 """ 366 rms(numpy.ndarray) -> double 367 rms(list) -> double 368 rms(tuple) -> double 369 """ 363 370 </pre> 364 371 <p>where <tt class="docutils literal"><span class="pre">seq</span></tt> would be a <a class="reference" href="http://numpy.scipy.org">NumPy</a> array of <tt class="docutils literal"><span class="pre">double</span></tt> values, and its … … 407 414 effectively, therefore, requires knowing what typemaps are available 408 415 and what they do.</p> 416 <p>A <a class="reference" href="http://www.swig.org">SWIG</a> interface file that includes the <a class="reference" href="http://www.swig.org">SWIG</a> directives given 417 above will produce wrapper code that looks something like:</p> 418 <pre class="literal-block"> 419 1 PyObject *_wrap_rms(PyObject *args) { 420 2 PyObject *resultobj = 0; 421 3 double *arg1 = (double *) 0 ; 422 4 int arg2 ; 423 5 double result; 424 6 PyArrayObject *array1 = NULL ; 425 7 int is_new_object1 = 0 ; 426 8 PyObject * obj0 = 0 ; 427 9 428 10 if (!PyArg_ParseTuple(args,(char *)"O:rms",&obj0)) SWIG_fail; 429 11 { 430 12 array1 = obj_to_array_contiguous_allow_conversion( 431 13 obj0, NPY_DOUBLE, &is_new_object1); 432 14 npy_intp size[1] = { 433 15 -1 434 16 }; 435 17 if (!array1 || !require_dimensions(array1, 1) || 436 18 !require_size(array1, size, 1)) SWIG_fail; 437 19 arg1 = (double*) array1->data; 438 20 arg2 = (int) array1->dimensions[0]; 439 21 } 440 22 result = (double)rms(arg1,arg2); 441 23 resultobj = SWIG_From_double((double)(result)); 442 24 { 443 25 if (is_new_object1 && array1) Py_DECREF(array1); 444 26 } 445 27 return resultobj; 446 28 fail: 447 29 { 448 30 if (is_new_object1 && array1) Py_DECREF(array1); 449 31 } 450 32 return NULL; 451 33 } 452 </pre> 453 <p>The typemaps from <tt class="docutils literal"><span class="pre">numpy.i</span></tt> are responsible for the following lines 454 of code: 12--20, 25 and 30. Line 10 parses the input to the <tt class="docutils literal"><span class="pre">rms</span></tt> 455 function. From the format string <tt class="docutils literal"><span class="pre">"O:rms"</span></tt>, we can see that the 456 argument list is expected to be a single python object (specified by 457 the <tt class="docutils literal"><span class="pre">O</span></tt> before the colon) and whose pointer is stored in <tt class="docutils literal"><span class="pre">obj0</span></tt>. 458 A number of functions, supplied by <tt class="docutils literal"><span class="pre">numpy.i</span></tt>, are called to make and 459 check the (possible) conversion from a generic python object to a 460 <a class="reference" href="http://numpy.scipy.org">NumPy</a> array. These functions are explained in the section <a class="reference" href="#helper-functions">Helper 461 Functions</a>, but hopefully their names are self-explanatory. At line 462 12 we use <tt class="docutils literal"><span class="pre">obj0</span></tt> to construct a <a class="reference" href="http://numpy.scipy.org">NumPy</a> array. At line 17, we 463 check the validity of the result: that it is non-null and that it has 464 a single dimension of arbitrary length. Once these states are 465 verified, we extract the data buffer and length in lines 19 and 20 so 466 that we can call the underlying C function at line 22. Line 25 467 performs memory management for the case where we have created a new 468 array that is no longer needed.</p> 469 <p>This code has a significant amount of error handling. Note the 470 <tt class="docutils literal"><span class="pre">SWIG_fail</span></tt> is a macro for <tt class="docutils literal"><span class="pre">goto</span> <span class="pre">fail</span></tt>, refering to the label at 471 line 28. If the user provides the wrong number of arguments, this 472 will be caught at line 10. If construction of the <a class="reference" href="http://numpy.scipy.org">NumPy</a> array 473 fails or produces an array with the wrong number of dimensions, these 474 errors are caught at line 17. And finally, if an error is detected, 475 memory is still managed correctly at line 30.</p> 409 476 <p>Note that if the C function signature was in a different order:</p> 410 477 <pre class="literal-block"> … … 417 484 %apply (int DIM1, double* IN_ARRAY1) {(int n, double* seq)}; 418 485 </pre> 486 <p>This simply has the effect of switching the definitions of <tt class="docutils literal"><span class="pre">arg1</span></tt> 487 and <tt class="docutils literal"><span class="pre">arg2</span></tt> in lines 3 and 4 of the generated code above, and their 488 assignments in lines 19 and 20.</p> 419 489 </div> 420 490 <div class="section"> … … 732 802 <pre class="literal-block"> 733 803 def dot(vec1, vec2): 804 """ 805 dot(PyObject,PyObject) -> double 806 """ 734 807 </pre> 735 808 <p>The problem here is that there is one dimension argument and two array … … 754 827 %} 755 828 </pre> 756 <p>If the header file that contains the prototype for <tt class="docutils literal"><span class="pre">do t()</span></tt> also757 contains other prototypes that you want to wrap, so that you need to 758 <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>829 <p>If the header file that contains the prototype for <tt class="docutils literal"><span class="pre">double</span> <span class="pre">dot()</span></tt> 830 also contains other prototypes that you want to wrap, so that you need 831 to <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> 759 832 <span class="pre">dot;</span></tt> directive, placed after the <tt class="docutils literal"><span class="pre">%rename</span></tt> and before the 760 <tt class="docutils literal"><span class="pre">%include</span></tt> directives.</p> 833 <tt class="docutils literal"><span class="pre">%include</span></tt> directives. Or, if the function in question is a class 834 method, you will want to use <tt class="docutils literal"><span class="pre">%extend</span></tt> rather than <tt class="docutils literal"><span class="pre">%inline</span></tt> in 835 addition to <tt class="docutils literal"><span class="pre">%ignore</span></tt>.</p> 761 836 </div> 762 837 <div class="section"> … … 816 891 </div> 817 892 <div class="section"> 818 <h1><a class="toc-backref" href="#id17" id="acknowledgements" name="acknowledgements">Acknowledgements</a></h1> 893 <h1><a class="toc-backref" href="#id17" id="summary" name="summary">Summary</a></h1> 894 <p>Out of the box, <tt class="docutils literal"><span class="pre">numpy.i</span></tt> provides typemaps that support conversion 895 between <a class="reference" href="http://numpy.scipy.org">NumPy</a> arrays and C arrays:</p> 896 <blockquote> 897 <ul class="simple"> 898 <li>That can be one of 12 different scalar types: <tt class="docutils literal"><span class="pre">signed</span> <span class="pre">char</span></tt>, 899 <tt class="docutils literal"><span class="pre">unsigned</span> <span class="pre">char</span></tt>, <tt class="docutils literal"><span class="pre">short</span></tt>, <tt class="docutils literal"><span class="pre">unsigned</span> <span class="pre">short</span></tt>, <tt class="docutils literal"><span class="pre">int</span></tt>, 900 <tt class="docutils literal"><span class="pre">unsigned</span> <span class="pre">int</span></tt>, <tt class="docutils literal"><span class="pre">long</span></tt>, <tt class="docutils literal"><span class="pre">unsigned</span> <span class="pre">long</span></tt>, <tt class="docutils literal"><span class="pre">long</span> <span class="pre">long</span></tt>, 901 <tt class="docutils literal"><span class="pre">unsigned</span> <span class="pre">long</span> <span class="pre">long</span></tt>, <tt class="docutils literal"><span class="pre">float</span></tt> and <tt class="docutils literal"><span class="pre">double</span></tt>.</li> 902 <li>That support 16 different argument signatures for each data type, 903 including:<ul> 904 <li>One-dimensional and two-dimensional arrays.</li> 905 <li>Input-only, in-place, and argout behavior.</li> 906 <li>Hard-coded dimensions, data-buffer-then-dimensions 907 specification, and dimensions-then-data-buffer specification.</li> 908 </ul> 909 </li> 910 </ul> 911 </blockquote> 912 <p>The <tt class="docutils literal"><span class="pre">numpy.i</span></tt> interface file also provides additional tools for 913 wrapper developers, including:</p> 914 <blockquote> 915 <ul class="simple"> 916 <li>A <a class="reference" href="http://www.swig.org">SWIG</a> macro (<tt class="docutils literal"><span class="pre">%numpy_typemaps</span></tt>) with three arguments for 917 implementing the 16 argument signatures for the user's choice of 918 (1) C data type, (2) <a class="reference" href="http://numpy.scipy.org">NumPy</a> data type (assuming they match), and 919 (3) dimension type.</li> 920 <li>Seven C macros and eleven C functions that can be used to write 921 specialized typemaps, extensions, or inlined functions that handle 922 cases not covered by the provided typemaps.</li> 923 </ul> 924 </blockquote> 925 </div> 926 <div class="section"> 927 <h1><a class="toc-backref" href="#id18" id="acknowledgements" name="acknowledgements">Acknowledgements</a></h1> 819 928 <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 820 929 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). … … 830 939 <div class="footer"> 831 940 <hr class="footer" /> 832 Generated on: 2007-04-0 3 21:50 UTC.941 Generated on: 2007-04-04 16:10 UTC. 833 942 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. 834 943 trunk/numpy/doc/swig/numpy_swig.pdf
r3652 r3659 103 103 endobj 104 104 73 0 obj 105 << /S /GoTo /D (summary.0) >> 106 endobj 107 76 0 obj 108 (Summary) 109 endobj 110 77 0 obj 105 111 << /S /GoTo /D (acknowledgements.0) >> 106 112 endobj 107 760 obj113 80 0 obj 108 114 (Acknowledgements) 109 115 endobj 110 770 obj111 << /S /GoTo /D [ 780 R /Fit ] >>112 endobj 113 8 00 obj <<114 /Length 19 01116 81 0 obj 117 << /S /GoTo /D [82 0 R /Fit ] >> 118 endobj 119 84 0 obj << 120 /Length 1934 115 121 /Filter /FlateDecode 116 122 >> 117 123 stream 118 xÚœYYsÛF~÷¯à#Õ 7{éSÆn;mIÜÉCÓUŠUO-Sµä 119 ýõöҀŊI4 120 ž >`o¬¢ðÇ*#€NUÆ:¢µbÕbuB«%<;?aQFJM€Ò.F6ÂX"šU£121 1ªRj Í$'Ji[59âžÖ(~zqòøLžÂÕÅUÅ€!JX01É]\þVßΞ©ïg¬^ñìãÌžÀå5üÌIe=5Òú5Üy¿àw·Â©`ÛÞ]Áù 122 ~6<;Ãnà¯ñy¿»pùÂë|ùqöûÅ'Ï/²?£ž¬ŽæÜAßpSJ{×¥¬ÀI͵÷rxÊD¥$Æ0ïøS4`ûg¶ 123 ìx|f·&\ 124 P 125 °àéú4¹u~îQYÃ3]w[8ý'³§ŸI#5L'ñþpâŽázëM¹î<; B9¶³£^ï 126 žÁÂ( Q¿oãΣ?ÍÿFÞáMñg(×nÆlNZ÷lþοÜmäPé 127 ¬$¬Á€§kpÐÐ= 128 6qJÍjŠ(N!M!9÷C>qºÁÛ6 129 6ýäIOA&ÆÈôòɝĸÜÄYá»e|ôªÌ;GÓpR*òyW€²P;·õ6"ÒAP!ŠÀ¢]Ï3ñ°P9äZc@£c0_Ý0sÃûÐÿ_7×>¬^ìðx€d¡ YPÍd€«J¥¬!ÌòcB `ŠPfC|åy7Sº§Ù7LA3sW(PSYiWóµ¯}8¬%LðbìQ8,±L'4ø(8¡Õg¡Á8#\@¿iÔa&TÂŲT®ë8¶¡6<œ3dÐ`T0®T9H130 £âë# Z 131 F Ke)!1þ@35Œ*µû$%Ì1@8BHË46BòÓ=]vJ>ײ*g"Aìè¿VÀÊð?I¡ÿ¿äð¿føh4ÄžÔ<§TÇÄA 132 fÊLà€R³ö. ð¬[ )úó~}Ü Ý¢ÇwÔîŠXguUZ4BŠ<Ëom@(I}BnµNœæÃh¯ØtU4ú+øn×_%Tw£B$133 ì¯YáùŸœÙù 134 á9CZqÇb"4 A)-U®Kùa ŸhŠ135 Ë¥};ñLsèŠ 136 £ðÊqn"×:ætÐÕ#K¡¯ºT6µlG 137 >i` 138 R?Ú'eÇKn¡qÊ 139 ^?d!töŽý4¹K?Û¹Öð2¯- 140 Œšà£œ 141 /L. 2kUU9R1)áfpÙP!'žEòÜ"@SÉçàó142 »8@q¢%U©q ÒO.É.ç:1U ÔC=ãuLmdóºuÂj«Rýk!cÒ143 144 ªaI,ŠJF*òᬚi§ä 145 ßÇiMÁM-«JmÃ\ ¶ÕÇ« 146 ( 147 çöpÉBÞ÷Îÿ¿¢ÛŸJŒ¿ åøw»jóÅÉ%8ÕF©u#D©¡q 148 ÆŸ)5GóÒv 149 L 150 ! 151 ä&ì) 152 ÈÊ;àrpŒŒ_l¯»1 153 154 ±|ñ"Ö@nEÎìbnûûox"œÞ£ø,îŠÁ9/viZŸJ«2;Ç»·éQÚK󯜥Ë~%eåNT 155 ,VÉðfùŠ|aßá°DÞš=ïÉ éñÛ3£¿ÿ€+ÊÀžö ÅLû€>ãð_Æö>ì§â[ÛŒ+ÖÅ;WÀË156 ðÅ^*x?ZÄ7ï³ù 157 á±5XŠ47ãNC³ Téh¶Nçáð>÷Ûp 158 v{ònë6ìry 159 ÝU8néñºÇdŒü\ú:œl7d[A¶â©æ)åò 160 (÷H1àÚ1Ó3£bIjB9 161 åpOùð°!X 162 ØMÚWùelq(ò2JÀæJÙb¢;y^H}÷Ã7bvü*€vÀM©ªÏ^Á©Ó®·ï']ûnMÆXSûÈ·óíî=ïÑ&`ËÅ0]zXl~šô± ¥!õi Îý*šªÚhThÎØT&%ùŠ|aÌÁ°d ž £{f>E© åÐþë}å©Dh·!H 163 ®nu§cþ²³k<¿€ôÕ^i{TòQÈAa¹l 164 Û/3×» 165 KRwösà)W)VáºÇøgÚŸ0T2GA'ÄPŒ 166 ¡Y 167 ¿_r0õoš1ÞUü*[éž4«¿ olâåßá«ÞJy.oÃXß>³°Æ5î¡eŸi 168 ¡av°pÐ 169 :Êúê§04Ó÷/ 170 eGendstream 171 endobj 172 78 0 obj << 124 xÚœYYsE~÷¯ØÇ5MŠçðØ@AH%Šò@xòÚž°,cÉ9øõtÏ¥ÑîJ 125 *ŒWït÷×çôBÃñ«â^7Öyff6?âÍ>;;D£aJ#O'Ò:&¹WÍÄxf¥Ó5Õ`Z×L,xæ 126 1D~r~ôøTú, Us~Ù²LK"fºóßÚÛcaÛchçwtöñØúáå5þ 127 OWíôx"9o_ã7øûgt+VÝý%Oñ7ëâ³SZáé/ðw/_/? 128 ÿ~þãÑóó¢fµPQxÞïÔ=Ojê ºR 129 *i sOA6F+f-Å«?T(ÇãSWœ% 130 ZäDä 131 ð`Ú¬Ö 132 ê!E@åv±ÂÓâ:ì'y¥ HæµaÁn|I2\¯(׿@-Ô 133 Ör*øNid,²íé*ÝXÐÓió§éQÈ{ºI$áèºåÌëÌß 134 »¡B1®| 135 "=œGnÝ£(àܰÍ)6Í€",ù,Ùéö_\uñ°ì;O>m%rð 136 ίåxì)æ 137 gtçþ*=zUûgÔßÕ dªBÌ.\»J,Ð(6\`V®§ = 138 GTv©6±ÈÑÆCVò«ëb aa·þôÿuy 139 ÌíUôGN@S)õ!0ÀÐ#}S3 140 @à,' ÄHáàvCBæyw¬M;ÍѹNÈyÌÃ9tóé]È}8c Eµö( 141 90 142 1a^ýYh&$ÖÆ|!mUj8 143 Y¡*ð.ÅÀ*æ§÷)BŠ!ÖböGájÃpLIT|ó_å-²4r7 144 ª 0y 145 b<á¿mæV45×aä<@án 146 0,°LÂ4œZüO'pò 147 QMÍp íš¿ÑØi¿GÿLEúÿR"à¢uŽm\s 148 §ÒÄAaÚîÁ!Se 149 jͺûÀ³Å|E1÷óãÚ 150 %ÛÔພéã#bÎ;ÓÔ4ÓEÓ·±ZïA(S}B³Åü.×°ŒZìŠZ !@X_Qw{žúª0»[ 151 -±µŸ"çûîf{çÚÔyÌ6ZäŠÒõ°°(¬º\ìâzôØ 152 µ'§*âçPNB§9TSãÆÑ xõº5©×:d8H¬êΩ= £P¯9mæÖ²Që€Å 153 Jœþh° 154 çÜR[æµßœ(D€ìI÷ÚäEÜúß.© v 155 /ËÞ³À» 156 m1ºñô°¥Á!sN7µ#3a÷5Ü_ÖE€c\ª=œE¡ 157 œEŠNÏQç 158 ë8@3«Šæ8DÚO¡Ù]H!÷r_&ÈTÛjÆëä 159 «ÔmL÷äEÌVr×Ôìœ&6d ì!Ñà·Är_ÊÈT?V9#OJ^9N7, 160 î ©¹ 161 }+ìŽ9\ØÒ ávgBDº¿NÖϧ&8PÖõMœò@Qcq^POä(¹Ü=i(DÁÆ3Ês%óløþ&ŠAÜgtó®LbFi`pWUs 162 é 163 ÕP8M02© ñòXJI±»8;}÷سâñâa¶º^92æÈùèÅóë 164 %« 165 î¿¡v'lî6Z!zŠx.ªiTGÔy÷Itgt÷6?Ê3ÃðÚ[®yŒìgLÜráe#8`žäíØVóúIýÂÀŸÃe³#ôY_tC²ßý9{ŠÚÍ|ž1G q 166 <(BKçÁÁãè_Áö!ÎéUþ-ÒË 167 à« 168 ðÕÌŒ5À¿ÌCCÍh0î,¥cÀ"®£ïYùŽôÐjyñtïK_¯ãT«LWqx,.ãq9Ëïz 169 [àBàèW¡ 170 ]uK6ŽdZHFåËV+ä~ÄÆœE÷ø6=ÆÝ¡ï^h7g 171 )ÖgA` 172 .È!ö§©É[*ÿòQ¹*Ä}ð¹eÏ¡ŸßähÖ 173 dtã±·é4Î 174 g¶ÍsýP1Éàë]' ãllÞMWë÷vÖluœDVBÄÖ-nŸ°\¡ 175 ¥nòçì8·ŒBµ'qkзÆ|jŒ 176 3DãµÛçD~R¿0Žå`Ù=nd1Ikzb>&ª=̱áÇl2ÏÉ A»F 177 p-æ·%Ë·«uALà 178 MsÈøJ×kE_Ü2é,lúÊõzv5fÉÌéÎfIØev¥yŒîíiv{Úmßhãàºêb¥T.Nò±ŽÆ£Pòé[¹^5ÛÇüt§ï~©SCûM|c.ÿßÍèVæUŒŒk 179 ŸÝwž·~Û #ÐL*¢aöž5VX3) 180 }vZp#ÆøýÈâýendstream 181 endobj 182 82 0 obj << 173 183 /Type /Page 174 /Contents 8 00 R175 /Resources 790 R184 /Contents 84 0 R 185 /Resources 83 0 R 176 186 /MediaBox [0 0 595.2757 841.8898] 177 /Parent 12 20 R178 /Annots [ 9 4 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 1180 R ]179 >> endobj 180 9 40 obj <<187 /Parent 127 0 R 188 /Annots [ 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 111 0 R 112 0 R 113 0 R 114 0 R 115 0 R 121 0 R 122 0 R 123 0 R ] 189 >> endobj 190 98 0 obj << 181 191 /Type /Annot 182 192 /Border[0 0 0]/H/I/C[1 0 0] … … 185 195 /A << /S /GoTo /D (introduction) >> 186 196 >> endobj 187 9 50 obj <<197 99 0 obj << 188 198 /Type /Annot 189 199 /Border[0 0 0]/H/I/C[1 0 0] … … 192 202 /A << /S /GoTo /D (using-numpy-i) >> 193 203 >> endobj 194 960 obj <<204 100 0 obj << 195 205 /Type /Annot 196 206 /Border[0 0 0]/H/I/C[1 0 0] … … 199 209 /A << /S /GoTo /D (available-typemaps) >> 200 210 >> endobj 201 970 obj <<211 101 0 obj << 202 212 /Type /Annot 203 213 /Border[0 0 0]/H/I/C[1 0 0] … … 206 216 /A << /S /GoTo /D (input-arrays) >> 207 217 >> endobj 208 980 obj <<218 102 0 obj << 209 219 /Type /Annot 210 220 /Border[0 0 0]/H/I/C[1 0 0] … … 213 223 /A << /S /GoTo /D (in-place-arrays) >> 214 224 >> endobj 215 990 obj <<225 103 0 obj << 216 226 /Type /Annot 217 227 /Border[0 0 0]/H/I/C[1 0 0] … … 220 230 /A << /S /GoTo /D (argout-arrays) >> 221 231 >> endobj 222 10 00 obj <<232 104 0 obj << 223 233 /Type /Annot 224 234 /Border[0 0 0]/H/I/C[1 0 0] … … 227 237 /A << /S /GoTo /D (output-arrays) >> 228 238 >> endobj 229 10 10 obj <<239 105 0 obj << 230 240 /Type /Annot 231 241 /Border[0 0 0]/H/I/C[1 0 0] … … 234 244 /A << /S /GoTo /D (other-common-types-bool) >> 235 245 >> endobj 236 10 20 obj <<246 106 0 obj << 237 247 /Type /Annot 238 248 /Border[0 0 0]/H/I/C[1 0 0] … … 241 251 /A << /S /GoTo /D (other-common-types-complex) >> 242 252 >> endobj 243 10 30 obj <<253 107 0 obj << 244 254 /Type /Annot 245 255 /Border[0 0 0]/H/I/C[1 0 0] … … 248 258 /A << /S /GoTo /D (helper-functions) >> 249 259 >> endobj 250 10 40 obj <<260 108 0 obj << 251 261 /Type /Annot 252 262 /Border[0 0 0]/H/I/C[1 0 0] … … 255 265 /A << /S /GoTo /D (macros) >> 256 266 >> endobj 257 10 50 obj <<267 109 0 obj << 258 268 /Type /Annot 259 269 /Border[0 0 0]/H/I/C[1 0 0] … … 262 272 /A << /S /GoTo /D (routines) >> 263 273 >> endobj 264 1 060 obj <<274 110 0 obj << 265 275 /Type /Annot 266 276 /Border[0 0 0]/H/I/C[1 0 0] … … 269 279 /A << /S /GoTo /D (beyond-the-provided-typemaps) >> 270 280 >> endobj 271 1 070 obj <<281 111 0 obj << 272 282 /Type /Annot 273 283 /Border[0 0 0]/H/I/C[1 0 0] … … 276 286 /A << /S /GoTo /D (a-common-example) >> 277 287 >> endobj 278 1 080 obj <<288 112 0 obj << 279 289 /Type /Annot 280 290 /Border[0 0 0]/H/I/C[1 0 0] … … 283 293 /A << /S /GoTo /D (other-situations) >> 284 294 >> endobj 285 1 090 obj <<295 113 0 obj << 286 296 /Type /Annot 287 297 /Border[0 0 0]/H/I/C[1 0 0] … … 290 300 /A << /S /GoTo /D (a-final-note) >> 291 301 >> endobj 292 11 00 obj <<302 114 0 obj << 293 303 /Type /Annot 294 304 /Border[0 0 0]/H/I/C[1 0 0] 295 /Rect [98.3198 283.2994 182.5135 294.1386] 305 /Rect [98.3198 283.2994 142.0953 293.9494] 306 /Subtype /Link 307 /A << /S /GoTo /D (summary) >> 308 >> endobj 309 115 0 obj << 310 /Type /Annot 311 /Border[0 0 0]/H/I/C[1 0 0] 312 /Rect [98.3198 263.3741 182.5135 274.2134] 296 313 /Subtype /Link 297 314 /A << /S /GoTo /D (acknowledgements) >> 298 315 >> endobj 316 121 0 obj << 317 /Type /Annot 318 /Border[0 0 0]/H/I/C[0 1 1] 319 /Rect [288.033 198.1192 317.1934 209.9797] 320 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 321 >> endobj 322 122 0 obj << 323 /Type /Annot 324 /Border[0 0 0]/H/I/C[0 1 1] 325 /Rect [312.5275 186.722 341.6879 197.5612] 326 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 327 >> endobj 328 123 0 obj << 329 /Type /Annot 330 /Border[0 0 0]/H/I/C[0 1 1] 331 /Rect [350.8735 174.7668 380.0339 185.6061] 332 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 333 >> endobj 334 85 0 obj << 335 /D [82 0 R /XYZ 74.4095 789.6651 null] 336 >> endobj 337 86 0 obj << 338 /D [82 0 R /XYZ 74.4095 771.7323 null] 339 >> endobj 340 96 0 obj << 341 /D [82 0 R /XYZ 74.4095 613.3264 null] 342 >> endobj 343 6 0 obj << 344 /D [82 0 R /XYZ 74.4095 613.3264 null] 345 >> endobj 346 97 0 obj << 347 /D [82 0 R /XYZ 74.4095 585.1076 null] 348 >> endobj 299 349 116 0 obj << 300 /Type /Annot 301 /Border[0 0 0]/H/I/C[0 1 1] 302 /Rect [288.033 218.0445 317.1934 229.905] 303 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 304 >> endobj 305 117 0 obj << 306 /Type /Annot 307 /Border[0 0 0]/H/I/C[0 1 1] 308 /Rect [312.5275 206.6473 341.6879 217.4865] 309 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 310 >> endobj 311 118 0 obj << 312 /Type /Annot 313 /Border[0 0 0]/H/I/C[0 1 1] 314 /Rect [350.8735 194.6921 380.0339 205.5314] 315 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 316 >> endobj 317 81 0 obj << 318 /D [78 0 R /XYZ 74.4095 789.6651 null] 319 >> endobj 320 82 0 obj << 321 /D [78 0 R /XYZ 74.4095 771.7323 null] 322 >> endobj 323 92 0 obj << 324 /D [78 0 R /XYZ 74.4095 613.3264 null] 325 >> endobj 326 6 0 obj << 327 /D [78 0 R /XYZ 74.4095 613.3264 null] 328 >> endobj 329 93 0 obj << 330 /D [78 0 R /XYZ 74.4095 585.1076 null] 331 >> endobj 332 111 0 obj << 333 /D [78 0 R /XYZ 74.4095 274.333 null] 350 /D [82 0 R /XYZ 74.4095 254.4078 null] 334 351 >> endobj 335 352 10 0 obj << 336 /D [ 78 0 R /XYZ 74.4095 274.333null]337 >> endobj 338 1 150 obj <<339 /D [ 78 0 R /XYZ 74.4095 233.4866null]340 >> endobj 341 790 obj <<342 /Font << /F39 8 5 0 R /F44 88 0 R /F8 91 0 R /F51 114 0 R /F56 1210 R >>353 /D [82 0 R /XYZ 74.4095 254.4078 null] 354 >> endobj 355 120 0 obj << 356 /D [82 0 R /XYZ 74.4095 213.5613 null] 357 >> endobj 358 83 0 obj << 359 /Font << /F39 89 0 R /F44 92 0 R /F8 95 0 R /F51 119 0 R /F56 126 0 R >> 343 360 /ProcSet [ /PDF /Text ] 344 361 >> endobj 345 14 10 obj <<346 /Length 41 82362 147 0 obj << 363 /Length 4136 347 364 /Filter /FlateDecode 348 365 >> 349 366 stream 350 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¿É351 ±00×Cä 352 ,ð3\pʰrýhlñŸ Ç(QŠS 353 Þ<¿¶V':'¹XmëRÜ+Ê¿žWR"#T 354 eÖØôZo¢npÄæðV/ý&#X$þ²fÙû|]&3LtÖ*í:Ë€ 355 ¶ 356 o#Í·Õ&úM> ²Ú-ªé/ Áßàóåuœv&ÆÌeÕÂäRvY^NŸõëC\k\µdv{Z]xJ+¹ý 357 ;wQÿ#ZseEŠ`Q`{»h1\œ5d2Ì 358 .ÚÿþM4žKÞ"1ÅËñÐy¶L 359 360 WÚáW(Ýkø/¹$Hb 361 wn9ºV° 362 =[ ò>:âëpÇá¹õT{ÿbcà±%&[o[òíë 2$!¡!%}¿#.|ºÞ.Qñ+ 363 rlÚÓ 364 Æ?'ãÍèØlðò û.NF7].,NSyçc¿yžÁ¿¶òý} 365 úÓTjÔøï9ÏoÍÜiK,9w!œíj¶BuŠú3DIÙêÞëvàpº·ËÙ4ùªéŒæmÔa4)<¹ØD\ 366 ïìwžx5~YøµØAP2Z¬/i40óvxoã=EÿŒÚªÒÿb zE«úC4°Ã#Jàâ2äÅž>0ª>æ4T&úM> B«íišdwJp3cjaòNþ2šà_ÐÍ;üo÷w-T¿Ç~ýpð367 ݬb:~è 368 [¿dqàáÁ;ïSoŒgú¡Q÷7q=Îç 369 1ÏÜ 370 ž<h,»1JwÝóLÀÓñv §÷Ï÷AÃèS³0KëRFã\>TÀõ371 AÛ>|ÏÝcž×È]D€§¯Àg;þ»7ùÛ8.P¥àqô+DèÔxþiøsN'c>¬÷¡Ûu¶>~>Çl 372 hn±œî²n¥AœK9F¢ßäjÛØ¢oPê÷ñ_»Ë#t瀥<s"ª)*fe«ÀµIÏÃÔÂZk70ÂàßWd 373 ×Ñ"óèl1 Ç¥º#ñ«<çßõª'dv~I·8Ï«ÈçÎg÷É!|Î 374 AñNiLêŠhðD|œ»P|}ÝüXCDaA 375 ò® ø^×Èù«ö[o»øRÞ376 377 ä 378 ªó=Ð ÂŒÞVaAü÷|mr¡)9~a8Æa+5KLô|@mB[|¯}ögªèr98óÍäp¢:={ÍØªPyóö*âSâÇÍëT .o2%ÞmC·Qrýoo{¡>!ÓÙM@s 379 &¶[ÈF/#p9OÃâÒÊ`-g«ùä2æÉåü»1óìrª 380 Ð3ÜÜÆ{[œ%OúáéV²c¢Äaý&PFÅö\3ŠRÊR9ÂÕ¶ï4wŠ¢Ÿö%úpÊXT'wFij8ø:||.À¬5ðhóy =^19ùd®*êähÀqÅt3b ÷íìÀ4/gáµXV 381 oš¯v¡¡žÈÞjO97èÉÖÔÚÙøK,1M§S(XCóÜvÂÕ²r\FÂJ¹Ü,ósàŠ5ZÝõº 382 +«{œä 383 D¿É4ìrÎv6a ,8z)Gêôìs\OQÎ^UšfEè#¬xnE';°C}€¢ÃnDR?õÔŒòKsF*;u¢R 384 385 X1u¶)ì~ó{lÆ;§Èr·ËŠ ¥aß ïÄklÂwÎìI:Œ"˱ð.ÆŒa386 Qz 387 EÈ!<ÉXøúiøÓÎŽ!,iÕ¯?ëPM=¢<åmPXMÉìÔ]ÝVé0º 388 Œ 389 ¬¯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²390 i²ýéšÀ0€HI-éBä:ªëU*ÚÎ 391 4¬<QšÚPŸÔéŠHaòV3ɶSaEU~&ÍíõSk"*Lú°u&"žLYÞ9GûvG=2Ñoò5fUl3íýr 392 Ý!<9;e°Ê°®Îµ,Î# 393 æê(=ëGeimGPßUÄ:©Ü 394 ëæoO[`]nqz|ÓÝ'MD]TY8gb&Ä 395 êôÜ»ô¢;nh¡b€²}¹«nDÜ^éüîižþxGqÄTÄ4BùDÄÆü»IJ>®G*Ø0<þÙO 396 ¡ZBã><+ö<¹Ð{ï÷žUlm¬ºïŠV¯bE£S{?ÞO&Ì·Z 397 ae²ÏdÊû¡š±ùxe]lð.c˶QAî¡)¹IÈ{oÕ8] 398 `0ÚbFîtCà4 399 ÓP<(»¥(ÑoòuæV±]ØuÕ=®|&Æ|ך&×&gŠüT V Ú'400 401 Ëvâá{eÆÑðgÜ¥6R|@y 402 D0W 403 ûŠåâ {Œë 404 O§@ûžÏåÐ-§wÑ¡qhhn<ߊéôç#Ëài/!¢{v_£MÂÝ¥J,Ì<Æœi]4 405 UÔl_fÎ%ñ~êæáÁËÓŠ .a"÷ÒWéœßGÉúçÞ=ÙIb406 r©ø$×IÉøb+ &L@ôþ«VÖöM űÍÀ]¯ŽÑ·¥â\CxìßožîâNlÀX-KÛö ÓŸ¹ùÆÎÝ\7Ç^5Úöºc=Ñûnª[_^ 407 bOã*ŠC|îX¹<Eç¥2Ý &k¹w%úM> Q408 ÌÙY qÐØÉ3ïÕ¯ 409 'ÏX\SôÑ/4P 410 µÑŒÅ{ü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^ 411 eO 412 Hb~oöµ5ÄïñúýÔì 413 þ_?û?S¹òE¶í¢šhùPžßÂçÛøÁë¿Ã 414 n$âûÿ>.úW*4 415 ðÉOÓK-ÌopŽgy4óó)í| 416 ±rI Û<u,¶wá:ä 417 °C¿Ø M"\öñqÑSÜÄ¿#ÌðÞ~êO8418 ã?Ò,ÃÂÜeAqy_ 419 hé¯ëü&b¢ŽG(c u°å 420 æR @fH§O²³DBÇ$æ§!}¶HÒÔsž£pìQcãSº3<å#@uO!ž*îͱ7JŠÉ"xoÊS4>ͬÚG421 422 ¢ö» 423 +Bbs¥J'}óÆj$Ÿê-¶FS¬ºÎ*+óÓÞùYŠž nV¿7³[uEì&áºPHÜÖž} :6{É®×Ùÿ?ŠÕ5bp¹-(#z=Ôèõ]`ÌšâÕ§ÐYýµá°àÜÍO.x¯žœÝ! `S 424 u»ðP=bTmË$-Lëqb:ãâ9dÇr=ec÷à 425 ø÷aJë({Þ{5éx ãÙîçóTÀaAlætŽÞ7VdµÔ. 426 ì3Ô 427 ¯ÉLHÖ %0¶_Èd 428 µÔiêí]Ú 429 i|CÎuØ=]óXa«)Š:-Ò¶ìâY 430 Råéº6íw{^g÷'pð¡üë¬_~ÝÁáÏCvNhK2ÄÓG§EšOMÛHð¥Úاã¯&4 431 ivʬé#FLšÐ(ÝÁÇcäeËÀVÇ-×Ôîbô 432 fmgŽ¡ÎeãÞÖ2à/ 433 ÚÙNQ^gdOø¢ëÈŸà¶Gh©ówÉ7Ê^W&Ë(Yî\ÙÍí]f:é$"Fmyóp;\^Ö 434 4Î 435 :oh6ztgyÿüs%ê²P#$À³òÜ€qÓ±ô6¹Ü4ÃQaøÇSý4pä 6iÇcŠÖ~ÖRìM{ÏKz6Š1Ws+ÐI«<ëEôý5í7'«436 ª^ÓÏÊŸCx~µÆ¥=WÆ¡ìúͲ!Ûà 437 Ú«¬<Ûé~0{Œá8*þõáiâZŽy£Ü:Ç~òøßÑÔòØ1÷ð¬)ûŸóY,êcv:ÕùE»Šu<ÚùaNuÜ2õÅñÎO¢:îëÇÎ6jì?£^ÏûgTÐe.TnÇBVÄÚÂQ¢ßäêÙí®°°uÏÄš~©&pØŸsW 438 IÉdú- €àq#ª[|0cª 439 päq»Ça·wÅ¡3àÛªà ü®5+ 440 A²¢¡ÁÒ àî*(x6šs²Úe 441 Ù-aCØP«~ÔP€P\:÷ßÕÎ:œÄTé 442 BqG qsFÕÿ:¡{óqlÞ÷CËŠþÈà#Ç!KÚ Ï~de,N@Q׺\(ÎϬsÍÖåÿ$Së²¥~g¡ø4íòÍ&#ª7¡ 0lNª=wÔï?n.²endstream 443 endobj 444 140 0 obj << 367 xÚœko 368 ·ñ{~Å!ASáÝ,ßd4HÓ8MÑ$Eª¢(¢8Ö²jÎÑÊq ÿœ3$K.y·rÆYûÃysmøÇ6Förpjc¬ëµVl³?|0lnàݰ#¥î¥Òno;ÅÞjÍ7]ä÷|üÜn\ï4×Ëx'£YoŽ3ËënߟŒ`ÛÝãE'Ù?^ðínÿîà÷îâ_úø¹ÒåzcqôP#üŸùlÌõohê/:ÅÌöË)ÌÏâÄ»ðgÂG÷ð»¹óá¡Ýþp¡ôvÞÐC³EáýÕEÇ5=÷pør|Àÿ®çm÷:®l·?ɱ310×}Ä 369 (ð·»àaåöŒÑ 370 !Ø6Ãý""EOuXy>Þ·6œ\l:Æz§÷ò÷,@HDJá¡læõ:òGtÇûŽ{iì7À*ð5ÊÖØOp|~ÄP0Ñ[« 371 HŽë-*È*Ÿzž0ßfRà»|@%µ5ZdÓ_¿ÃïË/*2$ë%ì 372 Ê$šÉ¥ì9³Œ|ï÷ǞמkIìŽ1cxK;9NþÁw·ÿJs³dE€ Q {c®ÁæÉIRåÿð: 373 374 <%mâåtì=Z&A 375 +åð+€îüT(±Â+· 376 U+ÈÂÞOÆ-@y 377 p9ÜqX5· 378 êà6 379 {B²÷ò·'ÝŸ,CbjBÒý-aáó¥ðr?^á«$Ó 380 n`ü{ÞlNÍÚÇ8QÜT¹°9M6f 381 ækiSüÃãük+ݯ¯C]p:ÕûÚêù8ïoÔiK(8µßÆPœ$Yý 382 EI9À®Þë¶ãpz°ëÙ<é²éŽæMäa)<©ØT 383 FÜBŒŸ(ü^àÛK 384 ÈŒ 385 Ÿ@7qEQÿï 386 ¶ªÔ¿è^Ò®þìøžž 387 ¹b\ 388 6j<挩Lð]> ²V5ÚóŠ)Þ+ÁÍ 389 ©LP+WÈpòg/ý~oÞâã^µýÞNÛ·dïPÍÙ§ãMŽ^x¹÷[,N08»ðâש×^3ýÐÈûq¯œ!Í?Þb©=`?z£IŽS€î*)»ÇÏl£dpÿþÈ8N>€)4£Ž("³Ñ8wpýLÛ!ÜgîmžçÈmŽH¥œFíø{/ò7q\JÎ!Ãèw¬SãýgáÏ)s:£ò`¿Éº]Á¶gÜÏs¶@;è^)ë6x8X±c$ø.PËn 390 ixT¿K|äfIМ3ô,5 Vššeí×&y<oŠFr*Þk]î!>@_4\GÌœ; E 391 ·êdÆïòÞ7š, ó[ºÇy^F<·>"žK 392 ácæà 393 áÆ nö$È×ã 394 âÛëcàÇò\@ 395 TvïÉy5/ýx8Þx 396 㢌: 397 É{&f«Îgô-IëÖ*l¿Ï÷ 398 âc 399 z9¹ÑZ1°rM ŸËÔ"T¡Å¥|í#°¿PFÓÁ÷hlAÇBÔùÙkd$ÀV 400 €ÈG`·Üo^Ç yù"câ]à6yÛÿxÙù Î8ë0Án¿h4à"?Ë0,nÒbx¶ûH.c|TÎO9>0 7SU=³ã£q/«7€)KÁT"<œÑJöÌXïòµ`Thjáé²€giáj 401 402 ;ô;SRQzOû}öhpJ_T÷Fi*8ø<t|IYk"àÉçóôHx 403 404 Î .ZD²£E.³pÅ× 405 Îû1JaôFm³Ü*ip\M-e°Bî+3 406 r²#È 407 408 ß 2Áp°ÀÄEŠpeÅEÆZFËÃy¶Í×ÁŒµl°~¯ÃARmØï#O1ÌyçcðÜ+jdãCŒ~GTxr;žû]ž<í<»}uù_'`§& Ìæu÷KWQð¹ÔNÀÆHÅ'°]Û¹\CÁží 409 {RéÏöÊq¬t;ø¬qet¬î=š 410 eT0»f ŸË4ÌÏíªwu°ÀÍÊ;Fšó³sÎQ·D9{U@î4wp2Â÷MÜe6AHܱè4€ÐO=×(ýÖ<¡$!{uŠ ©bêÉ¢0þç÷,Ù'Wîd 5ªðT®f'Að 411 hH©µÂ5gql'FÎþ'Y{|jŒ&€ 412 Çb®yoòZÜ~þŽ*>޶ÃuHïR 413 ój7ìŠdv.¢ï«šSÝ9ºp@mÖJŽßåê*i 414 vE¯ÀõÚµ c¡W êüì È%.gÈÆDüakävš<&üféüÇAÂõ²Òž¶CHçÊ}àUÄDû¡ÅŠa&käFÞjÎVÓ[ïòµÝ«Ð>5øpÀbAÎ2ö@çià]Ò¶€a©75[^k®äxŽTÙßññ.Ä.ÜYØ÷ÂúžÜú85Žª:0òÜ6úÁÕZÂc÷]`tÈžqÊ)<w1/ 415 ZUáZ.r~!ã² 416 H\mš¥i²šT:Êãç:R€JtÁóVbÕ*åæOu4¬<íQ[Ÿt !MÁä 417 íçü «0\'ØlÏitdaâ#i 418 øVÞÒZ±¢ ŸËÔ6«B»b1ÓoIÇÉà³³S6¡øBÆÚö,OurKÃK/r, Ô)x€"ŠÃåg¿\=\Kg1Ç[Ùî2ðá³R)gàZ8%KCH@g'f 419 4eÅÄIhC 420 } 421 ÊcÃð Zìš/ÎÒO·dl2Ø@(ØXqùn`Âë*2»0<þ9Ì%¿ 422 ÕüŠCxW 423 y 424 K¢^ã±ÀÚXV¹kqŸL!¥ž8{ 425 426 `~ö×*! +d&!>ì4Í÷WvLáeËXodEÇæd 427 Û¹êmÃdžHNvcq§kêÒ3Ôd Ù 428 µ\(Áwù:f«Ð® 429 «ë|AÆòX V&×&gŠü\ 430 v Ê'uÄíIp_q]ø3©N_PÇÁÅy\l±§5àíìbáòðÜúÛrðÖ!fçð 431 YÓ0^Ñ|D" 432 E» 433 ©Ý 434 ÛšA3±åd·)!÷ 435 3Oñ°kÞMµQ(s¹;,O§>xžàdv3žW¡ 436 ìýAYv@â 437 Áس¥Bæ ?¡Vèz)_ÂÉ=ÿªµCÓÐâØæà±f:Içq®]xí×·»êâ_Jd6ÀX-Ëð¡Ò¡yPÆÒìPªú¹PöºgÁûr¹Û^^9=ÆjÆUvqܱr{ËA1`ÔÐ+Xž|häKŽOÌ8ðäÅ-èYÖj 438 439 H~Ø YIÅÃM4TJŒ÷%da-4ÏB.ño¡K¢2ã@DøOån?¿®í7qŠ,ç V&Ôaœñ}Zz|Ò(Nñ €ÄðBf<® Iã¶ô>Ì(㹬ëK 440 i~I]?Gqº® Ô_M?µìôG©+p-;ßÇtÚWø}¿ÃïyŒÿ3ü>Ïæ~ÏðþëôŒQÿ(?MlÌÃpþ£¥-íÒó\äÏôÓA€Oèt@MðÊ 441 oÌ2WÙsíãÊ 442 #·Nló1Ëoß{Í»ä?S¢ôEŽítm 443 hûžOá÷müáõ?àÇB 444 AqýþU6~µ2{~ÌÔå~æÌÏçžóK$lQQöŠ<H¹€m:Jcž±¡7Ø¡Rì¶G0M"\îP:zz/âßûFMøì0WŠÏt?yäÔábx$ ÛÌ)÷Uðþºor*fH{2VZ,P0L DÔ^5 QöÁ,Û]}ŽH 445 Tmž¥Òo¬NìŠF 446 Sº7<ÅµÄ ;wÁ¹*îű7JŠÉ"XÄ7eó«v÷{a-§XV©ÂI_¶ñ¯1=céìû}U×[eeÞÎ7«Å tüœÝ¬6(b5a 447 ×CâÆÍ=å!ÔýÙìÁ%»Ag=BÿVçõÂå² Lê7õ|š5Ñó!ªÀAÅg²O¡³ü«ã°áÜ-[SŒVÜÜhP0Ê)úÝjdDâluYÛ IÓZ1NLMV.6;ÖèžösS 448 ºwðïý 449 ÖQô|ðlRÿ§ãÙ¹çû±Ãe°2ÜSp}n¬Èr©1uîMÕ 450 KÎhŠ 451 ÔMpYÆö¬¢*±ñ2Mœ¿Mç"í&Ï×€lYmÝÃ5ûF[E1ÕkdWqçsè>ÊŽ? 452 xýÁo±Â 453 1²ò¯²zEø|Ãû¬lO&eÛËÎP·ÍHpS 454 iÄ6Ž¢¿ÙBã.74k#lê³Uh€î cÂ1Ò²uÃVû-×Tî}ôÒÌÚÞhCËÒ 455 ¶úù}¿à(ÀAjg{8{yY4A5ÐE ×};ÀmµEh©ó^Û€e+E»Eì\5eËŠÏö*3·²h£ºSÚŒ»Ë®0Öé3Î 456 :nhztoùðþ 457 %ë2W# 458 é5[PgÆãÆRÛäzÑGQámÀõ3àÀLØ&ÍrÌÔöoó·-VÉÙtºù~aÓÀÓ4Æjb)a 459 uÒ*ºÍŠþµ¿Šæ$µS`Õ+ú.¬;é³D.íÉž2Öe?L7: 460 ¢FFã 461 íDdÚvWYxqÆ7;è{ŒàùàÓeÕĹ^I`*~r2`Ëçùw9|UEª®rR.X 462 Ôù¹ØH°Åäç*XF,+XfñáíŠÔqZ6/ø¯ÄSÙàϯ±F{ÁÜêÞá§g V&Çï¢ 463 YL~ÎîG.ÝÜæWŸ£ŒÌ€Ï[ÛóhóÚß+ñEïÃbS£nªs³š:Îß? 464 _Íßt<ùïæédaÒYtMûÃ0é2 óÌ2fÂÔòí 465 ùþa Nendstream 466 endobj 467 146 0 obj << 445 468 /Type /Page 446 /Contents 14 10 R447 /Resources 1 390 R469 /Contents 147 0 R 470 /Resources 145 0 R 448 471 /MediaBox [0 0 595.2757 841.8898] 449 /Parent 12 20 R450 /Annots [ 14 3 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 1590 R ]451 >> endobj 452 14 30 obj <<472 /Parent 127 0 R 473 /Annots [ 149 0 R 150 0 R 151 0 R 155 0 R 156 0 R 157 0 R 158 0 R 159 0 R 160 0 R 161 0 R 162 0 R 163 0 R 164 0 R 165 0 R 166 0 R ] 474 >> endobj 475 149 0 obj << 453 476 /Type /Annot 454 477 /Border[0 0 0]/H/I/C[0 1 1] … … 456 479 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 457 480 >> endobj 458 1 440 obj <<481 150 0 obj << 459 482 /Type /Annot 460 483 /Border[0 0 0]/H/I/C[0 1 1] … … 462 485 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 463 486 >> endobj 464 1 450 obj <<487 151 0 obj << 465 488 /Type /Annot 466 489 /Border[0 0 0]/H/I/C[0 1 1] … … 468 491 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.python.org)>> 469 492 >> endobj 470 1 490 obj <<493 155 0 obj << 471 494 /Type /Annot 472 495 /Border[0 0 0]/H/I/C[0 1 1] … … 474 497 /Subtype/Link/A<</Type/Action/S/URI/URI(http://numpy.scipy.org)>> 475 498 >> endobj 476 15 00 obj <<477 /Type /Annot 478 /Border[0 0 0]/H/I/C[0 1 1] 479 /Rect [145.9004 65 1.2442 178.3085 662.0835]499 156 0 obj << 500 /Type /Annot 501 /Border[0 0 0]/H/I/C[0 1 1] 502 /Rect [145.9004 650.6863 178.3085 662.5467] 480 503 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.python.org)>> 481 504 >> endobj 482 15 10 obj <<483 /Type /Annot 484 /Border[0 0 0]/H/I/C[0 1 1] 485 /Rect [185.0642 615.6527 220.3815 626.7709]505 157 0 obj << 506 /Type /Annot 507 /Border[0 0 0]/H/I/C[0 1 1] 508 /Rect [185.0642 555.3239 220.3815 566.4421] 486 509 /Subtype/Link/A<</Type/Action/S/URI/URI(http://numpy.scipy.org)>> 487 510 >> endobj 488 15 20 obj <<489 /Type /Annot 490 /Border[0 0 0]/H/I/C[0 1 1] 491 /Rect [375.3565 603.9765 410.6737 614.8157]511 158 0 obj << 512 /Type /Annot 513 /Border[0 0 0]/H/I/C[0 1 1] 514 /Rect [375.3565 543.6477 410.6737 554.487] 492 515 /Subtype/Link/A<</Type/Action/S/URI/URI(http://numpy.scipy.org)>> 493 516 >> endobj 494 15 30 obj <<495 /Type /Annot 496 /Border[0 0 0]/H/I/C[0 1 1] 497 /Rect [168.2912 5 91.4633 200.6993 603.3238]517 159 0 obj << 518 /Type /Annot 519 /Border[0 0 0]/H/I/C[0 1 1] 520 /Rect [168.2912 531.1346 200.6993 542.9951] 498 521 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.python.org)>> 499 522 >> endobj 500 1 540 obj <<501 /Type /Annot 502 /Border[0 0 0]/H/I/C[0 1 1] 503 /Rect [486.5452 5 79.5082 521.8625 591.3687]523 160 0 obj << 524 /Type /Annot 525 /Border[0 0 0]/H/I/C[0 1 1] 526 /Rect [486.5452 519.1794 521.8625 531.0399] 504 527 /Subtype/Link/A<</Type/Action/S/URI/URI(http://numpy.scipy.org)>> 505 528 >> endobj 506 1 550 obj <<507 /Type /Annot 508 /Border[0 0 0]/H/I/C[0 1 1] 509 /Rect [88.3572 556.1558 117.5176 566.995]529 161 0 obj << 530 /Type /Annot 531 /Border[0 0 0]/H/I/C[0 1 1] 532 /Rect [88.3572 495.827 117.5176 506.6663] 510 533 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 511 534 >> endobj 512 1 560 obj <<513 /Type /Annot 514 /Border[0 0 0]/H/I/C[0 1 1] 515 /Rect [332.17 543.9217 361.3304 555.0399]535 162 0 obj << 536 /Type /Annot 537 /Border[0 0 0]/H/I/C[0 1 1] 538 /Rect [332.17 483.5929 361.3304 494.7111] 516 539 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 517 540 >> endobj 518 1 570 obj <<519 /Type /Annot 520 /Border[0 0 0]/H/I/C[0 1 1] 521 /Rect [199.781 508.3351 232.1891 519.1744]541 163 0 obj << 542 /Type /Annot 543 /Border[0 0 0]/H/I/C[0 1 1] 544 /Rect [199.781 448.0064 232.1891 458.8456] 522 545 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.python.org)>> 523 546 >> endobj 524 1 580 obj <<525 /Type /Annot 526 /Border[0 0 0]/H/I/C[0 1 1] 527 /Rect [368.9173 508.3351 398.0777 519.1744]547 164 0 obj << 548 /Type /Annot 549 /Border[0 0 0]/H/I/C[0 1 1] 550 /Rect [368.9173 448.0064 398.0777 458.8456] 528 551 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 529 552 >> endobj 530 1 590 obj <<531 /Type /Annot 532 /Border[0 0 0]/H/I/C[0 1 1] 533 /Rect [ 110.73 174.6963 139.8904 185.5355]553 165 0 obj << 554 /Type /Annot 555 /Border[0 0 0]/H/I/C[0 1 1] 556 /Rect [98.5482 149.1272 127.7087 159.9664] 534 557 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 535 558 >> endobj 536 1 420 obj <<537 / D [140 0 R /XYZ 74.4095 789.6651 null]538 >> endobj 539 123 0 obj << 540 / D [140 0 R /XYZ 74.4095 140.101 null]541 >> endobj 542 14 0 obj <<543 /D [14 0 0 R /XYZ 74.4095 140.101 null]544 >> endobj 545 1 390 obj <<546 /Font << /F8 9 1 0 R /F56 121 0 R /F58 1480 R >>559 166 0 obj << 560 /Type /Annot 561 /Border[0 0 0]/H/I/C[0 1 1] 562 /Rect [258.754 149.1272 287.9144 159.9664] 563 /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.swig.org)>> 564 >> endobj 565 148 0 obj << 566 /D [146 0 R /XYZ 74.4095 789.6651 null] 567 >> endobj 568 145 0 obj << 569 /Font << /F8 95 0 R /F56 126 0 R /F58 154 0 R >> 547 570 /ProcSet [ /PDF /Text ] 548 571 >> endobj 549 16 20 obj <<550 /Length 30 57572 169 0 obj << 573 /Length 3016 551 574 /Filter /FlateDecode 552 575 >> 553 576 stream 554 xÚÍ[mܶþî_qhQ`±hñj?9N€h œ""÷öìCnw·ºnÿÞrH%6-y%qÈá< 555 Îuü¢ 556 üÂ*ŠÚN_X×1c4¿Øîޝ¡í³'h2Licá¡ÒÚhÑ2gžhòA>Ÿzòì%ÜrŀƫáÌÎ^\]ÿuóKŸ9Áu{x}ÙH«7KÉ7?îïñçÝe§6ìöòoW¿öÒ]t¬3ÂàPíE#8sã~«70Â.iÑñi«Ð#Ùš~k×ý%Ï7yOHÇ:Ë;êø]ËÐÝy.P 557 ºàŽýí| kwžnóHÄïBøÛ#ÜÚͶNJÝ5Ÿ~CžÅ׳BÃB<ëÚ3á-ú~ßzùæõTH×2+µ€O8ê+žkêâÚâÔQéáîáé·ÉÍtþy ÇŽä:Ü¿2éïZ$6 558 8ÀE#;ZÕrÎ:fÌâ@±.%Ýæêæ 559 Íi·'{ 560 z)Zž 561 =þÜnÞÞÅ 562 =ã=œóÖ\r·Ù 563 ï±á]hÀS@ÿ8¿Û =ÛrnýC9ÎîïØºóJE<x564 ð$±/2£cÿþÞÒG¹è 565 î7Ø¥ 566 dâqcà-1~4ýe:#Â$â6@ºW 567 ÿɧWÉ®pkX«Z0 568 n4Áø`ÓÃk¢ùSf}wðf(×é°(Èa:ßÀõÅgãiÐ^Ñ:5ÆÈ&ªeæ¢5°P%óé" 569 °£òq=šÇax;REDÓ÷ 570 VcºwðmŽ?HØ@w·×$Z€ûžï¶4t®#ÌÕà:wéý2zÓaN·9ÙÊå¥KTËÌu«Y' 571 ,o{²>JrŠ 572 påþ ¿q ¥ 573 C·ÝÀ9vJv¥ÉzrsBÒýýàvðå>žk²¡YKÔþ10: 574 ÏH~Úq±ðŠà®¶Âf-ØrÓ Æ_YÅDÞdôÓ-0 575 teûu!Òå 576 Æ»/-s!/ Èc{eŸI:~ßC#öÙ¢"Û;ZëéºÐ#ûð^ãmZß577 A¥eU!Âéw®5d:Ÿ€Ì¡YÌB©ßÀþU³ú¿Nž¢ ¢rXLž>ë{ž^ÒóàúÞE+ž>§wøüez_áú©là©!á-NìWÔ\9ŽÏ0ãÕűfÁ¹Í?$éú,PìùwnÃßÍöÓ4JjüZX4g§ý&M3š]4ñ:lz578 áêq£ òÇ«p®»ÐÎ1!^uŒDßä579 *w<,Î"£aÂ!+=°b¶Uj4&ªåYfBÀ*fQ3«O+¡,d\Ø,.ýÐ,ŠÅ¿ùÆÔÊÀú 580 _ïÐÔkÅ«»t» W·&dG1.óP,²A+ÒïÔ@\Û®Ôpï<ºÍg/>ÒðÉM,e7rHy581 äŸ_{BxFå}ÑP÷ɺ$Ðße[ó?ÑÄžZq5t©-4ŠX6ë1J·ñ¶ýi!jË 582 (AD§ñóx»²Ù<jEó)Œ+ËTmÑ=ÚÎrýæ{dÄ;ÚÄt 583 R`È·*û 584 r|È~ÿ+NÑÔУÛÍW4,©âÝXìÒß>*â?§I©\ªQXn€u£Ý/Ýh]²ßpûÎvµôÌ7v PŸÞ 585 ¢¥²Žv&ß³¶ 586 `fÉ€éÖ¢œHÞdôSs; 587 t-Úk¹+ç0öh³lp¥UÁùÖ÷žõ 588 åzX 589 ¶0nìÙ©l«ÖBŽd 590 \©Ý4žÖB:æ¬ÅW)rôÕ$Ž ?v(á-hÐ# 591 ê8\ŽzÚÕ³S«çfMV¯0Í 592 593 ·5ïÀü>£$áåH% û 594 R AªeK·¢ŸÉ;LÕc2ì²fJI 595 ü®ÆH5Õ 596 s¥U)/æ"¥> 597 -GÐr>[ž÷?l].°€»§ug°MÕÊÿ³ÆÅhÏðcîþ% 598 N`^ÈáÓB Ð$P€*pØEFz>·wøÿ«»]š_ 599 2¹wp·ÛcëýéÜy# 600 jÅàäPöý}hV!oýTpCÉ}Žša«ëèl\îlÆŠÐHfDËß¿6ï7 601 t£Y?¬Õtý4»|9$u»Œ^Zœ§ìëÀ`5ÎG\4|M(Ç:4+mªì 602 I°WùöÙÍxêÝ€©ÕÃkeYŒâ38ÖÉÒ|JBÓY1rq[XÀÙûžátXï×DÀ0#«`hy3éÚEÌ:f¶gÈÕ'7Ý>ÖÎJv"~GøêçxpåžM8ÁDùP>·bPæd9ãù ÉòEúÐËczLÆù!Pìþás²{ªÜZ>h®å603 604 !^d#]Ï 605 nÝZ].79ýÄ'MEHŸô;òëxJST ZË,ø»Ñ,F1Q-3çŽtÒÊûXð 606 ޶€Ê¯Hxûà 607 P÷v0rW\Pm!5ÙJøw7ñè 608 ZË¢ì~PoïDò»é¡?O¢0ÿMæ¯G3 ·!?y¿â_ECÛS^úJ.7û~ëíólqQ Ø2°?£ž1_\LT1òüïÉÅFèvÔÞÓóip³ÀõbçÔï¿ 609 ëk 610 0ã 611 Òp}EúbñÇnug?ªÍYÒç,iÚ 612 ø!ãšy?{ 613 614 @,ÜS 615 Hî7ÞÜŠd¯}8téTûÿ 616 Gp;}Þc&eÚiÇcìèTBÈ[Ü~ßÄMñ ÄTå.I£ÌîH®2ãï|ùýšþCû£ 617 |€ùÀÿFýÖ 618 ?Èø8¿|pËÃZÕjå?sÒ9à,`&3ÿÕeÃ!ÕXá»rñÛR?ìÛ.MÏT/1)âtR'Ì»RÖÃð%MðÃÁ¯}bl³¢&D·3ŸÚ쌻ÅѬ 619 °ËfÎÇbQZa¬PjÞàì ÞŸQ:þ°a:<þZDñó [ÖgjNf0ogÀ=J¬ÒŸ¯8620 µAd\|xož*0Î áÃ,èøÚNâ>Ø;BC¯¥ù6jÊw®_)»ï)}²>6ÂMŸ>4ÖÏó¹%KÚ:&µ+dTKD²uDØfùÎ óß\ý\d÷I3 621 ÕLNµL"[EfíÌo 622 ï)ŠúÌè`Õ$×jEôjIôH¶.úÛLô1ßÑsŸg(ÅùèI·Î@Ž 623 QC³À3CfÄtia·«ÂjSzEÚjIÜH¶.ïÛLà1ßsŸgšÂ:*·Íù 624 *Õ*l 625 %¶*cŸ3šä|'åªØBáfEìjIìH¶.öÛLì1ß±sŸg(ÃyÈð?j+ÈdTKÈD²udØfÈùÎ ó-Å> ÞHC[F"§Z@""±Èv@b·DÁ÷œuä=Àrq£W¢¯j ¬H¶ÖÛ¬1ß°rŸ7) áÕ¬ Åò?Ç:EÏšDdë¢/±ÍDó=ç{æ F_j8üø:ÿíLLù 626 €QË9§ð5÷Ó6/õd^>¶<|vO£Šrm<Àj{hêÃOö=¯ÈV@!ÁZžt(µ^ï 627 NHÇd~Š Œ}x628 <÷/Ë?àÅP4þà]xðG/S _hQÖ2ä"vš×«éÇoWN© 629 Ykís޵CkëªN 630 2¢Êg¹ÔÍ4NVNŸådTá÷ohyÛendstream 631 endobj 632 161 0 obj << 577 xÚÝYoÇùÝ¿BÉAæfçÚÃA8NìŠ 578 #UQ®!¬©ÅF$¶ë&ùïý®Ù>Âj¯oŸû¥:ËáO6³yíÎʪΩ³ÅúQ~¶w/)±¶È¬+Jžy;¯çºÌªÚÙ1(UgµvfEm3clu6/E]"ÔWŸxá3XYèâìâúLå6sŠn=ØÅÕ:;mf¯ÏÕì 579 ßÃñÁѱãÀ ËK8>±£ãNáý= 580 ÿÌ]§{bldõ²[-,ý|þöâ/ á\©¬vN»ú|®\yoì;yßÃqK¯ÕlèùlRUDÕÕ+Yú^ßúQYTYtrb}'{Χ/ÇT` 581 ¬ØtâÆÄõåîŽ,SZÕMѳÈ3áûÈ| ^êï<ù 582 ßÑ1-\9®s)[qãËÄbÞú 583 3Hõ€SL3¿ 584 ÖtMç.Ó:·)Ù¯·ûì|h¥ÿ:Òÿ^Ÿ»ß·QÝ×'Ý+ó&€Nfbö²ÅçäqÏy·Ž¿ÂÝßáø"Àµ\ ³£&RlPÒÏÏcºU 585 5ºPõ=Ü1fô2J)Î|)êÙ·d~¢hûÇ 586 ÛÈWc 587 Ä0Þp«è 588 YdB 589 ËjkÊ~ÒEúÄ?ä×b7Ÿ¯$¿éÀåGW0ï€Á¬Øc#®è5¹ŽxÇlxüGÈŒo³MZ 590 r¢)r6§eìÂίÇx.h<xÖ/pù_~®Ä3VѳK©$+ £VôÑ÷ý0lSÂÁi1+ªdgKåîÅdß*÷cŠ¿ªÏãÿ,!Ôœx`ÙVœ=%:ÕK#nÛLñ¥9øÒc|Åð0>îã:o$1Œªü:Jª¿N ã¶ñâÊÛt©ýž€º;k4gÅ#lN5cî÷B(o 591 ÑËã2åÝéä5Åa 592 GfÇ«`§ 7Á~Gõ*üQ÷ì 593 øuë¿ró 594 äúÅéTrÊÜÅžÛvj*{þpmïHö£]r¬I*ÆÑÏUO§àëcÍÆÿÙÌ©lcF²ÍÙÒQbrà£ðDëU4IÏéFvå²Úæ\ÜðeÀs]PwhY»nîÈs£s²9%5cNôªÊJ¥ 595 àqnýuÔedÒOŠÎJí×5»ºÜ3#[Êí«tâó<mwž "Ýô^uÍš.g}ÝY2 596 Ûšµ"äö-¶@ž€ÔÖ> 597 ÖÁ3¥çs?A80c 598 Í ]<CÈjö]Àʲ&3h'íJÐõkV ŸG&tÇ Çv'Z 599 ò£«Zb ºCË(e²2¯¬šž«CSš*s®ð×B 600 )/|ãO@)u
