numpy 1.9.3__zip → 1.10.0__zip

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1590) hide show
  1. numpy-1.10.0.post2/INSTALL.txt +200 -0
  2. numpy-1.10.0.post2/LICENSE.txt +30 -0
  3. numpy-1.10.0.post2/MANIFEST.in +31 -0
  4. numpy-1.10.0.post2/PKG-INFO +47 -0
  5. numpy-1.10.0.post2/cnew.txt +117 -0
  6. numpy-1.10.0.post2/cold.txt +44 -0
  7. numpy-1.10.0.post2/committers.txt +160 -0
  8. numpy-1.10.0.post2/cpre.txt +283 -0
  9. numpy-1.10.0.post2/crel.txt +161 -0
  10. numpy-1.10.0.post2/doc/release/1.10.0-notes.rst +439 -0
  11. numpy-1.10.0.post2/doc/source/conf.py +331 -0
  12. numpy-1.10.0.post2/doc/source/dev/development_environment.rst +211 -0
  13. numpy-1.10.0.post2/doc/source/dev/gitwash/development_workflow.rst +534 -0
  14. numpy-1.10.0.post2/doc/source/dev/gitwash/git_links.inc +95 -0
  15. numpy-1.10.0.post2/doc/source/dev/gitwash/index.rst +14 -0
  16. numpy-1.10.0.post2/doc/source/dev/index.rst +11 -0
  17. numpy-1.10.0.post2/doc/source/reference/arrays.classes.rst +490 -0
  18. numpy-1.10.0.post2/doc/source/reference/arrays.dtypes.rst +536 -0
  19. numpy-1.10.0.post2/doc/source/reference/arrays.indexing.rst +549 -0
  20. numpy-1.10.0.post2/doc/source/reference/arrays.interface.rst +337 -0
  21. numpy-1.10.0.post2/doc/source/reference/arrays.ndarray.rst +622 -0
  22. numpy-1.10.0.post2/doc/source/reference/arrays.scalars.rst +291 -0
  23. numpy-1.10.0.post2/doc/source/reference/c-api.array.rst +3393 -0
  24. numpy-1.10.0.post2/doc/source/reference/c-api.config.rst +103 -0
  25. numpy-1.10.0.post2/doc/source/reference/c-api.coremath.rst +420 -0
  26. numpy-1.10.0.post2/doc/source/reference/c-api.dtype.rst +376 -0
  27. numpy-1.10.0.post2/doc/source/reference/c-api.generalized-ufuncs.rst +191 -0
  28. numpy-1.10.0.post2/doc/source/reference/c-api.iterator.rst +1300 -0
  29. numpy-1.10.0.post2/doc/source/reference/c-api.types-and-structures.rst +1240 -0
  30. numpy-1.10.0.post2/doc/source/reference/c-api.ufunc.rst +413 -0
  31. numpy-1.10.0.post2/doc/source/reference/index.rst +43 -0
  32. numpy-1.10.0.post2/doc/source/reference/internals.code-explanations.rst +615 -0
  33. numpy-1.10.0.post2/doc/source/reference/routines.array-manipulation.rst +115 -0
  34. numpy-1.10.0.post2/doc/source/reference/routines.io.rst +78 -0
  35. numpy-1.10.0.post2/doc/source/reference/routines.linalg.rst +91 -0
  36. numpy-1.10.0.post2/doc/source/reference/routines.ma.rst +407 -0
  37. numpy-1.10.0.post2/doc/source/reference/routines.sort.rst +41 -0
  38. numpy-1.10.0.post2/doc/source/reference/routines.statistics.rst +57 -0
  39. numpy-1.10.0.post2/doc/source/reference/swig.interface-file.rst +1066 -0
  40. numpy-1.10.0.post2/doc/source/reference/swig.testing.rst +167 -0
  41. numpy-1.10.0.post2/doc/source/reference/ufuncs.rst +666 -0
  42. numpy-1.10.0.post2/doc/source/release.rst +20 -0
  43. numpy-1.10.0.post2/doc/source/user/basics.io.genfromtxt.rst +531 -0
  44. numpy-1.10.0.post2/doc/source/user/basics.rec.rst +7 -0
  45. numpy-1.10.0.post2/doc/source/user/c-info.beyond-basics.rst +560 -0
  46. numpy-1.10.0.post2/doc/source/user/c-info.how-to-extend.rst +642 -0
  47. numpy-1.10.0.post2/doc/source/user/c-info.python-as-glue.rst +1177 -0
  48. numpy-1.10.0.post2/doc/source/user/c-info.ufunc-tutorial.rst +1211 -0
  49. numpy-1.10.0.post2/doc/source/user/install.rst +194 -0
  50. numpy-1.10.0.post2/numpy/__init__.py +227 -0
  51. numpy-1.10.0.post2/numpy/_build_utils/README +8 -0
  52. numpy-1.10.0.post2/numpy/_build_utils/apple_accelerate.py +21 -0
  53. numpy-1.10.0.post2/numpy/_build_utils/common.py +138 -0
  54. numpy-1.10.0.post2/numpy/_build_utils/src/apple_sgemv_fix.c +227 -0
  55. numpy-1.10.0.post2/numpy/_build_utils/waf.py +531 -0
  56. numpy-1.10.0.post2/numpy/_import_tools.py +353 -0
  57. numpy-1.10.0.post2/numpy/add_newdocs.py +7611 -0
  58. numpy-1.10.0.post2/numpy/compat/_inspect.py +194 -0
  59. numpy-1.10.0.post2/numpy/compat/py3k.py +88 -0
  60. numpy-1.10.0.post2/numpy/compat/setup.py +12 -0
  61. numpy-1.10.0.post2/numpy/core/__init__.py +89 -0
  62. numpy-1.10.0.post2/numpy/core/_internal.py +761 -0
  63. numpy-1.10.0.post2/numpy/core/_methods.py +133 -0
  64. numpy-1.10.0.post2/numpy/core/arrayprint.py +760 -0
  65. numpy-1.10.0.post2/numpy/core/code_generators/cversions.txt +34 -0
  66. numpy-1.10.0.post2/numpy/core/code_generators/generate_ufunc_api.py +219 -0
  67. numpy-1.10.0.post2/numpy/core/code_generators/generate_umath.py +1017 -0
  68. numpy-1.10.0.post2/numpy/core/code_generators/numpy_api.py +415 -0
  69. numpy-1.10.0.post2/numpy/core/code_generators/ufunc_docstrings.py +3442 -0
  70. numpy-1.10.0.post2/numpy/core/defchararray.py +2689 -0
  71. numpy-1.10.0.post2/numpy/core/fromnumeric.py +3089 -0
  72. numpy-1.10.0.post2/numpy/core/function_base.py +203 -0
  73. numpy-1.10.0.post2/numpy/core/getlimits.py +308 -0
  74. numpy-1.10.0.post2/numpy/core/include/numpy/ndarrayobject.h +246 -0
  75. numpy-1.10.0.post2/numpy/core/include/numpy/ndarraytypes.h +1797 -0
  76. numpy-1.10.0.post2/numpy/core/include/numpy/npy_3kcompat.h +448 -0
  77. numpy-1.10.0.post2/numpy/core/include/numpy/npy_common.h +1051 -0
  78. numpy-1.10.0.post2/numpy/core/include/numpy/npy_cpu.h +92 -0
  79. numpy-1.10.0.post2/numpy/core/include/numpy/npy_endian.h +61 -0
  80. numpy-1.10.0.post2/numpy/core/include/numpy/npy_math.h +525 -0
  81. numpy-1.10.0.post2/numpy/core/include/numpy/numpyconfig.h +36 -0
  82. numpy-1.10.0.post2/numpy/core/machar.py +342 -0
  83. numpy-1.10.0.post2/numpy/core/memmap.py +311 -0
  84. numpy-1.10.0.post2/numpy/core/numeric.py +2893 -0
  85. numpy-1.10.0.post2/numpy/core/numerictypes.py +1036 -0
  86. numpy-1.10.0.post2/numpy/core/records.py +846 -0
  87. numpy-1.10.0.post2/numpy/core/setup.py +983 -0
  88. numpy-1.10.0.post2/numpy/core/setup_common.py +352 -0
  89. numpy-1.10.0.post2/numpy/core/shape_base.py +350 -0
  90. numpy-1.10.0.post2/numpy/core/src/multiarray/alloc.c +244 -0
  91. numpy-1.10.0.post2/numpy/core/src/multiarray/arrayobject.c +1858 -0
  92. numpy-1.10.0.post2/numpy/core/src/multiarray/arraytypes.c.src +4738 -0
  93. numpy-1.10.0.post2/numpy/core/src/multiarray/arraytypes.h +37 -0
  94. numpy-1.10.0.post2/numpy/core/src/multiarray/buffer.c +981 -0
  95. numpy-1.10.0.post2/numpy/core/src/multiarray/calculation.c +1224 -0
  96. numpy-1.10.0.post2/numpy/core/src/multiarray/cblasfuncs.c +812 -0
  97. numpy-1.10.0.post2/numpy/core/src/multiarray/cblasfuncs.h +10 -0
  98. numpy-1.10.0.post2/numpy/core/src/multiarray/common.c +911 -0
  99. numpy-1.10.0.post2/numpy/core/src/multiarray/common.h +250 -0
  100. numpy-1.10.0.post2/numpy/core/src/multiarray/compiled_base.c +1664 -0
  101. numpy-1.10.0.post2/numpy/core/src/multiarray/compiled_base.h +24 -0
  102. numpy-1.10.0.post2/numpy/core/src/multiarray/conversion_utils.c +1217 -0
  103. numpy-1.10.0.post2/numpy/core/src/multiarray/convert.c +590 -0
  104. numpy-1.10.0.post2/numpy/core/src/multiarray/convert_datatype.c +2155 -0
  105. numpy-1.10.0.post2/numpy/core/src/multiarray/ctors.c +3838 -0
  106. numpy-1.10.0.post2/numpy/core/src/multiarray/datetime.c +3821 -0
  107. numpy-1.10.0.post2/numpy/core/src/multiarray/datetime_busday.c +1322 -0
  108. numpy-1.10.0.post2/numpy/core/src/multiarray/datetime_busdaycal.c +552 -0
  109. numpy-1.10.0.post2/numpy/core/src/multiarray/datetime_strings.c +1772 -0
  110. numpy-1.10.0.post2/numpy/core/src/multiarray/descriptor.c +3719 -0
  111. numpy-1.10.0.post2/numpy/core/src/multiarray/dtype_transfer.c +4239 -0
  112. numpy-1.10.0.post2/numpy/core/src/multiarray/einsum.c.src +3005 -0
  113. numpy-1.10.0.post2/numpy/core/src/multiarray/getset.c +986 -0
  114. numpy-1.10.0.post2/numpy/core/src/multiarray/hashdescr.c +318 -0
  115. numpy-1.10.0.post2/numpy/core/src/multiarray/item_selection.c +2413 -0
  116. numpy-1.10.0.post2/numpy/core/src/multiarray/iterators.c +2192 -0
  117. numpy-1.10.0.post2/numpy/core/src/multiarray/lowlevel_strided_loops.c.src +1769 -0
  118. numpy-1.10.0.post2/numpy/core/src/multiarray/mapping.c +3380 -0
  119. numpy-1.10.0.post2/numpy/core/src/multiarray/mapping.h +77 -0
  120. numpy-1.10.0.post2/numpy/core/src/multiarray/methods.c +2514 -0
  121. numpy-1.10.0.post2/numpy/core/src/multiarray/multiarray_tests.c.src +1035 -0
  122. numpy-1.10.0.post2/numpy/core/src/multiarray/multiarraymodule.c +4628 -0
  123. numpy-1.10.0.post2/numpy/core/src/multiarray/multiarraymodule.h +15 -0
  124. numpy-1.10.0.post2/numpy/core/src/multiarray/nditer_api.c +2809 -0
  125. numpy-1.10.0.post2/numpy/core/src/multiarray/nditer_constr.c +3160 -0
  126. numpy-1.10.0.post2/numpy/core/src/multiarray/nditer_pywrap.c +2499 -0
  127. numpy-1.10.0.post2/numpy/core/src/multiarray/number.c +1106 -0
  128. numpy-1.10.0.post2/numpy/core/src/multiarray/number.h +77 -0
  129. numpy-1.10.0.post2/numpy/core/src/multiarray/numpymemoryview.c +308 -0
  130. numpy-1.10.0.post2/numpy/core/src/multiarray/numpyos.c +683 -0
  131. numpy-1.10.0.post2/numpy/core/src/multiarray/scalarapi.c +870 -0
  132. numpy-1.10.0.post2/numpy/core/src/multiarray/scalartypes.c.src +4343 -0
  133. numpy-1.10.0.post2/numpy/core/src/multiarray/scalartypes.h +55 -0
  134. numpy-1.10.0.post2/numpy/core/src/multiarray/shape.c +1131 -0
  135. numpy-1.10.0.post2/numpy/core/src/multiarray/ucsnarrow.c +174 -0
  136. numpy-1.10.0.post2/numpy/core/src/multiarray/vdot.c +180 -0
  137. numpy-1.10.0.post2/numpy/core/src/multiarray/vdot.h +18 -0
  138. numpy-1.10.0.post2/numpy/core/src/npymath/ieee754.c.src +808 -0
  139. numpy-1.10.0.post2/numpy/core/src/npymath/npy_math.c.src +597 -0
  140. numpy-1.10.0.post2/numpy/core/src/npymath/npy_math_complex.c.src +1788 -0
  141. numpy-1.10.0.post2/numpy/core/src/npymath/npy_math_private.h +544 -0
  142. numpy-1.10.0.post2/numpy/core/src/npysort/heapsort.c.src +402 -0
  143. numpy-1.10.0.post2/numpy/core/src/npysort/mergesort.c.src +488 -0
  144. numpy-1.10.0.post2/numpy/core/src/npysort/npysort_common.h +360 -0
  145. numpy-1.10.0.post2/numpy/core/src/npysort/quicksort.c.src +523 -0
  146. numpy-1.10.0.post2/numpy/core/src/npysort/selection.c.src +426 -0
  147. numpy-1.10.0.post2/numpy/core/src/private/npy_cblas.h +584 -0
  148. numpy-1.10.0.post2/numpy/core/src/private/npy_config.h +101 -0
  149. numpy-1.10.0.post2/numpy/core/src/private/npy_import.h +32 -0
  150. numpy-1.10.0.post2/numpy/core/src/private/npy_partition.h.src +122 -0
  151. numpy-1.10.0.post2/numpy/core/src/private/npy_sort.h +196 -0
  152. numpy-1.10.0.post2/numpy/core/src/private/templ_common.h.src +43 -0
  153. numpy-1.10.0.post2/numpy/core/src/private/ufunc_override.h +397 -0
  154. numpy-1.10.0.post2/numpy/core/src/umath/funcs.inc.src +356 -0
  155. numpy-1.10.0.post2/numpy/core/src/umath/loops.c.src +2675 -0
  156. numpy-1.10.0.post2/numpy/core/src/umath/loops.h.src +497 -0
  157. numpy-1.10.0.post2/numpy/core/src/umath/operand_flag_tests.c.src +105 -0
  158. numpy-1.10.0.post2/numpy/core/src/umath/scalarmath.c.src +1738 -0
  159. numpy-1.10.0.post2/numpy/core/src/umath/simd.inc.src +903 -0
  160. numpy-1.10.0.post2/numpy/core/src/umath/test_rational.c.src +1404 -0
  161. numpy-1.10.0.post2/numpy/core/src/umath/ufunc_object.c +5703 -0
  162. numpy-1.10.0.post2/numpy/core/src/umath/ufunc_type_resolution.c +2159 -0
  163. numpy-1.10.0.post2/numpy/core/src/umath/umath_tests.c.src +392 -0
  164. numpy-1.10.0.post2/numpy/core/src/umath/umathmodule.c +443 -0
  165. numpy-1.10.0.post2/numpy/core/tests/test_abc.py +47 -0
  166. numpy-1.10.0.post2/numpy/core/tests/test_api.py +515 -0
  167. numpy-1.10.0.post2/numpy/core/tests/test_arrayprint.py +171 -0
  168. numpy-1.10.0.post2/numpy/core/tests/test_datetime.py +1820 -0
  169. numpy-1.10.0.post2/numpy/core/tests/test_defchararray.py +703 -0
  170. numpy-1.10.0.post2/numpy/core/tests/test_deprecations.py +619 -0
  171. numpy-1.10.0.post2/numpy/core/tests/test_dtype.py +578 -0
  172. numpy-1.10.0.post2/numpy/core/tests/test_einsum.py +627 -0
  173. numpy-1.10.0.post2/numpy/core/tests/test_errstate.py +52 -0
  174. numpy-1.10.0.post2/numpy/core/tests/test_function_base.py +142 -0
  175. numpy-1.10.0.post2/numpy/core/tests/test_getlimits.py +77 -0
  176. numpy-1.10.0.post2/numpy/core/tests/test_half.py +436 -0
  177. numpy-1.10.0.post2/numpy/core/tests/test_indexerrors.py +126 -0
  178. numpy-1.10.0.post2/numpy/core/tests/test_indexing.py +1047 -0
  179. numpy-1.10.0.post2/numpy/core/tests/test_item_selection.py +73 -0
  180. numpy-1.10.0.post2/numpy/core/tests/test_machar.py +29 -0
  181. numpy-1.10.0.post2/numpy/core/tests/test_memmap.py +130 -0
  182. numpy-1.10.0.post2/numpy/core/tests/test_multiarray.py +5924 -0
  183. numpy-1.10.0.post2/numpy/core/tests/test_multiarray_assignment.py +84 -0
  184. numpy-1.10.0.post2/numpy/core/tests/test_nditer.py +2638 -0
  185. numpy-1.10.0.post2/numpy/core/tests/test_numeric.py +2204 -0
  186. numpy-1.10.0.post2/numpy/core/tests/test_numerictypes.py +382 -0
  187. numpy-1.10.0.post2/numpy/core/tests/test_print.py +248 -0
  188. numpy-1.10.0.post2/numpy/core/tests/test_records.py +299 -0
  189. numpy-1.10.0.post2/numpy/core/tests/test_regression.py +2177 -0
  190. numpy-1.10.0.post2/numpy/core/tests/test_scalarinherit.py +41 -0
  191. numpy-1.10.0.post2/numpy/core/tests/test_scalarmath.py +316 -0
  192. numpy-1.10.0.post2/numpy/core/tests/test_shape_base.py +319 -0
  193. numpy-1.10.0.post2/numpy/core/tests/test_ufunc.py +1227 -0
  194. numpy-1.10.0.post2/numpy/core/tests/test_umath.py +1933 -0
  195. numpy-1.10.0.post2/numpy/core/tests/test_umath_complex.py +538 -0
  196. numpy-1.10.0.post2/numpy/core/tests/test_unicode.py +360 -0
  197. numpy-1.10.0.post2/numpy/distutils/__init__.py +23 -0
  198. numpy-1.10.0.post2/numpy/distutils/ccompiler.py +690 -0
  199. numpy-1.10.0.post2/numpy/distutils/command/autodist.py +94 -0
  200. numpy-1.10.0.post2/numpy/distutils/command/build.py +47 -0
  201. numpy-1.10.0.post2/numpy/distutils/command/build_clib.py +295 -0
  202. numpy-1.10.0.post2/numpy/distutils/command/build_ext.py +522 -0
  203. numpy-1.10.0.post2/numpy/distutils/command/config.py +437 -0
  204. numpy-1.10.0.post2/numpy/distutils/exec_command.py +651 -0
  205. numpy-1.10.0.post2/numpy/distutils/fcompiler/compaq.py +128 -0
  206. numpy-1.10.0.post2/numpy/distutils/fcompiler/gnu.py +403 -0
  207. numpy-1.10.0.post2/numpy/distutils/fcompiler/intel.py +217 -0
  208. numpy-1.10.0.post2/numpy/distutils/fcompiler/pg.py +63 -0
  209. numpy-1.10.0.post2/numpy/distutils/fcompiler/sun.py +55 -0
  210. numpy-1.10.0.post2/numpy/distutils/intelccompiler.py +95 -0
  211. numpy-1.10.0.post2/numpy/distutils/lib2def.py +116 -0
  212. numpy-1.10.0.post2/numpy/distutils/mingw32ccompiler.py +599 -0
  213. numpy-1.10.0.post2/numpy/distutils/misc_util.py +2306 -0
  214. numpy-1.10.0.post2/numpy/distutils/msvc9compiler.py +23 -0
  215. numpy-1.10.0.post2/numpy/distutils/msvccompiler.py +17 -0
  216. numpy-1.10.0.post2/numpy/distutils/npy_pkg_config.py +451 -0
  217. numpy-1.10.0.post2/numpy/distutils/system_info.py +2397 -0
  218. numpy-1.10.0.post2/numpy/distutils/tests/f2py_ext/tests/test_fib2.py +12 -0
  219. numpy-1.10.0.post2/numpy/distutils/tests/f2py_f90_ext/tests/test_foo.py +11 -0
  220. numpy-1.10.0.post2/numpy/distutils/tests/gen_ext/tests/test_fib3.py +11 -0
  221. numpy-1.10.0.post2/numpy/distutils/tests/pyrex_ext/tests/test_primes.py +13 -0
  222. numpy-1.10.0.post2/numpy/distutils/tests/swig_ext/__init__.py +1 -0
  223. numpy-1.10.0.post2/numpy/distutils/tests/swig_ext/tests/test_example.py +17 -0
  224. numpy-1.10.0.post2/numpy/distutils/tests/swig_ext/tests/test_example2.py +15 -0
  225. numpy-1.10.0.post2/numpy/distutils/tests/test_fcompiler_gnu.py +60 -0
  226. numpy-1.10.0.post2/numpy/distutils/tests/test_fcompiler_intel.py +36 -0
  227. numpy-1.10.0.post2/numpy/distutils/tests/test_misc_util.py +79 -0
  228. numpy-1.10.0.post2/numpy/distutils/tests/test_npy_pkg_config.py +102 -0
  229. numpy-1.10.0.post2/numpy/distutils/tests/test_system_info.py +209 -0
  230. numpy-1.10.0.post2/numpy/distutils/unixccompiler.py +125 -0
  231. numpy-1.10.0.post2/numpy/doc/byteswapping.py +156 -0
  232. numpy-1.10.0.post2/numpy/doc/creation.py +144 -0
  233. numpy-1.10.0.post2/numpy/doc/glossary.py +423 -0
  234. numpy-1.10.0.post2/numpy/doc/indexing.py +439 -0
  235. numpy-1.10.0.post2/numpy/doc/structured_arrays.py +290 -0
  236. numpy-1.10.0.post2/numpy/f2py/__init__.py +49 -0
  237. numpy-1.10.0.post2/numpy/f2py/__main__.py +25 -0
  238. numpy-1.10.0.post2/numpy/f2py/auxfuncs.py +858 -0
  239. numpy-1.10.0.post2/numpy/f2py/capi_maps.py +851 -0
  240. numpy-1.10.0.post2/numpy/f2py/cb_rules.py +554 -0
  241. numpy-1.10.0.post2/numpy/f2py/cfuncs.py +1261 -0
  242. numpy-1.10.0.post2/numpy/f2py/common_rules.py +150 -0
  243. numpy-1.10.0.post2/numpy/f2py/crackfortran.py +3314 -0
  244. numpy-1.10.0.post2/numpy/f2py/diagnose.py +156 -0
  245. numpy-1.10.0.post2/numpy/f2py/f2py2e.py +656 -0
  246. numpy-1.10.0.post2/numpy/f2py/f2py_testing.py +48 -0
  247. numpy-1.10.0.post2/numpy/f2py/f90mod_rules.py +272 -0
  248. numpy-1.10.0.post2/numpy/f2py/func2subr.py +299 -0
  249. numpy-1.10.0.post2/numpy/f2py/rules.py +1475 -0
  250. numpy-1.10.0.post2/numpy/f2py/setup.py +117 -0
  251. numpy-1.10.0.post2/numpy/f2py/src/fortranobject.c +1037 -0
  252. numpy-1.10.0.post2/numpy/f2py/src/fortranobject.h +162 -0
  253. numpy-1.10.0.post2/numpy/f2py/tests/src/array_from_pyobj/wrapmodule.c +223 -0
  254. numpy-1.10.0.post2/numpy/f2py/tests/test_array_from_pyobj.py +593 -0
  255. numpy-1.10.0.post2/numpy/f2py/tests/test_assumed_shape.py +35 -0
  256. numpy-1.10.0.post2/numpy/f2py/tests/test_callback.py +136 -0
  257. numpy-1.10.0.post2/numpy/f2py/tests/test_kind.py +36 -0
  258. numpy-1.10.0.post2/numpy/f2py/tests/test_mixed.py +40 -0
  259. numpy-1.10.0.post2/numpy/f2py/tests/test_regression.py +34 -0
  260. numpy-1.10.0.post2/numpy/f2py/tests/test_return_character.py +148 -0
  261. numpy-1.10.0.post2/numpy/f2py/tests/test_return_complex.py +170 -0
  262. numpy-1.10.0.post2/numpy/f2py/tests/test_return_integer.py +180 -0
  263. numpy-1.10.0.post2/numpy/f2py/tests/test_return_logical.py +189 -0
  264. numpy-1.10.0.post2/numpy/f2py/tests/test_return_real.py +206 -0
  265. numpy-1.10.0.post2/numpy/f2py/tests/test_size.py +44 -0
  266. numpy-1.10.0.post2/numpy/f2py/tests/util.py +367 -0
  267. numpy-1.10.0.post2/numpy/f2py/use_rules.py +115 -0
  268. numpy-1.10.0.post2/numpy/fft/fftpack.c +1501 -0
  269. numpy-1.10.0.post2/numpy/fft/fftpack.h +28 -0
  270. numpy-1.10.0.post2/numpy/fft/fftpack.py +1241 -0
  271. numpy-1.10.0.post2/numpy/fft/fftpack_litemodule.c +363 -0
  272. numpy-1.10.0.post2/numpy/fft/info.py +187 -0
  273. numpy-1.10.0.post2/numpy/fft/setup.py +19 -0
  274. numpy-1.10.0.post2/numpy/fft/tests/test_fftpack.py +166 -0
  275. numpy-1.10.0.post2/numpy/fft/tests/test_helper.py +78 -0
  276. numpy-1.10.0.post2/numpy/lib/_iotools.py +917 -0
  277. numpy-1.10.0.post2/numpy/lib/arraypad.py +1497 -0
  278. numpy-1.10.0.post2/numpy/lib/arraysetops.py +480 -0
  279. numpy-1.10.0.post2/numpy/lib/arrayterator.py +226 -0
  280. numpy-1.10.0.post2/numpy/lib/financial.py +737 -0
  281. numpy-1.10.0.post2/numpy/lib/format.py +814 -0
  282. numpy-1.10.0.post2/numpy/lib/function_base.py +4150 -0
  283. numpy-1.10.0.post2/numpy/lib/index_tricks.py +874 -0
  284. numpy-1.10.0.post2/numpy/lib/info.py +152 -0
  285. numpy-1.10.0.post2/numpy/lib/nanfunctions.py +1237 -0
  286. numpy-1.10.0.post2/numpy/lib/npyio.py +1992 -0
  287. numpy-1.10.0.post2/numpy/lib/polynomial.py +1277 -0
  288. numpy-1.10.0.post2/numpy/lib/recfunctions.py +1003 -0
  289. numpy-1.10.0.post2/numpy/lib/setup.py +12 -0
  290. numpy-1.10.0.post2/numpy/lib/shape_base.py +872 -0
  291. numpy-1.10.0.post2/numpy/lib/stride_tricks.py +200 -0
  292. numpy-1.10.0.post2/numpy/lib/tests/data/py2-objarr.npy +0 -0
  293. numpy-1.10.0.post2/numpy/lib/tests/data/py2-objarr.npz +0 -0
  294. numpy-1.10.0.post2/numpy/lib/tests/data/py3-objarr.npy +0 -0
  295. numpy-1.10.0.post2/numpy/lib/tests/data/py3-objarr.npz +0 -0
  296. numpy-1.10.0.post2/numpy/lib/tests/test__iotools.py +348 -0
  297. numpy-1.10.0.post2/numpy/lib/tests/test__version.py +70 -0
  298. numpy-1.10.0.post2/numpy/lib/tests/test_arraypad.py +1047 -0
  299. numpy-1.10.0.post2/numpy/lib/tests/test_arraysetops.py +309 -0
  300. numpy-1.10.0.post2/numpy/lib/tests/test_financial.py +163 -0
  301. numpy-1.10.0.post2/numpy/lib/tests/test_format.py +841 -0
  302. numpy-1.10.0.post2/numpy/lib/tests/test_function_base.py +2555 -0
  303. numpy-1.10.0.post2/numpy/lib/tests/test_index_tricks.py +326 -0
  304. numpy-1.10.0.post2/numpy/lib/tests/test_io.py +1916 -0
  305. numpy-1.10.0.post2/numpy/lib/tests/test_nanfunctions.py +707 -0
  306. numpy-1.10.0.post2/numpy/lib/tests/test_packbits.py +26 -0
  307. numpy-1.10.0.post2/numpy/lib/tests/test_polynomial.py +188 -0
  308. numpy-1.10.0.post2/numpy/lib/tests/test_recfunctions.py +734 -0
  309. numpy-1.10.0.post2/numpy/lib/tests/test_shape_base.py +386 -0
  310. numpy-1.10.0.post2/numpy/lib/tests/test_stride_tricks.py +405 -0
  311. numpy-1.10.0.post2/numpy/lib/tests/test_twodim_base.py +535 -0
  312. numpy-1.10.0.post2/numpy/lib/tests/test_type_check.py +332 -0
  313. numpy-1.10.0.post2/numpy/lib/twodim_base.py +1007 -0
  314. numpy-1.10.0.post2/numpy/lib/type_check.py +596 -0
  315. numpy-1.10.0.post2/numpy/lib/utils.py +1122 -0
  316. numpy-1.10.0.post2/numpy/linalg/lapack_lite/python_xerbla.c +46 -0
  317. numpy-1.10.0.post2/numpy/linalg/lapack_litemodule.c +358 -0
  318. numpy-1.10.0.post2/numpy/linalg/linalg.py +2406 -0
  319. numpy-1.10.0.post2/numpy/linalg/tests/test_build.py +59 -0
  320. numpy-1.10.0.post2/numpy/linalg/tests/test_linalg.py +1351 -0
  321. numpy-1.10.0.post2/numpy/linalg/tests/test_regression.py +95 -0
  322. numpy-1.10.0.post2/numpy/linalg/umath_linalg.c.src +3236 -0
  323. numpy-1.10.0.post2/numpy/ma/__init__.py +56 -0
  324. numpy-1.10.0.post2/numpy/ma/bench.py +131 -0
  325. numpy-1.10.0.post2/numpy/ma/core.py +7608 -0
  326. numpy-1.10.0.post2/numpy/ma/extras.py +1953 -0
  327. numpy-1.10.0.post2/numpy/ma/mrecords.py +796 -0
  328. numpy-1.10.0.post2/numpy/ma/setup.py +13 -0
  329. numpy-1.10.0.post2/numpy/ma/tests/test_core.py +4100 -0
  330. numpy-1.10.0.post2/numpy/ma/tests/test_extras.py +1132 -0
  331. numpy-1.10.0.post2/numpy/ma/tests/test_mrecords.py +520 -0
  332. numpy-1.10.0.post2/numpy/ma/tests/test_old_ma.py +879 -0
  333. numpy-1.10.0.post2/numpy/ma/tests/test_regression.py +80 -0
  334. numpy-1.10.0.post2/numpy/ma/tests/test_subclassing.py +338 -0
  335. numpy-1.10.0.post2/numpy/ma/testutils.py +289 -0
  336. numpy-1.10.0.post2/numpy/ma/timer_comparison.py +440 -0
  337. numpy-1.10.0.post2/numpy/matlib.py +358 -0
  338. numpy-1.10.0.post2/numpy/matrixlib/defmatrix.py +1232 -0
  339. numpy-1.10.0.post2/numpy/matrixlib/tests/test_defmatrix.py +449 -0
  340. numpy-1.10.0.post2/numpy/matrixlib/tests/test_multiarray.py +23 -0
  341. numpy-1.10.0.post2/numpy/matrixlib/tests/test_numeric.py +23 -0
  342. numpy-1.10.0.post2/numpy/matrixlib/tests/test_regression.py +37 -0
  343. numpy-1.10.0.post2/numpy/polynomial/_polybase.py +962 -0
  344. numpy-1.10.0.post2/numpy/polynomial/chebyshev.py +2056 -0
  345. numpy-1.10.0.post2/numpy/polynomial/hermite.py +1831 -0
  346. numpy-1.10.0.post2/numpy/polynomial/hermite_e.py +1828 -0
  347. numpy-1.10.0.post2/numpy/polynomial/laguerre.py +1780 -0
  348. numpy-1.10.0.post2/numpy/polynomial/legendre.py +1808 -0
  349. numpy-1.10.0.post2/numpy/polynomial/polyutils.py +403 -0
  350. numpy-1.10.0.post2/numpy/random/mtrand/distributions.c +912 -0
  351. numpy-1.10.0.post2/numpy/random/mtrand/mtrand.c +34805 -0
  352. numpy-1.10.0.post2/numpy/random/mtrand/mtrand.pyx +4766 -0
  353. numpy-1.10.0.post2/numpy/random/setup.py +61 -0
  354. numpy-1.10.0.post2/numpy/random/tests/test_random.py +723 -0
  355. numpy-1.10.0.post2/numpy/random/tests/test_regression.py +117 -0
  356. numpy-1.10.0.post2/numpy/setup.py +29 -0
  357. numpy-1.10.0.post2/numpy/testing/__init__.py +15 -0
  358. numpy-1.10.0.post2/numpy/testing/decorators.py +271 -0
  359. numpy-1.10.0.post2/numpy/testing/noseclasses.py +353 -0
  360. numpy-1.10.0.post2/numpy/testing/nosetester.py +511 -0
  361. numpy-1.10.0.post2/numpy/testing/print_coercion_tables.py +91 -0
  362. numpy-1.10.0.post2/numpy/testing/setup.py +20 -0
  363. numpy-1.10.0.post2/numpy/testing/tests/test_decorators.py +182 -0
  364. numpy-1.10.0.post2/numpy/testing/tests/test_utils.py +781 -0
  365. numpy-1.10.0.post2/numpy/testing/utils.py +1831 -0
  366. numpy-1.10.0.post2/numpy/tests/test_ctypeslib.py +106 -0
  367. numpy-1.10.0.post2/numpy/tests/test_matlib.py +55 -0
  368. numpy-1.10.0.post2/numpy/tests/test_scripts.py +69 -0
  369. numpy-1.10.0.post2/numpy/version.py +10 -0
  370. numpy-1.10.0.post2/setup.py +260 -0
  371. numpy-1.10.0.post2/site.cfg.example +193 -0
  372. numpy-1.10.0.post2/tmp.txt +789 -0
  373. numpy-1.10.0.post2/tools/swig/README +145 -0
  374. numpy-1.10.0.post2/tools/swig/numpy.i +3161 -0
  375. numpy-1.10.0.post2/tools/swig/test/Array.i +135 -0
  376. numpy-1.10.0.post2/tools/swig/test/ArrayZ.cxx +131 -0
  377. numpy-1.10.0.post2/tools/swig/test/ArrayZ.h +56 -0
  378. numpy-1.10.0.post2/tools/swig/test/Flat.cxx +36 -0
  379. numpy-1.10.0.post2/tools/swig/test/Flat.h +34 -0
  380. numpy-1.10.0.post2/tools/swig/test/Flat.i +36 -0
  381. numpy-1.10.0.post2/tools/swig/test/Makefile +37 -0
  382. numpy-1.10.0.post2/tools/swig/test/setup.py +71 -0
  383. numpy-1.10.0.post2/tools/swig/test/testArray.py +385 -0
  384. numpy-1.10.0.post2/tools/swig/test/testFarray.py +159 -0
  385. numpy-1.10.0.post2/tools/swig/test/testFlat.py +200 -0
  386. numpy-1.10.0.post2/tools/swig/test/testFortran.py +173 -0
  387. numpy-1.10.0.post2/tools/swig/test/testMatrix.py +362 -0
  388. numpy-1.10.0.post2/tools/swig/test/testSuperTensor.py +388 -0
  389. numpy-1.10.0.post2/tools/swig/test/testTensor.py +402 -0
  390. numpy-1.10.0.post2/tools/swig/test/testVector.py +381 -0
  391. numpy-1.9.3/INSTALL.txt +0 -138
  392. numpy-1.9.3/LICENSE.txt +0 -30
  393. numpy-1.9.3/MANIFEST.in +0 -26
  394. numpy-1.9.3/PKG-INFO +0 -39
  395. numpy-1.9.3/doc/release/1.9.3-notes.rst +0 -23
  396. numpy-1.9.3/doc/source/conf.py +0 -331
  397. numpy-1.9.3/doc/source/dev/gitwash/branch_list.png +0 -0
  398. numpy-1.9.3/doc/source/dev/gitwash/branch_list_compare.png +0 -0
  399. numpy-1.9.3/doc/source/dev/gitwash/development_workflow.rst +0 -568
  400. numpy-1.9.3/doc/source/dev/gitwash/git_links.inc +0 -88
  401. numpy-1.9.3/doc/source/dev/gitwash/index.rst +0 -14
  402. numpy-1.9.3/doc/source/dev/index.rst +0 -10
  403. numpy-1.9.3/doc/source/reference/arrays.classes.rst +0 -427
  404. numpy-1.9.3/doc/source/reference/arrays.dtypes.rst +0 -534
  405. numpy-1.9.3/doc/source/reference/arrays.indexing.rst +0 -550
  406. numpy-1.9.3/doc/source/reference/arrays.interface.rst +0 -336
  407. numpy-1.9.3/doc/source/reference/arrays.ndarray.rst +0 -609
  408. numpy-1.9.3/doc/source/reference/arrays.scalars.rst +0 -291
  409. numpy-1.9.3/doc/source/reference/c-api.array.rst +0 -3362
  410. numpy-1.9.3/doc/source/reference/c-api.config.rst +0 -103
  411. numpy-1.9.3/doc/source/reference/c-api.coremath.rst +0 -420
  412. numpy-1.9.3/doc/source/reference/c-api.dtype.rst +0 -376
  413. numpy-1.9.3/doc/source/reference/c-api.generalized-ufuncs.rst +0 -171
  414. numpy-1.9.3/doc/source/reference/c-api.iterator.rst +0 -1298
  415. numpy-1.9.3/doc/source/reference/c-api.types-and-structures.rst +0 -1204
  416. numpy-1.9.3/doc/source/reference/c-api.ufunc.rst +0 -399
  417. numpy-1.9.3/doc/source/reference/index.rst +0 -44
  418. numpy-1.9.3/doc/source/reference/internals.code-explanations.rst +0 -666
  419. numpy-1.9.3/doc/source/reference/routines.array-manipulation.rst +0 -113
  420. numpy-1.9.3/doc/source/reference/routines.io.rst +0 -74
  421. numpy-1.9.3/doc/source/reference/routines.linalg.rst +0 -88
  422. numpy-1.9.3/doc/source/reference/routines.ma.rst +0 -405
  423. numpy-1.9.3/doc/source/reference/routines.sort.rst +0 -42
  424. numpy-1.9.3/doc/source/reference/routines.statistics.rst +0 -55
  425. numpy-1.9.3/doc/source/reference/swig.interface-file.rst +0 -1055
  426. numpy-1.9.3/doc/source/reference/swig.testing.rst +0 -166
  427. numpy-1.9.3/doc/source/reference/ufuncs.rst +0 -651
  428. numpy-1.9.3/doc/source/release.rst +0 -19
  429. numpy-1.9.3/doc/source/user/basics.io.genfromtxt.rst +0 -531
  430. numpy-1.9.3/doc/source/user/basics.rec.rst +0 -7
  431. numpy-1.9.3/doc/source/user/c-info.beyond-basics.rst +0 -560
  432. numpy-1.9.3/doc/source/user/c-info.how-to-extend.rst +0 -642
  433. numpy-1.9.3/doc/source/user/c-info.python-as-glue.rst +0 -1528
  434. numpy-1.9.3/doc/source/user/c-info.ufunc-tutorial.rst +0 -1211
  435. numpy-1.9.3/doc/source/user/install.rst +0 -180
  436. numpy-1.9.3/numpy/__init__.py +0 -216
  437. numpy-1.9.3/numpy/_import_tools.py +0 -348
  438. numpy-1.9.3/numpy/add_newdocs.py +0 -7518
  439. numpy-1.9.3/numpy/compat/_inspect.py +0 -221
  440. numpy-1.9.3/numpy/compat/py3k.py +0 -89
  441. numpy-1.9.3/numpy/compat/setup.py +0 -12
  442. numpy-1.9.3/numpy/core/__init__.py +0 -78
  443. numpy-1.9.3/numpy/core/_internal.py +0 -570
  444. numpy-1.9.3/numpy/core/_methods.py +0 -134
  445. numpy-1.9.3/numpy/core/arrayprint.py +0 -752
  446. numpy-1.9.3/numpy/core/blasdot/_dotblas.c +0 -1255
  447. numpy-1.9.3/numpy/core/blasdot/apple_sgemv_patch.c +0 -216
  448. numpy-1.9.3/numpy/core/blasdot/cblas.h +0 -578
  449. numpy-1.9.3/numpy/core/code_generators/cversions.txt +0 -31
  450. numpy-1.9.3/numpy/core/code_generators/generate_ufunc_api.py +0 -219
  451. numpy-1.9.3/numpy/core/code_generators/generate_umath.py +0 -972
  452. numpy-1.9.3/numpy/core/code_generators/numpy_api.py +0 -412
  453. numpy-1.9.3/numpy/core/code_generators/ufunc_docstrings.py +0 -3419
  454. numpy-1.9.3/numpy/core/defchararray.py +0 -2687
  455. numpy-1.9.3/numpy/core/fromnumeric.py +0 -2938
  456. numpy-1.9.3/numpy/core/function_base.py +0 -190
  457. numpy-1.9.3/numpy/core/getlimits.py +0 -306
  458. numpy-1.9.3/numpy/core/include/numpy/fenv/fenv.c +0 -38
  459. numpy-1.9.3/numpy/core/include/numpy/fenv/fenv.h +0 -224
  460. numpy-1.9.3/numpy/core/include/numpy/ndarrayobject.h +0 -237
  461. numpy-1.9.3/numpy/core/include/numpy/ndarraytypes.h +0 -1820
  462. numpy-1.9.3/numpy/core/include/numpy/npy_3kcompat.h +0 -506
  463. numpy-1.9.3/numpy/core/include/numpy/npy_common.h +0 -1038
  464. numpy-1.9.3/numpy/core/include/numpy/npy_cpu.h +0 -122
  465. numpy-1.9.3/numpy/core/include/numpy/npy_endian.h +0 -49
  466. numpy-1.9.3/numpy/core/include/numpy/npy_math.h +0 -479
  467. numpy-1.9.3/numpy/core/include/numpy/numpyconfig.h +0 -35
  468. numpy-1.9.3/numpy/core/machar.py +0 -338
  469. numpy-1.9.3/numpy/core/memmap.py +0 -308
  470. numpy-1.9.3/numpy/core/numeric.py +0 -2842
  471. numpy-1.9.3/numpy/core/numerictypes.py +0 -1042
  472. numpy-1.9.3/numpy/core/records.py +0 -804
  473. numpy-1.9.3/numpy/core/setup.py +0 -1016
  474. numpy-1.9.3/numpy/core/setup_common.py +0 -330
  475. numpy-1.9.3/numpy/core/shape_base.py +0 -277
  476. numpy-1.9.3/numpy/core/src/multiarray/alloc.c +0 -241
  477. numpy-1.9.3/numpy/core/src/multiarray/arrayobject.c +0 -1791
  478. numpy-1.9.3/numpy/core/src/multiarray/arraytypes.c.src +0 -4372
  479. numpy-1.9.3/numpy/core/src/multiarray/arraytypes.h +0 -13
  480. numpy-1.9.3/numpy/core/src/multiarray/buffer.c +0 -954
  481. numpy-1.9.3/numpy/core/src/multiarray/calculation.c +0 -1229
  482. numpy-1.9.3/numpy/core/src/multiarray/common.c +0 -798
  483. numpy-1.9.3/numpy/core/src/multiarray/common.h +0 -328
  484. numpy-1.9.3/numpy/core/src/multiarray/conversion_utils.c +0 -1240
  485. numpy-1.9.3/numpy/core/src/multiarray/convert.c +0 -589
  486. numpy-1.9.3/numpy/core/src/multiarray/convert_datatype.c +0 -2199
  487. numpy-1.9.3/numpy/core/src/multiarray/ctors.c +0 -3785
  488. numpy-1.9.3/numpy/core/src/multiarray/datetime.c +0 -3823
  489. numpy-1.9.3/numpy/core/src/multiarray/datetime_busday.c +0 -1322
  490. numpy-1.9.3/numpy/core/src/multiarray/datetime_busdaycal.c +0 -552
  491. numpy-1.9.3/numpy/core/src/multiarray/datetime_strings.c +0 -1772
  492. numpy-1.9.3/numpy/core/src/multiarray/descriptor.c +0 -3658
  493. numpy-1.9.3/numpy/core/src/multiarray/dtype_transfer.c +0 -4232
  494. numpy-1.9.3/numpy/core/src/multiarray/einsum.c.src +0 -3013
  495. numpy-1.9.3/numpy/core/src/multiarray/getset.c +0 -984
  496. numpy-1.9.3/numpy/core/src/multiarray/hashdescr.c +0 -319
  497. numpy-1.9.3/numpy/core/src/multiarray/item_selection.c +0 -2711
  498. numpy-1.9.3/numpy/core/src/multiarray/iterators.c +0 -2160
  499. numpy-1.9.3/numpy/core/src/multiarray/lowlevel_strided_loops.c.src +0 -1767
  500. numpy-1.9.3/numpy/core/src/multiarray/mapping.c +0 -3316
  501. numpy-1.9.3/numpy/core/src/multiarray/mapping.h +0 -73
  502. numpy-1.9.3/numpy/core/src/multiarray/methods.c +0 -2497
  503. numpy-1.9.3/numpy/core/src/multiarray/multiarray_tests.c.src +0 -977
  504. numpy-1.9.3/numpy/core/src/multiarray/multiarraymodule.c +0 -4200
  505. numpy-1.9.3/numpy/core/src/multiarray/multiarraymodule.h +0 -4
  506. numpy-1.9.3/numpy/core/src/multiarray/nditer_api.c +0 -2809
  507. numpy-1.9.3/numpy/core/src/multiarray/nditer_constr.c +0 -3159
  508. numpy-1.9.3/numpy/core/src/multiarray/nditer_pywrap.c +0 -2492
  509. numpy-1.9.3/numpy/core/src/multiarray/number.c +0 -1057
  510. numpy-1.9.3/numpy/core/src/multiarray/number.h +0 -76
  511. numpy-1.9.3/numpy/core/src/multiarray/numpymemoryview.c +0 -309
  512. numpy-1.9.3/numpy/core/src/multiarray/numpyos.c +0 -683
  513. numpy-1.9.3/numpy/core/src/multiarray/scalarapi.c +0 -861
  514. numpy-1.9.3/numpy/core/src/multiarray/scalartypes.c.src +0 -4270
  515. numpy-1.9.3/numpy/core/src/multiarray/scalartypes.h +0 -52
  516. numpy-1.9.3/numpy/core/src/multiarray/shape.c +0 -1141
  517. numpy-1.9.3/numpy/core/src/multiarray/ucsnarrow.c +0 -173
  518. numpy-1.9.3/numpy/core/src/npymath/ieee754.c.src +0 -814
  519. numpy-1.9.3/numpy/core/src/npymath/npy_math.c.src +0 -527
  520. numpy-1.9.3/numpy/core/src/npymath/npy_math_complex.c.src +0 -291
  521. numpy-1.9.3/numpy/core/src/npymath/npy_math_private.h +0 -539
  522. numpy-1.9.3/numpy/core/src/npysort/heapsort.c.src +0 -341
  523. numpy-1.9.3/numpy/core/src/npysort/mergesort.c.src +0 -428
  524. numpy-1.9.3/numpy/core/src/npysort/npysort_common.h +0 -367
  525. numpy-1.9.3/numpy/core/src/npysort/quicksort.c.src +0 -363
  526. numpy-1.9.3/numpy/core/src/npysort/selection.c.src +0 -474
  527. numpy-1.9.3/numpy/core/src/private/npy_config.h +0 -68
  528. numpy-1.9.3/numpy/core/src/private/npy_partition.h.src +0 -138
  529. numpy-1.9.3/numpy/core/src/private/npy_sort.h +0 -194
  530. numpy-1.9.3/numpy/core/src/private/scalarmathmodule.h.src +0 -42
  531. numpy-1.9.3/numpy/core/src/private/ufunc_override.h +0 -384
  532. numpy-1.9.3/numpy/core/src/scalarmathmodule.c.src +0 -1980
  533. numpy-1.9.3/numpy/core/src/umath/funcs.inc.src +0 -715
  534. numpy-1.9.3/numpy/core/src/umath/loops.c.src +0 -2654
  535. numpy-1.9.3/numpy/core/src/umath/loops.h.src +0 -501
  536. numpy-1.9.3/numpy/core/src/umath/operand_flag_tests.c.src +0 -105
  537. numpy-1.9.3/numpy/core/src/umath/simd.inc.src +0 -881
  538. numpy-1.9.3/numpy/core/src/umath/test_rational.c.src +0 -1404
  539. numpy-1.9.3/numpy/core/src/umath/ufunc_object.c +0 -5520
  540. numpy-1.9.3/numpy/core/src/umath/ufunc_type_resolution.c +0 -2164
  541. numpy-1.9.3/numpy/core/src/umath/umath_tests.c.src +0 -341
  542. numpy-1.9.3/numpy/core/src/umath/umathmodule.c +0 -561
  543. numpy-1.9.3/numpy/core/tests/test_abc.py +0 -45
  544. numpy-1.9.3/numpy/core/tests/test_api.py +0 -514
  545. numpy-1.9.3/numpy/core/tests/test_arrayprint.py +0 -167
  546. numpy-1.9.3/numpy/core/tests/test_blasdot.py +0 -249
  547. numpy-1.9.3/numpy/core/tests/test_datetime.py +0 -1781
  548. numpy-1.9.3/numpy/core/tests/test_defchararray.py +0 -642
  549. numpy-1.9.3/numpy/core/tests/test_deprecations.py +0 -512
  550. numpy-1.9.3/numpy/core/tests/test_dtype.py +0 -542
  551. numpy-1.9.3/numpy/core/tests/test_einsum.py +0 -583
  552. numpy-1.9.3/numpy/core/tests/test_errstate.py +0 -51
  553. numpy-1.9.3/numpy/core/tests/test_function_base.py +0 -111
  554. numpy-1.9.3/numpy/core/tests/test_getlimits.py +0 -86
  555. numpy-1.9.3/numpy/core/tests/test_half.py +0 -439
  556. numpy-1.9.3/numpy/core/tests/test_indexerrors.py +0 -127
  557. numpy-1.9.3/numpy/core/tests/test_indexing.py +0 -1014
  558. numpy-1.9.3/numpy/core/tests/test_item_selection.py +0 -70
  559. numpy-1.9.3/numpy/core/tests/test_machar.py +0 -30
  560. numpy-1.9.3/numpy/core/tests/test_memmap.py +0 -127
  561. numpy-1.9.3/numpy/core/tests/test_multiarray.py +0 -4645
  562. numpy-1.9.3/numpy/core/tests/test_multiarray_assignment.py +0 -80
  563. numpy-1.9.3/numpy/core/tests/test_nditer.py +0 -2630
  564. numpy-1.9.3/numpy/core/tests/test_numeric.py +0 -2117
  565. numpy-1.9.3/numpy/core/tests/test_numerictypes.py +0 -377
  566. numpy-1.9.3/numpy/core/tests/test_print.py +0 -245
  567. numpy-1.9.3/numpy/core/tests/test_records.py +0 -185
  568. numpy-1.9.3/numpy/core/tests/test_regression.py +0 -2115
  569. numpy-1.9.3/numpy/core/tests/test_scalarinherit.py +0 -34
  570. numpy-1.9.3/numpy/core/tests/test_scalarmath.py +0 -275
  571. numpy-1.9.3/numpy/core/tests/test_shape_base.py +0 -250
  572. numpy-1.9.3/numpy/core/tests/test_ufunc.py +0 -1153
  573. numpy-1.9.3/numpy/core/tests/test_umath.py +0 -1695
  574. numpy-1.9.3/numpy/core/tests/test_umath_complex.py +0 -537
  575. numpy-1.9.3/numpy/core/tests/test_unicode.py +0 -357
  576. numpy-1.9.3/numpy/distutils/__init__.py +0 -39
  577. numpy-1.9.3/numpy/distutils/ccompiler.py +0 -656
  578. numpy-1.9.3/numpy/distutils/command/autodist.py +0 -43
  579. numpy-1.9.3/numpy/distutils/command/build.py +0 -39
  580. numpy-1.9.3/numpy/distutils/command/build_clib.py +0 -284
  581. numpy-1.9.3/numpy/distutils/command/build_ext.py +0 -515
  582. numpy-1.9.3/numpy/distutils/command/config.py +0 -476
  583. numpy-1.9.3/numpy/distutils/exec_command.py +0 -618
  584. numpy-1.9.3/numpy/distutils/fcompiler/compaq.py +0 -128
  585. numpy-1.9.3/numpy/distutils/fcompiler/gnu.py +0 -390
  586. numpy-1.9.3/numpy/distutils/fcompiler/intel.py +0 -205
  587. numpy-1.9.3/numpy/distutils/fcompiler/pg.py +0 -60
  588. numpy-1.9.3/numpy/distutils/fcompiler/sun.py +0 -52
  589. numpy-1.9.3/numpy/distutils/intelccompiler.py +0 -45
  590. numpy-1.9.3/numpy/distutils/lib2def.py +0 -116
  591. numpy-1.9.3/numpy/distutils/mingw32ccompiler.py +0 -582
  592. numpy-1.9.3/numpy/distutils/misc_util.py +0 -2271
  593. numpy-1.9.3/numpy/distutils/npy_pkg_config.py +0 -464
  594. numpy-1.9.3/numpy/distutils/system_info.py +0 -2319
  595. numpy-1.9.3/numpy/distutils/tests/f2py_ext/tests/test_fib2.py +0 -13
  596. numpy-1.9.3/numpy/distutils/tests/f2py_f90_ext/tests/test_foo.py +0 -12
  597. numpy-1.9.3/numpy/distutils/tests/gen_ext/tests/test_fib3.py +0 -12
  598. numpy-1.9.3/numpy/distutils/tests/pyrex_ext/tests/test_primes.py +0 -14
  599. numpy-1.9.3/numpy/distutils/tests/swig_ext/tests/test_example.py +0 -18
  600. numpy-1.9.3/numpy/distutils/tests/swig_ext/tests/test_example2.py +0 -16
  601. numpy-1.9.3/numpy/distutils/tests/test_fcompiler_gnu.py +0 -53
  602. numpy-1.9.3/numpy/distutils/tests/test_fcompiler_intel.py +0 -36
  603. numpy-1.9.3/numpy/distutils/tests/test_misc_util.py +0 -75
  604. numpy-1.9.3/numpy/distutils/tests/test_npy_pkg_config.py +0 -98
  605. numpy-1.9.3/numpy/distutils/unixccompiler.py +0 -113
  606. numpy-1.9.3/numpy/doc/byteswapping.py +0 -147
  607. numpy-1.9.3/numpy/doc/creation.py +0 -144
  608. numpy-1.9.3/numpy/doc/glossary.py +0 -418
  609. numpy-1.9.3/numpy/doc/indexing.py +0 -437
  610. numpy-1.9.3/numpy/doc/structured_arrays.py +0 -223
  611. numpy-1.9.3/numpy/f2py/__init__.py +0 -49
  612. numpy-1.9.3/numpy/f2py/auxfuncs.py +0 -711
  613. numpy-1.9.3/numpy/f2py/capi_maps.py +0 -773
  614. numpy-1.9.3/numpy/f2py/cb_rules.py +0 -539
  615. numpy-1.9.3/numpy/f2py/cfuncs.py +0 -1224
  616. numpy-1.9.3/numpy/f2py/common_rules.py +0 -132
  617. numpy-1.9.3/numpy/f2py/crackfortran.py +0 -2870
  618. numpy-1.9.3/numpy/f2py/diagnose.py +0 -149
  619. numpy-1.9.3/numpy/f2py/f2py2e.py +0 -598
  620. numpy-1.9.3/numpy/f2py/f2py_testing.py +0 -46
  621. numpy-1.9.3/numpy/f2py/f90mod_rules.py +0 -246
  622. numpy-1.9.3/numpy/f2py/func2subr.py +0 -291
  623. numpy-1.9.3/numpy/f2py/rules.py +0 -1448
  624. numpy-1.9.3/numpy/f2py/setup.py +0 -129
  625. numpy-1.9.3/numpy/f2py/src/fortranobject.c +0 -972
  626. numpy-1.9.3/numpy/f2py/src/fortranobject.h +0 -162
  627. numpy-1.9.3/numpy/f2py/tests/src/array_from_pyobj/wrapmodule.c +0 -223
  628. numpy-1.9.3/numpy/f2py/tests/test_array_from_pyobj.py +0 -559
  629. numpy-1.9.3/numpy/f2py/tests/test_assumed_shape.py +0 -37
  630. numpy-1.9.3/numpy/f2py/tests/test_callback.py +0 -132
  631. numpy-1.9.3/numpy/f2py/tests/test_kind.py +0 -36
  632. numpy-1.9.3/numpy/f2py/tests/test_mixed.py +0 -41
  633. numpy-1.9.3/numpy/f2py/tests/test_regression.py +0 -32
  634. numpy-1.9.3/numpy/f2py/tests/test_return_character.py +0 -142
  635. numpy-1.9.3/numpy/f2py/tests/test_return_complex.py +0 -169
  636. numpy-1.9.3/numpy/f2py/tests/test_return_integer.py +0 -178
  637. numpy-1.9.3/numpy/f2py/tests/test_return_logical.py +0 -187
  638. numpy-1.9.3/numpy/f2py/tests/test_return_real.py +0 -203
  639. numpy-1.9.3/numpy/f2py/tests/test_size.py +0 -47
  640. numpy-1.9.3/numpy/f2py/tests/util.py +0 -353
  641. numpy-1.9.3/numpy/f2py/use_rules.py +0 -109
  642. numpy-1.9.3/numpy/fft/fftpack.c +0 -1501
  643. numpy-1.9.3/numpy/fft/fftpack.h +0 -28
  644. numpy-1.9.3/numpy/fft/fftpack.py +0 -1169
  645. numpy-1.9.3/numpy/fft/fftpack_litemodule.c +0 -371
  646. numpy-1.9.3/numpy/fft/info.py +0 -179
  647. numpy-1.9.3/numpy/fft/setup.py +0 -20
  648. numpy-1.9.3/numpy/fft/tests/test_fftpack.py +0 -75
  649. numpy-1.9.3/numpy/fft/tests/test_helper.py +0 -78
  650. numpy-1.9.3/numpy/lib/_iotools.py +0 -891
  651. numpy-1.9.3/numpy/lib/arraypad.py +0 -1475
  652. numpy-1.9.3/numpy/lib/arraysetops.py +0 -464
  653. numpy-1.9.3/numpy/lib/arrayterator.py +0 -226
  654. numpy-1.9.3/numpy/lib/financial.py +0 -737
  655. numpy-1.9.3/numpy/lib/format.py +0 -771
  656. numpy-1.9.3/numpy/lib/function_base.py +0 -3884
  657. numpy-1.9.3/numpy/lib/index_tricks.py +0 -869
  658. numpy-1.9.3/numpy/lib/info.py +0 -151
  659. numpy-1.9.3/numpy/lib/nanfunctions.py +0 -1158
  660. numpy-1.9.3/numpy/lib/npyio.py +0 -1871
  661. numpy-1.9.3/numpy/lib/polynomial.py +0 -1271
  662. numpy-1.9.3/numpy/lib/recfunctions.py +0 -1003
  663. numpy-1.9.3/numpy/lib/setup.py +0 -23
  664. numpy-1.9.3/numpy/lib/shape_base.py +0 -865
  665. numpy-1.9.3/numpy/lib/src/_compiled_base.c +0 -1761
  666. numpy-1.9.3/numpy/lib/stride_tricks.py +0 -123
  667. numpy-1.9.3/numpy/lib/tests/test__iotools.py +0 -326
  668. numpy-1.9.3/numpy/lib/tests/test__version.py +0 -57
  669. numpy-1.9.3/numpy/lib/tests/test_arraypad.py +0 -560
  670. numpy-1.9.3/numpy/lib/tests/test_arraysetops.py +0 -301
  671. numpy-1.9.3/numpy/lib/tests/test_financial.py +0 -160
  672. numpy-1.9.3/numpy/lib/tests/test_format.py +0 -716
  673. numpy-1.9.3/numpy/lib/tests/test_function_base.py +0 -2145
  674. numpy-1.9.3/numpy/lib/tests/test_index_tricks.py +0 -289
  675. numpy-1.9.3/numpy/lib/tests/test_io.py +0 -1754
  676. numpy-1.9.3/numpy/lib/tests/test_nanfunctions.py +0 -774
  677. numpy-1.9.3/numpy/lib/tests/test_polynomial.py +0 -177
  678. numpy-1.9.3/numpy/lib/tests/test_recfunctions.py +0 -705
  679. numpy-1.9.3/numpy/lib/tests/test_shape_base.py +0 -368
  680. numpy-1.9.3/numpy/lib/tests/test_stride_tricks.py +0 -238
  681. numpy-1.9.3/numpy/lib/tests/test_twodim_base.py +0 -504
  682. numpy-1.9.3/numpy/lib/tests/test_type_check.py +0 -328
  683. numpy-1.9.3/numpy/lib/twodim_base.py +0 -1003
  684. numpy-1.9.3/numpy/lib/type_check.py +0 -605
  685. numpy-1.9.3/numpy/lib/utils.py +0 -1176
  686. numpy-1.9.3/numpy/linalg/lapack_lite/python_xerbla.c +0 -47
  687. numpy-1.9.3/numpy/linalg/lapack_litemodule.c +0 -362
  688. numpy-1.9.3/numpy/linalg/linalg.py +0 -2136
  689. numpy-1.9.3/numpy/linalg/tests/test_build.py +0 -53
  690. numpy-1.9.3/numpy/linalg/tests/test_linalg.py +0 -1156
  691. numpy-1.9.3/numpy/linalg/tests/test_regression.py +0 -90
  692. numpy-1.9.3/numpy/linalg/umath_linalg.c.src +0 -3210
  693. numpy-1.9.3/numpy/ma/__init__.py +0 -58
  694. numpy-1.9.3/numpy/ma/bench.py +0 -166
  695. numpy-1.9.3/numpy/ma/core.py +0 -7374
  696. numpy-1.9.3/numpy/ma/extras.py +0 -1932
  697. numpy-1.9.3/numpy/ma/mrecords.py +0 -734
  698. numpy-1.9.3/numpy/ma/setup.py +0 -20
  699. numpy-1.9.3/numpy/ma/tests/test_core.py +0 -3706
  700. numpy-1.9.3/numpy/ma/tests/test_extras.py +0 -954
  701. numpy-1.9.3/numpy/ma/tests/test_mrecords.py +0 -521
  702. numpy-1.9.3/numpy/ma/tests/test_old_ma.py +0 -869
  703. numpy-1.9.3/numpy/ma/tests/test_regression.py +0 -75
  704. numpy-1.9.3/numpy/ma/tests/test_subclassing.py +0 -236
  705. numpy-1.9.3/numpy/ma/testutils.py +0 -240
  706. numpy-1.9.3/numpy/ma/timer_comparison.py +0 -459
  707. numpy-1.9.3/numpy/matlib.py +0 -358
  708. numpy-1.9.3/numpy/matrixlib/defmatrix.py +0 -1094
  709. numpy-1.9.3/numpy/matrixlib/tests/test_defmatrix.py +0 -400
  710. numpy-1.9.3/numpy/matrixlib/tests/test_multiarray.py +0 -18
  711. numpy-1.9.3/numpy/matrixlib/tests/test_numeric.py +0 -10
  712. numpy-1.9.3/numpy/matrixlib/tests/test_regression.py +0 -34
  713. numpy-1.9.3/numpy/polynomial/_polybase.py +0 -962
  714. numpy-1.9.3/numpy/polynomial/chebyshev.py +0 -2056
  715. numpy-1.9.3/numpy/polynomial/hermite.py +0 -1789
  716. numpy-1.9.3/numpy/polynomial/hermite_e.py +0 -1786
  717. numpy-1.9.3/numpy/polynomial/laguerre.py +0 -1781
  718. numpy-1.9.3/numpy/polynomial/legendre.py +0 -1809
  719. numpy-1.9.3/numpy/polynomial/polytemplate.py +0 -927
  720. numpy-1.9.3/numpy/polynomial/polyutils.py +0 -403
  721. numpy-1.9.3/numpy/random/mtrand/distributions.c +0 -892
  722. numpy-1.9.3/numpy/random/mtrand/mtrand.c +0 -36656
  723. numpy-1.9.3/numpy/random/mtrand/mtrand.pyx +0 -4706
  724. numpy-1.9.3/numpy/random/setup.py +0 -74
  725. numpy-1.9.3/numpy/random/tests/test_random.py +0 -707
  726. numpy-1.9.3/numpy/random/tests/test_regression.py +0 -86
  727. numpy-1.9.3/numpy/setup.py +0 -27
  728. numpy-1.9.3/numpy/testing/__init__.py +0 -16
  729. numpy-1.9.3/numpy/testing/decorators.py +0 -271
  730. numpy-1.9.3/numpy/testing/noseclasses.py +0 -353
  731. numpy-1.9.3/numpy/testing/nosetester.py +0 -504
  732. numpy-1.9.3/numpy/testing/print_coercion_tables.py +0 -89
  733. numpy-1.9.3/numpy/testing/setup.py +0 -20
  734. numpy-1.9.3/numpy/testing/tests/test_decorators.py +0 -185
  735. numpy-1.9.3/numpy/testing/tests/test_utils.py +0 -558
  736. numpy-1.9.3/numpy/testing/utils.py +0 -1715
  737. numpy-1.9.3/numpy/tests/test_ctypeslib.py +0 -102
  738. numpy-1.9.3/numpy/tests/test_matlib.py +0 -55
  739. numpy-1.9.3/numpy/version.py +0 -10
  740. numpy-1.9.3/setup.py +0 -251
  741. numpy-1.9.3/site.cfg.example +0 -157
  742. numpy-1.9.3/tools/swig/README +0 -135
  743. numpy-1.9.3/tools/swig/numpy.i +0 -3085
  744. numpy-1.9.3/tools/swig/test/Array.i +0 -102
  745. numpy-1.9.3/tools/swig/test/Makefile +0 -34
  746. numpy-1.9.3/tools/swig/test/setup.py +0 -64
  747. numpy-1.9.3/tools/swig/test/testArray.py +0 -284
  748. numpy-1.9.3/tools/swig/test/testFarray.py +0 -159
  749. numpy-1.9.3/tools/swig/test/testFortran.py +0 -173
  750. numpy-1.9.3/tools/swig/test/testMatrix.py +0 -362
  751. numpy-1.9.3/tools/swig/test/testSuperTensor.py +0 -388
  752. numpy-1.9.3/tools/swig/test/testTensor.py +0 -402
  753. numpy-1.9.3/tools/swig/test/testVector.py +0 -381
  754. {numpy-1.9.3 → numpy-1.10.0.post2}/BENTO_BUILD.txt +0 -0
  755. {numpy-1.9.3 → numpy-1.10.0.post2}/COMPATIBILITY +0 -0
  756. {numpy-1.9.3 → numpy-1.10.0.post2}/DEV_README.txt +0 -0
  757. {numpy-1.9.3 → numpy-1.10.0.post2}/README.txt +0 -0
  758. {numpy-1.9.3 → numpy-1.10.0.post2}/THANKS.txt +0 -0
  759. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/Makefile +0 -0
  760. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/BUGS.txt +0 -0
  761. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/FAQ.txt +0 -0
  762. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/HISTORY.txt +0 -0
  763. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/Makefile +0 -0
  764. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/OLDNEWS.txt +0 -0
  765. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/README.txt +0 -0
  766. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/Release-1.x.txt +0 -0
  767. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/Release-2.x.txt +0 -0
  768. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/Release-3.x.txt +0 -0
  769. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/Release-4.x.txt +0 -0
  770. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/TESTING.txt +0 -0
  771. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/THANKS.txt +0 -0
  772. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/TODO.txt +0 -0
  773. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/apps.tex +0 -0
  774. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/bugs.tex +0 -0
  775. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/collectinput.py +0 -0
  776. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/commands.tex +0 -0
  777. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/default.css +0 -0
  778. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/docutils.conf +0 -0
  779. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/ex1/arr.f +0 -0
  780. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/ex1/bar.f +0 -0
  781. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/ex1/foo.f +0 -0
  782. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/ex1/foobar-smart.f90 +0 -0
  783. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/ex1/foobar.f90 +0 -0
  784. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/ex1/foobarmodule.tex +0 -0
  785. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/ex1/runme +0 -0
  786. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2py.1 +0 -0
  787. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2py2e.tex +0 -0
  788. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/README.txt +0 -0
  789. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/aerostructure.jpg +0 -0
  790. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/flow.jpg +0 -0
  791. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/mk_html.sh +0 -0
  792. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/mk_pdf.sh +0 -0
  793. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/mk_ps.sh +0 -0
  794. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/src/examples/exp1.f +0 -0
  795. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/src/examples/exp1mess.txt +0 -0
  796. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/src/examples/exp1session.txt +0 -0
  797. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/src/examples/foo.pyf +0 -0
  798. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/src/examples/foom.pyf +0 -0
  799. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/structure.jpg +0 -0
  800. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/fortranobject.tex +0 -0
  801. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/hello.f +0 -0
  802. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/index.html +0 -0
  803. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/intro.tex +0 -0
  804. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/multiarray/array_from_pyobj.c +0 -0
  805. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/multiarray/bar.c +0 -0
  806. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/multiarray/foo.f +0 -0
  807. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/multiarray/fortran_array_from_pyobj.txt +0 -0
  808. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/multiarray/fun.pyf +0 -0
  809. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/multiarray/run.pyf +0 -0
  810. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/multiarray/transpose.txt +0 -0
  811. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/multiarrays.txt +0 -0
  812. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/notes.tex +0 -0
  813. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/oldnews.html +0 -0
  814. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/options.tex +0 -0
  815. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/pyforttest.pyf +0 -0
  816. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/pytest.py +0 -0
  817. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/python9.tex +0 -0
  818. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/signaturefile.tex +0 -0
  819. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/simple.f +0 -0
  820. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/simple_session.dat +0 -0
  821. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/using_F_compiler.txt +0 -0
  822. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/win32_notes.txt +0 -0
  823. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/postprocess.py +0 -0
  824. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.3.0-notes.rst +0 -0
  825. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.4.0-notes.rst +0 -0
  826. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.5.0-notes.rst +0 -0
  827. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.6.0-notes.rst +0 -0
  828. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.6.1-notes.rst +0 -0
  829. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.6.2-notes.rst +0 -0
  830. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.7.0-notes.rst +0 -0
  831. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.7.1-notes.rst +0 -0
  832. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.7.2-notes.rst +0 -0
  833. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.8.0-notes.rst +0 -0
  834. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.8.1-notes.rst +0 -0
  835. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.8.2-notes.rst +0 -0
  836. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.9.0-notes.rst +0 -0
  837. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.9.1-notes.rst +0 -0
  838. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.9.2-notes.rst +0 -0
  839. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/time_based_proposal.rst +0 -0
  840. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/.git +0 -0
  841. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/.gitignore +0 -0
  842. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/Makefile +0 -0
  843. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/README.rst +0 -0
  844. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_static/scipyshiny_small.png +0 -0
  845. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/layout.html +0 -0
  846. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/searchbox.html +0 -0
  847. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/sourcelink.html +0 -0
  848. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/css/extend.css +0 -0
  849. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/css/pygments.css +0 -0
  850. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/css/scipy-central.css +0 -0
  851. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/css/spc-bootstrap.css +0 -0
  852. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/css/spc-extend.css +0 -0
  853. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/all-icons.svg +0 -0
  854. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/contents.png +0 -0
  855. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/create-new-account-icon.png +0 -0
  856. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/external-link-icon-shrunk.png +0 -0
  857. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/external-link-icon.png +0 -0
  858. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/external-link-icon.svg +0 -0
  859. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/external-link-list-icon-tiniest.png +0 -0
  860. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/external-link-list-icon-tiny.png +0 -0
  861. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/external-link-list-icon.png +0 -0
  862. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ad.png +0 -0
  863. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ae.png +0 -0
  864. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-af.png +0 -0
  865. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ag.png +0 -0
  866. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ai.png +0 -0
  867. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-al.png +0 -0
  868. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-am.png +0 -0
  869. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ao.png +0 -0
  870. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-aq.png +0 -0
  871. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ar.png +0 -0
  872. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-as.png +0 -0
  873. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-at.png +0 -0
  874. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-au.png +0 -0
  875. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-aw.png +0 -0
  876. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-az.png +0 -0
  877. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ba.png +0 -0
  878. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bb.png +0 -0
  879. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bd.png +0 -0
  880. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-be.png +0 -0
  881. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bf.png +0 -0
  882. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bg.png +0 -0
  883. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bh.png +0 -0
  884. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bi.png +0 -0
  885. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bj.png +0 -0
  886. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bl.png +0 -0
  887. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bm.png +0 -0
  888. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bn.png +0 -0
  889. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bo.png +0 -0
  890. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-br.png +0 -0
  891. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bs.png +0 -0
  892. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bt.png +0 -0
  893. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bw.png +0 -0
  894. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-by.png +0 -0
  895. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bz.png +0 -0
  896. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ca.png +0 -0
  897. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cc.png +0 -0
  898. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cd.png +0 -0
  899. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cf.png +0 -0
  900. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cg.png +0 -0
  901. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ch.png +0 -0
  902. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ci.png +0 -0
  903. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ck.png +0 -0
  904. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cl.png +0 -0
  905. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cm.png +0 -0
  906. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cn.png +0 -0
  907. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-co.png +0 -0
  908. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cr.png +0 -0
  909. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cu.png +0 -0
  910. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cv.png +0 -0
  911. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cw.png +0 -0
  912. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cx.png +0 -0
  913. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cy.png +0 -0
  914. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cz.png +0 -0
  915. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-de.png +0 -0
  916. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-dj.png +0 -0
  917. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-dk.png +0 -0
  918. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-dm.png +0 -0
  919. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-do.png +0 -0
  920. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-dz.png +0 -0
  921. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ec.png +0 -0
  922. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ee.png +0 -0
  923. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-eg.png +0 -0
  924. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-er.png +0 -0
  925. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-es.png +0 -0
  926. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-et.png +0 -0
  927. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-fi.png +0 -0
  928. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-fj.png +0 -0
  929. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-fk.png +0 -0
  930. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-fm.png +0 -0
  931. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-fo.png +0 -0
  932. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-fr.png +0 -0
  933. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ga.png +0 -0
  934. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gb.png +0 -0
  935. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gd.png +0 -0
  936. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ge.png +0 -0
  937. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gf.png +0 -0
  938. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gg.png +0 -0
  939. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gh.png +0 -0
  940. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gi.png +0 -0
  941. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gl.png +0 -0
  942. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gm.png +0 -0
  943. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gn.png +0 -0
  944. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gq.png +0 -0
  945. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gr.png +0 -0
  946. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gs.png +0 -0
  947. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gt.png +0 -0
  948. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gu.png +0 -0
  949. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gw.png +0 -0
  950. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gy.png +0 -0
  951. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-hk.png +0 -0
  952. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-hm.png +0 -0
  953. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-hn.png +0 -0
  954. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-hr.png +0 -0
  955. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ht.png +0 -0
  956. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-hu.png +0 -0
  957. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-id.png +0 -0
  958. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ie.png +0 -0
  959. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-il.png +0 -0
  960. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-im.png +0 -0
  961. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-in.png +0 -0
  962. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-io.png +0 -0
  963. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-iq.png +0 -0
  964. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ir.png +0 -0
  965. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-is.png +0 -0
  966. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-it.png +0 -0
  967. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-je.png +0 -0
  968. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-jm.png +0 -0
  969. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-jo.png +0 -0
  970. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-jp.png +0 -0
  971. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ke.png +0 -0
  972. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kg.png +0 -0
  973. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kh.png +0 -0
  974. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ki.png +0 -0
  975. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-km.png +0 -0
  976. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kn.png +0 -0
  977. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kp.png +0 -0
  978. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kr.png +0 -0
  979. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kw.png +0 -0
  980. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ky.png +0 -0
  981. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kz.png +0 -0
  982. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-la.png +0 -0
  983. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lb.png +0 -0
  984. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lc.png +0 -0
  985. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-li.png +0 -0
  986. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lk.png +0 -0
  987. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lr.png +0 -0
  988. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ls.png +0 -0
  989. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lt.png +0 -0
  990. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lu.png +0 -0
  991. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lv.png +0 -0
  992. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ly.png +0 -0
  993. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ma.png +0 -0
  994. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mc.png +0 -0
  995. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-md.png +0 -0
  996. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-me.png +0 -0
  997. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mf.png +0 -0
  998. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mg.png +0 -0
  999. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mh.png +0 -0
  1000. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mk.png +0 -0
  1001. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ml.png +0 -0
  1002. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mm.png +0 -0
  1003. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mn.png +0 -0
  1004. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mo.png +0 -0
  1005. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mp.png +0 -0
  1006. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mq.png +0 -0
  1007. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mr.png +0 -0
  1008. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ms.png +0 -0
  1009. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mt.png +0 -0
  1010. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mu.png +0 -0
  1011. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mv.png +0 -0
  1012. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mw.png +0 -0
  1013. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mx.png +0 -0
  1014. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-my.png +0 -0
  1015. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mz.png +0 -0
  1016. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-na.png +0 -0
  1017. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-nc.png +0 -0
  1018. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ne.png +0 -0
  1019. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-nf.png +0 -0
  1020. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ng.png +0 -0
  1021. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ni.png +0 -0
  1022. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-nl.png +0 -0
  1023. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-no.png +0 -0
  1024. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-np.png +0 -0
  1025. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-nr.png +0 -0
  1026. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-nu.png +0 -0
  1027. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-nz.png +0 -0
  1028. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-om.png +0 -0
  1029. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pa.png +0 -0
  1030. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pe.png +0 -0
  1031. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pf.png +0 -0
  1032. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pg.png +0 -0
  1033. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ph.png +0 -0
  1034. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pk.png +0 -0
  1035. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pl.png +0 -0
  1036. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pm.png +0 -0
  1037. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pn.png +0 -0
  1038. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pr.png +0 -0
  1039. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ps.png +0 -0
  1040. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pt.png +0 -0
  1041. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pw.png +0 -0
  1042. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-py.png +0 -0
  1043. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-qa.png +0 -0
  1044. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-re.png +0 -0
  1045. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ro.png +0 -0
  1046. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-rs.png +0 -0
  1047. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ru.png +0 -0
  1048. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-rw.png +0 -0
  1049. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sa.png +0 -0
  1050. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sb.png +0 -0
  1051. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sc.png +0 -0
  1052. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sd.png +0 -0
  1053. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-se.png +0 -0
  1054. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sg.png +0 -0
  1055. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sh.png +0 -0
  1056. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-si.png +0 -0
  1057. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sj.png +0 -0
  1058. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sk.png +0 -0
  1059. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sl.png +0 -0
  1060. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sm.png +0 -0
  1061. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sn.png +0 -0
  1062. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-so.png +0 -0
  1063. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sr.png +0 -0
  1064. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-st.png +0 -0
  1065. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sv.png +0 -0
  1066. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sy.png +0 -0
  1067. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sz.png +0 -0
  1068. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tc.png +0 -0
  1069. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-td.png +0 -0
  1070. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tf.png +0 -0
  1071. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tg.png +0 -0
  1072. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-th.png +0 -0
  1073. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tj.png +0 -0
  1074. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tk.png +0 -0
  1075. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tl.png +0 -0
  1076. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tm.png +0 -0
  1077. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tn.png +0 -0
  1078. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-to.png +0 -0
  1079. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tr.png +0 -0
  1080. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tt.png +0 -0
  1081. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tv.png +0 -0
  1082. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tw.png +0 -0
  1083. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tz.png +0 -0
  1084. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ua.png +0 -0
  1085. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ug.png +0 -0
  1086. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-um.png +0 -0
  1087. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-us.png +0 -0
  1088. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-uy.png +0 -0
  1089. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-uz.png +0 -0
  1090. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-va.png +0 -0
  1091. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-vc.png +0 -0
  1092. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ve.png +0 -0
  1093. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-vg.png +0 -0
  1094. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-vi.png +0 -0
  1095. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-vn.png +0 -0
  1096. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-vu.png +0 -0
  1097. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-wf.png +0 -0
  1098. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ws.png +0 -0
  1099. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ye.png +0 -0
  1100. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-za.png +0 -0
  1101. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-zm.png +0 -0
  1102. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-zw.png +0 -0
  1103. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/glyphicons-halflings-white.png +0 -0
  1104. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/glyphicons-halflings.png +0 -0
  1105. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/important-icon.png +0 -0
  1106. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/information-icon.png +0 -0
  1107. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/internet-web-browser.png +0 -0
  1108. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/multiple-file-icon-shrunk.png +0 -0
  1109. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/multiple-file-icon.png +0 -0
  1110. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/multiple-file-icon.svg +0 -0
  1111. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/multiple-file-list-icon-tiny.png +0 -0
  1112. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/multiple-file-list-icon.png +0 -0
  1113. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/navigation.png +0 -0
  1114. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/person-list-icon-tiny.png +0 -0
  1115. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/person-list-icon.png +0 -0
  1116. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/scipy-logo.png +0 -0
  1117. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/scipy_org_logo.gif +0 -0
  1118. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/scipycentral_logo.png +0 -0
  1119. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/scipyshiny_small.png +0 -0
  1120. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/send-email-icon.png +0 -0
  1121. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/single-file-icon-shrunk.png +0 -0
  1122. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/single-file-icon.png +0 -0
  1123. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/single-file-icon.svg +0 -0
  1124. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/single-file-list-icon-tiniest.png +0 -0
  1125. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/single-file-list-icon-tiny.png +0 -0
  1126. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/single-file-list-icon.png +0 -0
  1127. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/transparent-pixel.gif +0 -0
  1128. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/ui-anim_basic_16x16.gif +0 -0
  1129. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/js/copybutton.js +0 -0
  1130. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/accordion.less +0 -0
  1131. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/alerts.less +0 -0
  1132. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/bootstrap.less +0 -0
  1133. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/breadcrumbs.less +0 -0
  1134. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/button-groups.less +0 -0
  1135. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/buttons.less +0 -0
  1136. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/carousel.less +0 -0
  1137. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/close.less +0 -0
  1138. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/code.less +0 -0
  1139. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/component-animations.less +0 -0
  1140. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/dropdowns.less +0 -0
  1141. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/forms.less +0 -0
  1142. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/grid.less +0 -0
  1143. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/hero-unit.less +0 -0
  1144. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/labels-badges.less +0 -0
  1145. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/layouts.less +0 -0
  1146. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/media.less +0 -0
  1147. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/mixins.less +0 -0
  1148. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/modals.less +0 -0
  1149. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/navbar.less +0 -0
  1150. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/navs.less +0 -0
  1151. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/pager.less +0 -0
  1152. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/pagination.less +0 -0
  1153. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/popovers.less +0 -0
  1154. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/progress-bars.less +0 -0
  1155. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/reset.less +0 -0
  1156. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/responsive-1200px-min.less +0 -0
  1157. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/responsive-767px-max.less +0 -0
  1158. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/responsive-768px-979px.less +0 -0
  1159. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/responsive-navbar.less +0 -0
  1160. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/responsive-utilities.less +0 -0
  1161. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/responsive.less +0 -0
  1162. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/scaffolding.less +0 -0
  1163. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/sprites.less +0 -0
  1164. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/tables.less +0 -0
  1165. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/thumbnails.less +0 -0
  1166. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/tooltip.less +0 -0
  1167. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/type.less +0 -0
  1168. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/utilities.less +0 -0
  1169. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/variables.less +0 -0
  1170. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/wells.less +0 -0
  1171. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-bootstrap.less +0 -0
  1172. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-content.less +0 -0
  1173. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-extend.less +0 -0
  1174. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-footer.less +0 -0
  1175. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-header.less +0 -0
  1176. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-rightsidebar.less +0 -0
  1177. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-utils.less +0 -0
  1178. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/scipy.css_t +0 -0
  1179. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/theme.conf +0 -0
  1180. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/conf.py +0 -0
  1181. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/index.rst +0 -0
  1182. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/test_autodoc.rst +0 -0
  1183. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/test_autodoc_2.rst +0 -0
  1184. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/test_autodoc_3.rst +0 -0
  1185. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/test_autodoc_4.rst +0 -0
  1186. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/test_optimize.rst +0 -0
  1187. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/_templates/autosummary/class.rst +0 -0
  1188. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/_templates/indexcontent.html +0 -0
  1189. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/_templates/indexsidebar.html +0 -0
  1190. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/_templates/layout.html +0 -0
  1191. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/about.rst +0 -0
  1192. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/bugs.rst +0 -0
  1193. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/contents.rst +0 -0
  1194. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/dev/gitwash/configure_git.rst +0 -0
  1195. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/dev/gitwash/development_setup.rst +0 -0
  1196. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/dev/gitwash/dot2_dot3.rst +0 -0
  1197. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/dev/gitwash/following_latest.rst +0 -0
  1198. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/dev/gitwash/forking_button.png +0 -0
  1199. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/dev/gitwash/git_development.rst +0 -0
  1200. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/dev/gitwash/git_intro.rst +0 -0
  1201. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/dev/gitwash/git_resources.rst +0 -0
  1202. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/dev/gitwash/pull_button.png +0 -0
  1203. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/dev/gitwash_links.txt +0 -0
  1204. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/advanced.rst +0 -0
  1205. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/allocarr.f90 +0 -0
  1206. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/allocarr_session.dat +0 -0
  1207. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/array.f +0 -0
  1208. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/array_session.dat +0 -0
  1209. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/calculate.f +0 -0
  1210. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/calculate_session.dat +0 -0
  1211. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/callback.f +0 -0
  1212. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/callback2.pyf +0 -0
  1213. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/callback_session.dat +0 -0
  1214. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/common.f +0 -0
  1215. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/common_session.dat +0 -0
  1216. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/compile_session.dat +0 -0
  1217. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/distutils.rst +0 -0
  1218. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/extcallback.f +0 -0
  1219. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/extcallback_session.dat +0 -0
  1220. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/fib1.f +0 -0
  1221. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/fib1.pyf +0 -0
  1222. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/fib2.pyf +0 -0
  1223. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/fib3.f +0 -0
  1224. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/ftype.f +0 -0
  1225. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/ftype_session.dat +0 -0
  1226. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/getting-started.rst +0 -0
  1227. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/index.rst +0 -0
  1228. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/moddata.f90 +0 -0
  1229. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/moddata_session.dat +0 -0
  1230. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/python-usage.rst +0 -0
  1231. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/run_main_session.dat +0 -0
  1232. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/scalar.f +0 -0
  1233. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/scalar_session.dat +0 -0
  1234. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/setup_example.py +0 -0
  1235. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/signature-file.rst +0 -0
  1236. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/spam.pyf +0 -0
  1237. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/spam_session.dat +0 -0
  1238. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/string.f +0 -0
  1239. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/string_session.dat +0 -0
  1240. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/usage.rst +0 -0
  1241. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/var.pyf +0 -0
  1242. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/var_session.dat +0 -0
  1243. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/glossary.rst +0 -0
  1244. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/license.rst +0 -0
  1245. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/datetime-proposal.rst +0 -0
  1246. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/datetime-proposal3.rst +0 -0
  1247. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/deferred-ufunc-evaluation.rst +0 -0
  1248. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/generalized-ufuncs.rst +0 -0
  1249. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/groupby_additions.rst +0 -0
  1250. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/index.rst +0 -0
  1251. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/math_config_clean.rst +0 -0
  1252. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/missing-data.rst +0 -0
  1253. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/new-iterator-ufunc.rst +0 -0
  1254. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/newbugtracker.rst +0 -0
  1255. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/npy-format.rst +0 -0
  1256. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/structured_array_extensions.rst +0 -0
  1257. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/ufunc-overrides.rst +0 -0
  1258. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/warnfix.rst +0 -0
  1259. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/arrays.datetime.rst +0 -0
  1260. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/arrays.nditer.rst +0 -0
  1261. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/arrays.rst +0 -0
  1262. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/c-api.deprecations.rst +0 -0
  1263. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/c-api.rst +0 -0
  1264. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/distutils.rst +0 -0
  1265. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/figures/dtype-hierarchy.dia +0 -0
  1266. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/figures/dtype-hierarchy.pdf +0 -0
  1267. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/figures/dtype-hierarchy.png +0 -0
  1268. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/figures/threefundamental.fig +0 -0
  1269. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/figures/threefundamental.pdf +0 -0
  1270. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/figures/threefundamental.png +0 -0
  1271. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/internals.rst +0 -0
  1272. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/maskedarray.baseclass.rst +0 -0
  1273. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/maskedarray.generic.rst +0 -0
  1274. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/maskedarray.rst +0 -0
  1275. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.array-creation.rst +0 -0
  1276. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.bitwise.rst +0 -0
  1277. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.char.rst +0 -0
  1278. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.ctypeslib.rst +0 -0
  1279. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.datetime.rst +0 -0
  1280. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.dtype.rst +0 -0
  1281. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.dual.rst +0 -0
  1282. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.emath.rst +0 -0
  1283. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.err.rst +0 -0
  1284. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.fft.rst +0 -0
  1285. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.financial.rst +0 -0
  1286. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.functional.rst +0 -0
  1287. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.help.rst +0 -0
  1288. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.indexing.rst +0 -0
  1289. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.logic.rst +0 -0
  1290. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.math.rst +0 -0
  1291. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.matlib.rst +0 -0
  1292. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.numarray.rst +0 -0
  1293. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.oldnumeric.rst +0 -0
  1294. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.other.rst +0 -0
  1295. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.padding.rst +0 -0
  1296. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.chebyshev.rst +0 -0
  1297. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.classes.rst +0 -0
  1298. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.hermite.rst +0 -0
  1299. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.hermite_e.rst +0 -0
  1300. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.laguerre.rst +0 -0
  1301. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.legendre.rst +0 -0
  1302. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.package.rst +0 -0
  1303. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.poly1d.rst +0 -0
  1304. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.polynomial.rst +0 -0
  1305. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.rst +0 -0
  1306. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.random.rst +0 -0
  1307. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.rst +0 -0
  1308. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.set.rst +0 -0
  1309. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.testing.rst +0 -0
  1310. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.window.rst +0 -0
  1311. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/swig.rst +0 -0
  1312. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/basics.broadcasting.rst +0 -0
  1313. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/basics.byteswapping.rst +0 -0
  1314. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/basics.creation.rst +0 -0
  1315. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/basics.indexing.rst +0 -0
  1316. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/basics.io.rst +0 -0
  1317. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/basics.rst +0 -0
  1318. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/basics.subclassing.rst +0 -0
  1319. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/basics.types.rst +0 -0
  1320. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/c-info.rst +0 -0
  1321. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/howtofind.rst +0 -0
  1322. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/index.rst +0 -0
  1323. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/introduction.rst +0 -0
  1324. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/misc.rst +0 -0
  1325. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/performance.rst +0 -0
  1326. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/whatisnumpy.rst +0 -0
  1327. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/.git +0 -0
  1328. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/.gitignore +0 -0
  1329. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/.travis.yml +0 -0
  1330. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/LICENSE.txt +0 -0
  1331. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/MANIFEST.in +0 -0
  1332. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/README.rst +0 -0
  1333. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/__init__.py +0 -0
  1334. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/comment_eater.py +0 -0
  1335. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/compiler_unparse.py +0 -0
  1336. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/docscrape.py +0 -0
  1337. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/docscrape_sphinx.py +0 -0
  1338. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/linkcode.py +0 -0
  1339. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/numpydoc.py +0 -0
  1340. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/phantom_import.py +0 -0
  1341. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/plot_directive.py +0 -0
  1342. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/tests/test_docscrape.py +0 -0
  1343. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/tests/test_linkcode.py +0 -0
  1344. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/tests/test_phantom_import.py +0 -0
  1345. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/tests/test_plot_directive.py +0 -0
  1346. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/tests/test_traitsdoc.py +0 -0
  1347. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/traitsdoc.py +0 -0
  1348. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/setup.py +0 -0
  1349. {numpy-1.9.3/numpy/core/code_generators → numpy-1.10.0.post2/numpy/_build_utils}/__init__.py +0 -0
  1350. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/compat/__init__.py +0 -0
  1351. {numpy-1.9.3/numpy/distutils/tests/f2py_ext → numpy-1.10.0.post2/numpy/core/code_generators}/__init__.py +0 -0
  1352. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/code_generators/genapi.py +0 -0
  1353. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/code_generators/generate_numpy_api.py +0 -0
  1354. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/cversions.py +0 -0
  1355. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/_neighborhood_iterator_imp.h +0 -0
  1356. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/_numpyconfig.h.in +0 -0
  1357. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/arrayobject.h +0 -0
  1358. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/arrayscalars.h +0 -0
  1359. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/halffloat.h +0 -0
  1360. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/noprefix.h +0 -0
  1361. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/npy_1_7_deprecated_api.h +0 -0
  1362. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/npy_interrupt.h +0 -0
  1363. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/npy_no_deprecated_api.h +0 -0
  1364. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/npy_os.h +0 -0
  1365. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/old_defines.h +0 -0
  1366. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/oldnumeric.h +0 -0
  1367. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/ufuncobject.h +0 -0
  1368. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/utils.h +0 -0
  1369. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/info.py +0 -0
  1370. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/mlib.ini.in +0 -0
  1371. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/npymath.ini.in +0 -0
  1372. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/dummymodule.c +0 -0
  1373. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/_datetime.h +0 -0
  1374. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/alloc.h +0 -0
  1375. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/array_assign.c +0 -0
  1376. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/array_assign.h +0 -0
  1377. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/array_assign_array.c +0 -0
  1378. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/array_assign_scalar.c +0 -0
  1379. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/arrayobject.h +0 -0
  1380. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/buffer.h +0 -0
  1381. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/calculation.h +0 -0
  1382. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/conversion_utils.h +0 -0
  1383. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/convert.h +0 -0
  1384. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/convert_datatype.h +0 -0
  1385. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/ctors.h +0 -0
  1386. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/datetime_busday.h +0 -0
  1387. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/datetime_busdaycal.h +0 -0
  1388. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/datetime_strings.h +0 -0
  1389. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/descriptor.h +0 -0
  1390. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/flagsobject.c +0 -0
  1391. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/getset.h +0 -0
  1392. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/hashdescr.h +0 -0
  1393. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/item_selection.h +0 -0
  1394. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/iterators.h +0 -0
  1395. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/methods.h +0 -0
  1396. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/nditer_impl.h +0 -0
  1397. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/nditer_pywrap.h +0 -0
  1398. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/nditer_templ.c.src +0 -0
  1399. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/numpymemoryview.h +0 -0
  1400. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/numpyos.h +0 -0
  1401. {numpy-1.9.3/numpy/core/blasdot → numpy-1.10.0.post2/numpy/core/src/multiarray}/python_xerbla.c +0 -0
  1402. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/refcount.c +0 -0
  1403. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/refcount.h +0 -0
  1404. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/sequence.c +0 -0
  1405. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/sequence.h +0 -0
  1406. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/shape.h +0 -0
  1407. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/ucsnarrow.h +0 -0
  1408. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/usertypes.c +0 -0
  1409. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/usertypes.h +0 -0
  1410. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/npymath/_signbit.c +0 -0
  1411. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/npymath/halffloat.c +0 -0
  1412. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/npymath/npy_math_common.h +0 -0
  1413. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/npysort/binsearch.c.src +0 -0
  1414. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/private/lowlevel_strided_loops.h +0 -0
  1415. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/private/npy_binsearch.h.src +0 -0
  1416. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/private/npy_fpmath.h +0 -0
  1417. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/private/npy_pycompat.h +0 -0
  1418. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/umath/reduction.c +0 -0
  1419. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/umath/reduction.h +0 -0
  1420. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/umath/struct_ufunc_test.c.src +0 -0
  1421. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/umath/ufunc_object.h +0 -0
  1422. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/umath/ufunc_type_resolution.h +0 -0
  1423. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/tests/data/astype_copy.pkl +0 -0
  1424. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/tests/data/recarray_from_file.fits +0 -0
  1425. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/tests/test_scalarprint.py +0 -0
  1426. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/ctypeslib.py +0 -0
  1427. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/__version__.py +0 -0
  1428. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/__init__.py +0 -0
  1429. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/bdist_rpm.py +0 -0
  1430. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/build_py.py +0 -0
  1431. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/build_scripts.py +0 -0
  1432. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/build_src.py +0 -0
  1433. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/config_compiler.py +0 -0
  1434. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/develop.py +0 -0
  1435. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/egg_info.py +0 -0
  1436. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/install.py +0 -0
  1437. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/install_clib.py +0 -0
  1438. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/install_data.py +0 -0
  1439. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/install_headers.py +0 -0
  1440. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/sdist.py +0 -0
  1441. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/compat.py +0 -0
  1442. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/conv_template.py +0 -0
  1443. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/core.py +0 -0
  1444. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/cpuinfo.py +0 -0
  1445. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/environment.py +0 -0
  1446. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/extension.py +0 -0
  1447. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/__init__.py +0 -0
  1448. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/absoft.py +0 -0
  1449. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/g95.py +0 -0
  1450. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/hpux.py +0 -0
  1451. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/ibm.py +0 -0
  1452. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/lahey.py +0 -0
  1453. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/mips.py +0 -0
  1454. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/nag.py +0 -0
  1455. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/none.py +0 -0
  1456. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/pathf95.py +0 -0
  1457. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/vast.py +0 -0
  1458. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/from_template.py +0 -0
  1459. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/info.py +0 -0
  1460. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/line_endings.py +0 -0
  1461. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/log.py +0 -0
  1462. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/mingw/gfortran_vs2003_hack.c +0 -0
  1463. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/numpy_distribution.py +0 -0
  1464. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/pathccompiler.py +0 -0
  1465. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/setup.py +0 -0
  1466. {numpy-1.9.3/numpy/distutils/tests/f2py_f90_ext → numpy-1.10.0.post2/numpy/distutils/tests/f2py_ext}/__init__.py +0 -0
  1467. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/f2py_ext/setup.py +0 -0
  1468. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/f2py_ext/src/fib1.f +0 -0
  1469. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/f2py_ext/src/fib2.pyf +0 -0
  1470. {numpy-1.9.3/numpy/distutils/tests/gen_ext → numpy-1.10.0.post2/numpy/distutils/tests/f2py_f90_ext}/__init__.py +0 -0
  1471. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/f2py_f90_ext/include/body.f90 +0 -0
  1472. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/f2py_f90_ext/setup.py +0 -0
  1473. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/f2py_f90_ext/src/foo_free.f90 +0 -0
  1474. {numpy-1.9.3/numpy/distutils/tests/pyrex_ext → numpy-1.10.0.post2/numpy/distutils/tests/gen_ext}/__init__.py +0 -0
  1475. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/gen_ext/setup.py +0 -0
  1476. {numpy-1.9.3/numpy/distutils/tests/swig_ext → numpy-1.10.0.post2/numpy/distutils/tests/pyrex_ext}/__init__.py +0 -0
  1477. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/pyrex_ext/primes.pyx +0 -0
  1478. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/pyrex_ext/setup.py +0 -0
  1479. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/setup.py +0 -0
  1480. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/swig_ext/setup.py +0 -0
  1481. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/swig_ext/src/example.c +0 -0
  1482. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/swig_ext/src/example.i +0 -0
  1483. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/swig_ext/src/zoo.cc +0 -0
  1484. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/swig_ext/src/zoo.h +0 -0
  1485. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/swig_ext/src/zoo.i +0 -0
  1486. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/test_exec_command.py +0 -0
  1487. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/__init__.py +0 -0
  1488. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/basics.py +0 -0
  1489. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/broadcasting.py +0 -0
  1490. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/constants.py +0 -0
  1491. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/howtofind.py +0 -0
  1492. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/internals.py +0 -0
  1493. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/io.py +0 -0
  1494. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/jargon.py +0 -0
  1495. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/methods_vs_functions.py +0 -0
  1496. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/misc.py +0 -0
  1497. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/performance.py +0 -0
  1498. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/subclassing.py +0 -0
  1499. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/ufuncs.py +0 -0
  1500. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/dual.py +0 -0
  1501. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/__version__.py +0 -0
  1502. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/info.py +0 -0
  1503. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/tests/src/assumed_shape/.f2py_f2cmap +0 -0
  1504. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/tests/src/assumed_shape/foo_free.f90 +0 -0
  1505. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/tests/src/assumed_shape/foo_mod.f90 +0 -0
  1506. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/tests/src/assumed_shape/foo_use.f90 +0 -0
  1507. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/tests/src/assumed_shape/precision.f90 +0 -0
  1508. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/tests/src/kind/foo.f90 +0 -0
  1509. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/tests/src/mixed/foo.f +0 -0
  1510. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/tests/src/mixed/foo_fixed.f90 +0 -0
  1511. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/tests/src/mixed/foo_free.f90 +0 -0
  1512. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/tests/src/regression/inout.f90 +0 -0
  1513. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/tests/src/size/foo.f90 +0 -0
  1514. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/fft/__init__.py +0 -0
  1515. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/fft/helper.py +0 -0
  1516. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/__init__.py +0 -0
  1517. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/_datasource.py +0 -0
  1518. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/_version.py +0 -0
  1519. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/scimath.py +0 -0
  1520. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/tests/data/python3.npy +0 -0
  1521. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/tests/data/win64python2.npy +0 -0
  1522. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/tests/test__datasource.py +0 -0
  1523. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/tests/test_arrayterator.py +0 -0
  1524. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/tests/test_regression.py +0 -0
  1525. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/tests/test_ufunclike.py +0 -0
  1526. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/tests/test_utils.py +0 -0
  1527. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/ufunclike.py +0 -0
  1528. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/user_array.py +0 -0
  1529. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/linalg/__init__.py +0 -0
  1530. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/linalg/info.py +0 -0
  1531. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/linalg/lapack_lite/blas_lite.c +0 -0
  1532. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/linalg/lapack_lite/dlamch.c +0 -0
  1533. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/linalg/lapack_lite/dlapack_lite.c +0 -0
  1534. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/linalg/lapack_lite/f2c.h +0 -0
  1535. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/linalg/lapack_lite/f2c_lite.c +0 -0
  1536. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/linalg/lapack_lite/zlapack_lite.c +0 -0
  1537. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/linalg/setup.py +0 -0
  1538. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/linalg/tests/test_deprecations.py +0 -0
  1539. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/ma/version.py +0 -0
  1540. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/matrixlib/__init__.py +0 -0
  1541. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/matrixlib/setup.py +0 -0
  1542. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/polynomial/__init__.py +0 -0
  1543. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/polynomial/polynomial.py +0 -0
  1544. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/polynomial/setup.py +0 -0
  1545. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_chebyshev.py +0 -0
  1546. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_classes.py +0 -0
  1547. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_hermite.py +0 -0
  1548. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_hermite_e.py +0 -0
  1549. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_laguerre.py +0 -0
  1550. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_legendre.py +0 -0
  1551. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_polynomial.py +0 -0
  1552. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_polyutils.py +0 -0
  1553. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_printing.py +0 -0
  1554. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/random/__init__.py +0 -0
  1555. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/random/info.py +0 -0
  1556. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/random/mtrand/Python.pxi +0 -0
  1557. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/random/mtrand/distributions.h +0 -0
  1558. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/random/mtrand/generate_mtrand_c.py +0 -0
  1559. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/random/mtrand/initarray.c +0 -0
  1560. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/random/mtrand/initarray.h +0 -0
  1561. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/random/mtrand/mtrand_py_helper.h +0 -0
  1562. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/random/mtrand/numpy.pxd +0 -0
  1563. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/random/mtrand/randomkit.c +0 -0
  1564. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/random/mtrand/randomkit.h +0 -0
  1565. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/testing/tests/test_doctesting.py +0 -0
  1566. {numpy-1.9.3 → numpy-1.10.0.post2}/setupegg.py +0 -0
  1567. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/Makefile +0 -0
  1568. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/pyfragments.swg +0 -0
  1569. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Array1.cxx +0 -0
  1570. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Array1.h +0 -0
  1571. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Array2.cxx +0 -0
  1572. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Array2.h +0 -0
  1573. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Farray.cxx +0 -0
  1574. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Farray.h +0 -0
  1575. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Farray.i +0 -0
  1576. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Fortran.cxx +0 -0
  1577. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Fortran.h +0 -0
  1578. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Fortran.i +0 -0
  1579. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Matrix.cxx +0 -0
  1580. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Matrix.h +0 -0
  1581. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Matrix.i +0 -0
  1582. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/SuperTensor.cxx +0 -0
  1583. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/SuperTensor.h +0 -0
  1584. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/SuperTensor.i +0 -0
  1585. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Tensor.cxx +0 -0
  1586. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Tensor.h +0 -0
  1587. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Tensor.i +0 -0
  1588. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Vector.cxx +0 -0
  1589. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Vector.h +0 -0
  1590. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Vector.i +0 -0
@@ -0,0 +1,2192 @@
1
+ #define PY_SSIZE_T_CLEAN
2
+ #include <Python.h>
3
+ #include "structmember.h"
4
+
5
+ #define NPY_NO_DEPRECATED_API NPY_API_VERSION
6
+ #define _MULTIARRAYMODULE
7
+ #include "numpy/arrayobject.h"
8
+ #include "numpy/arrayscalars.h"
9
+
10
+ #include "npy_config.h"
11
+
12
+ #include "npy_pycompat.h"
13
+
14
+ #include "arrayobject.h"
15
+ #include "iterators.h"
16
+ #include "ctors.h"
17
+ #include "common.h"
18
+
19
+ #define NEWAXIS_INDEX -1
20
+ #define ELLIPSIS_INDEX -2
21
+ #define SINGLE_INDEX -3
22
+
23
+ static int
24
+ slice_coerce_index(PyObject *o, npy_intp *v);
25
+
26
+ /*
27
+ * This function converts one element of the indexing tuple
28
+ * into a step size and a number of steps, returning the
29
+ * starting index. Non-slices are signalled in 'n_steps',
30
+ * as NEWAXIS_INDEX, ELLIPSIS_INDEX, or SINGLE_INDEX.
31
+ */
32
+ NPY_NO_EXPORT npy_intp
33
+ parse_index_entry(PyObject *op, npy_intp *step_size,
34
+ npy_intp *n_steps, npy_intp max,
35
+ int axis, int check_index)
36
+ {
37
+ npy_intp i;
38
+
39
+ if (op == Py_None) {
40
+ *n_steps = NEWAXIS_INDEX;
41
+ i = 0;
42
+ }
43
+ else if (op == Py_Ellipsis) {
44
+ *n_steps = ELLIPSIS_INDEX;
45
+ i = 0;
46
+ }
47
+ else if (PySlice_Check(op)) {
48
+ npy_intp stop;
49
+ if (slice_GetIndices((PySliceObject *)op, max,
50
+ &i, &stop, step_size, n_steps) < 0) {
51
+ if (!PyErr_Occurred()) {
52
+ PyErr_SetString(PyExc_IndexError,
53
+ "invalid slice");
54
+ }
55
+ goto fail;
56
+ }
57
+ if (*n_steps <= 0) {
58
+ *n_steps = 0;
59
+ *step_size = 1;
60
+ i = 0;
61
+ }
62
+ }
63
+ else {
64
+ if (!slice_coerce_index(op, &i)) {
65
+ PyErr_SetString(PyExc_IndexError,
66
+ "each index entry must be either a "
67
+ "slice, an integer, Ellipsis, or "
68
+ "newaxis");
69
+ goto fail;
70
+ }
71
+ *n_steps = SINGLE_INDEX;
72
+ *step_size = 0;
73
+ if (check_index) {
74
+ if (check_and_adjust_index(&i, max, axis, NULL) < 0) {
75
+ goto fail;
76
+ }
77
+ }
78
+ }
79
+ return i;
80
+
81
+ fail:
82
+ return -1;
83
+ }
84
+
85
+
86
+ /*
87
+ * Parses an index that has no fancy indexing. Populates
88
+ * out_dimensions, out_strides, and out_offset.
89
+ */
90
+ NPY_NO_EXPORT int
91
+ parse_index(PyArrayObject *self, PyObject *op,
92
+ npy_intp *out_dimensions,
93
+ npy_intp *out_strides,
94
+ npy_intp *out_offset,
95
+ int check_index)
96
+ {
97
+ int i, j, n;
98
+ int nd_old, nd_new, n_add, n_ellipsis;
99
+ npy_intp n_steps, start, offset, step_size;
100
+ PyObject *op1 = NULL;
101
+ int is_slice;
102
+
103
+ if (PySlice_Check(op) || op == Py_Ellipsis || op == Py_None) {
104
+ n = 1;
105
+ op1 = op;
106
+ Py_INCREF(op);
107
+ /* this relies on the fact that n==1 for loop below */
108
+ is_slice = 1;
109
+ }
110
+ else {
111
+ if (!PySequence_Check(op)) {
112
+ PyErr_SetString(PyExc_IndexError,
113
+ "index must be either an int "
114
+ "or a sequence");
115
+ return -1;
116
+ }
117
+ n = PySequence_Length(op);
118
+ is_slice = 0;
119
+ }
120
+
121
+ nd_old = nd_new = 0;
122
+
123
+ offset = 0;
124
+ for (i = 0; i < n; i++) {
125
+ if (!is_slice) {
126
+ op1 = PySequence_GetItem(op, i);
127
+ if (op1 == NULL) {
128
+ return -1;
129
+ }
130
+ }
131
+ start = parse_index_entry(op1, &step_size, &n_steps,
132
+ nd_old < PyArray_NDIM(self) ?
133
+ PyArray_DIMS(self)[nd_old] : 0,
134
+ nd_old, check_index ?
135
+ nd_old < PyArray_NDIM(self) : 0);
136
+ Py_DECREF(op1);
137
+ if (start == -1) {
138
+ break;
139
+ }
140
+ if (n_steps == NEWAXIS_INDEX) {
141
+ out_dimensions[nd_new] = 1;
142
+ out_strides[nd_new] = 0;
143
+ nd_new++;
144
+ }
145
+ else if (n_steps == ELLIPSIS_INDEX) {
146
+ for (j = i + 1, n_ellipsis = 0; j < n; j++) {
147
+ op1 = PySequence_GetItem(op, j);
148
+ if (op1 == Py_None) {
149
+ n_ellipsis++;
150
+ }
151
+ Py_DECREF(op1);
152
+ }
153
+ n_add = PyArray_NDIM(self)-(n-i-n_ellipsis-1+nd_old);
154
+ if (n_add < 0) {
155
+ PyErr_SetString(PyExc_IndexError, "too many indices");
156
+ return -1;
157
+ }
158
+ for (j = 0; j < n_add; j++) {
159
+ out_dimensions[nd_new] = PyArray_DIMS(self)[nd_old];
160
+ out_strides[nd_new] = PyArray_STRIDES(self)[nd_old];
161
+ nd_new++; nd_old++;
162
+ }
163
+ }
164
+ else {
165
+ if (nd_old >= PyArray_NDIM(self)) {
166
+ PyErr_SetString(PyExc_IndexError, "too many indices");
167
+ return -1;
168
+ }
169
+ offset += PyArray_STRIDES(self)[nd_old]*start;
170
+ nd_old++;
171
+ if (n_steps != SINGLE_INDEX) {
172
+ out_dimensions[nd_new] = n_steps;
173
+ out_strides[nd_new] = step_size *
174
+ PyArray_STRIDES(self)[nd_old-1];
175
+ nd_new++;
176
+ }
177
+ }
178
+ }
179
+ if (i < n) {
180
+ return -1;
181
+ }
182
+ n_add = PyArray_NDIM(self)-nd_old;
183
+ for (j = 0; j < n_add; j++) {
184
+ out_dimensions[nd_new] = PyArray_DIMS(self)[nd_old];
185
+ out_strides[nd_new] = PyArray_STRIDES(self)[nd_old];
186
+ nd_new++;
187
+ nd_old++;
188
+ }
189
+ *out_offset = offset;
190
+ return nd_new;
191
+ }
192
+
193
+ /*
194
+ * Tries to convert 'o' into an npy_intp interpreted as an
195
+ * index. Returns 1 if it was successful, 0 otherwise. Does
196
+ * not set an exception.
197
+ */
198
+ static int
199
+ slice_coerce_index(PyObject *o, npy_intp *v)
200
+ {
201
+ *v = PyArray_PyIntAsIntp(o);
202
+
203
+ if ((*v) == -1 && PyErr_Occurred()) {
204
+ PyErr_Clear();
205
+ return 0;
206
+ }
207
+ return 1;
208
+ }
209
+
210
+
211
+ /*
212
+ * This is basically PySlice_GetIndicesEx, but with our coercion
213
+ * of indices to integers (plus, that function is new in Python 2.3)
214
+ *
215
+ * N.B. The coercion to integers is deprecated; once the DeprecationWarning
216
+ * is changed to an error, it would seem that this is obsolete.
217
+ */
218
+ NPY_NO_EXPORT int
219
+ slice_GetIndices(PySliceObject *r, npy_intp length,
220
+ npy_intp *start, npy_intp *stop, npy_intp *step,
221
+ npy_intp *slicelength)
222
+ {
223
+ npy_intp defstop;
224
+
225
+ if (r->step == Py_None) {
226
+ *step = 1;
227
+ }
228
+ else {
229
+ if (!slice_coerce_index(r->step, step)) {
230
+ return -1;
231
+ }
232
+ if (*step == 0) {
233
+ PyErr_SetString(PyExc_ValueError,
234
+ "slice step cannot be zero");
235
+ return -1;
236
+ }
237
+ }
238
+ /* defstart = *step < 0 ? length - 1 : 0; */
239
+ defstop = *step < 0 ? -1 : length;
240
+ if (r->start == Py_None) {
241
+ *start = *step < 0 ? length-1 : 0;
242
+ }
243
+ else {
244
+ if (!slice_coerce_index(r->start, start)) {
245
+ return -1;
246
+ }
247
+ if (*start < 0) {
248
+ *start += length;
249
+ }
250
+ if (*start < 0) {
251
+ *start = (*step < 0) ? -1 : 0;
252
+ }
253
+ if (*start >= length) {
254
+ *start = (*step < 0) ? length - 1 : length;
255
+ }
256
+ }
257
+
258
+ if (r->stop == Py_None) {
259
+ *stop = defstop;
260
+ }
261
+ else {
262
+ if (!slice_coerce_index(r->stop, stop)) {
263
+ return -1;
264
+ }
265
+ if (*stop < 0) {
266
+ *stop += length;
267
+ }
268
+ if (*stop < 0) {
269
+ *stop = -1;
270
+ }
271
+ if (*stop > length) {
272
+ *stop = length;
273
+ }
274
+ }
275
+
276
+ if ((*step < 0 && *stop >= *start) ||
277
+ (*step > 0 && *start >= *stop)) {
278
+ *slicelength = 0;
279
+ }
280
+ else if (*step < 0) {
281
+ *slicelength = (*stop - *start + 1) / (*step) + 1;
282
+ }
283
+ else {
284
+ *slicelength = (*stop - *start - 1) / (*step) + 1;
285
+ }
286
+
287
+ return 0;
288
+ }
289
+
290
+ /*********************** Element-wise Array Iterator ***********************/
291
+ /* Aided by Peter J. Verveer's nd_image package and numpy's arraymap ****/
292
+ /* and Python's array iterator ***/
293
+
294
+ /* get the dataptr from its current coordinates for simple iterator */
295
+ static char*
296
+ get_ptr_simple(PyArrayIterObject* iter, npy_intp *coordinates)
297
+ {
298
+ npy_intp i;
299
+ char *ret;
300
+
301
+ ret = PyArray_DATA(iter->ao);
302
+
303
+ for(i = 0; i < PyArray_NDIM(iter->ao); ++i) {
304
+ ret += coordinates[i] * iter->strides[i];
305
+ }
306
+
307
+ return ret;
308
+ }
309
+
310
+ /*
311
+ * This is common initialization code between PyArrayIterObject and
312
+ * PyArrayNeighborhoodIterObject
313
+ *
314
+ * Increase ao refcount
315
+ */
316
+ static PyObject *
317
+ array_iter_base_init(PyArrayIterObject *it, PyArrayObject *ao)
318
+ {
319
+ int nd, i;
320
+
321
+ nd = PyArray_NDIM(ao);
322
+ PyArray_UpdateFlags(ao, NPY_ARRAY_C_CONTIGUOUS);
323
+ if (PyArray_ISCONTIGUOUS(ao)) {
324
+ it->contiguous = 1;
325
+ }
326
+ else {
327
+ it->contiguous = 0;
328
+ }
329
+ Py_INCREF(ao);
330
+ it->ao = ao;
331
+ it->size = PyArray_SIZE(ao);
332
+ it->nd_m1 = nd - 1;
333
+ it->factors[nd-1] = 1;
334
+ for (i = 0; i < nd; i++) {
335
+ it->dims_m1[i] = PyArray_DIMS(ao)[i] - 1;
336
+ it->strides[i] = PyArray_STRIDES(ao)[i];
337
+ it->backstrides[i] = it->strides[i] * it->dims_m1[i];
338
+ if (i > 0) {
339
+ it->factors[nd-i-1] = it->factors[nd-i] * PyArray_DIMS(ao)[nd-i];
340
+ }
341
+ it->bounds[i][0] = 0;
342
+ it->bounds[i][1] = PyArray_DIMS(ao)[i] - 1;
343
+ it->limits[i][0] = 0;
344
+ it->limits[i][1] = PyArray_DIMS(ao)[i] - 1;
345
+ it->limits_sizes[i] = it->limits[i][1] - it->limits[i][0] + 1;
346
+ }
347
+
348
+ it->translate = &get_ptr_simple;
349
+ PyArray_ITER_RESET(it);
350
+
351
+ return (PyObject *)it;
352
+ }
353
+
354
+ static void
355
+ array_iter_base_dealloc(PyArrayIterObject *it)
356
+ {
357
+ Py_XDECREF(it->ao);
358
+ }
359
+
360
+ /*NUMPY_API
361
+ * Get Iterator.
362
+ */
363
+ NPY_NO_EXPORT PyObject *
364
+ PyArray_IterNew(PyObject *obj)
365
+ {
366
+ PyArrayIterObject *it;
367
+ PyArrayObject *ao;
368
+
369
+ if (!PyArray_Check(obj)) {
370
+ PyErr_BadInternalCall();
371
+ return NULL;
372
+ }
373
+ ao = (PyArrayObject *)obj;
374
+
375
+ it = (PyArrayIterObject *)PyArray_malloc(sizeof(PyArrayIterObject));
376
+ PyObject_Init((PyObject *)it, &PyArrayIter_Type);
377
+ /* it = PyObject_New(PyArrayIterObject, &PyArrayIter_Type);*/
378
+ if (it == NULL) {
379
+ return NULL;
380
+ }
381
+
382
+ array_iter_base_init(it, ao);
383
+ return (PyObject *)it;
384
+ }
385
+
386
+ /*NUMPY_API
387
+ * Get Iterator broadcast to a particular shape
388
+ */
389
+ NPY_NO_EXPORT PyObject *
390
+ PyArray_BroadcastToShape(PyObject *obj, npy_intp *dims, int nd)
391
+ {
392
+ PyArrayIterObject *it;
393
+ int i, diff, j, compat, k;
394
+ PyArrayObject *ao = (PyArrayObject *)obj;
395
+
396
+ if (PyArray_NDIM(ao) > nd) {
397
+ goto err;
398
+ }
399
+ compat = 1;
400
+ diff = j = nd - PyArray_NDIM(ao);
401
+ for (i = 0; i < PyArray_NDIM(ao); i++, j++) {
402
+ if (PyArray_DIMS(ao)[i] == 1) {
403
+ continue;
404
+ }
405
+ if (PyArray_DIMS(ao)[i] != dims[j]) {
406
+ compat = 0;
407
+ break;
408
+ }
409
+ }
410
+ if (!compat) {
411
+ goto err;
412
+ }
413
+ it = (PyArrayIterObject *)PyArray_malloc(sizeof(PyArrayIterObject));
414
+ if (it == NULL) {
415
+ return NULL;
416
+ }
417
+ PyObject_Init((PyObject *)it, &PyArrayIter_Type);
418
+
419
+ PyArray_UpdateFlags(ao, NPY_ARRAY_C_CONTIGUOUS);
420
+ if (PyArray_ISCONTIGUOUS(ao)) {
421
+ it->contiguous = 1;
422
+ }
423
+ else {
424
+ it->contiguous = 0;
425
+ }
426
+ Py_INCREF(ao);
427
+ it->ao = ao;
428
+ it->size = PyArray_MultiplyList(dims, nd);
429
+ it->nd_m1 = nd - 1;
430
+ it->factors[nd-1] = 1;
431
+ for (i = 0; i < nd; i++) {
432
+ it->dims_m1[i] = dims[i] - 1;
433
+ k = i - diff;
434
+ if ((k < 0) || PyArray_DIMS(ao)[k] != dims[i]) {
435
+ it->contiguous = 0;
436
+ it->strides[i] = 0;
437
+ }
438
+ else {
439
+ it->strides[i] = PyArray_STRIDES(ao)[k];
440
+ }
441
+ it->backstrides[i] = it->strides[i] * it->dims_m1[i];
442
+ if (i > 0) {
443
+ it->factors[nd-i-1] = it->factors[nd-i] * dims[nd-i];
444
+ }
445
+ }
446
+ PyArray_ITER_RESET(it);
447
+ return (PyObject *)it;
448
+
449
+ err:
450
+ PyErr_SetString(PyExc_ValueError, "array is not broadcastable to "\
451
+ "correct shape");
452
+ return NULL;
453
+ }
454
+
455
+
456
+
457
+
458
+
459
+ /*NUMPY_API
460
+ * Get Iterator that iterates over all but one axis (don't use this with
461
+ * PyArray_ITER_GOTO1D). The axis will be over-written if negative
462
+ * with the axis having the smallest stride.
463
+ */
464
+ NPY_NO_EXPORT PyObject *
465
+ PyArray_IterAllButAxis(PyObject *obj, int *inaxis)
466
+ {
467
+ PyArrayObject *arr;
468
+ PyArrayIterObject *it;
469
+ int axis;
470
+
471
+ if (!PyArray_Check(obj)) {
472
+ PyErr_SetString(PyExc_ValueError,
473
+ "Numpy IterAllButAxis requires an ndarray");
474
+ return NULL;
475
+ }
476
+ arr = (PyArrayObject *)obj;
477
+
478
+ it = (PyArrayIterObject *)PyArray_IterNew((PyObject *)arr);
479
+ if (it == NULL) {
480
+ return NULL;
481
+ }
482
+ if (PyArray_NDIM(arr)==0) {
483
+ return (PyObject *)it;
484
+ }
485
+ if (*inaxis < 0) {
486
+ int i, minaxis = 0;
487
+ npy_intp minstride = 0;
488
+ i = 0;
489
+ while (minstride == 0 && i < PyArray_NDIM(arr)) {
490
+ minstride = PyArray_STRIDE(arr,i);
491
+ i++;
492
+ }
493
+ for (i = 1; i < PyArray_NDIM(arr); i++) {
494
+ if (PyArray_STRIDE(arr,i) > 0 &&
495
+ PyArray_STRIDE(arr, i) < minstride) {
496
+ minaxis = i;
497
+ minstride = PyArray_STRIDE(arr,i);
498
+ }
499
+ }
500
+ *inaxis = minaxis;
501
+ }
502
+ axis = *inaxis;
503
+ /* adjust so that will not iterate over axis */
504
+ it->contiguous = 0;
505
+ if (it->size != 0) {
506
+ it->size /= PyArray_DIM(arr,axis);
507
+ }
508
+ it->dims_m1[axis] = 0;
509
+ it->backstrides[axis] = 0;
510
+
511
+ /*
512
+ * (won't fix factors so don't use
513
+ * PyArray_ITER_GOTO1D with this iterator)
514
+ */
515
+ return (PyObject *)it;
516
+ }
517
+
518
+ /*NUMPY_API
519
+ * Adjusts previously broadcasted iterators so that the axis with
520
+ * the smallest sum of iterator strides is not iterated over.
521
+ * Returns dimension which is smallest in the range [0,multi->nd).
522
+ * A -1 is returned if multi->nd == 0.
523
+ *
524
+ * don't use with PyArray_ITER_GOTO1D because factors are not adjusted
525
+ */
526
+ NPY_NO_EXPORT int
527
+ PyArray_RemoveSmallest(PyArrayMultiIterObject *multi)
528
+ {
529
+ PyArrayIterObject *it;
530
+ int i, j;
531
+ int axis;
532
+ npy_intp smallest;
533
+ npy_intp sumstrides[NPY_MAXDIMS];
534
+
535
+ if (multi->nd == 0) {
536
+ return -1;
537
+ }
538
+ for (i = 0; i < multi->nd; i++) {
539
+ sumstrides[i] = 0;
540
+ for (j = 0; j < multi->numiter; j++) {
541
+ sumstrides[i] += multi->iters[j]->strides[i];
542
+ }
543
+ }
544
+ axis = 0;
545
+ smallest = sumstrides[0];
546
+ /* Find longest dimension */
547
+ for (i = 1; i < multi->nd; i++) {
548
+ if (sumstrides[i] < smallest) {
549
+ axis = i;
550
+ smallest = sumstrides[i];
551
+ }
552
+ }
553
+ for(i = 0; i < multi->numiter; i++) {
554
+ it = multi->iters[i];
555
+ it->contiguous = 0;
556
+ if (it->size != 0) {
557
+ it->size /= (it->dims_m1[axis]+1);
558
+ }
559
+ it->dims_m1[axis] = 0;
560
+ it->backstrides[axis] = 0;
561
+ }
562
+ multi->size = multi->iters[0]->size;
563
+ return axis;
564
+ }
565
+
566
+ /* Returns an array scalar holding the element desired */
567
+
568
+ static PyObject *
569
+ arrayiter_next(PyArrayIterObject *it)
570
+ {
571
+ PyObject *ret;
572
+
573
+ if (it->index < it->size) {
574
+ ret = PyArray_ToScalar(it->dataptr, it->ao);
575
+ PyArray_ITER_NEXT(it);
576
+ return ret;
577
+ }
578
+ return NULL;
579
+ }
580
+
581
+ static void
582
+ arrayiter_dealloc(PyArrayIterObject *it)
583
+ {
584
+ array_iter_base_dealloc(it);
585
+ PyArray_free(it);
586
+ }
587
+
588
+ static Py_ssize_t
589
+ iter_length(PyArrayIterObject *self)
590
+ {
591
+ return self->size;
592
+ }
593
+
594
+
595
+ static PyArrayObject *
596
+ iter_subscript_Bool(PyArrayIterObject *self, PyArrayObject *ind)
597
+ {
598
+ npy_intp counter, strides;
599
+ int itemsize;
600
+ npy_intp count = 0;
601
+ char *dptr, *optr;
602
+ PyArrayObject *ret;
603
+ int swap;
604
+ PyArray_CopySwapFunc *copyswap;
605
+
606
+
607
+ if (PyArray_NDIM(ind) != 1) {
608
+ PyErr_SetString(PyExc_ValueError,
609
+ "boolean index array should have 1 dimension");
610
+ return NULL;
611
+ }
612
+ counter = PyArray_DIMS(ind)[0];
613
+ if (counter > self->size) {
614
+ PyErr_SetString(PyExc_ValueError,
615
+ "too many boolean indices");
616
+ return NULL;
617
+ }
618
+
619
+ strides = PyArray_STRIDES(ind)[0];
620
+ dptr = PyArray_DATA(ind);
621
+ /* Get size of return array */
622
+ while (counter--) {
623
+ if (*((npy_bool *)dptr) != 0) {
624
+ count++;
625
+ }
626
+ dptr += strides;
627
+ }
628
+ itemsize = PyArray_DESCR(self->ao)->elsize;
629
+ Py_INCREF(PyArray_DESCR(self->ao));
630
+ ret = (PyArrayObject *)PyArray_NewFromDescr(Py_TYPE(self->ao),
631
+ PyArray_DESCR(self->ao), 1, &count,
632
+ NULL, NULL,
633
+ 0, (PyObject *)self->ao);
634
+ if (ret == NULL) {
635
+ return NULL;
636
+ }
637
+ /* Set up loop */
638
+ optr = PyArray_DATA(ret);
639
+ counter = PyArray_DIMS(ind)[0];
640
+ dptr = PyArray_DATA(ind);
641
+ copyswap = PyArray_DESCR(self->ao)->f->copyswap;
642
+ /* Loop over Boolean array */
643
+ swap = (PyArray_ISNOTSWAPPED(self->ao) != PyArray_ISNOTSWAPPED(ret));
644
+ while (counter--) {
645
+ if (*((npy_bool *)dptr) != 0) {
646
+ copyswap(optr, self->dataptr, swap, self->ao);
647
+ optr += itemsize;
648
+ }
649
+ dptr += strides;
650
+ PyArray_ITER_NEXT(self);
651
+ }
652
+ PyArray_ITER_RESET(self);
653
+ return ret;
654
+ }
655
+
656
+ static PyObject *
657
+ iter_subscript_int(PyArrayIterObject *self, PyArrayObject *ind)
658
+ {
659
+ npy_intp num;
660
+ PyArrayObject *ret;
661
+ PyArrayIterObject *ind_it;
662
+ int itemsize;
663
+ int swap;
664
+ char *optr;
665
+ npy_intp counter;
666
+ PyArray_CopySwapFunc *copyswap;
667
+
668
+ itemsize = PyArray_DESCR(self->ao)->elsize;
669
+ if (PyArray_NDIM(ind) == 0) {
670
+ num = *((npy_intp *)PyArray_DATA(ind));
671
+ if (check_and_adjust_index(&num, self->size, -1, NULL) < 0) {
672
+ PyArray_ITER_RESET(self);
673
+ return NULL;
674
+ }
675
+ else {
676
+ PyObject *tmp;
677
+ PyArray_ITER_GOTO1D(self, num);
678
+ tmp = PyArray_ToScalar(self->dataptr, self->ao);
679
+ PyArray_ITER_RESET(self);
680
+ return tmp;
681
+ }
682
+ }
683
+
684
+ Py_INCREF(PyArray_DESCR(self->ao));
685
+ ret = (PyArrayObject *)PyArray_NewFromDescr(Py_TYPE(self->ao),
686
+ PyArray_DESCR(self->ao),
687
+ PyArray_NDIM(ind),
688
+ PyArray_DIMS(ind),
689
+ NULL, NULL,
690
+ 0, (PyObject *)self->ao);
691
+ if (ret == NULL) {
692
+ return NULL;
693
+ }
694
+ optr = PyArray_DATA(ret);
695
+ ind_it = (PyArrayIterObject *)PyArray_IterNew((PyObject *)ind);
696
+ if (ind_it == NULL) {
697
+ Py_DECREF(ret);
698
+ return NULL;
699
+ }
700
+ counter = ind_it->size;
701
+ copyswap = PyArray_DESCR(ret)->f->copyswap;
702
+ swap = (PyArray_ISNOTSWAPPED(ret) != PyArray_ISNOTSWAPPED(self->ao));
703
+ while (counter--) {
704
+ num = *((npy_intp *)(ind_it->dataptr));
705
+ if (check_and_adjust_index(&num, self->size, -1, NULL) < 0) {
706
+ Py_DECREF(ind_it);
707
+ Py_DECREF(ret);
708
+ PyArray_ITER_RESET(self);
709
+ return NULL;
710
+ }
711
+ PyArray_ITER_GOTO1D(self, num);
712
+ copyswap(optr, self->dataptr, swap, ret);
713
+ optr += itemsize;
714
+ PyArray_ITER_NEXT(ind_it);
715
+ }
716
+ Py_DECREF(ind_it);
717
+ PyArray_ITER_RESET(self);
718
+ return (PyObject *)ret;
719
+ }
720
+
721
+ /* Always returns arrays */
722
+ NPY_NO_EXPORT PyObject *
723
+ iter_subscript(PyArrayIterObject *self, PyObject *ind)
724
+ {
725
+ PyArray_Descr *indtype = NULL;
726
+ PyArray_Descr *dtype;
727
+ npy_intp start, step_size;
728
+ npy_intp n_steps;
729
+ PyArrayObject *ret;
730
+ char *dptr;
731
+ int size;
732
+ PyObject *obj = NULL;
733
+ PyArray_CopySwapFunc *copyswap;
734
+
735
+ if (ind == Py_Ellipsis) {
736
+ ind = PySlice_New(NULL, NULL, NULL);
737
+ obj = iter_subscript(self, ind);
738
+ Py_DECREF(ind);
739
+ return obj;
740
+ }
741
+ if (PyTuple_Check(ind)) {
742
+ int len;
743
+ len = PyTuple_GET_SIZE(ind);
744
+ if (len > 1) {
745
+ goto fail;
746
+ }
747
+ if (len == 0) {
748
+ Py_INCREF(self->ao);
749
+ return (PyObject *)self->ao;
750
+ }
751
+ ind = PyTuple_GET_ITEM(ind, 0);
752
+ }
753
+
754
+ /*
755
+ * Tuples >1d not accepted --- i.e. no newaxis
756
+ * Could implement this with adjusted strides and dimensions in iterator
757
+ * Check for Boolean -- this is first because Bool is a subclass of Int
758
+ */
759
+ PyArray_ITER_RESET(self);
760
+
761
+ if (PyBool_Check(ind)) {
762
+ if (PyObject_IsTrue(ind)) {
763
+ return PyArray_ToScalar(self->dataptr, self->ao);
764
+ }
765
+ else { /* empty array */
766
+ npy_intp ii = 0;
767
+ dtype = PyArray_DESCR(self->ao);
768
+ Py_INCREF(dtype);
769
+ ret = (PyArrayObject *)PyArray_NewFromDescr(Py_TYPE(self->ao),
770
+ dtype,
771
+ 1, &ii,
772
+ NULL, NULL, 0,
773
+ (PyObject *)self->ao);
774
+ return (PyObject *)ret;
775
+ }
776
+ }
777
+
778
+ /* Check for Integer or Slice */
779
+ if (PyLong_Check(ind) || PyInt_Check(ind) || PySlice_Check(ind)) {
780
+ start = parse_index_entry(ind, &step_size, &n_steps,
781
+ self->size, 0, 1);
782
+ if (start == -1) {
783
+ goto fail;
784
+ }
785
+ if (n_steps == ELLIPSIS_INDEX || n_steps == NEWAXIS_INDEX) {
786
+ PyErr_SetString(PyExc_IndexError,
787
+ "cannot use Ellipsis or newaxes here");
788
+ goto fail;
789
+ }
790
+ PyArray_ITER_GOTO1D(self, start);
791
+ if (n_steps == SINGLE_INDEX) { /* Integer */
792
+ PyObject *tmp;
793
+ tmp = PyArray_ToScalar(self->dataptr, self->ao);
794
+ PyArray_ITER_RESET(self);
795
+ return tmp;
796
+ }
797
+ size = PyArray_DESCR(self->ao)->elsize;
798
+ dtype = PyArray_DESCR(self->ao);
799
+ Py_INCREF(dtype);
800
+ ret = (PyArrayObject *)PyArray_NewFromDescr(Py_TYPE(self->ao),
801
+ dtype,
802
+ 1, &n_steps,
803
+ NULL, NULL,
804
+ 0, (PyObject *)self->ao);
805
+ if (ret == NULL) {
806
+ goto fail;
807
+ }
808
+ dptr = PyArray_DATA(ret);
809
+ copyswap = PyArray_DESCR(ret)->f->copyswap;
810
+ while (n_steps--) {
811
+ copyswap(dptr, self->dataptr, 0, ret);
812
+ start += step_size;
813
+ PyArray_ITER_GOTO1D(self, start);
814
+ dptr += size;
815
+ }
816
+ PyArray_ITER_RESET(self);
817
+ return (PyObject *)ret;
818
+ }
819
+
820
+ /* convert to INTP array if Integer array scalar or List */
821
+ indtype = PyArray_DescrFromType(NPY_INTP);
822
+ if (PyArray_IsScalar(ind, Integer) || PyList_Check(ind)) {
823
+ Py_INCREF(indtype);
824
+ obj = PyArray_FromAny(ind, indtype, 0, 0, NPY_ARRAY_FORCECAST, NULL);
825
+ if (obj == NULL) {
826
+ goto fail;
827
+ }
828
+ }
829
+ else {
830
+ Py_INCREF(ind);
831
+ obj = ind;
832
+ }
833
+
834
+ if (PyArray_Check(obj)) {
835
+ /* Check for Boolean object */
836
+ if (PyArray_TYPE((PyArrayObject *)obj) == NPY_BOOL) {
837
+ ret = iter_subscript_Bool(self, (PyArrayObject *)obj);
838
+ Py_DECREF(indtype);
839
+ }
840
+ /* Check for integer array */
841
+ else if (PyArray_ISINTEGER((PyArrayObject *)obj)) {
842
+ PyObject *new;
843
+ new = PyArray_FromAny(obj, indtype, 0, 0,
844
+ NPY_ARRAY_FORCECAST | NPY_ARRAY_ALIGNED, NULL);
845
+ if (new == NULL) {
846
+ goto fail;
847
+ }
848
+ Py_DECREF(obj);
849
+ obj = new;
850
+ new = iter_subscript_int(self, (PyArrayObject *)obj);
851
+ Py_DECREF(obj);
852
+ return new;
853
+ }
854
+ else {
855
+ goto fail;
856
+ }
857
+ Py_DECREF(obj);
858
+ return (PyObject *)ret;
859
+ }
860
+ else {
861
+ Py_DECREF(indtype);
862
+ }
863
+
864
+
865
+ fail:
866
+ if (!PyErr_Occurred()) {
867
+ PyErr_SetString(PyExc_IndexError, "unsupported iterator index");
868
+ }
869
+ Py_XDECREF(indtype);
870
+ Py_XDECREF(obj);
871
+ return NULL;
872
+
873
+ }
874
+
875
+
876
+ static int
877
+ iter_ass_sub_Bool(PyArrayIterObject *self, PyArrayObject *ind,
878
+ PyArrayIterObject *val, int swap)
879
+ {
880
+ npy_intp counter, strides;
881
+ char *dptr;
882
+ PyArray_CopySwapFunc *copyswap;
883
+
884
+ if (PyArray_NDIM(ind) != 1) {
885
+ PyErr_SetString(PyExc_ValueError,
886
+ "boolean index array should have 1 dimension");
887
+ return -1;
888
+ }
889
+
890
+ counter = PyArray_DIMS(ind)[0];
891
+ if (counter > self->size) {
892
+ PyErr_SetString(PyExc_ValueError,
893
+ "boolean index array has too many values");
894
+ return -1;
895
+ }
896
+
897
+ strides = PyArray_STRIDES(ind)[0];
898
+ dptr = PyArray_DATA(ind);
899
+ PyArray_ITER_RESET(self);
900
+ /* Loop over Boolean array */
901
+ copyswap = PyArray_DESCR(self->ao)->f->copyswap;
902
+ while (counter--) {
903
+ if (*((npy_bool *)dptr) != 0) {
904
+ copyswap(self->dataptr, val->dataptr, swap, self->ao);
905
+ PyArray_ITER_NEXT(val);
906
+ if (val->index == val->size) {
907
+ PyArray_ITER_RESET(val);
908
+ }
909
+ }
910
+ dptr += strides;
911
+ PyArray_ITER_NEXT(self);
912
+ }
913
+ PyArray_ITER_RESET(self);
914
+ return 0;
915
+ }
916
+
917
+ static int
918
+ iter_ass_sub_int(PyArrayIterObject *self, PyArrayObject *ind,
919
+ PyArrayIterObject *val, int swap)
920
+ {
921
+ npy_intp num;
922
+ PyArrayIterObject *ind_it;
923
+ npy_intp counter;
924
+ PyArray_CopySwapFunc *copyswap;
925
+
926
+ copyswap = PyArray_DESCR(self->ao)->f->copyswap;
927
+ if (PyArray_NDIM(ind) == 0) {
928
+ num = *((npy_intp *)PyArray_DATA(ind));
929
+ if (check_and_adjust_index(&num, self->size, -1, NULL) < 0) {
930
+ return -1;
931
+ }
932
+ PyArray_ITER_GOTO1D(self, num);
933
+ copyswap(self->dataptr, val->dataptr, swap, self->ao);
934
+ return 0;
935
+ }
936
+ ind_it = (PyArrayIterObject *)PyArray_IterNew((PyObject *)ind);
937
+ if (ind_it == NULL) {
938
+ return -1;
939
+ }
940
+ counter = ind_it->size;
941
+ while (counter--) {
942
+ num = *((npy_intp *)(ind_it->dataptr));
943
+ if (check_and_adjust_index(&num, self->size, -1, NULL) < 0) {
944
+ Py_DECREF(ind_it);
945
+ return -1;
946
+ }
947
+ PyArray_ITER_GOTO1D(self, num);
948
+ copyswap(self->dataptr, val->dataptr, swap, self->ao);
949
+ PyArray_ITER_NEXT(ind_it);
950
+ PyArray_ITER_NEXT(val);
951
+ if (val->index == val->size) {
952
+ PyArray_ITER_RESET(val);
953
+ }
954
+ }
955
+ Py_DECREF(ind_it);
956
+ return 0;
957
+ }
958
+
959
+ NPY_NO_EXPORT int
960
+ iter_ass_subscript(PyArrayIterObject *self, PyObject *ind, PyObject *val)
961
+ {
962
+ PyArrayObject *arrval = NULL;
963
+ PyArrayIterObject *val_it = NULL;
964
+ PyArray_Descr *type;
965
+ PyArray_Descr *indtype = NULL;
966
+ int swap, retval = -1;
967
+ npy_intp start, step_size;
968
+ npy_intp n_steps;
969
+ PyObject *obj = NULL;
970
+ PyArray_CopySwapFunc *copyswap;
971
+
972
+
973
+ if (val == NULL) {
974
+ PyErr_SetString(PyExc_TypeError,
975
+ "Cannot delete iterator elements");
976
+ return -1;
977
+ }
978
+
979
+ if (PyArray_FailUnlessWriteable(self->ao, "underlying array") < 0)
980
+ return -1;
981
+
982
+ if (ind == Py_Ellipsis) {
983
+ ind = PySlice_New(NULL, NULL, NULL);
984
+ retval = iter_ass_subscript(self, ind, val);
985
+ Py_DECREF(ind);
986
+ return retval;
987
+ }
988
+
989
+ if (PyTuple_Check(ind)) {
990
+ int len;
991
+ len = PyTuple_GET_SIZE(ind);
992
+ if (len > 1) {
993
+ goto finish;
994
+ }
995
+ ind = PyTuple_GET_ITEM(ind, 0);
996
+ }
997
+
998
+ type = PyArray_DESCR(self->ao);
999
+
1000
+ /*
1001
+ * Check for Boolean -- this is first becasue
1002
+ * Bool is a subclass of Int
1003
+ */
1004
+ if (PyBool_Check(ind)) {
1005
+ retval = 0;
1006
+ if (PyObject_IsTrue(ind)) {
1007
+ retval = type->f->setitem(val, self->dataptr, self->ao);
1008
+ }
1009
+ goto finish;
1010
+ }
1011
+
1012
+ if (PySequence_Check(ind) || PySlice_Check(ind)) {
1013
+ goto skip;
1014
+ }
1015
+ start = PyArray_PyIntAsIntp(ind);
1016
+ if (start==-1 && PyErr_Occurred()) {
1017
+ PyErr_Clear();
1018
+ }
1019
+ else {
1020
+ if (check_and_adjust_index(&start, self->size, -1, NULL) < 0) {
1021
+ goto finish;
1022
+ }
1023
+ retval = 0;
1024
+ PyArray_ITER_GOTO1D(self, start);
1025
+ retval = type->f->setitem(val, self->dataptr, self->ao);
1026
+ PyArray_ITER_RESET(self);
1027
+ if (retval < 0) {
1028
+ PyErr_SetString(PyExc_ValueError,
1029
+ "Error setting single item of array.");
1030
+ }
1031
+ goto finish;
1032
+ }
1033
+
1034
+ skip:
1035
+ Py_INCREF(type);
1036
+ arrval = (PyArrayObject *)PyArray_FromAny(val, type, 0, 0,
1037
+ NPY_ARRAY_FORCECAST, NULL);
1038
+ if (arrval == NULL) {
1039
+ return -1;
1040
+ }
1041
+ val_it = (PyArrayIterObject *)PyArray_IterNew((PyObject *)arrval);
1042
+ if (val_it == NULL) {
1043
+ goto finish;
1044
+ }
1045
+ if (val_it->size == 0) {
1046
+ retval = 0;
1047
+ goto finish;
1048
+ }
1049
+
1050
+ copyswap = PyArray_DESCR(arrval)->f->copyswap;
1051
+ swap = (PyArray_ISNOTSWAPPED(self->ao)!=PyArray_ISNOTSWAPPED(arrval));
1052
+
1053
+ /* Check Slice */
1054
+ if (PySlice_Check(ind)) {
1055
+ start = parse_index_entry(ind, &step_size, &n_steps, self->size, 0, 0);
1056
+ if (start == -1) {
1057
+ goto finish;
1058
+ }
1059
+ if (n_steps == ELLIPSIS_INDEX || n_steps == NEWAXIS_INDEX) {
1060
+ PyErr_SetString(PyExc_IndexError,
1061
+ "cannot use Ellipsis or newaxes here");
1062
+ goto finish;
1063
+ }
1064
+ PyArray_ITER_GOTO1D(self, start);
1065
+ if (n_steps == SINGLE_INDEX) {
1066
+ /* Integer */
1067
+ copyswap(self->dataptr, PyArray_DATA(arrval), swap, arrval);
1068
+ PyArray_ITER_RESET(self);
1069
+ retval = 0;
1070
+ goto finish;
1071
+ }
1072
+ while (n_steps--) {
1073
+ copyswap(self->dataptr, val_it->dataptr, swap, arrval);
1074
+ start += step_size;
1075
+ PyArray_ITER_GOTO1D(self, start);
1076
+ PyArray_ITER_NEXT(val_it);
1077
+ if (val_it->index == val_it->size) {
1078
+ PyArray_ITER_RESET(val_it);
1079
+ }
1080
+ }
1081
+ PyArray_ITER_RESET(self);
1082
+ retval = 0;
1083
+ goto finish;
1084
+ }
1085
+
1086
+ /* convert to INTP array if Integer array scalar or List */
1087
+ indtype = PyArray_DescrFromType(NPY_INTP);
1088
+ if (PyList_Check(ind)) {
1089
+ Py_INCREF(indtype);
1090
+ obj = PyArray_FromAny(ind, indtype, 0, 0, NPY_ARRAY_FORCECAST, NULL);
1091
+ }
1092
+ else {
1093
+ Py_INCREF(ind);
1094
+ obj = ind;
1095
+ }
1096
+
1097
+ if (obj != NULL && PyArray_Check(obj)) {
1098
+ /* Check for Boolean object */
1099
+ if (PyArray_TYPE((PyArrayObject *)obj)==NPY_BOOL) {
1100
+ if (iter_ass_sub_Bool(self, (PyArrayObject *)obj,
1101
+ val_it, swap) < 0) {
1102
+ goto finish;
1103
+ }
1104
+ retval=0;
1105
+ }
1106
+ /* Check for integer array */
1107
+ else if (PyArray_ISINTEGER((PyArrayObject *)obj)) {
1108
+ PyObject *new;
1109
+ Py_INCREF(indtype);
1110
+ new = PyArray_CheckFromAny(obj, indtype, 0, 0,
1111
+ NPY_ARRAY_FORCECAST | NPY_ARRAY_BEHAVED_NS, NULL);
1112
+ Py_DECREF(obj);
1113
+ obj = new;
1114
+ if (new == NULL) {
1115
+ goto finish;
1116
+ }
1117
+ if (iter_ass_sub_int(self, (PyArrayObject *)obj,
1118
+ val_it, swap) < 0) {
1119
+ goto finish;
1120
+ }
1121
+ retval = 0;
1122
+ }
1123
+ }
1124
+
1125
+ finish:
1126
+ if (!PyErr_Occurred() && retval < 0) {
1127
+ PyErr_SetString(PyExc_IndexError, "unsupported iterator index");
1128
+ }
1129
+ Py_XDECREF(indtype);
1130
+ Py_XDECREF(obj);
1131
+ Py_XDECREF(val_it);
1132
+ Py_XDECREF(arrval);
1133
+ return retval;
1134
+
1135
+ }
1136
+
1137
+
1138
+ static PyMappingMethods iter_as_mapping = {
1139
+ (lenfunc)iter_length, /*mp_length*/
1140
+ (binaryfunc)iter_subscript, /*mp_subscript*/
1141
+ (objobjargproc)iter_ass_subscript, /*mp_ass_subscript*/
1142
+ };
1143
+
1144
+
1145
+
1146
+ static PyArrayObject *
1147
+ iter_array(PyArrayIterObject *it, PyObject *NPY_UNUSED(op))
1148
+ {
1149
+
1150
+ PyArrayObject *ret;
1151
+ npy_intp size;
1152
+
1153
+ /* Any argument ignored */
1154
+
1155
+ /* Two options:
1156
+ * 1) underlying array is contiguous
1157
+ * -- return 1-d wrapper around it
1158
+ * 2) underlying array is not contiguous
1159
+ * -- make new 1-d contiguous array with updateifcopy flag set
1160
+ * to copy back to the old array
1161
+ *
1162
+ * If underlying array is readonly, then we make the output array readonly
1163
+ * and updateifcopy does not apply.
1164
+ */
1165
+ size = PyArray_SIZE(it->ao);
1166
+ Py_INCREF(PyArray_DESCR(it->ao));
1167
+ if (PyArray_ISCONTIGUOUS(it->ao)) {
1168
+ ret = (PyArrayObject *)PyArray_NewFromDescr(&PyArray_Type,
1169
+ PyArray_DESCR(it->ao),
1170
+ 1, &size,
1171
+ NULL, PyArray_DATA(it->ao),
1172
+ PyArray_FLAGS(it->ao),
1173
+ (PyObject *)it->ao);
1174
+ if (ret == NULL) {
1175
+ return NULL;
1176
+ }
1177
+ Py_INCREF(it->ao);
1178
+ if (PyArray_SetBaseObject(ret, (PyObject *)it->ao) < 0) {
1179
+ Py_DECREF(ret);
1180
+ return NULL;
1181
+ }
1182
+ }
1183
+ else {
1184
+ ret = (PyArrayObject *)PyArray_NewFromDescr(&PyArray_Type,
1185
+ PyArray_DESCR(it->ao),
1186
+ 1, &size,
1187
+ NULL, NULL,
1188
+ 0, (PyObject *)it->ao);
1189
+ if (ret == NULL) {
1190
+ return NULL;
1191
+ }
1192
+ if (PyArray_CopyAnyInto(ret, it->ao) < 0) {
1193
+ Py_DECREF(ret);
1194
+ return NULL;
1195
+ }
1196
+ if (PyArray_ISWRITEABLE(it->ao)) {
1197
+ Py_INCREF(it->ao);
1198
+ if (PyArray_SetUpdateIfCopyBase(ret, it->ao) < 0) {
1199
+ Py_DECREF(ret);
1200
+ return NULL;
1201
+ }
1202
+ }
1203
+ else {
1204
+ PyArray_CLEARFLAGS(ret, NPY_ARRAY_WRITEABLE);
1205
+ }
1206
+ }
1207
+ return ret;
1208
+
1209
+ }
1210
+
1211
+ static PyObject *
1212
+ iter_copy(PyArrayIterObject *it, PyObject *args)
1213
+ {
1214
+ if (!PyArg_ParseTuple(args, "")) {
1215
+ return NULL;
1216
+ }
1217
+ return PyArray_Flatten(it->ao, 0);
1218
+ }
1219
+
1220
+ static PyMethodDef iter_methods[] = {
1221
+ /* to get array */
1222
+ {"__array__",
1223
+ (PyCFunction)iter_array,
1224
+ METH_VARARGS, NULL},
1225
+ {"copy",
1226
+ (PyCFunction)iter_copy,
1227
+ METH_VARARGS, NULL},
1228
+ {NULL, NULL, 0, NULL} /* sentinel */
1229
+ };
1230
+
1231
+ static PyObject *
1232
+ iter_richcompare(PyArrayIterObject *self, PyObject *other, int cmp_op)
1233
+ {
1234
+ PyArrayObject *new;
1235
+ PyObject *ret;
1236
+ new = (PyArrayObject *)iter_array(self, NULL);
1237
+ if (new == NULL) {
1238
+ return NULL;
1239
+ }
1240
+ ret = array_richcompare(new, other, cmp_op);
1241
+ Py_DECREF(new);
1242
+ return ret;
1243
+ }
1244
+
1245
+
1246
+ static PyMemberDef iter_members[] = {
1247
+ {"base",
1248
+ T_OBJECT,
1249
+ offsetof(PyArrayIterObject, ao),
1250
+ READONLY, NULL},
1251
+ {"index",
1252
+ T_INT,
1253
+ offsetof(PyArrayIterObject, index),
1254
+ READONLY, NULL},
1255
+ {NULL, 0, 0, 0, NULL},
1256
+ };
1257
+
1258
+ static PyObject *
1259
+ iter_coords_get(PyArrayIterObject *self)
1260
+ {
1261
+ int nd;
1262
+ nd = PyArray_NDIM(self->ao);
1263
+ if (self->contiguous) {
1264
+ /*
1265
+ * coordinates not kept track of ---
1266
+ * need to generate from index
1267
+ */
1268
+ npy_intp val;
1269
+ int i;
1270
+ val = self->index;
1271
+ for (i = 0; i < nd; i++) {
1272
+ if (self->factors[i] != 0) {
1273
+ self->coordinates[i] = val / self->factors[i];
1274
+ val = val % self->factors[i];
1275
+ } else {
1276
+ self->coordinates[i] = 0;
1277
+ }
1278
+ }
1279
+ }
1280
+ return PyArray_IntTupleFromIntp(nd, self->coordinates);
1281
+ }
1282
+
1283
+ static PyGetSetDef iter_getsets[] = {
1284
+ {"coords",
1285
+ (getter)iter_coords_get,
1286
+ NULL,
1287
+ NULL, NULL},
1288
+ {NULL, NULL, NULL, NULL, NULL},
1289
+ };
1290
+
1291
+ NPY_NO_EXPORT PyTypeObject PyArrayIter_Type = {
1292
+ #if defined(NPY_PY3K)
1293
+ PyVarObject_HEAD_INIT(NULL, 0)
1294
+ #else
1295
+ PyObject_HEAD_INIT(NULL)
1296
+ 0, /* ob_size */
1297
+ #endif
1298
+ "numpy.flatiter", /* tp_name */
1299
+ sizeof(PyArrayIterObject), /* tp_basicsize */
1300
+ 0, /* tp_itemsize */
1301
+ /* methods */
1302
+ (destructor)arrayiter_dealloc, /* tp_dealloc */
1303
+ 0, /* tp_print */
1304
+ 0, /* tp_getattr */
1305
+ 0, /* tp_setattr */
1306
+ #if defined(NPY_PY3K)
1307
+ 0, /* tp_reserved */
1308
+ #else
1309
+ 0, /* tp_compare */
1310
+ #endif
1311
+ 0, /* tp_repr */
1312
+ 0, /* tp_as_number */
1313
+ 0, /* tp_as_sequence */
1314
+ &iter_as_mapping, /* tp_as_mapping */
1315
+ 0, /* tp_hash */
1316
+ 0, /* tp_call */
1317
+ 0, /* tp_str */
1318
+ 0, /* tp_getattro */
1319
+ 0, /* tp_setattro */
1320
+ 0, /* tp_as_buffer */
1321
+ Py_TPFLAGS_DEFAULT, /* tp_flags */
1322
+ 0, /* tp_doc */
1323
+ 0, /* tp_traverse */
1324
+ 0, /* tp_clear */
1325
+ (richcmpfunc)iter_richcompare, /* tp_richcompare */
1326
+ 0, /* tp_weaklistoffset */
1327
+ 0, /* tp_iter */
1328
+ (iternextfunc)arrayiter_next, /* tp_iternext */
1329
+ iter_methods, /* tp_methods */
1330
+ iter_members, /* tp_members */
1331
+ iter_getsets, /* tp_getset */
1332
+ 0, /* tp_base */
1333
+ 0, /* tp_dict */
1334
+ 0, /* tp_descr_get */
1335
+ 0, /* tp_descr_set */
1336
+ 0, /* tp_dictoffset */
1337
+ 0, /* tp_init */
1338
+ 0, /* tp_alloc */
1339
+ 0, /* tp_new */
1340
+ 0, /* tp_free */
1341
+ 0, /* tp_is_gc */
1342
+ 0, /* tp_bases */
1343
+ 0, /* tp_mro */
1344
+ 0, /* tp_cache */
1345
+ 0, /* tp_subclasses */
1346
+ 0, /* tp_weaklist */
1347
+ 0, /* tp_del */
1348
+ 0, /* tp_version_tag */
1349
+ };
1350
+
1351
+ /** END of Array Iterator **/
1352
+
1353
+ /* Adjust dimensionality and strides for index object iterators
1354
+ --- i.e. broadcast
1355
+ */
1356
+ /*NUMPY_API*/
1357
+ NPY_NO_EXPORT int
1358
+ PyArray_Broadcast(PyArrayMultiIterObject *mit)
1359
+ {
1360
+ int i, nd, k, j;
1361
+ npy_intp tmp;
1362
+ PyArrayIterObject *it;
1363
+
1364
+ /* Discover the broadcast number of dimensions */
1365
+ for (i = 0, nd = 0; i < mit->numiter; i++) {
1366
+ nd = PyArray_MAX(nd, PyArray_NDIM(mit->iters[i]->ao));
1367
+ }
1368
+ mit->nd = nd;
1369
+
1370
+ /* Discover the broadcast shape in each dimension */
1371
+ for (i = 0; i < nd; i++) {
1372
+ mit->dimensions[i] = 1;
1373
+ for (j = 0; j < mit->numiter; j++) {
1374
+ it = mit->iters[j];
1375
+ /* This prepends 1 to shapes not already equal to nd */
1376
+ k = i + PyArray_NDIM(it->ao) - nd;
1377
+ if (k >= 0) {
1378
+ tmp = PyArray_DIMS(it->ao)[k];
1379
+ if (tmp == 1) {
1380
+ continue;
1381
+ }
1382
+ if (mit->dimensions[i] == 1) {
1383
+ mit->dimensions[i] = tmp;
1384
+ }
1385
+ else if (mit->dimensions[i] != tmp) {
1386
+ PyErr_SetString(PyExc_ValueError,
1387
+ "shape mismatch: objects" \
1388
+ " cannot be broadcast" \
1389
+ " to a single shape");
1390
+ return -1;
1391
+ }
1392
+ }
1393
+ }
1394
+ }
1395
+
1396
+ /*
1397
+ * Reset the iterator dimensions and strides of each iterator
1398
+ * object -- using 0 valued strides for broadcasting
1399
+ * Need to check for overflow
1400
+ */
1401
+ tmp = PyArray_OverflowMultiplyList(mit->dimensions, mit->nd);
1402
+ if (tmp < 0) {
1403
+ PyErr_SetString(PyExc_ValueError,
1404
+ "broadcast dimensions too large.");
1405
+ return -1;
1406
+ }
1407
+ mit->size = tmp;
1408
+ for (i = 0; i < mit->numiter; i++) {
1409
+ it = mit->iters[i];
1410
+ it->nd_m1 = mit->nd - 1;
1411
+ it->size = tmp;
1412
+ nd = PyArray_NDIM(it->ao);
1413
+ it->factors[mit->nd-1] = 1;
1414
+ for (j = 0; j < mit->nd; j++) {
1415
+ it->dims_m1[j] = mit->dimensions[j] - 1;
1416
+ k = j + nd - mit->nd;
1417
+ /*
1418
+ * If this dimension was added or shape of
1419
+ * underlying array was 1
1420
+ */
1421
+ if ((k < 0) ||
1422
+ PyArray_DIMS(it->ao)[k] != mit->dimensions[j]) {
1423
+ it->contiguous = 0;
1424
+ it->strides[j] = 0;
1425
+ }
1426
+ else {
1427
+ it->strides[j] = PyArray_STRIDES(it->ao)[k];
1428
+ }
1429
+ it->backstrides[j] = it->strides[j] * it->dims_m1[j];
1430
+ if (j > 0)
1431
+ it->factors[mit->nd-j-1] =
1432
+ it->factors[mit->nd-j] * mit->dimensions[mit->nd-j];
1433
+ }
1434
+ PyArray_ITER_RESET(it);
1435
+ }
1436
+ return 0;
1437
+ }
1438
+
1439
+ /*NUMPY_API
1440
+ * Get MultiIterator from array of Python objects and any additional
1441
+ *
1442
+ * PyObject **mps -- array of PyObjects
1443
+ * int n - number of PyObjects in the array
1444
+ * int nadd - number of additional arrays to include in the iterator.
1445
+ *
1446
+ * Returns a multi-iterator object.
1447
+ */
1448
+ NPY_NO_EXPORT PyObject *
1449
+ PyArray_MultiIterFromObjects(PyObject **mps, int n, int nadd, ...)
1450
+ {
1451
+ va_list va;
1452
+ PyArrayMultiIterObject *multi;
1453
+ PyObject *current;
1454
+ PyObject *arr;
1455
+
1456
+ int i, ntot, err=0;
1457
+
1458
+ ntot = n + nadd;
1459
+ if (ntot < 2 || ntot > NPY_MAXARGS) {
1460
+ PyErr_Format(PyExc_ValueError,
1461
+ "Need between 2 and (%d) " \
1462
+ "array objects (inclusive).", NPY_MAXARGS);
1463
+ return NULL;
1464
+ }
1465
+ multi = PyArray_malloc(sizeof(PyArrayMultiIterObject));
1466
+ if (multi == NULL) {
1467
+ return PyErr_NoMemory();
1468
+ }
1469
+ PyObject_Init((PyObject *)multi, &PyArrayMultiIter_Type);
1470
+
1471
+ for (i = 0; i < ntot; i++) {
1472
+ multi->iters[i] = NULL;
1473
+ }
1474
+ multi->numiter = ntot;
1475
+ multi->index = 0;
1476
+
1477
+ va_start(va, nadd);
1478
+ for (i = 0; i < ntot; i++) {
1479
+ if (i < n) {
1480
+ current = mps[i];
1481
+ }
1482
+ else {
1483
+ current = va_arg(va, PyObject *);
1484
+ }
1485
+ arr = PyArray_FROM_O(current);
1486
+ if (arr == NULL) {
1487
+ err = 1;
1488
+ break;
1489
+ }
1490
+ else {
1491
+ multi->iters[i] = (PyArrayIterObject *)PyArray_IterNew(arr);
1492
+ if (multi->iters[i] == NULL) {
1493
+ err = 1;
1494
+ break;
1495
+ }
1496
+ Py_DECREF(arr);
1497
+ }
1498
+ }
1499
+ va_end(va);
1500
+
1501
+ if (!err && PyArray_Broadcast(multi) < 0) {
1502
+ err = 1;
1503
+ }
1504
+ if (err) {
1505
+ Py_DECREF(multi);
1506
+ return NULL;
1507
+ }
1508
+ PyArray_MultiIter_RESET(multi);
1509
+ return (PyObject *)multi;
1510
+ }
1511
+
1512
+ /*NUMPY_API
1513
+ * Get MultiIterator,
1514
+ */
1515
+ NPY_NO_EXPORT PyObject *
1516
+ PyArray_MultiIterNew(int n, ...)
1517
+ {
1518
+ va_list va;
1519
+ PyArrayMultiIterObject *multi;
1520
+ PyObject *current;
1521
+ PyObject *arr;
1522
+
1523
+ int i, err = 0;
1524
+
1525
+ if (n < 2 || n > NPY_MAXARGS) {
1526
+ PyErr_Format(PyExc_ValueError,
1527
+ "Need between 2 and (%d) " \
1528
+ "array objects (inclusive).", NPY_MAXARGS);
1529
+ return NULL;
1530
+ }
1531
+
1532
+ /* fprintf(stderr, "multi new...");*/
1533
+
1534
+ multi = PyArray_malloc(sizeof(PyArrayMultiIterObject));
1535
+ if (multi == NULL) {
1536
+ return PyErr_NoMemory();
1537
+ }
1538
+ PyObject_Init((PyObject *)multi, &PyArrayMultiIter_Type);
1539
+
1540
+ for (i = 0; i < n; i++) {
1541
+ multi->iters[i] = NULL;
1542
+ }
1543
+ multi->numiter = n;
1544
+ multi->index = 0;
1545
+
1546
+ va_start(va, n);
1547
+ for (i = 0; i < n; i++) {
1548
+ current = va_arg(va, PyObject *);
1549
+ arr = PyArray_FROM_O(current);
1550
+ if (arr == NULL) {
1551
+ err = 1;
1552
+ break;
1553
+ }
1554
+ else {
1555
+ multi->iters[i] = (PyArrayIterObject *)PyArray_IterNew(arr);
1556
+ if (multi->iters[i] == NULL) {
1557
+ err = 1;
1558
+ break;
1559
+ }
1560
+ Py_DECREF(arr);
1561
+ }
1562
+ }
1563
+ va_end(va);
1564
+
1565
+ if (!err && PyArray_Broadcast(multi) < 0) {
1566
+ err = 1;
1567
+ }
1568
+ if (err) {
1569
+ Py_DECREF(multi);
1570
+ return NULL;
1571
+ }
1572
+ PyArray_MultiIter_RESET(multi);
1573
+ return (PyObject *)multi;
1574
+ }
1575
+
1576
+ static PyObject *
1577
+ arraymultiter_new(PyTypeObject *NPY_UNUSED(subtype), PyObject *args, PyObject *kwds)
1578
+ {
1579
+
1580
+ Py_ssize_t n = 0;
1581
+ Py_ssize_t i, j, k;
1582
+ PyArrayMultiIterObject *multi;
1583
+ PyObject *arr;
1584
+
1585
+ if (kwds != NULL) {
1586
+ PyErr_SetString(PyExc_ValueError,
1587
+ "keyword arguments not accepted.");
1588
+ return NULL;
1589
+ }
1590
+
1591
+ for (j = 0; j < PyTuple_Size(args); ++j) {
1592
+ PyObject *obj = PyTuple_GET_ITEM(args, j);
1593
+
1594
+ if (PyObject_IsInstance(obj, (PyObject *)&PyArrayMultiIter_Type)) {
1595
+ /*
1596
+ * If obj is a multi-iterator, all its arrays will be added
1597
+ * to the new multi-iterator.
1598
+ */
1599
+ n += ((PyArrayMultiIterObject *)obj)->numiter;
1600
+ }
1601
+ else {
1602
+ /* If not, will try to convert it to a single array */
1603
+ ++n;
1604
+ }
1605
+ }
1606
+ if (n < 2 || n > NPY_MAXARGS) {
1607
+ if (PyErr_Occurred()) {
1608
+ return NULL;
1609
+ }
1610
+ PyErr_Format(PyExc_ValueError,
1611
+ "Need at least two and fewer than (%d) "
1612
+ "array objects.", NPY_MAXARGS);
1613
+ return NULL;
1614
+ }
1615
+
1616
+ multi = PyArray_malloc(sizeof(PyArrayMultiIterObject));
1617
+ if (multi == NULL) {
1618
+ return PyErr_NoMemory();
1619
+ }
1620
+ PyObject_Init((PyObject *)multi, &PyArrayMultiIter_Type);
1621
+
1622
+ multi->numiter = n;
1623
+ multi->index = 0;
1624
+ i = 0;
1625
+ for (j = 0; j < PyTuple_GET_SIZE(args); ++j) {
1626
+ PyObject *obj = PyTuple_GET_ITEM(args, j);
1627
+ PyArrayIterObject *it;
1628
+
1629
+ if (PyObject_IsInstance(obj, (PyObject *)&PyArrayMultiIter_Type)) {
1630
+ PyArrayMultiIterObject *mit = (PyArrayMultiIterObject *)obj;
1631
+
1632
+ for (k = 0; k < mit->numiter; ++k) {
1633
+ arr = (PyObject *)mit->iters[k]->ao;
1634
+ assert (arr != NULL);
1635
+ it = (PyArrayIterObject *)PyArray_IterNew(arr);
1636
+ if (it == NULL) {
1637
+ goto fail;
1638
+ }
1639
+ multi->iters[i++] = it;
1640
+ }
1641
+ }
1642
+ else {
1643
+ arr = PyArray_FromAny(obj, NULL, 0, 0, 0, NULL);
1644
+ if (arr == NULL) {
1645
+ goto fail;
1646
+ }
1647
+ it = (PyArrayIterObject *)PyArray_IterNew(arr);
1648
+ if (it == NULL) {
1649
+ goto fail;
1650
+ }
1651
+ multi->iters[i++] = it;
1652
+ Py_DECREF(arr);
1653
+ }
1654
+ }
1655
+ assert (i == n);
1656
+ if (PyArray_Broadcast(multi) < 0) {
1657
+ goto fail;
1658
+ }
1659
+ PyArray_MultiIter_RESET(multi);
1660
+ return (PyObject *)multi;
1661
+
1662
+ fail:
1663
+ Py_DECREF(multi);
1664
+ return NULL;
1665
+ }
1666
+
1667
+ static PyObject *
1668
+ arraymultiter_next(PyArrayMultiIterObject *multi)
1669
+ {
1670
+ PyObject *ret;
1671
+ int i, n;
1672
+
1673
+ n = multi->numiter;
1674
+ ret = PyTuple_New(n);
1675
+ if (ret == NULL) {
1676
+ return NULL;
1677
+ }
1678
+ if (multi->index < multi->size) {
1679
+ for (i = 0; i < n; i++) {
1680
+ PyArrayIterObject *it=multi->iters[i];
1681
+ PyTuple_SET_ITEM(ret, i,
1682
+ PyArray_ToScalar(it->dataptr, it->ao));
1683
+ PyArray_ITER_NEXT(it);
1684
+ }
1685
+ multi->index++;
1686
+ return ret;
1687
+ }
1688
+ Py_DECREF(ret);
1689
+ return NULL;
1690
+ }
1691
+
1692
+ static void
1693
+ arraymultiter_dealloc(PyArrayMultiIterObject *multi)
1694
+ {
1695
+ int i;
1696
+
1697
+ for (i = 0; i < multi->numiter; i++) {
1698
+ Py_XDECREF(multi->iters[i]);
1699
+ }
1700
+ Py_TYPE(multi)->tp_free((PyObject *)multi);
1701
+ }
1702
+
1703
+ static PyObject *
1704
+ arraymultiter_size_get(PyArrayMultiIterObject *self)
1705
+ {
1706
+ #if NPY_SIZEOF_INTP <= NPY_SIZEOF_LONG
1707
+ return PyInt_FromLong((long) self->size);
1708
+ #else
1709
+ if (self->size < NPY_MAX_LONG) {
1710
+ return PyInt_FromLong((long) self->size);
1711
+ }
1712
+ else {
1713
+ return PyLong_FromLongLong((npy_longlong) self->size);
1714
+ }
1715
+ #endif
1716
+ }
1717
+
1718
+ static PyObject *
1719
+ arraymultiter_index_get(PyArrayMultiIterObject *self)
1720
+ {
1721
+ #if NPY_SIZEOF_INTP <= NPY_SIZEOF_LONG
1722
+ return PyInt_FromLong((long) self->index);
1723
+ #else
1724
+ if (self->size < NPY_MAX_LONG) {
1725
+ return PyInt_FromLong((long) self->index);
1726
+ }
1727
+ else {
1728
+ return PyLong_FromLongLong((npy_longlong) self->index);
1729
+ }
1730
+ #endif
1731
+ }
1732
+
1733
+ static PyObject *
1734
+ arraymultiter_shape_get(PyArrayMultiIterObject *self)
1735
+ {
1736
+ return PyArray_IntTupleFromIntp(self->nd, self->dimensions);
1737
+ }
1738
+
1739
+ static PyObject *
1740
+ arraymultiter_iters_get(PyArrayMultiIterObject *self)
1741
+ {
1742
+ PyObject *res;
1743
+ int i, n;
1744
+
1745
+ n = self->numiter;
1746
+ res = PyTuple_New(n);
1747
+ if (res == NULL) {
1748
+ return res;
1749
+ }
1750
+ for (i = 0; i < n; i++) {
1751
+ Py_INCREF(self->iters[i]);
1752
+ PyTuple_SET_ITEM(res, i, (PyObject *)self->iters[i]);
1753
+ }
1754
+ return res;
1755
+ }
1756
+
1757
+ static PyGetSetDef arraymultiter_getsetlist[] = {
1758
+ {"size",
1759
+ (getter)arraymultiter_size_get,
1760
+ NULL,
1761
+ NULL, NULL},
1762
+ {"index",
1763
+ (getter)arraymultiter_index_get,
1764
+ NULL,
1765
+ NULL, NULL},
1766
+ {"shape",
1767
+ (getter)arraymultiter_shape_get,
1768
+ NULL,
1769
+ NULL, NULL},
1770
+ {"iters",
1771
+ (getter)arraymultiter_iters_get,
1772
+ NULL,
1773
+ NULL, NULL},
1774
+ {NULL, NULL, NULL, NULL, NULL},
1775
+ };
1776
+
1777
+ static PyMemberDef arraymultiter_members[] = {
1778
+ {"numiter",
1779
+ T_INT,
1780
+ offsetof(PyArrayMultiIterObject, numiter),
1781
+ READONLY, NULL},
1782
+ {"nd",
1783
+ T_INT,
1784
+ offsetof(PyArrayMultiIterObject, nd),
1785
+ READONLY, NULL},
1786
+ {NULL, 0, 0, 0, NULL},
1787
+ };
1788
+
1789
+ static PyObject *
1790
+ arraymultiter_reset(PyArrayMultiIterObject *self, PyObject *args)
1791
+ {
1792
+ if (!PyArg_ParseTuple(args, "")) {
1793
+ return NULL;
1794
+ }
1795
+ PyArray_MultiIter_RESET(self);
1796
+ Py_RETURN_NONE;
1797
+ }
1798
+
1799
+ static PyMethodDef arraymultiter_methods[] = {
1800
+ {"reset",
1801
+ (PyCFunction) arraymultiter_reset,
1802
+ METH_VARARGS, NULL},
1803
+ {NULL, NULL, 0, NULL}, /* sentinal */
1804
+ };
1805
+
1806
+ NPY_NO_EXPORT PyTypeObject PyArrayMultiIter_Type = {
1807
+ #if defined(NPY_PY3K)
1808
+ PyVarObject_HEAD_INIT(NULL, 0)
1809
+ #else
1810
+ PyObject_HEAD_INIT(NULL)
1811
+ 0, /* ob_size */
1812
+ #endif
1813
+ "numpy.broadcast", /* tp_name */
1814
+ sizeof(PyArrayMultiIterObject), /* tp_basicsize */
1815
+ 0, /* tp_itemsize */
1816
+ /* methods */
1817
+ (destructor)arraymultiter_dealloc, /* tp_dealloc */
1818
+ 0, /* tp_print */
1819
+ 0, /* tp_getattr */
1820
+ 0, /* tp_setattr */
1821
+ #if defined(NPY_PY3K)
1822
+ 0, /* tp_reserved */
1823
+ #else
1824
+ 0, /* tp_compare */
1825
+ #endif
1826
+ 0, /* tp_repr */
1827
+ 0, /* tp_as_number */
1828
+ 0, /* tp_as_sequence */
1829
+ 0, /* tp_as_mapping */
1830
+ 0, /* tp_hash */
1831
+ 0, /* tp_call */
1832
+ 0, /* tp_str */
1833
+ 0, /* tp_getattro */
1834
+ 0, /* tp_setattro */
1835
+ 0, /* tp_as_buffer */
1836
+ Py_TPFLAGS_DEFAULT, /* tp_flags */
1837
+ 0, /* tp_doc */
1838
+ 0, /* tp_traverse */
1839
+ 0, /* tp_clear */
1840
+ 0, /* tp_richcompare */
1841
+ 0, /* tp_weaklistoffset */
1842
+ 0, /* tp_iter */
1843
+ (iternextfunc)arraymultiter_next, /* tp_iternext */
1844
+ arraymultiter_methods, /* tp_methods */
1845
+ arraymultiter_members, /* tp_members */
1846
+ arraymultiter_getsetlist, /* tp_getset */
1847
+ 0, /* tp_base */
1848
+ 0, /* tp_dict */
1849
+ 0, /* tp_descr_get */
1850
+ 0, /* tp_descr_set */
1851
+ 0, /* tp_dictoffset */
1852
+ (initproc)0, /* tp_init */
1853
+ 0, /* tp_alloc */
1854
+ arraymultiter_new, /* tp_new */
1855
+ 0, /* tp_free */
1856
+ 0, /* tp_is_gc */
1857
+ 0, /* tp_bases */
1858
+ 0, /* tp_mro */
1859
+ 0, /* tp_cache */
1860
+ 0, /* tp_subclasses */
1861
+ 0, /* tp_weaklist */
1862
+ 0, /* tp_del */
1863
+ 0, /* tp_version_tag */
1864
+ };
1865
+
1866
+ /*========================= Neighborhood iterator ======================*/
1867
+
1868
+ static void neighiter_dealloc(PyArrayNeighborhoodIterObject* iter);
1869
+
1870
+ static char* _set_constant(PyArrayNeighborhoodIterObject* iter,
1871
+ PyArrayObject *fill)
1872
+ {
1873
+ char *ret;
1874
+ PyArrayIterObject *ar = iter->_internal_iter;
1875
+ int storeflags, st;
1876
+
1877
+ ret = PyDataMem_NEW(PyArray_DESCR(ar->ao)->elsize);
1878
+ if (ret == NULL) {
1879
+ PyErr_SetNone(PyExc_MemoryError);
1880
+ return NULL;
1881
+ }
1882
+
1883
+ if (PyArray_ISOBJECT(ar->ao)) {
1884
+ memcpy(ret, PyArray_DATA(fill), sizeof(PyObject*));
1885
+ Py_INCREF(*(PyObject**)ret);
1886
+ } else {
1887
+ /* Non-object types */
1888
+
1889
+ storeflags = PyArray_FLAGS(ar->ao);
1890
+ PyArray_ENABLEFLAGS(ar->ao, NPY_ARRAY_BEHAVED);
1891
+ st = PyArray_DESCR(ar->ao)->f->setitem((PyObject*)fill, ret, ar->ao);
1892
+ ((PyArrayObject_fields *)ar->ao)->flags = storeflags;
1893
+
1894
+ if (st < 0) {
1895
+ PyDataMem_FREE(ret);
1896
+ return NULL;
1897
+ }
1898
+ }
1899
+
1900
+ return ret;
1901
+ }
1902
+
1903
+ #define _INF_SET_PTR(c) \
1904
+ bd = coordinates[c] + p->coordinates[c]; \
1905
+ if (bd < p->limits[c][0] || bd > p->limits[c][1]) { \
1906
+ return niter->constant; \
1907
+ } \
1908
+ _coordinates[c] = bd;
1909
+
1910
+ /* set the dataptr from its current coordinates */
1911
+ static char*
1912
+ get_ptr_constant(PyArrayIterObject* _iter, npy_intp *coordinates)
1913
+ {
1914
+ int i;
1915
+ npy_intp bd, _coordinates[NPY_MAXDIMS];
1916
+ PyArrayNeighborhoodIterObject *niter = (PyArrayNeighborhoodIterObject*)_iter;
1917
+ PyArrayIterObject *p = niter->_internal_iter;
1918
+
1919
+ for(i = 0; i < niter->nd; ++i) {
1920
+ _INF_SET_PTR(i)
1921
+ }
1922
+
1923
+ return p->translate(p, _coordinates);
1924
+ }
1925
+ #undef _INF_SET_PTR
1926
+
1927
+ #define _NPY_IS_EVEN(x) ((x) % 2 == 0)
1928
+
1929
+ /* For an array x of dimension n, and given index i, returns j, 0 <= j < n
1930
+ * such as x[i] = x[j], with x assumed to be mirrored. For example, for x =
1931
+ * {1, 2, 3} (n = 3)
1932
+ *
1933
+ * index -5 -4 -3 -2 -1 0 1 2 3 4 5 6
1934
+ * value 2 3 3 2 1 1 2 3 3 2 1 1
1935
+ *
1936
+ * _npy_pos_index_mirror(4, 3) will return 1, because x[4] = x[1]*/
1937
+ NPY_INLINE static npy_intp
1938
+ __npy_pos_remainder(npy_intp i, npy_intp n)
1939
+ {
1940
+ npy_intp k, l, j;
1941
+
1942
+ /* Mirror i such as it is guaranteed to be positive */
1943
+ if (i < 0) {
1944
+ i = - i - 1;
1945
+ }
1946
+
1947
+ /* compute k and l such as i = k * n + l, 0 <= l < k */
1948
+ k = i / n;
1949
+ l = i - k * n;
1950
+
1951
+ if (_NPY_IS_EVEN(k)) {
1952
+ j = l;
1953
+ } else {
1954
+ j = n - 1 - l;
1955
+ }
1956
+ return j;
1957
+ }
1958
+ #undef _NPY_IS_EVEN
1959
+
1960
+ #define _INF_SET_PTR_MIRROR(c) \
1961
+ lb = p->limits[c][0]; \
1962
+ bd = coordinates[c] + p->coordinates[c] - lb; \
1963
+ _coordinates[c] = lb + __npy_pos_remainder(bd, p->limits_sizes[c]);
1964
+
1965
+ /* set the dataptr from its current coordinates */
1966
+ static char*
1967
+ get_ptr_mirror(PyArrayIterObject* _iter, npy_intp *coordinates)
1968
+ {
1969
+ int i;
1970
+ npy_intp bd, _coordinates[NPY_MAXDIMS], lb;
1971
+ PyArrayNeighborhoodIterObject *niter = (PyArrayNeighborhoodIterObject*)_iter;
1972
+ PyArrayIterObject *p = niter->_internal_iter;
1973
+
1974
+ for(i = 0; i < niter->nd; ++i) {
1975
+ _INF_SET_PTR_MIRROR(i)
1976
+ }
1977
+
1978
+ return p->translate(p, _coordinates);
1979
+ }
1980
+ #undef _INF_SET_PTR_MIRROR
1981
+
1982
+ /* compute l such as i = k * n + l, 0 <= l < |k| */
1983
+ NPY_INLINE static npy_intp
1984
+ __npy_euclidean_division(npy_intp i, npy_intp n)
1985
+ {
1986
+ npy_intp l;
1987
+
1988
+ l = i % n;
1989
+ if (l < 0) {
1990
+ l += n;
1991
+ }
1992
+ return l;
1993
+ }
1994
+
1995
+ #define _INF_SET_PTR_CIRCULAR(c) \
1996
+ lb = p->limits[c][0]; \
1997
+ bd = coordinates[c] + p->coordinates[c] - lb; \
1998
+ _coordinates[c] = lb + __npy_euclidean_division(bd, p->limits_sizes[c]);
1999
+
2000
+ static char*
2001
+ get_ptr_circular(PyArrayIterObject* _iter, npy_intp *coordinates)
2002
+ {
2003
+ int i;
2004
+ npy_intp bd, _coordinates[NPY_MAXDIMS], lb;
2005
+ PyArrayNeighborhoodIterObject *niter = (PyArrayNeighborhoodIterObject*)_iter;
2006
+ PyArrayIterObject *p = niter->_internal_iter;
2007
+
2008
+ for(i = 0; i < niter->nd; ++i) {
2009
+ _INF_SET_PTR_CIRCULAR(i)
2010
+ }
2011
+ return p->translate(p, _coordinates);
2012
+ }
2013
+
2014
+ #undef _INF_SET_PTR_CIRCULAR
2015
+
2016
+ /*
2017
+ * fill and x->ao should have equivalent types
2018
+ */
2019
+ /*NUMPY_API
2020
+ * A Neighborhood Iterator object.
2021
+ */
2022
+ NPY_NO_EXPORT PyObject*
2023
+ PyArray_NeighborhoodIterNew(PyArrayIterObject *x, npy_intp *bounds,
2024
+ int mode, PyArrayObject* fill)
2025
+ {
2026
+ int i;
2027
+ PyArrayNeighborhoodIterObject *ret;
2028
+
2029
+ ret = PyArray_malloc(sizeof(*ret));
2030
+ if (ret == NULL) {
2031
+ return NULL;
2032
+ }
2033
+ PyObject_Init((PyObject *)ret, &PyArrayNeighborhoodIter_Type);
2034
+
2035
+ array_iter_base_init((PyArrayIterObject*)ret, x->ao);
2036
+ Py_INCREF(x);
2037
+ ret->_internal_iter = x;
2038
+
2039
+ ret->nd = PyArray_NDIM(x->ao);
2040
+
2041
+ for (i = 0; i < ret->nd; ++i) {
2042
+ ret->dimensions[i] = PyArray_DIMS(x->ao)[i];
2043
+ }
2044
+
2045
+ /* Compute the neighborhood size and copy the shape */
2046
+ ret->size = 1;
2047
+ for (i = 0; i < ret->nd; ++i) {
2048
+ ret->bounds[i][0] = bounds[2 * i];
2049
+ ret->bounds[i][1] = bounds[2 * i + 1];
2050
+ ret->size *= (ret->bounds[i][1] - ret->bounds[i][0]) + 1;
2051
+
2052
+ /* limits keep track of valid ranges for the neighborhood: if a bound
2053
+ * of the neighborhood is outside the array, then limits is the same as
2054
+ * boundaries. On the contrary, if a bound is strictly inside the
2055
+ * array, then limits correspond to the array range. For example, for
2056
+ * an array [1, 2, 3], if bounds are [-1, 3], limits will be [-1, 3],
2057
+ * but if bounds are [1, 2], then limits will be [0, 2].
2058
+ *
2059
+ * This is used by neighborhood iterators stacked on top of this one */
2060
+ ret->limits[i][0] = ret->bounds[i][0] < 0 ? ret->bounds[i][0] : 0;
2061
+ ret->limits[i][1] = ret->bounds[i][1] >= ret->dimensions[i] - 1 ?
2062
+ ret->bounds[i][1] :
2063
+ ret->dimensions[i] - 1;
2064
+ ret->limits_sizes[i] = (ret->limits[i][1] - ret->limits[i][0]) + 1;
2065
+ }
2066
+
2067
+ switch (mode) {
2068
+ case NPY_NEIGHBORHOOD_ITER_ZERO_PADDING:
2069
+ ret->constant = PyArray_Zero(x->ao);
2070
+ ret->mode = mode;
2071
+ ret->translate = &get_ptr_constant;
2072
+ break;
2073
+ case NPY_NEIGHBORHOOD_ITER_ONE_PADDING:
2074
+ ret->constant = PyArray_One(x->ao);
2075
+ ret->mode = mode;
2076
+ ret->translate = &get_ptr_constant;
2077
+ break;
2078
+ case NPY_NEIGHBORHOOD_ITER_CONSTANT_PADDING:
2079
+ /* New reference in returned value of _set_constant if array
2080
+ * object */
2081
+ assert(PyArray_EquivArrTypes(x->ao, fill) == NPY_TRUE);
2082
+ ret->constant = _set_constant(ret, fill);
2083
+ if (ret->constant == NULL) {
2084
+ goto clean_x;
2085
+ }
2086
+ ret->mode = mode;
2087
+ ret->translate = &get_ptr_constant;
2088
+ break;
2089
+ case NPY_NEIGHBORHOOD_ITER_MIRROR_PADDING:
2090
+ ret->mode = mode;
2091
+ ret->constant = NULL;
2092
+ ret->translate = &get_ptr_mirror;
2093
+ break;
2094
+ case NPY_NEIGHBORHOOD_ITER_CIRCULAR_PADDING:
2095
+ ret->mode = mode;
2096
+ ret->constant = NULL;
2097
+ ret->translate = &get_ptr_circular;
2098
+ break;
2099
+ default:
2100
+ PyErr_SetString(PyExc_ValueError, "Unsupported padding mode");
2101
+ goto clean_x;
2102
+ }
2103
+
2104
+ /*
2105
+ * XXX: we force x iterator to be non contiguous because we need
2106
+ * coordinates... Modifying the iterator here is not great
2107
+ */
2108
+ x->contiguous = 0;
2109
+
2110
+ PyArrayNeighborhoodIter_Reset(ret);
2111
+
2112
+ return (PyObject*)ret;
2113
+
2114
+ clean_x:
2115
+ Py_DECREF(ret->_internal_iter);
2116
+ array_iter_base_dealloc((PyArrayIterObject*)ret);
2117
+ PyArray_free((PyArrayObject*)ret);
2118
+ return NULL;
2119
+ }
2120
+
2121
+ static void neighiter_dealloc(PyArrayNeighborhoodIterObject* iter)
2122
+ {
2123
+ if (iter->mode == NPY_NEIGHBORHOOD_ITER_CONSTANT_PADDING) {
2124
+ if (PyArray_ISOBJECT(iter->_internal_iter->ao)) {
2125
+ Py_DECREF(*(PyObject**)iter->constant);
2126
+ }
2127
+ }
2128
+ PyDataMem_FREE(iter->constant);
2129
+ Py_DECREF(iter->_internal_iter);
2130
+
2131
+ array_iter_base_dealloc((PyArrayIterObject*)iter);
2132
+ PyArray_free((PyArrayObject*)iter);
2133
+ }
2134
+
2135
+ NPY_NO_EXPORT PyTypeObject PyArrayNeighborhoodIter_Type = {
2136
+ #if defined(NPY_PY3K)
2137
+ PyVarObject_HEAD_INIT(NULL, 0)
2138
+ #else
2139
+ PyObject_HEAD_INIT(NULL)
2140
+ 0, /* ob_size */
2141
+ #endif
2142
+ "numpy.neigh_internal_iter", /* tp_name*/
2143
+ sizeof(PyArrayNeighborhoodIterObject), /* tp_basicsize*/
2144
+ 0, /* tp_itemsize*/
2145
+ (destructor)neighiter_dealloc, /* tp_dealloc*/
2146
+ 0, /* tp_print*/
2147
+ 0, /* tp_getattr*/
2148
+ 0, /* tp_setattr*/
2149
+ #if defined(NPY_PY3K)
2150
+ 0, /* tp_reserved */
2151
+ #else
2152
+ 0, /* tp_compare */
2153
+ #endif
2154
+ 0, /* tp_repr*/
2155
+ 0, /* tp_as_number*/
2156
+ 0, /* tp_as_sequence*/
2157
+ 0, /* tp_as_mapping*/
2158
+ 0, /* tp_hash */
2159
+ 0, /* tp_call*/
2160
+ 0, /* tp_str*/
2161
+ 0, /* tp_getattro*/
2162
+ 0, /* tp_setattro*/
2163
+ 0, /* tp_as_buffer*/
2164
+ Py_TPFLAGS_DEFAULT, /* tp_flags*/
2165
+ 0, /* tp_doc */
2166
+ 0, /* tp_traverse */
2167
+ 0, /* tp_clear */
2168
+ 0, /* tp_richcompare */
2169
+ 0, /* tp_weaklistoffset */
2170
+ 0, /* tp_iter */
2171
+ (iternextfunc)0, /* tp_iternext */
2172
+ 0, /* tp_methods */
2173
+ 0, /* tp_members */
2174
+ 0, /* tp_getset */
2175
+ 0, /* tp_base */
2176
+ 0, /* tp_dict */
2177
+ 0, /* tp_descr_get */
2178
+ 0, /* tp_descr_set */
2179
+ 0, /* tp_dictoffset */
2180
+ (initproc)0, /* tp_init */
2181
+ 0, /* tp_alloc */
2182
+ 0, /* tp_new */
2183
+ 0, /* tp_free */
2184
+ 0, /* tp_is_gc */
2185
+ 0, /* tp_bases */
2186
+ 0, /* tp_mro */
2187
+ 0, /* tp_cache */
2188
+ 0, /* tp_subclasses */
2189
+ 0, /* tp_weaklist */
2190
+ 0, /* tp_del */
2191
+ 0, /* tp_version_tag */
2192
+ };