numpy 1.9.2__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 (1593) 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/scipy-sphinx-theme/.git +1 -0
  12. numpy-1.10.0.post2/doc/source/conf.py +331 -0
  13. numpy-1.10.0.post2/doc/source/dev/development_environment.rst +211 -0
  14. numpy-1.10.0.post2/doc/source/dev/gitwash/development_workflow.rst +534 -0
  15. numpy-1.10.0.post2/doc/source/dev/gitwash/git_links.inc +95 -0
  16. numpy-1.10.0.post2/doc/source/dev/gitwash/index.rst +14 -0
  17. numpy-1.10.0.post2/doc/source/dev/index.rst +11 -0
  18. numpy-1.10.0.post2/doc/source/reference/arrays.classes.rst +490 -0
  19. numpy-1.10.0.post2/doc/source/reference/arrays.dtypes.rst +536 -0
  20. numpy-1.10.0.post2/doc/source/reference/arrays.indexing.rst +549 -0
  21. numpy-1.10.0.post2/doc/source/reference/arrays.interface.rst +337 -0
  22. numpy-1.10.0.post2/doc/source/reference/arrays.ndarray.rst +622 -0
  23. numpy-1.10.0.post2/doc/source/reference/arrays.scalars.rst +291 -0
  24. numpy-1.10.0.post2/doc/source/reference/c-api.array.rst +3393 -0
  25. numpy-1.10.0.post2/doc/source/reference/c-api.config.rst +103 -0
  26. numpy-1.10.0.post2/doc/source/reference/c-api.coremath.rst +420 -0
  27. numpy-1.10.0.post2/doc/source/reference/c-api.dtype.rst +376 -0
  28. numpy-1.10.0.post2/doc/source/reference/c-api.generalized-ufuncs.rst +191 -0
  29. numpy-1.10.0.post2/doc/source/reference/c-api.iterator.rst +1300 -0
  30. numpy-1.10.0.post2/doc/source/reference/c-api.types-and-structures.rst +1240 -0
  31. numpy-1.10.0.post2/doc/source/reference/c-api.ufunc.rst +413 -0
  32. numpy-1.10.0.post2/doc/source/reference/index.rst +43 -0
  33. numpy-1.10.0.post2/doc/source/reference/internals.code-explanations.rst +615 -0
  34. numpy-1.10.0.post2/doc/source/reference/routines.array-manipulation.rst +115 -0
  35. numpy-1.10.0.post2/doc/source/reference/routines.io.rst +78 -0
  36. numpy-1.10.0.post2/doc/source/reference/routines.linalg.rst +91 -0
  37. numpy-1.10.0.post2/doc/source/reference/routines.ma.rst +407 -0
  38. numpy-1.10.0.post2/doc/source/reference/routines.sort.rst +41 -0
  39. numpy-1.10.0.post2/doc/source/reference/routines.statistics.rst +57 -0
  40. numpy-1.10.0.post2/doc/source/reference/swig.interface-file.rst +1066 -0
  41. numpy-1.10.0.post2/doc/source/reference/swig.testing.rst +167 -0
  42. numpy-1.10.0.post2/doc/source/reference/ufuncs.rst +666 -0
  43. numpy-1.10.0.post2/doc/source/release.rst +20 -0
  44. numpy-1.10.0.post2/doc/source/user/basics.io.genfromtxt.rst +531 -0
  45. numpy-1.10.0.post2/doc/source/user/basics.rec.rst +7 -0
  46. numpy-1.10.0.post2/doc/source/user/c-info.beyond-basics.rst +560 -0
  47. numpy-1.10.0.post2/doc/source/user/c-info.how-to-extend.rst +642 -0
  48. numpy-1.10.0.post2/doc/source/user/c-info.python-as-glue.rst +1177 -0
  49. numpy-1.10.0.post2/doc/source/user/c-info.ufunc-tutorial.rst +1211 -0
  50. numpy-1.10.0.post2/doc/source/user/install.rst +194 -0
  51. numpy-1.10.0.post2/doc/sphinxext/.git +1 -0
  52. numpy-1.10.0.post2/numpy/__init__.py +227 -0
  53. numpy-1.10.0.post2/numpy/_build_utils/README +8 -0
  54. numpy-1.10.0.post2/numpy/_build_utils/apple_accelerate.py +21 -0
  55. numpy-1.10.0.post2/numpy/_build_utils/common.py +138 -0
  56. numpy-1.10.0.post2/numpy/_build_utils/src/apple_sgemv_fix.c +227 -0
  57. numpy-1.10.0.post2/numpy/_build_utils/waf.py +531 -0
  58. numpy-1.10.0.post2/numpy/_import_tools.py +353 -0
  59. numpy-1.10.0.post2/numpy/add_newdocs.py +7611 -0
  60. numpy-1.10.0.post2/numpy/compat/_inspect.py +194 -0
  61. numpy-1.10.0.post2/numpy/compat/py3k.py +88 -0
  62. numpy-1.10.0.post2/numpy/compat/setup.py +12 -0
  63. numpy-1.10.0.post2/numpy/core/__init__.py +89 -0
  64. numpy-1.10.0.post2/numpy/core/_internal.py +761 -0
  65. numpy-1.10.0.post2/numpy/core/_methods.py +133 -0
  66. numpy-1.10.0.post2/numpy/core/arrayprint.py +760 -0
  67. numpy-1.10.0.post2/numpy/core/code_generators/cversions.txt +34 -0
  68. numpy-1.10.0.post2/numpy/core/code_generators/generate_ufunc_api.py +219 -0
  69. numpy-1.10.0.post2/numpy/core/code_generators/generate_umath.py +1017 -0
  70. numpy-1.10.0.post2/numpy/core/code_generators/numpy_api.py +415 -0
  71. numpy-1.10.0.post2/numpy/core/code_generators/ufunc_docstrings.py +3442 -0
  72. numpy-1.10.0.post2/numpy/core/defchararray.py +2689 -0
  73. numpy-1.10.0.post2/numpy/core/fromnumeric.py +3089 -0
  74. numpy-1.10.0.post2/numpy/core/function_base.py +203 -0
  75. numpy-1.10.0.post2/numpy/core/getlimits.py +308 -0
  76. numpy-1.10.0.post2/numpy/core/include/numpy/ndarrayobject.h +246 -0
  77. numpy-1.10.0.post2/numpy/core/include/numpy/ndarraytypes.h +1797 -0
  78. numpy-1.10.0.post2/numpy/core/include/numpy/npy_3kcompat.h +448 -0
  79. numpy-1.10.0.post2/numpy/core/include/numpy/npy_common.h +1051 -0
  80. numpy-1.10.0.post2/numpy/core/include/numpy/npy_cpu.h +92 -0
  81. numpy-1.10.0.post2/numpy/core/include/numpy/npy_endian.h +61 -0
  82. numpy-1.10.0.post2/numpy/core/include/numpy/npy_math.h +525 -0
  83. numpy-1.10.0.post2/numpy/core/include/numpy/numpyconfig.h +36 -0
  84. numpy-1.10.0.post2/numpy/core/machar.py +342 -0
  85. numpy-1.10.0.post2/numpy/core/memmap.py +311 -0
  86. numpy-1.10.0.post2/numpy/core/numeric.py +2893 -0
  87. numpy-1.10.0.post2/numpy/core/numerictypes.py +1036 -0
  88. numpy-1.10.0.post2/numpy/core/records.py +846 -0
  89. numpy-1.10.0.post2/numpy/core/setup.py +983 -0
  90. numpy-1.10.0.post2/numpy/core/setup_common.py +352 -0
  91. numpy-1.10.0.post2/numpy/core/shape_base.py +350 -0
  92. numpy-1.10.0.post2/numpy/core/src/multiarray/alloc.c +244 -0
  93. numpy-1.10.0.post2/numpy/core/src/multiarray/arrayobject.c +1858 -0
  94. numpy-1.10.0.post2/numpy/core/src/multiarray/arraytypes.c.src +4738 -0
  95. numpy-1.10.0.post2/numpy/core/src/multiarray/arraytypes.h +37 -0
  96. numpy-1.10.0.post2/numpy/core/src/multiarray/buffer.c +981 -0
  97. numpy-1.10.0.post2/numpy/core/src/multiarray/calculation.c +1224 -0
  98. numpy-1.10.0.post2/numpy/core/src/multiarray/cblasfuncs.c +812 -0
  99. numpy-1.10.0.post2/numpy/core/src/multiarray/cblasfuncs.h +10 -0
  100. numpy-1.10.0.post2/numpy/core/src/multiarray/common.c +911 -0
  101. numpy-1.10.0.post2/numpy/core/src/multiarray/common.h +250 -0
  102. numpy-1.10.0.post2/numpy/core/src/multiarray/compiled_base.c +1664 -0
  103. numpy-1.10.0.post2/numpy/core/src/multiarray/compiled_base.h +24 -0
  104. numpy-1.10.0.post2/numpy/core/src/multiarray/conversion_utils.c +1217 -0
  105. numpy-1.10.0.post2/numpy/core/src/multiarray/convert.c +590 -0
  106. numpy-1.10.0.post2/numpy/core/src/multiarray/convert_datatype.c +2155 -0
  107. numpy-1.10.0.post2/numpy/core/src/multiarray/ctors.c +3838 -0
  108. numpy-1.10.0.post2/numpy/core/src/multiarray/datetime.c +3821 -0
  109. numpy-1.10.0.post2/numpy/core/src/multiarray/datetime_busday.c +1322 -0
  110. numpy-1.10.0.post2/numpy/core/src/multiarray/datetime_busdaycal.c +552 -0
  111. numpy-1.10.0.post2/numpy/core/src/multiarray/datetime_strings.c +1772 -0
  112. numpy-1.10.0.post2/numpy/core/src/multiarray/descriptor.c +3719 -0
  113. numpy-1.10.0.post2/numpy/core/src/multiarray/dtype_transfer.c +4239 -0
  114. numpy-1.10.0.post2/numpy/core/src/multiarray/einsum.c.src +3005 -0
  115. numpy-1.10.0.post2/numpy/core/src/multiarray/getset.c +986 -0
  116. numpy-1.10.0.post2/numpy/core/src/multiarray/hashdescr.c +318 -0
  117. numpy-1.10.0.post2/numpy/core/src/multiarray/item_selection.c +2413 -0
  118. numpy-1.10.0.post2/numpy/core/src/multiarray/iterators.c +2192 -0
  119. numpy-1.10.0.post2/numpy/core/src/multiarray/lowlevel_strided_loops.c.src +1769 -0
  120. numpy-1.10.0.post2/numpy/core/src/multiarray/mapping.c +3380 -0
  121. numpy-1.10.0.post2/numpy/core/src/multiarray/mapping.h +77 -0
  122. numpy-1.10.0.post2/numpy/core/src/multiarray/methods.c +2514 -0
  123. numpy-1.10.0.post2/numpy/core/src/multiarray/multiarray_tests.c.src +1035 -0
  124. numpy-1.10.0.post2/numpy/core/src/multiarray/multiarraymodule.c +4628 -0
  125. numpy-1.10.0.post2/numpy/core/src/multiarray/multiarraymodule.h +15 -0
  126. numpy-1.10.0.post2/numpy/core/src/multiarray/nditer_api.c +2809 -0
  127. numpy-1.10.0.post2/numpy/core/src/multiarray/nditer_constr.c +3160 -0
  128. numpy-1.10.0.post2/numpy/core/src/multiarray/nditer_pywrap.c +2499 -0
  129. numpy-1.10.0.post2/numpy/core/src/multiarray/number.c +1106 -0
  130. numpy-1.10.0.post2/numpy/core/src/multiarray/number.h +77 -0
  131. numpy-1.10.0.post2/numpy/core/src/multiarray/numpymemoryview.c +308 -0
  132. numpy-1.10.0.post2/numpy/core/src/multiarray/numpyos.c +683 -0
  133. numpy-1.10.0.post2/numpy/core/src/multiarray/scalarapi.c +870 -0
  134. numpy-1.10.0.post2/numpy/core/src/multiarray/scalartypes.c.src +4343 -0
  135. numpy-1.10.0.post2/numpy/core/src/multiarray/scalartypes.h +55 -0
  136. numpy-1.10.0.post2/numpy/core/src/multiarray/shape.c +1131 -0
  137. numpy-1.10.0.post2/numpy/core/src/multiarray/ucsnarrow.c +174 -0
  138. numpy-1.10.0.post2/numpy/core/src/multiarray/vdot.c +180 -0
  139. numpy-1.10.0.post2/numpy/core/src/multiarray/vdot.h +18 -0
  140. numpy-1.10.0.post2/numpy/core/src/npymath/ieee754.c.src +808 -0
  141. numpy-1.10.0.post2/numpy/core/src/npymath/npy_math.c.src +597 -0
  142. numpy-1.10.0.post2/numpy/core/src/npymath/npy_math_complex.c.src +1788 -0
  143. numpy-1.10.0.post2/numpy/core/src/npymath/npy_math_private.h +544 -0
  144. numpy-1.10.0.post2/numpy/core/src/npysort/heapsort.c.src +402 -0
  145. numpy-1.10.0.post2/numpy/core/src/npysort/mergesort.c.src +488 -0
  146. numpy-1.10.0.post2/numpy/core/src/npysort/npysort_common.h +360 -0
  147. numpy-1.10.0.post2/numpy/core/src/npysort/quicksort.c.src +523 -0
  148. numpy-1.10.0.post2/numpy/core/src/npysort/selection.c.src +426 -0
  149. numpy-1.10.0.post2/numpy/core/src/private/npy_cblas.h +584 -0
  150. numpy-1.10.0.post2/numpy/core/src/private/npy_config.h +101 -0
  151. numpy-1.10.0.post2/numpy/core/src/private/npy_import.h +32 -0
  152. numpy-1.10.0.post2/numpy/core/src/private/npy_partition.h.src +122 -0
  153. numpy-1.10.0.post2/numpy/core/src/private/npy_sort.h +196 -0
  154. numpy-1.10.0.post2/numpy/core/src/private/templ_common.h.src +43 -0
  155. numpy-1.10.0.post2/numpy/core/src/private/ufunc_override.h +397 -0
  156. numpy-1.10.0.post2/numpy/core/src/umath/funcs.inc.src +356 -0
  157. numpy-1.10.0.post2/numpy/core/src/umath/loops.c.src +2675 -0
  158. numpy-1.10.0.post2/numpy/core/src/umath/loops.h.src +497 -0
  159. numpy-1.10.0.post2/numpy/core/src/umath/operand_flag_tests.c.src +105 -0
  160. numpy-1.10.0.post2/numpy/core/src/umath/scalarmath.c.src +1738 -0
  161. numpy-1.10.0.post2/numpy/core/src/umath/simd.inc.src +903 -0
  162. numpy-1.10.0.post2/numpy/core/src/umath/test_rational.c.src +1404 -0
  163. numpy-1.10.0.post2/numpy/core/src/umath/ufunc_object.c +5703 -0
  164. numpy-1.10.0.post2/numpy/core/src/umath/ufunc_type_resolution.c +2159 -0
  165. numpy-1.10.0.post2/numpy/core/src/umath/umath_tests.c.src +392 -0
  166. numpy-1.10.0.post2/numpy/core/src/umath/umathmodule.c +443 -0
  167. numpy-1.10.0.post2/numpy/core/tests/test_abc.py +47 -0
  168. numpy-1.10.0.post2/numpy/core/tests/test_api.py +515 -0
  169. numpy-1.10.0.post2/numpy/core/tests/test_arrayprint.py +171 -0
  170. numpy-1.10.0.post2/numpy/core/tests/test_datetime.py +1820 -0
  171. numpy-1.10.0.post2/numpy/core/tests/test_defchararray.py +703 -0
  172. numpy-1.10.0.post2/numpy/core/tests/test_deprecations.py +619 -0
  173. numpy-1.10.0.post2/numpy/core/tests/test_dtype.py +578 -0
  174. numpy-1.10.0.post2/numpy/core/tests/test_einsum.py +627 -0
  175. numpy-1.10.0.post2/numpy/core/tests/test_errstate.py +52 -0
  176. numpy-1.10.0.post2/numpy/core/tests/test_function_base.py +142 -0
  177. numpy-1.10.0.post2/numpy/core/tests/test_getlimits.py +77 -0
  178. numpy-1.10.0.post2/numpy/core/tests/test_half.py +436 -0
  179. numpy-1.10.0.post2/numpy/core/tests/test_indexerrors.py +126 -0
  180. numpy-1.10.0.post2/numpy/core/tests/test_indexing.py +1047 -0
  181. numpy-1.10.0.post2/numpy/core/tests/test_item_selection.py +73 -0
  182. numpy-1.10.0.post2/numpy/core/tests/test_machar.py +29 -0
  183. numpy-1.10.0.post2/numpy/core/tests/test_memmap.py +130 -0
  184. numpy-1.10.0.post2/numpy/core/tests/test_multiarray.py +5924 -0
  185. numpy-1.10.0.post2/numpy/core/tests/test_multiarray_assignment.py +84 -0
  186. numpy-1.10.0.post2/numpy/core/tests/test_nditer.py +2638 -0
  187. numpy-1.10.0.post2/numpy/core/tests/test_numeric.py +2204 -0
  188. numpy-1.10.0.post2/numpy/core/tests/test_numerictypes.py +382 -0
  189. numpy-1.10.0.post2/numpy/core/tests/test_print.py +248 -0
  190. numpy-1.10.0.post2/numpy/core/tests/test_records.py +299 -0
  191. numpy-1.10.0.post2/numpy/core/tests/test_regression.py +2177 -0
  192. numpy-1.10.0.post2/numpy/core/tests/test_scalarinherit.py +41 -0
  193. numpy-1.10.0.post2/numpy/core/tests/test_scalarmath.py +316 -0
  194. numpy-1.10.0.post2/numpy/core/tests/test_shape_base.py +319 -0
  195. numpy-1.10.0.post2/numpy/core/tests/test_ufunc.py +1227 -0
  196. numpy-1.10.0.post2/numpy/core/tests/test_umath.py +1933 -0
  197. numpy-1.10.0.post2/numpy/core/tests/test_umath_complex.py +538 -0
  198. numpy-1.10.0.post2/numpy/core/tests/test_unicode.py +360 -0
  199. numpy-1.10.0.post2/numpy/distutils/__init__.py +23 -0
  200. numpy-1.10.0.post2/numpy/distutils/ccompiler.py +690 -0
  201. numpy-1.10.0.post2/numpy/distutils/command/autodist.py +94 -0
  202. numpy-1.10.0.post2/numpy/distutils/command/build.py +47 -0
  203. numpy-1.10.0.post2/numpy/distutils/command/build_clib.py +295 -0
  204. numpy-1.10.0.post2/numpy/distutils/command/build_ext.py +522 -0
  205. numpy-1.10.0.post2/numpy/distutils/command/config.py +437 -0
  206. numpy-1.10.0.post2/numpy/distutils/exec_command.py +651 -0
  207. numpy-1.10.0.post2/numpy/distutils/fcompiler/compaq.py +128 -0
  208. numpy-1.10.0.post2/numpy/distutils/fcompiler/gnu.py +403 -0
  209. numpy-1.10.0.post2/numpy/distutils/fcompiler/intel.py +217 -0
  210. numpy-1.10.0.post2/numpy/distutils/fcompiler/pg.py +63 -0
  211. numpy-1.10.0.post2/numpy/distutils/fcompiler/sun.py +55 -0
  212. numpy-1.10.0.post2/numpy/distutils/intelccompiler.py +95 -0
  213. numpy-1.10.0.post2/numpy/distutils/lib2def.py +116 -0
  214. numpy-1.10.0.post2/numpy/distutils/mingw32ccompiler.py +599 -0
  215. numpy-1.10.0.post2/numpy/distutils/misc_util.py +2306 -0
  216. numpy-1.10.0.post2/numpy/distutils/msvc9compiler.py +23 -0
  217. numpy-1.10.0.post2/numpy/distutils/msvccompiler.py +17 -0
  218. numpy-1.10.0.post2/numpy/distutils/npy_pkg_config.py +451 -0
  219. numpy-1.10.0.post2/numpy/distutils/system_info.py +2397 -0
  220. numpy-1.10.0.post2/numpy/distutils/tests/f2py_ext/tests/test_fib2.py +12 -0
  221. numpy-1.10.0.post2/numpy/distutils/tests/f2py_f90_ext/tests/test_foo.py +11 -0
  222. numpy-1.10.0.post2/numpy/distutils/tests/gen_ext/tests/test_fib3.py +11 -0
  223. numpy-1.10.0.post2/numpy/distutils/tests/pyrex_ext/tests/test_primes.py +13 -0
  224. numpy-1.10.0.post2/numpy/distutils/tests/swig_ext/__init__.py +1 -0
  225. numpy-1.10.0.post2/numpy/distutils/tests/swig_ext/tests/test_example.py +17 -0
  226. numpy-1.10.0.post2/numpy/distutils/tests/swig_ext/tests/test_example2.py +15 -0
  227. numpy-1.10.0.post2/numpy/distutils/tests/test_fcompiler_gnu.py +60 -0
  228. numpy-1.10.0.post2/numpy/distutils/tests/test_fcompiler_intel.py +36 -0
  229. numpy-1.10.0.post2/numpy/distutils/tests/test_misc_util.py +79 -0
  230. numpy-1.10.0.post2/numpy/distutils/tests/test_npy_pkg_config.py +102 -0
  231. numpy-1.10.0.post2/numpy/distutils/tests/test_system_info.py +209 -0
  232. numpy-1.10.0.post2/numpy/distutils/unixccompiler.py +125 -0
  233. numpy-1.10.0.post2/numpy/doc/byteswapping.py +156 -0
  234. numpy-1.10.0.post2/numpy/doc/creation.py +144 -0
  235. numpy-1.10.0.post2/numpy/doc/glossary.py +423 -0
  236. numpy-1.10.0.post2/numpy/doc/indexing.py +439 -0
  237. numpy-1.10.0.post2/numpy/doc/structured_arrays.py +290 -0
  238. numpy-1.10.0.post2/numpy/f2py/__init__.py +49 -0
  239. numpy-1.10.0.post2/numpy/f2py/__main__.py +25 -0
  240. numpy-1.10.0.post2/numpy/f2py/auxfuncs.py +858 -0
  241. numpy-1.10.0.post2/numpy/f2py/capi_maps.py +851 -0
  242. numpy-1.10.0.post2/numpy/f2py/cb_rules.py +554 -0
  243. numpy-1.10.0.post2/numpy/f2py/cfuncs.py +1261 -0
  244. numpy-1.10.0.post2/numpy/f2py/common_rules.py +150 -0
  245. numpy-1.10.0.post2/numpy/f2py/crackfortran.py +3314 -0
  246. numpy-1.10.0.post2/numpy/f2py/diagnose.py +156 -0
  247. numpy-1.10.0.post2/numpy/f2py/f2py2e.py +656 -0
  248. numpy-1.10.0.post2/numpy/f2py/f2py_testing.py +48 -0
  249. numpy-1.10.0.post2/numpy/f2py/f90mod_rules.py +272 -0
  250. numpy-1.10.0.post2/numpy/f2py/func2subr.py +299 -0
  251. numpy-1.10.0.post2/numpy/f2py/rules.py +1475 -0
  252. numpy-1.10.0.post2/numpy/f2py/setup.py +117 -0
  253. numpy-1.10.0.post2/numpy/f2py/src/fortranobject.c +1037 -0
  254. numpy-1.10.0.post2/numpy/f2py/src/fortranobject.h +162 -0
  255. numpy-1.10.0.post2/numpy/f2py/tests/src/array_from_pyobj/wrapmodule.c +223 -0
  256. numpy-1.10.0.post2/numpy/f2py/tests/test_array_from_pyobj.py +593 -0
  257. numpy-1.10.0.post2/numpy/f2py/tests/test_assumed_shape.py +35 -0
  258. numpy-1.10.0.post2/numpy/f2py/tests/test_callback.py +136 -0
  259. numpy-1.10.0.post2/numpy/f2py/tests/test_kind.py +36 -0
  260. numpy-1.10.0.post2/numpy/f2py/tests/test_mixed.py +40 -0
  261. numpy-1.10.0.post2/numpy/f2py/tests/test_regression.py +34 -0
  262. numpy-1.10.0.post2/numpy/f2py/tests/test_return_character.py +148 -0
  263. numpy-1.10.0.post2/numpy/f2py/tests/test_return_complex.py +170 -0
  264. numpy-1.10.0.post2/numpy/f2py/tests/test_return_integer.py +180 -0
  265. numpy-1.10.0.post2/numpy/f2py/tests/test_return_logical.py +189 -0
  266. numpy-1.10.0.post2/numpy/f2py/tests/test_return_real.py +206 -0
  267. numpy-1.10.0.post2/numpy/f2py/tests/test_size.py +44 -0
  268. numpy-1.10.0.post2/numpy/f2py/tests/util.py +367 -0
  269. numpy-1.10.0.post2/numpy/f2py/use_rules.py +115 -0
  270. numpy-1.10.0.post2/numpy/fft/fftpack.c +1501 -0
  271. numpy-1.10.0.post2/numpy/fft/fftpack.h +28 -0
  272. numpy-1.10.0.post2/numpy/fft/fftpack.py +1241 -0
  273. numpy-1.10.0.post2/numpy/fft/fftpack_litemodule.c +363 -0
  274. numpy-1.10.0.post2/numpy/fft/info.py +187 -0
  275. numpy-1.10.0.post2/numpy/fft/setup.py +19 -0
  276. numpy-1.10.0.post2/numpy/fft/tests/test_fftpack.py +166 -0
  277. numpy-1.10.0.post2/numpy/fft/tests/test_helper.py +78 -0
  278. numpy-1.10.0.post2/numpy/lib/_iotools.py +917 -0
  279. numpy-1.10.0.post2/numpy/lib/arraypad.py +1497 -0
  280. numpy-1.10.0.post2/numpy/lib/arraysetops.py +480 -0
  281. numpy-1.10.0.post2/numpy/lib/arrayterator.py +226 -0
  282. numpy-1.10.0.post2/numpy/lib/financial.py +737 -0
  283. numpy-1.10.0.post2/numpy/lib/format.py +814 -0
  284. numpy-1.10.0.post2/numpy/lib/function_base.py +4150 -0
  285. numpy-1.10.0.post2/numpy/lib/index_tricks.py +874 -0
  286. numpy-1.10.0.post2/numpy/lib/info.py +152 -0
  287. numpy-1.10.0.post2/numpy/lib/nanfunctions.py +1237 -0
  288. numpy-1.10.0.post2/numpy/lib/npyio.py +1992 -0
  289. numpy-1.10.0.post2/numpy/lib/polynomial.py +1277 -0
  290. numpy-1.10.0.post2/numpy/lib/recfunctions.py +1003 -0
  291. numpy-1.10.0.post2/numpy/lib/setup.py +12 -0
  292. numpy-1.10.0.post2/numpy/lib/shape_base.py +872 -0
  293. numpy-1.10.0.post2/numpy/lib/stride_tricks.py +200 -0
  294. numpy-1.10.0.post2/numpy/lib/tests/data/py2-objarr.npy +0 -0
  295. numpy-1.10.0.post2/numpy/lib/tests/data/py2-objarr.npz +0 -0
  296. numpy-1.10.0.post2/numpy/lib/tests/data/py3-objarr.npy +0 -0
  297. numpy-1.10.0.post2/numpy/lib/tests/data/py3-objarr.npz +0 -0
  298. numpy-1.10.0.post2/numpy/lib/tests/test__iotools.py +348 -0
  299. numpy-1.10.0.post2/numpy/lib/tests/test__version.py +70 -0
  300. numpy-1.10.0.post2/numpy/lib/tests/test_arraypad.py +1047 -0
  301. numpy-1.10.0.post2/numpy/lib/tests/test_arraysetops.py +309 -0
  302. numpy-1.10.0.post2/numpy/lib/tests/test_financial.py +163 -0
  303. numpy-1.10.0.post2/numpy/lib/tests/test_format.py +841 -0
  304. numpy-1.10.0.post2/numpy/lib/tests/test_function_base.py +2555 -0
  305. numpy-1.10.0.post2/numpy/lib/tests/test_index_tricks.py +326 -0
  306. numpy-1.10.0.post2/numpy/lib/tests/test_io.py +1916 -0
  307. numpy-1.10.0.post2/numpy/lib/tests/test_nanfunctions.py +707 -0
  308. numpy-1.10.0.post2/numpy/lib/tests/test_packbits.py +26 -0
  309. numpy-1.10.0.post2/numpy/lib/tests/test_polynomial.py +188 -0
  310. numpy-1.10.0.post2/numpy/lib/tests/test_recfunctions.py +734 -0
  311. numpy-1.10.0.post2/numpy/lib/tests/test_shape_base.py +386 -0
  312. numpy-1.10.0.post2/numpy/lib/tests/test_stride_tricks.py +405 -0
  313. numpy-1.10.0.post2/numpy/lib/tests/test_twodim_base.py +535 -0
  314. numpy-1.10.0.post2/numpy/lib/tests/test_type_check.py +332 -0
  315. numpy-1.10.0.post2/numpy/lib/twodim_base.py +1007 -0
  316. numpy-1.10.0.post2/numpy/lib/type_check.py +596 -0
  317. numpy-1.10.0.post2/numpy/lib/utils.py +1122 -0
  318. numpy-1.10.0.post2/numpy/linalg/lapack_lite/python_xerbla.c +46 -0
  319. numpy-1.10.0.post2/numpy/linalg/lapack_litemodule.c +358 -0
  320. numpy-1.10.0.post2/numpy/linalg/linalg.py +2406 -0
  321. numpy-1.10.0.post2/numpy/linalg/tests/test_build.py +59 -0
  322. numpy-1.10.0.post2/numpy/linalg/tests/test_linalg.py +1351 -0
  323. numpy-1.10.0.post2/numpy/linalg/tests/test_regression.py +95 -0
  324. numpy-1.10.0.post2/numpy/linalg/umath_linalg.c.src +3236 -0
  325. numpy-1.10.0.post2/numpy/ma/__init__.py +56 -0
  326. numpy-1.10.0.post2/numpy/ma/bench.py +131 -0
  327. numpy-1.10.0.post2/numpy/ma/core.py +7608 -0
  328. numpy-1.10.0.post2/numpy/ma/extras.py +1953 -0
  329. numpy-1.10.0.post2/numpy/ma/mrecords.py +796 -0
  330. numpy-1.10.0.post2/numpy/ma/setup.py +13 -0
  331. numpy-1.10.0.post2/numpy/ma/tests/test_core.py +4100 -0
  332. numpy-1.10.0.post2/numpy/ma/tests/test_extras.py +1132 -0
  333. numpy-1.10.0.post2/numpy/ma/tests/test_mrecords.py +520 -0
  334. numpy-1.10.0.post2/numpy/ma/tests/test_old_ma.py +879 -0
  335. numpy-1.10.0.post2/numpy/ma/tests/test_regression.py +80 -0
  336. numpy-1.10.0.post2/numpy/ma/tests/test_subclassing.py +338 -0
  337. numpy-1.10.0.post2/numpy/ma/testutils.py +289 -0
  338. numpy-1.10.0.post2/numpy/ma/timer_comparison.py +440 -0
  339. numpy-1.10.0.post2/numpy/matlib.py +358 -0
  340. numpy-1.10.0.post2/numpy/matrixlib/defmatrix.py +1232 -0
  341. numpy-1.10.0.post2/numpy/matrixlib/tests/test_defmatrix.py +449 -0
  342. numpy-1.10.0.post2/numpy/matrixlib/tests/test_multiarray.py +23 -0
  343. numpy-1.10.0.post2/numpy/matrixlib/tests/test_numeric.py +23 -0
  344. numpy-1.10.0.post2/numpy/matrixlib/tests/test_regression.py +37 -0
  345. numpy-1.10.0.post2/numpy/polynomial/_polybase.py +962 -0
  346. numpy-1.10.0.post2/numpy/polynomial/chebyshev.py +2056 -0
  347. numpy-1.10.0.post2/numpy/polynomial/hermite.py +1831 -0
  348. numpy-1.10.0.post2/numpy/polynomial/hermite_e.py +1828 -0
  349. numpy-1.10.0.post2/numpy/polynomial/laguerre.py +1780 -0
  350. numpy-1.10.0.post2/numpy/polynomial/legendre.py +1808 -0
  351. numpy-1.10.0.post2/numpy/polynomial/polyutils.py +403 -0
  352. numpy-1.10.0.post2/numpy/random/mtrand/distributions.c +912 -0
  353. numpy-1.10.0.post2/numpy/random/mtrand/mtrand.c +34805 -0
  354. numpy-1.10.0.post2/numpy/random/mtrand/mtrand.pyx +4766 -0
  355. numpy-1.10.0.post2/numpy/random/setup.py +61 -0
  356. numpy-1.10.0.post2/numpy/random/tests/test_random.py +723 -0
  357. numpy-1.10.0.post2/numpy/random/tests/test_regression.py +117 -0
  358. numpy-1.10.0.post2/numpy/setup.py +29 -0
  359. numpy-1.10.0.post2/numpy/testing/__init__.py +15 -0
  360. numpy-1.10.0.post2/numpy/testing/decorators.py +271 -0
  361. numpy-1.10.0.post2/numpy/testing/noseclasses.py +353 -0
  362. numpy-1.10.0.post2/numpy/testing/nosetester.py +511 -0
  363. numpy-1.10.0.post2/numpy/testing/print_coercion_tables.py +91 -0
  364. numpy-1.10.0.post2/numpy/testing/setup.py +20 -0
  365. numpy-1.10.0.post2/numpy/testing/tests/test_decorators.py +182 -0
  366. numpy-1.10.0.post2/numpy/testing/tests/test_utils.py +781 -0
  367. numpy-1.10.0.post2/numpy/testing/utils.py +1831 -0
  368. numpy-1.10.0.post2/numpy/tests/test_ctypeslib.py +106 -0
  369. numpy-1.10.0.post2/numpy/tests/test_matlib.py +55 -0
  370. numpy-1.10.0.post2/numpy/tests/test_scripts.py +69 -0
  371. numpy-1.10.0.post2/numpy/version.py +10 -0
  372. numpy-1.10.0.post2/setup.py +260 -0
  373. numpy-1.10.0.post2/site.cfg.example +193 -0
  374. numpy-1.10.0.post2/tmp.txt +789 -0
  375. numpy-1.10.0.post2/tools/swig/README +145 -0
  376. numpy-1.10.0.post2/tools/swig/numpy.i +3161 -0
  377. numpy-1.10.0.post2/tools/swig/test/Array.i +135 -0
  378. numpy-1.10.0.post2/tools/swig/test/ArrayZ.cxx +131 -0
  379. numpy-1.10.0.post2/tools/swig/test/ArrayZ.h +56 -0
  380. numpy-1.10.0.post2/tools/swig/test/Flat.cxx +36 -0
  381. numpy-1.10.0.post2/tools/swig/test/Flat.h +34 -0
  382. numpy-1.10.0.post2/tools/swig/test/Flat.i +36 -0
  383. numpy-1.10.0.post2/tools/swig/test/Makefile +37 -0
  384. numpy-1.10.0.post2/tools/swig/test/setup.py +71 -0
  385. numpy-1.10.0.post2/tools/swig/test/testArray.py +385 -0
  386. numpy-1.10.0.post2/tools/swig/test/testFarray.py +159 -0
  387. numpy-1.10.0.post2/tools/swig/test/testFlat.py +200 -0
  388. numpy-1.10.0.post2/tools/swig/test/testFortran.py +173 -0
  389. numpy-1.10.0.post2/tools/swig/test/testMatrix.py +362 -0
  390. numpy-1.10.0.post2/tools/swig/test/testSuperTensor.py +388 -0
  391. numpy-1.10.0.post2/tools/swig/test/testTensor.py +402 -0
  392. numpy-1.10.0.post2/tools/swig/test/testVector.py +381 -0
  393. numpy-1.9.2/INSTALL.txt +0 -138
  394. numpy-1.9.2/LICENSE.txt +0 -30
  395. numpy-1.9.2/MANIFEST.in +0 -26
  396. numpy-1.9.2/PKG-INFO +0 -39
  397. numpy-1.9.2/doc/scipy-sphinx-theme/.git +0 -1
  398. numpy-1.9.2/doc/source/conf.py +0 -331
  399. numpy-1.9.2/doc/source/dev/gitwash/branch_list.png +0 -0
  400. numpy-1.9.2/doc/source/dev/gitwash/branch_list_compare.png +0 -0
  401. numpy-1.9.2/doc/source/dev/gitwash/development_workflow.rst +0 -568
  402. numpy-1.9.2/doc/source/dev/gitwash/git_links.inc +0 -88
  403. numpy-1.9.2/doc/source/dev/gitwash/index.rst +0 -14
  404. numpy-1.9.2/doc/source/dev/index.rst +0 -10
  405. numpy-1.9.2/doc/source/reference/arrays.classes.rst +0 -427
  406. numpy-1.9.2/doc/source/reference/arrays.dtypes.rst +0 -534
  407. numpy-1.9.2/doc/source/reference/arrays.indexing.rst +0 -550
  408. numpy-1.9.2/doc/source/reference/arrays.interface.rst +0 -336
  409. numpy-1.9.2/doc/source/reference/arrays.ndarray.rst +0 -609
  410. numpy-1.9.2/doc/source/reference/arrays.scalars.rst +0 -291
  411. numpy-1.9.2/doc/source/reference/c-api.array.rst +0 -3362
  412. numpy-1.9.2/doc/source/reference/c-api.config.rst +0 -103
  413. numpy-1.9.2/doc/source/reference/c-api.coremath.rst +0 -420
  414. numpy-1.9.2/doc/source/reference/c-api.dtype.rst +0 -376
  415. numpy-1.9.2/doc/source/reference/c-api.generalized-ufuncs.rst +0 -171
  416. numpy-1.9.2/doc/source/reference/c-api.iterator.rst +0 -1298
  417. numpy-1.9.2/doc/source/reference/c-api.types-and-structures.rst +0 -1204
  418. numpy-1.9.2/doc/source/reference/c-api.ufunc.rst +0 -399
  419. numpy-1.9.2/doc/source/reference/index.rst +0 -44
  420. numpy-1.9.2/doc/source/reference/internals.code-explanations.rst +0 -666
  421. numpy-1.9.2/doc/source/reference/routines.array-manipulation.rst +0 -113
  422. numpy-1.9.2/doc/source/reference/routines.io.rst +0 -74
  423. numpy-1.9.2/doc/source/reference/routines.linalg.rst +0 -88
  424. numpy-1.9.2/doc/source/reference/routines.ma.rst +0 -405
  425. numpy-1.9.2/doc/source/reference/routines.sort.rst +0 -42
  426. numpy-1.9.2/doc/source/reference/routines.statistics.rst +0 -55
  427. numpy-1.9.2/doc/source/reference/swig.interface-file.rst +0 -1055
  428. numpy-1.9.2/doc/source/reference/swig.testing.rst +0 -166
  429. numpy-1.9.2/doc/source/reference/ufuncs.rst +0 -651
  430. numpy-1.9.2/doc/source/release.rst +0 -19
  431. numpy-1.9.2/doc/source/user/basics.io.genfromtxt.rst +0 -531
  432. numpy-1.9.2/doc/source/user/basics.rec.rst +0 -7
  433. numpy-1.9.2/doc/source/user/c-info.beyond-basics.rst +0 -560
  434. numpy-1.9.2/doc/source/user/c-info.how-to-extend.rst +0 -642
  435. numpy-1.9.2/doc/source/user/c-info.python-as-glue.rst +0 -1528
  436. numpy-1.9.2/doc/source/user/c-info.ufunc-tutorial.rst +0 -1211
  437. numpy-1.9.2/doc/source/user/install.rst +0 -180
  438. numpy-1.9.2/doc/sphinxext/.git +0 -1
  439. numpy-1.9.2/numpy/__init__.py +0 -216
  440. numpy-1.9.2/numpy/_import_tools.py +0 -348
  441. numpy-1.9.2/numpy/add_newdocs.py +0 -7518
  442. numpy-1.9.2/numpy/compat/_inspect.py +0 -221
  443. numpy-1.9.2/numpy/compat/py3k.py +0 -89
  444. numpy-1.9.2/numpy/compat/setup.py +0 -12
  445. numpy-1.9.2/numpy/core/__init__.py +0 -78
  446. numpy-1.9.2/numpy/core/_internal.py +0 -570
  447. numpy-1.9.2/numpy/core/_methods.py +0 -134
  448. numpy-1.9.2/numpy/core/arrayprint.py +0 -752
  449. numpy-1.9.2/numpy/core/blasdot/_dotblas.c +0 -1255
  450. numpy-1.9.2/numpy/core/blasdot/apple_sgemv_patch.c +0 -216
  451. numpy-1.9.2/numpy/core/blasdot/cblas.h +0 -578
  452. numpy-1.9.2/numpy/core/code_generators/cversions.txt +0 -31
  453. numpy-1.9.2/numpy/core/code_generators/generate_ufunc_api.py +0 -219
  454. numpy-1.9.2/numpy/core/code_generators/generate_umath.py +0 -972
  455. numpy-1.9.2/numpy/core/code_generators/numpy_api.py +0 -412
  456. numpy-1.9.2/numpy/core/code_generators/ufunc_docstrings.py +0 -3419
  457. numpy-1.9.2/numpy/core/defchararray.py +0 -2687
  458. numpy-1.9.2/numpy/core/fromnumeric.py +0 -2938
  459. numpy-1.9.2/numpy/core/function_base.py +0 -190
  460. numpy-1.9.2/numpy/core/getlimits.py +0 -306
  461. numpy-1.9.2/numpy/core/include/numpy/fenv/fenv.c +0 -38
  462. numpy-1.9.2/numpy/core/include/numpy/fenv/fenv.h +0 -224
  463. numpy-1.9.2/numpy/core/include/numpy/ndarrayobject.h +0 -237
  464. numpy-1.9.2/numpy/core/include/numpy/ndarraytypes.h +0 -1820
  465. numpy-1.9.2/numpy/core/include/numpy/npy_3kcompat.h +0 -506
  466. numpy-1.9.2/numpy/core/include/numpy/npy_common.h +0 -1038
  467. numpy-1.9.2/numpy/core/include/numpy/npy_cpu.h +0 -122
  468. numpy-1.9.2/numpy/core/include/numpy/npy_endian.h +0 -49
  469. numpy-1.9.2/numpy/core/include/numpy/npy_math.h +0 -479
  470. numpy-1.9.2/numpy/core/include/numpy/numpyconfig.h +0 -35
  471. numpy-1.9.2/numpy/core/machar.py +0 -338
  472. numpy-1.9.2/numpy/core/memmap.py +0 -308
  473. numpy-1.9.2/numpy/core/numeric.py +0 -2842
  474. numpy-1.9.2/numpy/core/numerictypes.py +0 -1042
  475. numpy-1.9.2/numpy/core/records.py +0 -804
  476. numpy-1.9.2/numpy/core/setup.py +0 -1016
  477. numpy-1.9.2/numpy/core/setup_common.py +0 -321
  478. numpy-1.9.2/numpy/core/shape_base.py +0 -277
  479. numpy-1.9.2/numpy/core/src/multiarray/alloc.c +0 -241
  480. numpy-1.9.2/numpy/core/src/multiarray/arrayobject.c +0 -1791
  481. numpy-1.9.2/numpy/core/src/multiarray/arraytypes.c.src +0 -4372
  482. numpy-1.9.2/numpy/core/src/multiarray/arraytypes.h +0 -13
  483. numpy-1.9.2/numpy/core/src/multiarray/buffer.c +0 -954
  484. numpy-1.9.2/numpy/core/src/multiarray/calculation.c +0 -1229
  485. numpy-1.9.2/numpy/core/src/multiarray/common.c +0 -798
  486. numpy-1.9.2/numpy/core/src/multiarray/common.h +0 -328
  487. numpy-1.9.2/numpy/core/src/multiarray/conversion_utils.c +0 -1240
  488. numpy-1.9.2/numpy/core/src/multiarray/convert.c +0 -589
  489. numpy-1.9.2/numpy/core/src/multiarray/convert_datatype.c +0 -2199
  490. numpy-1.9.2/numpy/core/src/multiarray/ctors.c +0 -3785
  491. numpy-1.9.2/numpy/core/src/multiarray/datetime.c +0 -3823
  492. numpy-1.9.2/numpy/core/src/multiarray/datetime_busday.c +0 -1322
  493. numpy-1.9.2/numpy/core/src/multiarray/datetime_busdaycal.c +0 -552
  494. numpy-1.9.2/numpy/core/src/multiarray/datetime_strings.c +0 -1772
  495. numpy-1.9.2/numpy/core/src/multiarray/descriptor.c +0 -3658
  496. numpy-1.9.2/numpy/core/src/multiarray/dtype_transfer.c +0 -4232
  497. numpy-1.9.2/numpy/core/src/multiarray/einsum.c.src +0 -3013
  498. numpy-1.9.2/numpy/core/src/multiarray/getset.c +0 -984
  499. numpy-1.9.2/numpy/core/src/multiarray/hashdescr.c +0 -319
  500. numpy-1.9.2/numpy/core/src/multiarray/item_selection.c +0 -2711
  501. numpy-1.9.2/numpy/core/src/multiarray/iterators.c +0 -2160
  502. numpy-1.9.2/numpy/core/src/multiarray/lowlevel_strided_loops.c.src +0 -1767
  503. numpy-1.9.2/numpy/core/src/multiarray/mapping.c +0 -3316
  504. numpy-1.9.2/numpy/core/src/multiarray/mapping.h +0 -73
  505. numpy-1.9.2/numpy/core/src/multiarray/methods.c +0 -2497
  506. numpy-1.9.2/numpy/core/src/multiarray/multiarray_tests.c.src +0 -977
  507. numpy-1.9.2/numpy/core/src/multiarray/multiarraymodule.c +0 -4202
  508. numpy-1.9.2/numpy/core/src/multiarray/multiarraymodule.h +0 -4
  509. numpy-1.9.2/numpy/core/src/multiarray/multiarraymodule_onefile.c +0 -58
  510. numpy-1.9.2/numpy/core/src/multiarray/nditer_api.c +0 -2809
  511. numpy-1.9.2/numpy/core/src/multiarray/nditer_constr.c +0 -3159
  512. numpy-1.9.2/numpy/core/src/multiarray/nditer_pywrap.c +0 -2492
  513. numpy-1.9.2/numpy/core/src/multiarray/number.c +0 -1057
  514. numpy-1.9.2/numpy/core/src/multiarray/number.h +0 -76
  515. numpy-1.9.2/numpy/core/src/multiarray/numpymemoryview.c +0 -309
  516. numpy-1.9.2/numpy/core/src/multiarray/numpyos.c +0 -683
  517. numpy-1.9.2/numpy/core/src/multiarray/scalarapi.c +0 -861
  518. numpy-1.9.2/numpy/core/src/multiarray/scalartypes.c.src +0 -4270
  519. numpy-1.9.2/numpy/core/src/multiarray/scalartypes.h +0 -52
  520. numpy-1.9.2/numpy/core/src/multiarray/shape.c +0 -1141
  521. numpy-1.9.2/numpy/core/src/multiarray/ucsnarrow.c +0 -173
  522. numpy-1.9.2/numpy/core/src/npymath/ieee754.c.src +0 -814
  523. numpy-1.9.2/numpy/core/src/npymath/npy_math.c.src +0 -527
  524. numpy-1.9.2/numpy/core/src/npymath/npy_math_complex.c.src +0 -291
  525. numpy-1.9.2/numpy/core/src/npymath/npy_math_private.h +0 -539
  526. numpy-1.9.2/numpy/core/src/npysort/heapsort.c.src +0 -341
  527. numpy-1.9.2/numpy/core/src/npysort/mergesort.c.src +0 -428
  528. numpy-1.9.2/numpy/core/src/npysort/npysort_common.h +0 -367
  529. numpy-1.9.2/numpy/core/src/npysort/quicksort.c.src +0 -363
  530. numpy-1.9.2/numpy/core/src/npysort/selection.c.src +0 -474
  531. numpy-1.9.2/numpy/core/src/private/npy_config.h +0 -44
  532. numpy-1.9.2/numpy/core/src/private/npy_partition.h.src +0 -138
  533. numpy-1.9.2/numpy/core/src/private/npy_sort.h +0 -194
  534. numpy-1.9.2/numpy/core/src/private/scalarmathmodule.h.src +0 -42
  535. numpy-1.9.2/numpy/core/src/private/ufunc_override.h +0 -384
  536. numpy-1.9.2/numpy/core/src/scalarmathmodule.c.src +0 -1980
  537. numpy-1.9.2/numpy/core/src/umath/funcs.inc.src +0 -715
  538. numpy-1.9.2/numpy/core/src/umath/loops.c.src +0 -2654
  539. numpy-1.9.2/numpy/core/src/umath/loops.h.src +0 -501
  540. numpy-1.9.2/numpy/core/src/umath/operand_flag_tests.c.src +0 -105
  541. numpy-1.9.2/numpy/core/src/umath/simd.inc.src +0 -881
  542. numpy-1.9.2/numpy/core/src/umath/test_rational.c.src +0 -1404
  543. numpy-1.9.2/numpy/core/src/umath/ufunc_object.c +0 -5520
  544. numpy-1.9.2/numpy/core/src/umath/ufunc_type_resolution.c +0 -2164
  545. numpy-1.9.2/numpy/core/src/umath/umath_tests.c.src +0 -341
  546. numpy-1.9.2/numpy/core/src/umath/umathmodule.c +0 -561
  547. numpy-1.9.2/numpy/core/src/umath/umathmodule_onefile.c +0 -6
  548. numpy-1.9.2/numpy/core/tests/test_abc.py +0 -45
  549. numpy-1.9.2/numpy/core/tests/test_api.py +0 -514
  550. numpy-1.9.2/numpy/core/tests/test_arrayprint.py +0 -167
  551. numpy-1.9.2/numpy/core/tests/test_blasdot.py +0 -249
  552. numpy-1.9.2/numpy/core/tests/test_datetime.py +0 -1781
  553. numpy-1.9.2/numpy/core/tests/test_defchararray.py +0 -642
  554. numpy-1.9.2/numpy/core/tests/test_deprecations.py +0 -512
  555. numpy-1.9.2/numpy/core/tests/test_dtype.py +0 -542
  556. numpy-1.9.2/numpy/core/tests/test_einsum.py +0 -583
  557. numpy-1.9.2/numpy/core/tests/test_errstate.py +0 -51
  558. numpy-1.9.2/numpy/core/tests/test_function_base.py +0 -111
  559. numpy-1.9.2/numpy/core/tests/test_getlimits.py +0 -86
  560. numpy-1.9.2/numpy/core/tests/test_half.py +0 -439
  561. numpy-1.9.2/numpy/core/tests/test_indexerrors.py +0 -127
  562. numpy-1.9.2/numpy/core/tests/test_indexing.py +0 -1014
  563. numpy-1.9.2/numpy/core/tests/test_item_selection.py +0 -70
  564. numpy-1.9.2/numpy/core/tests/test_machar.py +0 -30
  565. numpy-1.9.2/numpy/core/tests/test_memmap.py +0 -127
  566. numpy-1.9.2/numpy/core/tests/test_multiarray.py +0 -4645
  567. numpy-1.9.2/numpy/core/tests/test_multiarray_assignment.py +0 -80
  568. numpy-1.9.2/numpy/core/tests/test_nditer.py +0 -2630
  569. numpy-1.9.2/numpy/core/tests/test_numeric.py +0 -2117
  570. numpy-1.9.2/numpy/core/tests/test_numerictypes.py +0 -377
  571. numpy-1.9.2/numpy/core/tests/test_print.py +0 -245
  572. numpy-1.9.2/numpy/core/tests/test_records.py +0 -185
  573. numpy-1.9.2/numpy/core/tests/test_regression.py +0 -2108
  574. numpy-1.9.2/numpy/core/tests/test_scalarinherit.py +0 -34
  575. numpy-1.9.2/numpy/core/tests/test_scalarmath.py +0 -275
  576. numpy-1.9.2/numpy/core/tests/test_shape_base.py +0 -250
  577. numpy-1.9.2/numpy/core/tests/test_ufunc.py +0 -1153
  578. numpy-1.9.2/numpy/core/tests/test_umath.py +0 -1695
  579. numpy-1.9.2/numpy/core/tests/test_umath_complex.py +0 -537
  580. numpy-1.9.2/numpy/core/tests/test_unicode.py +0 -357
  581. numpy-1.9.2/numpy/distutils/__init__.py +0 -39
  582. numpy-1.9.2/numpy/distutils/ccompiler.py +0 -656
  583. numpy-1.9.2/numpy/distutils/command/autodist.py +0 -43
  584. numpy-1.9.2/numpy/distutils/command/build.py +0 -39
  585. numpy-1.9.2/numpy/distutils/command/build_clib.py +0 -284
  586. numpy-1.9.2/numpy/distutils/command/build_ext.py +0 -503
  587. numpy-1.9.2/numpy/distutils/command/config.py +0 -476
  588. numpy-1.9.2/numpy/distutils/exec_command.py +0 -618
  589. numpy-1.9.2/numpy/distutils/fcompiler/compaq.py +0 -128
  590. numpy-1.9.2/numpy/distutils/fcompiler/gnu.py +0 -390
  591. numpy-1.9.2/numpy/distutils/fcompiler/intel.py +0 -205
  592. numpy-1.9.2/numpy/distutils/fcompiler/pg.py +0 -60
  593. numpy-1.9.2/numpy/distutils/fcompiler/sun.py +0 -52
  594. numpy-1.9.2/numpy/distutils/intelccompiler.py +0 -45
  595. numpy-1.9.2/numpy/distutils/lib2def.py +0 -116
  596. numpy-1.9.2/numpy/distutils/mingw32ccompiler.py +0 -582
  597. numpy-1.9.2/numpy/distutils/misc_util.py +0 -2271
  598. numpy-1.9.2/numpy/distutils/npy_pkg_config.py +0 -464
  599. numpy-1.9.2/numpy/distutils/system_info.py +0 -2319
  600. numpy-1.9.2/numpy/distutils/tests/f2py_ext/tests/test_fib2.py +0 -13
  601. numpy-1.9.2/numpy/distutils/tests/f2py_f90_ext/tests/test_foo.py +0 -12
  602. numpy-1.9.2/numpy/distutils/tests/gen_ext/tests/test_fib3.py +0 -12
  603. numpy-1.9.2/numpy/distutils/tests/pyrex_ext/tests/test_primes.py +0 -14
  604. numpy-1.9.2/numpy/distutils/tests/swig_ext/tests/test_example.py +0 -18
  605. numpy-1.9.2/numpy/distutils/tests/swig_ext/tests/test_example2.py +0 -16
  606. numpy-1.9.2/numpy/distutils/tests/test_fcompiler_gnu.py +0 -53
  607. numpy-1.9.2/numpy/distutils/tests/test_fcompiler_intel.py +0 -36
  608. numpy-1.9.2/numpy/distutils/tests/test_misc_util.py +0 -75
  609. numpy-1.9.2/numpy/distutils/tests/test_npy_pkg_config.py +0 -98
  610. numpy-1.9.2/numpy/distutils/unixccompiler.py +0 -113
  611. numpy-1.9.2/numpy/doc/byteswapping.py +0 -147
  612. numpy-1.9.2/numpy/doc/creation.py +0 -144
  613. numpy-1.9.2/numpy/doc/glossary.py +0 -418
  614. numpy-1.9.2/numpy/doc/indexing.py +0 -437
  615. numpy-1.9.2/numpy/doc/structured_arrays.py +0 -223
  616. numpy-1.9.2/numpy/f2py/__init__.py +0 -49
  617. numpy-1.9.2/numpy/f2py/auxfuncs.py +0 -711
  618. numpy-1.9.2/numpy/f2py/capi_maps.py +0 -773
  619. numpy-1.9.2/numpy/f2py/cb_rules.py +0 -539
  620. numpy-1.9.2/numpy/f2py/cfuncs.py +0 -1224
  621. numpy-1.9.2/numpy/f2py/common_rules.py +0 -132
  622. numpy-1.9.2/numpy/f2py/crackfortran.py +0 -2870
  623. numpy-1.9.2/numpy/f2py/diagnose.py +0 -149
  624. numpy-1.9.2/numpy/f2py/f2py2e.py +0 -598
  625. numpy-1.9.2/numpy/f2py/f2py_testing.py +0 -46
  626. numpy-1.9.2/numpy/f2py/f90mod_rules.py +0 -246
  627. numpy-1.9.2/numpy/f2py/func2subr.py +0 -291
  628. numpy-1.9.2/numpy/f2py/rules.py +0 -1448
  629. numpy-1.9.2/numpy/f2py/setup.py +0 -129
  630. numpy-1.9.2/numpy/f2py/src/fortranobject.c +0 -972
  631. numpy-1.9.2/numpy/f2py/src/fortranobject.h +0 -162
  632. numpy-1.9.2/numpy/f2py/tests/src/array_from_pyobj/wrapmodule.c +0 -223
  633. numpy-1.9.2/numpy/f2py/tests/test_array_from_pyobj.py +0 -559
  634. numpy-1.9.2/numpy/f2py/tests/test_assumed_shape.py +0 -37
  635. numpy-1.9.2/numpy/f2py/tests/test_callback.py +0 -132
  636. numpy-1.9.2/numpy/f2py/tests/test_kind.py +0 -36
  637. numpy-1.9.2/numpy/f2py/tests/test_mixed.py +0 -41
  638. numpy-1.9.2/numpy/f2py/tests/test_regression.py +0 -32
  639. numpy-1.9.2/numpy/f2py/tests/test_return_character.py +0 -142
  640. numpy-1.9.2/numpy/f2py/tests/test_return_complex.py +0 -169
  641. numpy-1.9.2/numpy/f2py/tests/test_return_integer.py +0 -178
  642. numpy-1.9.2/numpy/f2py/tests/test_return_logical.py +0 -187
  643. numpy-1.9.2/numpy/f2py/tests/test_return_real.py +0 -203
  644. numpy-1.9.2/numpy/f2py/tests/test_size.py +0 -47
  645. numpy-1.9.2/numpy/f2py/tests/util.py +0 -353
  646. numpy-1.9.2/numpy/f2py/use_rules.py +0 -109
  647. numpy-1.9.2/numpy/fft/fftpack.c +0 -1501
  648. numpy-1.9.2/numpy/fft/fftpack.h +0 -28
  649. numpy-1.9.2/numpy/fft/fftpack.py +0 -1169
  650. numpy-1.9.2/numpy/fft/fftpack_litemodule.c +0 -371
  651. numpy-1.9.2/numpy/fft/info.py +0 -179
  652. numpy-1.9.2/numpy/fft/setup.py +0 -20
  653. numpy-1.9.2/numpy/fft/tests/test_fftpack.py +0 -75
  654. numpy-1.9.2/numpy/fft/tests/test_helper.py +0 -78
  655. numpy-1.9.2/numpy/lib/_iotools.py +0 -891
  656. numpy-1.9.2/numpy/lib/arraypad.py +0 -1475
  657. numpy-1.9.2/numpy/lib/arraysetops.py +0 -464
  658. numpy-1.9.2/numpy/lib/arrayterator.py +0 -226
  659. numpy-1.9.2/numpy/lib/financial.py +0 -737
  660. numpy-1.9.2/numpy/lib/format.py +0 -771
  661. numpy-1.9.2/numpy/lib/function_base.py +0 -3884
  662. numpy-1.9.2/numpy/lib/index_tricks.py +0 -869
  663. numpy-1.9.2/numpy/lib/info.py +0 -151
  664. numpy-1.9.2/numpy/lib/nanfunctions.py +0 -1158
  665. numpy-1.9.2/numpy/lib/npyio.py +0 -1918
  666. numpy-1.9.2/numpy/lib/polynomial.py +0 -1271
  667. numpy-1.9.2/numpy/lib/recfunctions.py +0 -1003
  668. numpy-1.9.2/numpy/lib/setup.py +0 -23
  669. numpy-1.9.2/numpy/lib/shape_base.py +0 -865
  670. numpy-1.9.2/numpy/lib/src/_compiled_base.c +0 -1761
  671. numpy-1.9.2/numpy/lib/stride_tricks.py +0 -123
  672. numpy-1.9.2/numpy/lib/tests/test__iotools.py +0 -326
  673. numpy-1.9.2/numpy/lib/tests/test__version.py +0 -57
  674. numpy-1.9.2/numpy/lib/tests/test_arraypad.py +0 -560
  675. numpy-1.9.2/numpy/lib/tests/test_arraysetops.py +0 -301
  676. numpy-1.9.2/numpy/lib/tests/test_financial.py +0 -160
  677. numpy-1.9.2/numpy/lib/tests/test_format.py +0 -716
  678. numpy-1.9.2/numpy/lib/tests/test_function_base.py +0 -2145
  679. numpy-1.9.2/numpy/lib/tests/test_index_tricks.py +0 -289
  680. numpy-1.9.2/numpy/lib/tests/test_io.py +0 -1754
  681. numpy-1.9.2/numpy/lib/tests/test_nanfunctions.py +0 -774
  682. numpy-1.9.2/numpy/lib/tests/test_polynomial.py +0 -177
  683. numpy-1.9.2/numpy/lib/tests/test_recfunctions.py +0 -705
  684. numpy-1.9.2/numpy/lib/tests/test_shape_base.py +0 -368
  685. numpy-1.9.2/numpy/lib/tests/test_stride_tricks.py +0 -238
  686. numpy-1.9.2/numpy/lib/tests/test_twodim_base.py +0 -504
  687. numpy-1.9.2/numpy/lib/tests/test_type_check.py +0 -328
  688. numpy-1.9.2/numpy/lib/twodim_base.py +0 -1003
  689. numpy-1.9.2/numpy/lib/type_check.py +0 -605
  690. numpy-1.9.2/numpy/lib/utils.py +0 -1176
  691. numpy-1.9.2/numpy/linalg/lapack_lite/python_xerbla.c +0 -47
  692. numpy-1.9.2/numpy/linalg/lapack_litemodule.c +0 -362
  693. numpy-1.9.2/numpy/linalg/linalg.py +0 -2136
  694. numpy-1.9.2/numpy/linalg/tests/test_build.py +0 -53
  695. numpy-1.9.2/numpy/linalg/tests/test_linalg.py +0 -1156
  696. numpy-1.9.2/numpy/linalg/tests/test_regression.py +0 -90
  697. numpy-1.9.2/numpy/linalg/umath_linalg.c.src +0 -3210
  698. numpy-1.9.2/numpy/ma/__init__.py +0 -58
  699. numpy-1.9.2/numpy/ma/bench.py +0 -166
  700. numpy-1.9.2/numpy/ma/core.py +0 -7374
  701. numpy-1.9.2/numpy/ma/extras.py +0 -1932
  702. numpy-1.9.2/numpy/ma/mrecords.py +0 -734
  703. numpy-1.9.2/numpy/ma/setup.py +0 -20
  704. numpy-1.9.2/numpy/ma/tests/test_core.py +0 -3706
  705. numpy-1.9.2/numpy/ma/tests/test_extras.py +0 -954
  706. numpy-1.9.2/numpy/ma/tests/test_mrecords.py +0 -521
  707. numpy-1.9.2/numpy/ma/tests/test_old_ma.py +0 -869
  708. numpy-1.9.2/numpy/ma/tests/test_regression.py +0 -75
  709. numpy-1.9.2/numpy/ma/tests/test_subclassing.py +0 -236
  710. numpy-1.9.2/numpy/ma/testutils.py +0 -240
  711. numpy-1.9.2/numpy/ma/timer_comparison.py +0 -459
  712. numpy-1.9.2/numpy/matlib.py +0 -358
  713. numpy-1.9.2/numpy/matrixlib/defmatrix.py +0 -1094
  714. numpy-1.9.2/numpy/matrixlib/tests/test_defmatrix.py +0 -400
  715. numpy-1.9.2/numpy/matrixlib/tests/test_multiarray.py +0 -18
  716. numpy-1.9.2/numpy/matrixlib/tests/test_numeric.py +0 -10
  717. numpy-1.9.2/numpy/matrixlib/tests/test_regression.py +0 -34
  718. numpy-1.9.2/numpy/polynomial/_polybase.py +0 -962
  719. numpy-1.9.2/numpy/polynomial/chebyshev.py +0 -2056
  720. numpy-1.9.2/numpy/polynomial/hermite.py +0 -1789
  721. numpy-1.9.2/numpy/polynomial/hermite_e.py +0 -1786
  722. numpy-1.9.2/numpy/polynomial/laguerre.py +0 -1781
  723. numpy-1.9.2/numpy/polynomial/legendre.py +0 -1809
  724. numpy-1.9.2/numpy/polynomial/polytemplate.py +0 -927
  725. numpy-1.9.2/numpy/polynomial/polyutils.py +0 -403
  726. numpy-1.9.2/numpy/random/mtrand/distributions.c +0 -892
  727. numpy-1.9.2/numpy/random/mtrand/mtrand.c +0 -31204
  728. numpy-1.9.2/numpy/random/mtrand/mtrand.pyx +0 -4706
  729. numpy-1.9.2/numpy/random/setup.py +0 -74
  730. numpy-1.9.2/numpy/random/tests/test_random.py +0 -707
  731. numpy-1.9.2/numpy/random/tests/test_regression.py +0 -86
  732. numpy-1.9.2/numpy/setup.py +0 -27
  733. numpy-1.9.2/numpy/testing/__init__.py +0 -16
  734. numpy-1.9.2/numpy/testing/decorators.py +0 -271
  735. numpy-1.9.2/numpy/testing/noseclasses.py +0 -353
  736. numpy-1.9.2/numpy/testing/nosetester.py +0 -504
  737. numpy-1.9.2/numpy/testing/print_coercion_tables.py +0 -89
  738. numpy-1.9.2/numpy/testing/setup.py +0 -20
  739. numpy-1.9.2/numpy/testing/tests/test_decorators.py +0 -185
  740. numpy-1.9.2/numpy/testing/tests/test_utils.py +0 -558
  741. numpy-1.9.2/numpy/testing/utils.py +0 -1715
  742. numpy-1.9.2/numpy/tests/test_ctypeslib.py +0 -102
  743. numpy-1.9.2/numpy/tests/test_matlib.py +0 -55
  744. numpy-1.9.2/numpy/version.py +0 -10
  745. numpy-1.9.2/setup.py +0 -251
  746. numpy-1.9.2/site.cfg.example +0 -157
  747. numpy-1.9.2/tools/swig/README +0 -135
  748. numpy-1.9.2/tools/swig/numpy.i +0 -3085
  749. numpy-1.9.2/tools/swig/test/Array.i +0 -102
  750. numpy-1.9.2/tools/swig/test/Makefile +0 -34
  751. numpy-1.9.2/tools/swig/test/setup.py +0 -64
  752. numpy-1.9.2/tools/swig/test/testArray.py +0 -284
  753. numpy-1.9.2/tools/swig/test/testFarray.py +0 -159
  754. numpy-1.9.2/tools/swig/test/testFortran.py +0 -173
  755. numpy-1.9.2/tools/swig/test/testMatrix.py +0 -362
  756. numpy-1.9.2/tools/swig/test/testSuperTensor.py +0 -388
  757. numpy-1.9.2/tools/swig/test/testTensor.py +0 -402
  758. numpy-1.9.2/tools/swig/test/testVector.py +0 -381
  759. {numpy-1.9.2 → numpy-1.10.0.post2}/BENTO_BUILD.txt +0 -0
  760. {numpy-1.9.2 → numpy-1.10.0.post2}/COMPATIBILITY +0 -0
  761. {numpy-1.9.2 → numpy-1.10.0.post2}/DEV_README.txt +0 -0
  762. {numpy-1.9.2 → numpy-1.10.0.post2}/README.txt +0 -0
  763. {numpy-1.9.2 → numpy-1.10.0.post2}/THANKS.txt +0 -0
  764. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/Makefile +0 -0
  765. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/BUGS.txt +0 -0
  766. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/FAQ.txt +0 -0
  767. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/HISTORY.txt +0 -0
  768. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/Makefile +0 -0
  769. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/OLDNEWS.txt +0 -0
  770. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/README.txt +0 -0
  771. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/Release-1.x.txt +0 -0
  772. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/Release-2.x.txt +0 -0
  773. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/Release-3.x.txt +0 -0
  774. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/Release-4.x.txt +0 -0
  775. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/TESTING.txt +0 -0
  776. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/THANKS.txt +0 -0
  777. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/TODO.txt +0 -0
  778. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/apps.tex +0 -0
  779. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/bugs.tex +0 -0
  780. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/collectinput.py +0 -0
  781. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/commands.tex +0 -0
  782. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/default.css +0 -0
  783. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/docutils.conf +0 -0
  784. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/ex1/arr.f +0 -0
  785. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/ex1/bar.f +0 -0
  786. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/ex1/foo.f +0 -0
  787. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/ex1/foobar-smart.f90 +0 -0
  788. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/ex1/foobar.f90 +0 -0
  789. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/ex1/foobarmodule.tex +0 -0
  790. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/ex1/runme +0 -0
  791. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2py.1 +0 -0
  792. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2py2e.tex +0 -0
  793. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/README.txt +0 -0
  794. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/aerostructure.jpg +0 -0
  795. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/flow.jpg +0 -0
  796. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/mk_html.sh +0 -0
  797. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/mk_pdf.sh +0 -0
  798. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/mk_ps.sh +0 -0
  799. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/src/examples/exp1.f +0 -0
  800. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/src/examples/exp1mess.txt +0 -0
  801. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/src/examples/exp1session.txt +0 -0
  802. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/src/examples/foo.pyf +0 -0
  803. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/src/examples/foom.pyf +0 -0
  804. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/structure.jpg +0 -0
  805. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/fortranobject.tex +0 -0
  806. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/hello.f +0 -0
  807. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/index.html +0 -0
  808. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/intro.tex +0 -0
  809. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/multiarray/array_from_pyobj.c +0 -0
  810. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/multiarray/bar.c +0 -0
  811. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/multiarray/foo.f +0 -0
  812. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/multiarray/fortran_array_from_pyobj.txt +0 -0
  813. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/multiarray/fun.pyf +0 -0
  814. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/multiarray/run.pyf +0 -0
  815. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/multiarray/transpose.txt +0 -0
  816. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/multiarrays.txt +0 -0
  817. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/notes.tex +0 -0
  818. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/oldnews.html +0 -0
  819. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/options.tex +0 -0
  820. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/pyforttest.pyf +0 -0
  821. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/pytest.py +0 -0
  822. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/python9.tex +0 -0
  823. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/signaturefile.tex +0 -0
  824. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/simple.f +0 -0
  825. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/simple_session.dat +0 -0
  826. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/using_F_compiler.txt +0 -0
  827. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/win32_notes.txt +0 -0
  828. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/postprocess.py +0 -0
  829. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.3.0-notes.rst +0 -0
  830. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.4.0-notes.rst +0 -0
  831. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.5.0-notes.rst +0 -0
  832. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.6.0-notes.rst +0 -0
  833. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.6.1-notes.rst +0 -0
  834. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.6.2-notes.rst +0 -0
  835. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.7.0-notes.rst +0 -0
  836. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.7.1-notes.rst +0 -0
  837. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.7.2-notes.rst +0 -0
  838. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.8.0-notes.rst +0 -0
  839. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.8.1-notes.rst +0 -0
  840. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.8.2-notes.rst +0 -0
  841. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.9.0-notes.rst +0 -0
  842. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.9.1-notes.rst +0 -0
  843. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.9.2-notes.rst +0 -0
  844. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/time_based_proposal.rst +0 -0
  845. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/.gitignore +0 -0
  846. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/Makefile +0 -0
  847. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/README.rst +0 -0
  848. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_static/scipyshiny_small.png +0 -0
  849. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/layout.html +0 -0
  850. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/searchbox.html +0 -0
  851. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/sourcelink.html +0 -0
  852. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/css/extend.css +0 -0
  853. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/css/pygments.css +0 -0
  854. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/css/scipy-central.css +0 -0
  855. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/css/spc-bootstrap.css +0 -0
  856. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/css/spc-extend.css +0 -0
  857. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/all-icons.svg +0 -0
  858. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/contents.png +0 -0
  859. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/create-new-account-icon.png +0 -0
  860. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/external-link-icon-shrunk.png +0 -0
  861. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/external-link-icon.png +0 -0
  862. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/external-link-icon.svg +0 -0
  863. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/external-link-list-icon-tiniest.png +0 -0
  864. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/external-link-list-icon-tiny.png +0 -0
  865. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/external-link-list-icon.png +0 -0
  866. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ad.png +0 -0
  867. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ae.png +0 -0
  868. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-af.png +0 -0
  869. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ag.png +0 -0
  870. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ai.png +0 -0
  871. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-al.png +0 -0
  872. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-am.png +0 -0
  873. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ao.png +0 -0
  874. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-aq.png +0 -0
  875. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ar.png +0 -0
  876. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-as.png +0 -0
  877. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-at.png +0 -0
  878. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-au.png +0 -0
  879. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-aw.png +0 -0
  880. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-az.png +0 -0
  881. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ba.png +0 -0
  882. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bb.png +0 -0
  883. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bd.png +0 -0
  884. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-be.png +0 -0
  885. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bf.png +0 -0
  886. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bg.png +0 -0
  887. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bh.png +0 -0
  888. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bi.png +0 -0
  889. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bj.png +0 -0
  890. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bl.png +0 -0
  891. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bm.png +0 -0
  892. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bn.png +0 -0
  893. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bo.png +0 -0
  894. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-br.png +0 -0
  895. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bs.png +0 -0
  896. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bt.png +0 -0
  897. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bw.png +0 -0
  898. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-by.png +0 -0
  899. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bz.png +0 -0
  900. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ca.png +0 -0
  901. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cc.png +0 -0
  902. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cd.png +0 -0
  903. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cf.png +0 -0
  904. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cg.png +0 -0
  905. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ch.png +0 -0
  906. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ci.png +0 -0
  907. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ck.png +0 -0
  908. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cl.png +0 -0
  909. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cm.png +0 -0
  910. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cn.png +0 -0
  911. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-co.png +0 -0
  912. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cr.png +0 -0
  913. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cu.png +0 -0
  914. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cv.png +0 -0
  915. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cw.png +0 -0
  916. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cx.png +0 -0
  917. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cy.png +0 -0
  918. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cz.png +0 -0
  919. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-de.png +0 -0
  920. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-dj.png +0 -0
  921. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-dk.png +0 -0
  922. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-dm.png +0 -0
  923. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-do.png +0 -0
  924. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-dz.png +0 -0
  925. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ec.png +0 -0
  926. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ee.png +0 -0
  927. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-eg.png +0 -0
  928. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-er.png +0 -0
  929. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-es.png +0 -0
  930. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-et.png +0 -0
  931. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-fi.png +0 -0
  932. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-fj.png +0 -0
  933. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-fk.png +0 -0
  934. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-fm.png +0 -0
  935. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-fo.png +0 -0
  936. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-fr.png +0 -0
  937. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ga.png +0 -0
  938. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gb.png +0 -0
  939. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gd.png +0 -0
  940. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ge.png +0 -0
  941. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gf.png +0 -0
  942. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gg.png +0 -0
  943. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gh.png +0 -0
  944. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gi.png +0 -0
  945. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gl.png +0 -0
  946. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gm.png +0 -0
  947. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gn.png +0 -0
  948. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gq.png +0 -0
  949. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gr.png +0 -0
  950. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gs.png +0 -0
  951. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gt.png +0 -0
  952. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gu.png +0 -0
  953. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gw.png +0 -0
  954. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gy.png +0 -0
  955. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-hk.png +0 -0
  956. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-hm.png +0 -0
  957. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-hn.png +0 -0
  958. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-hr.png +0 -0
  959. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ht.png +0 -0
  960. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-hu.png +0 -0
  961. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-id.png +0 -0
  962. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ie.png +0 -0
  963. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-il.png +0 -0
  964. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-im.png +0 -0
  965. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-in.png +0 -0
  966. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-io.png +0 -0
  967. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-iq.png +0 -0
  968. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ir.png +0 -0
  969. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-is.png +0 -0
  970. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-it.png +0 -0
  971. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-je.png +0 -0
  972. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-jm.png +0 -0
  973. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-jo.png +0 -0
  974. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-jp.png +0 -0
  975. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ke.png +0 -0
  976. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kg.png +0 -0
  977. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kh.png +0 -0
  978. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ki.png +0 -0
  979. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-km.png +0 -0
  980. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kn.png +0 -0
  981. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kp.png +0 -0
  982. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kr.png +0 -0
  983. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kw.png +0 -0
  984. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ky.png +0 -0
  985. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kz.png +0 -0
  986. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-la.png +0 -0
  987. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lb.png +0 -0
  988. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lc.png +0 -0
  989. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-li.png +0 -0
  990. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lk.png +0 -0
  991. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lr.png +0 -0
  992. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ls.png +0 -0
  993. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lt.png +0 -0
  994. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lu.png +0 -0
  995. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lv.png +0 -0
  996. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ly.png +0 -0
  997. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ma.png +0 -0
  998. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mc.png +0 -0
  999. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-md.png +0 -0
  1000. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-me.png +0 -0
  1001. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mf.png +0 -0
  1002. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mg.png +0 -0
  1003. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mh.png +0 -0
  1004. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mk.png +0 -0
  1005. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ml.png +0 -0
  1006. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mm.png +0 -0
  1007. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mn.png +0 -0
  1008. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mo.png +0 -0
  1009. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mp.png +0 -0
  1010. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mq.png +0 -0
  1011. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mr.png +0 -0
  1012. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ms.png +0 -0
  1013. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mt.png +0 -0
  1014. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mu.png +0 -0
  1015. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mv.png +0 -0
  1016. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mw.png +0 -0
  1017. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mx.png +0 -0
  1018. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-my.png +0 -0
  1019. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mz.png +0 -0
  1020. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-na.png +0 -0
  1021. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-nc.png +0 -0
  1022. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ne.png +0 -0
  1023. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-nf.png +0 -0
  1024. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ng.png +0 -0
  1025. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ni.png +0 -0
  1026. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-nl.png +0 -0
  1027. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-no.png +0 -0
  1028. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-np.png +0 -0
  1029. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-nr.png +0 -0
  1030. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-nu.png +0 -0
  1031. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-nz.png +0 -0
  1032. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-om.png +0 -0
  1033. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pa.png +0 -0
  1034. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pe.png +0 -0
  1035. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pf.png +0 -0
  1036. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pg.png +0 -0
  1037. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ph.png +0 -0
  1038. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pk.png +0 -0
  1039. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pl.png +0 -0
  1040. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pm.png +0 -0
  1041. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pn.png +0 -0
  1042. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pr.png +0 -0
  1043. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ps.png +0 -0
  1044. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pt.png +0 -0
  1045. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pw.png +0 -0
  1046. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-py.png +0 -0
  1047. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-qa.png +0 -0
  1048. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-re.png +0 -0
  1049. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ro.png +0 -0
  1050. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-rs.png +0 -0
  1051. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ru.png +0 -0
  1052. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-rw.png +0 -0
  1053. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sa.png +0 -0
  1054. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sb.png +0 -0
  1055. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sc.png +0 -0
  1056. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sd.png +0 -0
  1057. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-se.png +0 -0
  1058. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sg.png +0 -0
  1059. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sh.png +0 -0
  1060. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-si.png +0 -0
  1061. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sj.png +0 -0
  1062. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sk.png +0 -0
  1063. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sl.png +0 -0
  1064. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sm.png +0 -0
  1065. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sn.png +0 -0
  1066. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-so.png +0 -0
  1067. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sr.png +0 -0
  1068. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-st.png +0 -0
  1069. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sv.png +0 -0
  1070. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sy.png +0 -0
  1071. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sz.png +0 -0
  1072. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tc.png +0 -0
  1073. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-td.png +0 -0
  1074. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tf.png +0 -0
  1075. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tg.png +0 -0
  1076. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-th.png +0 -0
  1077. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tj.png +0 -0
  1078. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tk.png +0 -0
  1079. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tl.png +0 -0
  1080. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tm.png +0 -0
  1081. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tn.png +0 -0
  1082. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-to.png +0 -0
  1083. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tr.png +0 -0
  1084. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tt.png +0 -0
  1085. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tv.png +0 -0
  1086. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tw.png +0 -0
  1087. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tz.png +0 -0
  1088. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ua.png +0 -0
  1089. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ug.png +0 -0
  1090. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-um.png +0 -0
  1091. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-us.png +0 -0
  1092. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-uy.png +0 -0
  1093. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-uz.png +0 -0
  1094. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-va.png +0 -0
  1095. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-vc.png +0 -0
  1096. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ve.png +0 -0
  1097. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-vg.png +0 -0
  1098. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-vi.png +0 -0
  1099. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-vn.png +0 -0
  1100. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-vu.png +0 -0
  1101. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-wf.png +0 -0
  1102. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ws.png +0 -0
  1103. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ye.png +0 -0
  1104. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-za.png +0 -0
  1105. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-zm.png +0 -0
  1106. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-zw.png +0 -0
  1107. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/glyphicons-halflings-white.png +0 -0
  1108. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/glyphicons-halflings.png +0 -0
  1109. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/important-icon.png +0 -0
  1110. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/information-icon.png +0 -0
  1111. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/internet-web-browser.png +0 -0
  1112. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/multiple-file-icon-shrunk.png +0 -0
  1113. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/multiple-file-icon.png +0 -0
  1114. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/multiple-file-icon.svg +0 -0
  1115. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/multiple-file-list-icon-tiny.png +0 -0
  1116. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/multiple-file-list-icon.png +0 -0
  1117. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/navigation.png +0 -0
  1118. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/person-list-icon-tiny.png +0 -0
  1119. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/person-list-icon.png +0 -0
  1120. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/scipy-logo.png +0 -0
  1121. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/scipy_org_logo.gif +0 -0
  1122. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/scipycentral_logo.png +0 -0
  1123. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/scipyshiny_small.png +0 -0
  1124. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/send-email-icon.png +0 -0
  1125. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/single-file-icon-shrunk.png +0 -0
  1126. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/single-file-icon.png +0 -0
  1127. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/single-file-icon.svg +0 -0
  1128. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/single-file-list-icon-tiniest.png +0 -0
  1129. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/single-file-list-icon-tiny.png +0 -0
  1130. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/single-file-list-icon.png +0 -0
  1131. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/transparent-pixel.gif +0 -0
  1132. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/ui-anim_basic_16x16.gif +0 -0
  1133. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/js/copybutton.js +0 -0
  1134. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/accordion.less +0 -0
  1135. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/alerts.less +0 -0
  1136. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/bootstrap.less +0 -0
  1137. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/breadcrumbs.less +0 -0
  1138. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/button-groups.less +0 -0
  1139. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/buttons.less +0 -0
  1140. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/carousel.less +0 -0
  1141. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/close.less +0 -0
  1142. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/code.less +0 -0
  1143. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/component-animations.less +0 -0
  1144. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/dropdowns.less +0 -0
  1145. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/forms.less +0 -0
  1146. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/grid.less +0 -0
  1147. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/hero-unit.less +0 -0
  1148. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/labels-badges.less +0 -0
  1149. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/layouts.less +0 -0
  1150. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/media.less +0 -0
  1151. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/mixins.less +0 -0
  1152. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/modals.less +0 -0
  1153. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/navbar.less +0 -0
  1154. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/navs.less +0 -0
  1155. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/pager.less +0 -0
  1156. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/pagination.less +0 -0
  1157. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/popovers.less +0 -0
  1158. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/progress-bars.less +0 -0
  1159. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/reset.less +0 -0
  1160. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/responsive-1200px-min.less +0 -0
  1161. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/responsive-767px-max.less +0 -0
  1162. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/responsive-768px-979px.less +0 -0
  1163. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/responsive-navbar.less +0 -0
  1164. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/responsive-utilities.less +0 -0
  1165. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/responsive.less +0 -0
  1166. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/scaffolding.less +0 -0
  1167. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/sprites.less +0 -0
  1168. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/tables.less +0 -0
  1169. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/thumbnails.less +0 -0
  1170. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/tooltip.less +0 -0
  1171. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/type.less +0 -0
  1172. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/utilities.less +0 -0
  1173. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/variables.less +0 -0
  1174. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/wells.less +0 -0
  1175. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-bootstrap.less +0 -0
  1176. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-content.less +0 -0
  1177. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-extend.less +0 -0
  1178. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-footer.less +0 -0
  1179. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-header.less +0 -0
  1180. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-rightsidebar.less +0 -0
  1181. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-utils.less +0 -0
  1182. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/scipy.css_t +0 -0
  1183. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/theme.conf +0 -0
  1184. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/conf.py +0 -0
  1185. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/index.rst +0 -0
  1186. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/test_autodoc.rst +0 -0
  1187. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/test_autodoc_2.rst +0 -0
  1188. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/test_autodoc_3.rst +0 -0
  1189. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/test_autodoc_4.rst +0 -0
  1190. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/test_optimize.rst +0 -0
  1191. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/_templates/autosummary/class.rst +0 -0
  1192. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/_templates/indexcontent.html +0 -0
  1193. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/_templates/indexsidebar.html +0 -0
  1194. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/_templates/layout.html +0 -0
  1195. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/about.rst +0 -0
  1196. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/bugs.rst +0 -0
  1197. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/contents.rst +0 -0
  1198. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/dev/gitwash/configure_git.rst +0 -0
  1199. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/dev/gitwash/development_setup.rst +0 -0
  1200. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/dev/gitwash/dot2_dot3.rst +0 -0
  1201. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/dev/gitwash/following_latest.rst +0 -0
  1202. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/dev/gitwash/forking_button.png +0 -0
  1203. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/dev/gitwash/git_development.rst +0 -0
  1204. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/dev/gitwash/git_intro.rst +0 -0
  1205. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/dev/gitwash/git_resources.rst +0 -0
  1206. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/dev/gitwash/pull_button.png +0 -0
  1207. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/dev/gitwash_links.txt +0 -0
  1208. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/advanced.rst +0 -0
  1209. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/allocarr.f90 +0 -0
  1210. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/allocarr_session.dat +0 -0
  1211. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/array.f +0 -0
  1212. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/array_session.dat +0 -0
  1213. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/calculate.f +0 -0
  1214. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/calculate_session.dat +0 -0
  1215. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/callback.f +0 -0
  1216. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/callback2.pyf +0 -0
  1217. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/callback_session.dat +0 -0
  1218. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/common.f +0 -0
  1219. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/common_session.dat +0 -0
  1220. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/compile_session.dat +0 -0
  1221. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/distutils.rst +0 -0
  1222. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/extcallback.f +0 -0
  1223. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/extcallback_session.dat +0 -0
  1224. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/fib1.f +0 -0
  1225. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/fib1.pyf +0 -0
  1226. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/fib2.pyf +0 -0
  1227. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/fib3.f +0 -0
  1228. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/ftype.f +0 -0
  1229. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/ftype_session.dat +0 -0
  1230. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/getting-started.rst +0 -0
  1231. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/index.rst +0 -0
  1232. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/moddata.f90 +0 -0
  1233. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/moddata_session.dat +0 -0
  1234. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/python-usage.rst +0 -0
  1235. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/run_main_session.dat +0 -0
  1236. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/scalar.f +0 -0
  1237. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/scalar_session.dat +0 -0
  1238. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/setup_example.py +0 -0
  1239. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/signature-file.rst +0 -0
  1240. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/spam.pyf +0 -0
  1241. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/spam_session.dat +0 -0
  1242. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/string.f +0 -0
  1243. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/string_session.dat +0 -0
  1244. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/usage.rst +0 -0
  1245. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/var.pyf +0 -0
  1246. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/var_session.dat +0 -0
  1247. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/glossary.rst +0 -0
  1248. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/license.rst +0 -0
  1249. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/datetime-proposal.rst +0 -0
  1250. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/datetime-proposal3.rst +0 -0
  1251. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/deferred-ufunc-evaluation.rst +0 -0
  1252. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/generalized-ufuncs.rst +0 -0
  1253. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/groupby_additions.rst +0 -0
  1254. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/index.rst +0 -0
  1255. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/math_config_clean.rst +0 -0
  1256. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/missing-data.rst +0 -0
  1257. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/new-iterator-ufunc.rst +0 -0
  1258. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/newbugtracker.rst +0 -0
  1259. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/npy-format.rst +0 -0
  1260. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/structured_array_extensions.rst +0 -0
  1261. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/ufunc-overrides.rst +0 -0
  1262. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/warnfix.rst +0 -0
  1263. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/arrays.datetime.rst +0 -0
  1264. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/arrays.nditer.rst +0 -0
  1265. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/arrays.rst +0 -0
  1266. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/c-api.deprecations.rst +0 -0
  1267. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/c-api.rst +0 -0
  1268. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/distutils.rst +0 -0
  1269. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/figures/dtype-hierarchy.dia +0 -0
  1270. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/figures/dtype-hierarchy.pdf +0 -0
  1271. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/figures/dtype-hierarchy.png +0 -0
  1272. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/figures/threefundamental.fig +0 -0
  1273. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/figures/threefundamental.pdf +0 -0
  1274. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/figures/threefundamental.png +0 -0
  1275. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/internals.rst +0 -0
  1276. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/maskedarray.baseclass.rst +0 -0
  1277. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/maskedarray.generic.rst +0 -0
  1278. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/maskedarray.rst +0 -0
  1279. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.array-creation.rst +0 -0
  1280. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.bitwise.rst +0 -0
  1281. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.char.rst +0 -0
  1282. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.ctypeslib.rst +0 -0
  1283. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.datetime.rst +0 -0
  1284. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.dtype.rst +0 -0
  1285. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.dual.rst +0 -0
  1286. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.emath.rst +0 -0
  1287. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.err.rst +0 -0
  1288. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.fft.rst +0 -0
  1289. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.financial.rst +0 -0
  1290. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.functional.rst +0 -0
  1291. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.help.rst +0 -0
  1292. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.indexing.rst +0 -0
  1293. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.logic.rst +0 -0
  1294. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.math.rst +0 -0
  1295. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.matlib.rst +0 -0
  1296. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.numarray.rst +0 -0
  1297. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.oldnumeric.rst +0 -0
  1298. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.other.rst +0 -0
  1299. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.padding.rst +0 -0
  1300. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.chebyshev.rst +0 -0
  1301. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.classes.rst +0 -0
  1302. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.hermite.rst +0 -0
  1303. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.hermite_e.rst +0 -0
  1304. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.laguerre.rst +0 -0
  1305. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.legendre.rst +0 -0
  1306. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.package.rst +0 -0
  1307. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.poly1d.rst +0 -0
  1308. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.polynomial.rst +0 -0
  1309. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.rst +0 -0
  1310. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.random.rst +0 -0
  1311. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.rst +0 -0
  1312. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.set.rst +0 -0
  1313. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.testing.rst +0 -0
  1314. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.window.rst +0 -0
  1315. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/swig.rst +0 -0
  1316. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/basics.broadcasting.rst +0 -0
  1317. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/basics.byteswapping.rst +0 -0
  1318. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/basics.creation.rst +0 -0
  1319. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/basics.indexing.rst +0 -0
  1320. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/basics.io.rst +0 -0
  1321. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/basics.rst +0 -0
  1322. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/basics.subclassing.rst +0 -0
  1323. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/basics.types.rst +0 -0
  1324. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/c-info.rst +0 -0
  1325. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/howtofind.rst +0 -0
  1326. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/index.rst +0 -0
  1327. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/introduction.rst +0 -0
  1328. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/misc.rst +0 -0
  1329. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/performance.rst +0 -0
  1330. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/whatisnumpy.rst +0 -0
  1331. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/.gitignore +0 -0
  1332. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/.travis.yml +0 -0
  1333. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/LICENSE.txt +0 -0
  1334. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/MANIFEST.in +0 -0
  1335. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/README.rst +0 -0
  1336. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/__init__.py +0 -0
  1337. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/comment_eater.py +0 -0
  1338. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/compiler_unparse.py +0 -0
  1339. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/docscrape.py +0 -0
  1340. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/docscrape_sphinx.py +0 -0
  1341. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/linkcode.py +0 -0
  1342. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/numpydoc.py +0 -0
  1343. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/phantom_import.py +0 -0
  1344. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/plot_directive.py +0 -0
  1345. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/tests/test_docscrape.py +0 -0
  1346. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/tests/test_linkcode.py +0 -0
  1347. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/tests/test_phantom_import.py +0 -0
  1348. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/tests/test_plot_directive.py +0 -0
  1349. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/tests/test_traitsdoc.py +0 -0
  1350. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/traitsdoc.py +0 -0
  1351. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/setup.py +0 -0
  1352. {numpy-1.9.2/numpy/core/code_generators → numpy-1.10.0.post2/numpy/_build_utils}/__init__.py +0 -0
  1353. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/compat/__init__.py +0 -0
  1354. {numpy-1.9.2/numpy/distutils/tests/f2py_ext → numpy-1.10.0.post2/numpy/core/code_generators}/__init__.py +0 -0
  1355. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/code_generators/genapi.py +0 -0
  1356. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/code_generators/generate_numpy_api.py +0 -0
  1357. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/cversions.py +0 -0
  1358. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/_neighborhood_iterator_imp.h +0 -0
  1359. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/_numpyconfig.h.in +0 -0
  1360. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/arrayobject.h +0 -0
  1361. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/arrayscalars.h +0 -0
  1362. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/halffloat.h +0 -0
  1363. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/noprefix.h +0 -0
  1364. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/npy_1_7_deprecated_api.h +0 -0
  1365. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/npy_interrupt.h +0 -0
  1366. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/npy_no_deprecated_api.h +0 -0
  1367. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/npy_os.h +0 -0
  1368. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/old_defines.h +0 -0
  1369. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/oldnumeric.h +0 -0
  1370. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/ufuncobject.h +0 -0
  1371. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/utils.h +0 -0
  1372. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/info.py +0 -0
  1373. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/mlib.ini.in +0 -0
  1374. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/npymath.ini.in +0 -0
  1375. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/dummymodule.c +0 -0
  1376. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/_datetime.h +0 -0
  1377. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/alloc.h +0 -0
  1378. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/array_assign.c +0 -0
  1379. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/array_assign.h +0 -0
  1380. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/array_assign_array.c +0 -0
  1381. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/array_assign_scalar.c +0 -0
  1382. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/arrayobject.h +0 -0
  1383. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/buffer.h +0 -0
  1384. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/calculation.h +0 -0
  1385. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/conversion_utils.h +0 -0
  1386. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/convert.h +0 -0
  1387. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/convert_datatype.h +0 -0
  1388. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/ctors.h +0 -0
  1389. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/datetime_busday.h +0 -0
  1390. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/datetime_busdaycal.h +0 -0
  1391. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/datetime_strings.h +0 -0
  1392. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/descriptor.h +0 -0
  1393. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/flagsobject.c +0 -0
  1394. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/getset.h +0 -0
  1395. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/hashdescr.h +0 -0
  1396. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/item_selection.h +0 -0
  1397. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/iterators.h +0 -0
  1398. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/methods.h +0 -0
  1399. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/nditer_impl.h +0 -0
  1400. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/nditer_pywrap.h +0 -0
  1401. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/nditer_templ.c.src +0 -0
  1402. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/numpymemoryview.h +0 -0
  1403. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/numpyos.h +0 -0
  1404. {numpy-1.9.2/numpy/core/blasdot → numpy-1.10.0.post2/numpy/core/src/multiarray}/python_xerbla.c +0 -0
  1405. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/refcount.c +0 -0
  1406. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/refcount.h +0 -0
  1407. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/sequence.c +0 -0
  1408. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/sequence.h +0 -0
  1409. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/shape.h +0 -0
  1410. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/ucsnarrow.h +0 -0
  1411. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/usertypes.c +0 -0
  1412. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/usertypes.h +0 -0
  1413. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/npymath/_signbit.c +0 -0
  1414. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/npymath/halffloat.c +0 -0
  1415. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/npymath/npy_math_common.h +0 -0
  1416. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/npysort/binsearch.c.src +0 -0
  1417. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/private/lowlevel_strided_loops.h +0 -0
  1418. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/private/npy_binsearch.h.src +0 -0
  1419. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/private/npy_fpmath.h +0 -0
  1420. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/private/npy_pycompat.h +0 -0
  1421. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/umath/reduction.c +0 -0
  1422. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/umath/reduction.h +0 -0
  1423. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/umath/struct_ufunc_test.c.src +0 -0
  1424. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/umath/ufunc_object.h +0 -0
  1425. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/umath/ufunc_type_resolution.h +0 -0
  1426. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/tests/data/astype_copy.pkl +0 -0
  1427. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/tests/data/recarray_from_file.fits +0 -0
  1428. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/tests/test_scalarprint.py +0 -0
  1429. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/ctypeslib.py +0 -0
  1430. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/__version__.py +0 -0
  1431. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/__init__.py +0 -0
  1432. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/bdist_rpm.py +0 -0
  1433. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/build_py.py +0 -0
  1434. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/build_scripts.py +0 -0
  1435. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/build_src.py +0 -0
  1436. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/config_compiler.py +0 -0
  1437. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/develop.py +0 -0
  1438. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/egg_info.py +0 -0
  1439. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/install.py +0 -0
  1440. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/install_clib.py +0 -0
  1441. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/install_data.py +0 -0
  1442. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/install_headers.py +0 -0
  1443. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/sdist.py +0 -0
  1444. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/compat.py +0 -0
  1445. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/conv_template.py +0 -0
  1446. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/core.py +0 -0
  1447. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/cpuinfo.py +0 -0
  1448. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/environment.py +0 -0
  1449. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/extension.py +0 -0
  1450. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/__init__.py +0 -0
  1451. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/absoft.py +0 -0
  1452. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/g95.py +0 -0
  1453. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/hpux.py +0 -0
  1454. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/ibm.py +0 -0
  1455. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/lahey.py +0 -0
  1456. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/mips.py +0 -0
  1457. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/nag.py +0 -0
  1458. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/none.py +0 -0
  1459. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/pathf95.py +0 -0
  1460. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/vast.py +0 -0
  1461. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/from_template.py +0 -0
  1462. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/info.py +0 -0
  1463. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/line_endings.py +0 -0
  1464. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/log.py +0 -0
  1465. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/mingw/gfortran_vs2003_hack.c +0 -0
  1466. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/numpy_distribution.py +0 -0
  1467. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/pathccompiler.py +0 -0
  1468. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/setup.py +0 -0
  1469. {numpy-1.9.2/numpy/distutils/tests/f2py_f90_ext → numpy-1.10.0.post2/numpy/distutils/tests/f2py_ext}/__init__.py +0 -0
  1470. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/f2py_ext/setup.py +0 -0
  1471. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/f2py_ext/src/fib1.f +0 -0
  1472. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/f2py_ext/src/fib2.pyf +0 -0
  1473. {numpy-1.9.2/numpy/distutils/tests/gen_ext → numpy-1.10.0.post2/numpy/distutils/tests/f2py_f90_ext}/__init__.py +0 -0
  1474. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/f2py_f90_ext/include/body.f90 +0 -0
  1475. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/f2py_f90_ext/setup.py +0 -0
  1476. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/f2py_f90_ext/src/foo_free.f90 +0 -0
  1477. {numpy-1.9.2/numpy/distutils/tests/pyrex_ext → numpy-1.10.0.post2/numpy/distutils/tests/gen_ext}/__init__.py +0 -0
  1478. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/gen_ext/setup.py +0 -0
  1479. {numpy-1.9.2/numpy/distutils/tests/swig_ext → numpy-1.10.0.post2/numpy/distutils/tests/pyrex_ext}/__init__.py +0 -0
  1480. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/pyrex_ext/primes.pyx +0 -0
  1481. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/pyrex_ext/setup.py +0 -0
  1482. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/setup.py +0 -0
  1483. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/swig_ext/setup.py +0 -0
  1484. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/swig_ext/src/example.c +0 -0
  1485. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/swig_ext/src/example.i +0 -0
  1486. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/swig_ext/src/zoo.cc +0 -0
  1487. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/swig_ext/src/zoo.h +0 -0
  1488. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/swig_ext/src/zoo.i +0 -0
  1489. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/test_exec_command.py +0 -0
  1490. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/__init__.py +0 -0
  1491. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/basics.py +0 -0
  1492. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/broadcasting.py +0 -0
  1493. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/constants.py +0 -0
  1494. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/howtofind.py +0 -0
  1495. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/internals.py +0 -0
  1496. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/io.py +0 -0
  1497. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/jargon.py +0 -0
  1498. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/methods_vs_functions.py +0 -0
  1499. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/misc.py +0 -0
  1500. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/performance.py +0 -0
  1501. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/subclassing.py +0 -0
  1502. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/ufuncs.py +0 -0
  1503. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/dual.py +0 -0
  1504. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/__version__.py +0 -0
  1505. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/info.py +0 -0
  1506. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/tests/src/assumed_shape/.f2py_f2cmap +0 -0
  1507. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/tests/src/assumed_shape/foo_free.f90 +0 -0
  1508. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/tests/src/assumed_shape/foo_mod.f90 +0 -0
  1509. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/tests/src/assumed_shape/foo_use.f90 +0 -0
  1510. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/tests/src/assumed_shape/precision.f90 +0 -0
  1511. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/tests/src/kind/foo.f90 +0 -0
  1512. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/tests/src/mixed/foo.f +0 -0
  1513. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/tests/src/mixed/foo_fixed.f90 +0 -0
  1514. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/tests/src/mixed/foo_free.f90 +0 -0
  1515. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/tests/src/regression/inout.f90 +0 -0
  1516. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/tests/src/size/foo.f90 +0 -0
  1517. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/fft/__init__.py +0 -0
  1518. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/fft/helper.py +0 -0
  1519. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/__init__.py +0 -0
  1520. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/_datasource.py +0 -0
  1521. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/_version.py +0 -0
  1522. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/scimath.py +0 -0
  1523. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/tests/data/python3.npy +0 -0
  1524. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/tests/data/win64python2.npy +0 -0
  1525. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/tests/test__datasource.py +0 -0
  1526. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/tests/test_arrayterator.py +0 -0
  1527. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/tests/test_regression.py +0 -0
  1528. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/tests/test_ufunclike.py +0 -0
  1529. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/tests/test_utils.py +0 -0
  1530. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/ufunclike.py +0 -0
  1531. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/user_array.py +0 -0
  1532. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/linalg/__init__.py +0 -0
  1533. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/linalg/info.py +0 -0
  1534. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/linalg/lapack_lite/blas_lite.c +0 -0
  1535. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/linalg/lapack_lite/dlamch.c +0 -0
  1536. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/linalg/lapack_lite/dlapack_lite.c +0 -0
  1537. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/linalg/lapack_lite/f2c.h +0 -0
  1538. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/linalg/lapack_lite/f2c_lite.c +0 -0
  1539. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/linalg/lapack_lite/zlapack_lite.c +0 -0
  1540. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/linalg/setup.py +0 -0
  1541. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/linalg/tests/test_deprecations.py +0 -0
  1542. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/ma/version.py +0 -0
  1543. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/matrixlib/__init__.py +0 -0
  1544. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/matrixlib/setup.py +0 -0
  1545. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/polynomial/__init__.py +0 -0
  1546. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/polynomial/polynomial.py +0 -0
  1547. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/polynomial/setup.py +0 -0
  1548. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_chebyshev.py +0 -0
  1549. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_classes.py +0 -0
  1550. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_hermite.py +0 -0
  1551. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_hermite_e.py +0 -0
  1552. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_laguerre.py +0 -0
  1553. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_legendre.py +0 -0
  1554. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_polynomial.py +0 -0
  1555. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_polyutils.py +0 -0
  1556. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_printing.py +0 -0
  1557. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/random/__init__.py +0 -0
  1558. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/random/info.py +0 -0
  1559. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/random/mtrand/Python.pxi +0 -0
  1560. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/random/mtrand/distributions.h +0 -0
  1561. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/random/mtrand/generate_mtrand_c.py +0 -0
  1562. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/random/mtrand/initarray.c +0 -0
  1563. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/random/mtrand/initarray.h +0 -0
  1564. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/random/mtrand/mtrand_py_helper.h +0 -0
  1565. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/random/mtrand/numpy.pxd +0 -0
  1566. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/random/mtrand/randomkit.c +0 -0
  1567. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/random/mtrand/randomkit.h +0 -0
  1568. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/testing/tests/test_doctesting.py +0 -0
  1569. {numpy-1.9.2 → numpy-1.10.0.post2}/setupegg.py +0 -0
  1570. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/Makefile +0 -0
  1571. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/pyfragments.swg +0 -0
  1572. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Array1.cxx +0 -0
  1573. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Array1.h +0 -0
  1574. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Array2.cxx +0 -0
  1575. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Array2.h +0 -0
  1576. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Farray.cxx +0 -0
  1577. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Farray.h +0 -0
  1578. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Farray.i +0 -0
  1579. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Fortran.cxx +0 -0
  1580. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Fortran.h +0 -0
  1581. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Fortran.i +0 -0
  1582. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Matrix.cxx +0 -0
  1583. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Matrix.h +0 -0
  1584. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Matrix.i +0 -0
  1585. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/SuperTensor.cxx +0 -0
  1586. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/SuperTensor.h +0 -0
  1587. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/SuperTensor.i +0 -0
  1588. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Tensor.cxx +0 -0
  1589. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Tensor.h +0 -0
  1590. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Tensor.i +0 -0
  1591. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Vector.cxx +0 -0
  1592. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Vector.h +0 -0
  1593. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Vector.i +0 -0
@@ -1,2711 +0,0 @@
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 "numpy/npy_math.h"
11
- #include "numpy/npy_cpu.h"
12
-
13
- #include "npy_config.h"
14
-
15
- #include "npy_pycompat.h"
16
-
17
- #include "common.h"
18
- #include "arrayobject.h"
19
- #include "ctors.h"
20
- #include "lowlevel_strided_loops.h"
21
-
22
- #include "item_selection.h"
23
- #include "npy_sort.h"
24
- #include "npy_partition.h"
25
- #include "npy_binsearch.h"
26
-
27
- /*NUMPY_API
28
- * Take
29
- */
30
- NPY_NO_EXPORT PyObject *
31
- PyArray_TakeFrom(PyArrayObject *self0, PyObject *indices0, int axis,
32
- PyArrayObject *out, NPY_CLIPMODE clipmode)
33
- {
34
- PyArray_Descr *dtype;
35
- PyArray_FastTakeFunc *func;
36
- PyArrayObject *obj = NULL, *self, *indices;
37
- npy_intp nd, i, j, n, m, k, max_item, tmp, chunk, itemsize, nelem;
38
- npy_intp shape[NPY_MAXDIMS];
39
- char *src, *dest, *tmp_src;
40
- int err;
41
- npy_bool needs_refcounting;
42
-
43
- indices = NULL;
44
- self = (PyArrayObject *)PyArray_CheckAxis(self0, &axis,
45
- NPY_ARRAY_CARRAY);
46
- if (self == NULL) {
47
- return NULL;
48
- }
49
- indices = (PyArrayObject *)PyArray_ContiguousFromAny(indices0,
50
- NPY_INTP,
51
- 0, 0);
52
- if (indices == NULL) {
53
- goto fail;
54
- }
55
-
56
- n = m = chunk = 1;
57
- nd = PyArray_NDIM(self) + PyArray_NDIM(indices) - 1;
58
- for (i = 0; i < nd; i++) {
59
- if (i < axis) {
60
- shape[i] = PyArray_DIMS(self)[i];
61
- n *= shape[i];
62
- }
63
- else {
64
- if (i < axis+PyArray_NDIM(indices)) {
65
- shape[i] = PyArray_DIMS(indices)[i-axis];
66
- m *= shape[i];
67
- }
68
- else {
69
- shape[i] = PyArray_DIMS(self)[i-PyArray_NDIM(indices)+1];
70
- chunk *= shape[i];
71
- }
72
- }
73
- }
74
- if (!out) {
75
- dtype = PyArray_DESCR(self);
76
- Py_INCREF(dtype);
77
- obj = (PyArrayObject *)PyArray_NewFromDescr(Py_TYPE(self),
78
- dtype,
79
- nd, shape,
80
- NULL, NULL, 0,
81
- (PyObject *)self);
82
-
83
- if (obj == NULL) {
84
- goto fail;
85
- }
86
-
87
- }
88
- else {
89
- int flags = NPY_ARRAY_CARRAY |
90
- NPY_ARRAY_UPDATEIFCOPY;
91
-
92
- if ((PyArray_NDIM(out) != nd) ||
93
- !PyArray_CompareLists(PyArray_DIMS(out), shape, nd)) {
94
- PyErr_SetString(PyExc_ValueError,
95
- "output array does not match result of ndarray.take");
96
- goto fail;
97
- }
98
-
99
- if (clipmode == NPY_RAISE) {
100
- /*
101
- * we need to make sure and get a copy
102
- * so the input array is not changed
103
- * before the error is called
104
- */
105
- flags |= NPY_ARRAY_ENSURECOPY;
106
- }
107
- dtype = PyArray_DESCR(self);
108
- Py_INCREF(dtype);
109
- obj = (PyArrayObject *)PyArray_FromArray(out, dtype, flags);
110
- if (obj == NULL) {
111
- goto fail;
112
- }
113
- }
114
-
115
- max_item = PyArray_DIMS(self)[axis];
116
- nelem = chunk;
117
- itemsize = PyArray_ITEMSIZE(obj);
118
- chunk = chunk * itemsize;
119
- src = PyArray_DATA(self);
120
- dest = PyArray_DATA(obj);
121
- needs_refcounting = PyDataType_REFCHK(PyArray_DESCR(self));
122
-
123
- if ((max_item == 0) && (PyArray_SIZE(obj) != 0)) {
124
- /* Index error, since that is the usual error for raise mode */
125
- PyErr_SetString(PyExc_IndexError,
126
- "cannot do a non-empty take from an empty axes.");
127
- goto fail;
128
- }
129
-
130
- func = PyArray_DESCR(self)->f->fasttake;
131
- if (func == NULL) {
132
- NPY_BEGIN_THREADS_DEF;
133
- NPY_BEGIN_THREADS_DESCR(PyArray_DESCR(self));
134
- switch(clipmode) {
135
- case NPY_RAISE:
136
- for (i = 0; i < n; i++) {
137
- for (j = 0; j < m; j++) {
138
- tmp = ((npy_intp *)(PyArray_DATA(indices)))[j];
139
- if (check_and_adjust_index(&tmp, max_item, axis,
140
- _save) < 0) {
141
- goto fail;
142
- }
143
- tmp_src = src + tmp * chunk;
144
- if (needs_refcounting) {
145
- for (k=0; k < nelem; k++) {
146
- PyArray_Item_INCREF(tmp_src, PyArray_DESCR(self));
147
- PyArray_Item_XDECREF(dest, PyArray_DESCR(self));
148
- memmove(dest, tmp_src, itemsize);
149
- dest += itemsize;
150
- tmp_src += itemsize;
151
- }
152
- }
153
- else {
154
- memmove(dest, tmp_src, chunk);
155
- dest += chunk;
156
- }
157
- }
158
- src += chunk*max_item;
159
- }
160
- break;
161
- case NPY_WRAP:
162
- for (i = 0; i < n; i++) {
163
- for (j = 0; j < m; j++) {
164
- tmp = ((npy_intp *)(PyArray_DATA(indices)))[j];
165
- if (tmp < 0) {
166
- while (tmp < 0) {
167
- tmp += max_item;
168
- }
169
- }
170
- else if (tmp >= max_item) {
171
- while (tmp >= max_item) {
172
- tmp -= max_item;
173
- }
174
- }
175
- tmp_src = src + tmp * chunk;
176
- if (needs_refcounting) {
177
- for (k=0; k < nelem; k++) {
178
- PyArray_Item_INCREF(tmp_src, PyArray_DESCR(self));
179
- PyArray_Item_XDECREF(dest, PyArray_DESCR(self));
180
- memmove(dest, tmp_src, itemsize);
181
- dest += itemsize;
182
- tmp_src += itemsize;
183
- }
184
- }
185
- else {
186
- memmove(dest, tmp_src, chunk);
187
- dest += chunk;
188
- }
189
- }
190
- src += chunk*max_item;
191
- }
192
- break;
193
- case NPY_CLIP:
194
- for (i = 0; i < n; i++) {
195
- for (j = 0; j < m; j++) {
196
- tmp = ((npy_intp *)(PyArray_DATA(indices)))[j];
197
- if (tmp < 0) {
198
- tmp = 0;
199
- }
200
- else if (tmp >= max_item) {
201
- tmp = max_item - 1;
202
- }
203
- tmp_src = src + tmp * chunk;
204
- if (needs_refcounting) {
205
- for (k=0; k < nelem; k++) {
206
- PyArray_Item_INCREF(tmp_src, PyArray_DESCR(self));
207
- PyArray_Item_XDECREF(dest, PyArray_DESCR(self));
208
- memmove(dest, tmp_src, itemsize);
209
- dest += itemsize;
210
- tmp_src += itemsize;
211
- }
212
- }
213
- else {
214
- memmove(dest, tmp_src, chunk);
215
- dest += chunk;
216
- }
217
- }
218
- src += chunk*max_item;
219
- }
220
- break;
221
- }
222
- NPY_END_THREADS;
223
- }
224
- else {
225
- /* no gil release, need it for error reporting */
226
- err = func(dest, src, (npy_intp *)(PyArray_DATA(indices)),
227
- max_item, n, m, nelem, clipmode);
228
- if (err) {
229
- goto fail;
230
- }
231
- }
232
-
233
- Py_XDECREF(indices);
234
- Py_XDECREF(self);
235
- if (out != NULL && out != obj) {
236
- Py_INCREF(out);
237
- Py_DECREF(obj);
238
- obj = out;
239
- }
240
- return (PyObject *)obj;
241
-
242
- fail:
243
- PyArray_XDECREF_ERR(obj);
244
- Py_XDECREF(indices);
245
- Py_XDECREF(self);
246
- return NULL;
247
- }
248
-
249
- /*NUMPY_API
250
- * Put values into an array
251
- */
252
- NPY_NO_EXPORT PyObject *
253
- PyArray_PutTo(PyArrayObject *self, PyObject* values0, PyObject *indices0,
254
- NPY_CLIPMODE clipmode)
255
- {
256
- PyArrayObject *indices, *values;
257
- npy_intp i, chunk, ni, max_item, nv, tmp;
258
- char *src, *dest;
259
- int copied = 0;
260
-
261
- indices = NULL;
262
- values = NULL;
263
- if (!PyArray_Check(self)) {
264
- PyErr_SetString(PyExc_TypeError,
265
- "put: first argument must be an array");
266
- return NULL;
267
- }
268
-
269
- if (PyArray_FailUnlessWriteable(self, "put: output array") < 0) {
270
- return NULL;
271
- }
272
-
273
- if (!PyArray_ISCONTIGUOUS(self)) {
274
- PyArrayObject *obj;
275
- int flags = NPY_ARRAY_CARRAY | NPY_ARRAY_UPDATEIFCOPY;
276
-
277
- if (clipmode == NPY_RAISE) {
278
- flags |= NPY_ARRAY_ENSURECOPY;
279
- }
280
- Py_INCREF(PyArray_DESCR(self));
281
- obj = (PyArrayObject *)PyArray_FromArray(self,
282
- PyArray_DESCR(self), flags);
283
- if (obj != self) {
284
- copied = 1;
285
- }
286
- self = obj;
287
- }
288
- max_item = PyArray_SIZE(self);
289
- dest = PyArray_DATA(self);
290
- chunk = PyArray_DESCR(self)->elsize;
291
- indices = (PyArrayObject *)PyArray_ContiguousFromAny(indices0,
292
- NPY_INTP, 0, 0);
293
- if (indices == NULL) {
294
- goto fail;
295
- }
296
- ni = PyArray_SIZE(indices);
297
- Py_INCREF(PyArray_DESCR(self));
298
- values = (PyArrayObject *)PyArray_FromAny(values0, PyArray_DESCR(self), 0, 0,
299
- NPY_ARRAY_DEFAULT | NPY_ARRAY_FORCECAST, NULL);
300
- if (values == NULL) {
301
- goto fail;
302
- }
303
- nv = PyArray_SIZE(values);
304
- if (nv <= 0) {
305
- goto finish;
306
- }
307
- if (PyDataType_REFCHK(PyArray_DESCR(self))) {
308
- switch(clipmode) {
309
- case NPY_RAISE:
310
- for (i = 0; i < ni; i++) {
311
- src = PyArray_BYTES(values) + chunk*(i % nv);
312
- tmp = ((npy_intp *)(PyArray_DATA(indices)))[i];
313
- if (check_and_adjust_index(&tmp, max_item, 0, NULL) < 0) {
314
- goto fail;
315
- }
316
- PyArray_Item_INCREF(src, PyArray_DESCR(self));
317
- PyArray_Item_XDECREF(dest+tmp*chunk, PyArray_DESCR(self));
318
- memmove(dest + tmp*chunk, src, chunk);
319
- }
320
- break;
321
- case NPY_WRAP:
322
- for (i = 0; i < ni; i++) {
323
- src = PyArray_BYTES(values) + chunk * (i % nv);
324
- tmp = ((npy_intp *)(PyArray_DATA(indices)))[i];
325
- if (tmp < 0) {
326
- while (tmp < 0) {
327
- tmp += max_item;
328
- }
329
- }
330
- else if (tmp >= max_item) {
331
- while (tmp >= max_item) {
332
- tmp -= max_item;
333
- }
334
- }
335
- PyArray_Item_INCREF(src, PyArray_DESCR(self));
336
- PyArray_Item_XDECREF(dest+tmp*chunk, PyArray_DESCR(self));
337
- memmove(dest + tmp * chunk, src, chunk);
338
- }
339
- break;
340
- case NPY_CLIP:
341
- for (i = 0; i < ni; i++) {
342
- src = PyArray_BYTES(values) + chunk * (i % nv);
343
- tmp = ((npy_intp *)(PyArray_DATA(indices)))[i];
344
- if (tmp < 0) {
345
- tmp = 0;
346
- }
347
- else if (tmp >= max_item) {
348
- tmp = max_item - 1;
349
- }
350
- PyArray_Item_INCREF(src, PyArray_DESCR(self));
351
- PyArray_Item_XDECREF(dest+tmp*chunk, PyArray_DESCR(self));
352
- memmove(dest + tmp * chunk, src, chunk);
353
- }
354
- break;
355
- }
356
- }
357
- else {
358
- NPY_BEGIN_THREADS_DEF;
359
- NPY_BEGIN_THREADS_THRESHOLDED(ni);
360
- switch(clipmode) {
361
- case NPY_RAISE:
362
- for (i = 0; i < ni; i++) {
363
- src = PyArray_BYTES(values) + chunk * (i % nv);
364
- tmp = ((npy_intp *)(PyArray_DATA(indices)))[i];
365
- if (check_and_adjust_index(&tmp, max_item, 0, _save) < 0) {
366
- goto fail;
367
- }
368
- memmove(dest + tmp * chunk, src, chunk);
369
- }
370
- break;
371
- case NPY_WRAP:
372
- for (i = 0; i < ni; i++) {
373
- src = PyArray_BYTES(values) + chunk * (i % nv);
374
- tmp = ((npy_intp *)(PyArray_DATA(indices)))[i];
375
- if (tmp < 0) {
376
- while (tmp < 0) {
377
- tmp += max_item;
378
- }
379
- }
380
- else if (tmp >= max_item) {
381
- while (tmp >= max_item) {
382
- tmp -= max_item;
383
- }
384
- }
385
- memmove(dest + tmp * chunk, src, chunk);
386
- }
387
- break;
388
- case NPY_CLIP:
389
- for (i = 0; i < ni; i++) {
390
- src = PyArray_BYTES(values) + chunk * (i % nv);
391
- tmp = ((npy_intp *)(PyArray_DATA(indices)))[i];
392
- if (tmp < 0) {
393
- tmp = 0;
394
- }
395
- else if (tmp >= max_item) {
396
- tmp = max_item - 1;
397
- }
398
- memmove(dest + tmp * chunk, src, chunk);
399
- }
400
- break;
401
- }
402
- NPY_END_THREADS;
403
- }
404
-
405
- finish:
406
- Py_XDECREF(values);
407
- Py_XDECREF(indices);
408
- if (copied) {
409
- Py_DECREF(self);
410
- }
411
- Py_INCREF(Py_None);
412
- return Py_None;
413
-
414
- fail:
415
- Py_XDECREF(indices);
416
- Py_XDECREF(values);
417
- if (copied) {
418
- PyArray_XDECREF_ERR(self);
419
- }
420
- return NULL;
421
- }
422
-
423
- /*NUMPY_API
424
- * Put values into an array according to a mask.
425
- */
426
- NPY_NO_EXPORT PyObject *
427
- PyArray_PutMask(PyArrayObject *self, PyObject* values0, PyObject* mask0)
428
- {
429
- PyArray_FastPutmaskFunc *func;
430
- PyArrayObject *mask, *values;
431
- PyArray_Descr *dtype;
432
- npy_intp i, chunk, ni, max_item, nv, tmp;
433
- char *src, *dest;
434
- int copied = 0;
435
-
436
- mask = NULL;
437
- values = NULL;
438
- if (!PyArray_Check(self)) {
439
- PyErr_SetString(PyExc_TypeError,
440
- "putmask: first argument must "
441
- "be an array");
442
- return NULL;
443
- }
444
- if (!PyArray_ISCONTIGUOUS(self)) {
445
- PyArrayObject *obj;
446
-
447
- dtype = PyArray_DESCR(self);
448
- Py_INCREF(dtype);
449
- obj = (PyArrayObject *)PyArray_FromArray(self, dtype,
450
- NPY_ARRAY_CARRAY | NPY_ARRAY_UPDATEIFCOPY);
451
- if (obj != self) {
452
- copied = 1;
453
- }
454
- self = obj;
455
- }
456
-
457
- max_item = PyArray_SIZE(self);
458
- dest = PyArray_DATA(self);
459
- chunk = PyArray_DESCR(self)->elsize;
460
- mask = (PyArrayObject *)PyArray_FROM_OTF(mask0, NPY_BOOL,
461
- NPY_ARRAY_CARRAY | NPY_ARRAY_FORCECAST);
462
- if (mask == NULL) {
463
- goto fail;
464
- }
465
- ni = PyArray_SIZE(mask);
466
- if (ni != max_item) {
467
- PyErr_SetString(PyExc_ValueError,
468
- "putmask: mask and data must be "
469
- "the same size");
470
- goto fail;
471
- }
472
- dtype = PyArray_DESCR(self);
473
- Py_INCREF(dtype);
474
- values = (PyArrayObject *)PyArray_FromAny(values0, dtype,
475
- 0, 0, NPY_ARRAY_CARRAY, NULL);
476
- if (values == NULL) {
477
- goto fail;
478
- }
479
- nv = PyArray_SIZE(values); /* zero if null array */
480
- if (nv <= 0) {
481
- Py_XDECREF(values);
482
- Py_XDECREF(mask);
483
- Py_INCREF(Py_None);
484
- return Py_None;
485
- }
486
- if (PyDataType_REFCHK(PyArray_DESCR(self))) {
487
- for (i = 0; i < ni; i++) {
488
- tmp = ((npy_bool *)(PyArray_DATA(mask)))[i];
489
- if (tmp) {
490
- src = PyArray_BYTES(values) + chunk * (i % nv);
491
- PyArray_Item_INCREF(src, PyArray_DESCR(self));
492
- PyArray_Item_XDECREF(dest+i*chunk, PyArray_DESCR(self));
493
- memmove(dest + i * chunk, src, chunk);
494
- }
495
- }
496
- }
497
- else {
498
- NPY_BEGIN_THREADS_DEF;
499
- NPY_BEGIN_THREADS_DESCR(PyArray_DESCR(self));
500
- func = PyArray_DESCR(self)->f->fastputmask;
501
- if (func == NULL) {
502
- for (i = 0; i < ni; i++) {
503
- tmp = ((npy_bool *)(PyArray_DATA(mask)))[i];
504
- if (tmp) {
505
- src = PyArray_BYTES(values) + chunk*(i % nv);
506
- memmove(dest + i*chunk, src, chunk);
507
- }
508
- }
509
- }
510
- else {
511
- func(dest, PyArray_DATA(mask), ni, PyArray_DATA(values), nv);
512
- }
513
- NPY_END_THREADS;
514
- }
515
-
516
- Py_XDECREF(values);
517
- Py_XDECREF(mask);
518
- if (copied) {
519
- Py_DECREF(self);
520
- }
521
- Py_INCREF(Py_None);
522
- return Py_None;
523
-
524
- fail:
525
- Py_XDECREF(mask);
526
- Py_XDECREF(values);
527
- if (copied) {
528
- PyArray_XDECREF_ERR(self);
529
- }
530
- return NULL;
531
- }
532
-
533
- /*NUMPY_API
534
- * Repeat the array.
535
- */
536
- NPY_NO_EXPORT PyObject *
537
- PyArray_Repeat(PyArrayObject *aop, PyObject *op, int axis)
538
- {
539
- npy_intp *counts;
540
- npy_intp n, n_outer, i, j, k, chunk, total;
541
- npy_intp tmp;
542
- int nd;
543
- PyArrayObject *repeats = NULL;
544
- PyObject *ap = NULL;
545
- PyArrayObject *ret = NULL;
546
- char *new_data, *old_data;
547
-
548
- repeats = (PyArrayObject *)PyArray_ContiguousFromAny(op, NPY_INTP, 0, 1);
549
- if (repeats == NULL) {
550
- return NULL;
551
- }
552
- nd = PyArray_NDIM(repeats);
553
- counts = (npy_intp *)PyArray_DATA(repeats);
554
-
555
- if ((ap=PyArray_CheckAxis(aop, &axis, NPY_ARRAY_CARRAY))==NULL) {
556
- Py_DECREF(repeats);
557
- return NULL;
558
- }
559
-
560
- aop = (PyArrayObject *)ap;
561
- if (nd == 1) {
562
- n = PyArray_DIMS(repeats)[0];
563
- }
564
- else {
565
- /* nd == 0 */
566
- n = PyArray_DIMS(aop)[axis];
567
- }
568
- if (PyArray_DIMS(aop)[axis] != n) {
569
- PyErr_SetString(PyExc_ValueError,
570
- "a.shape[axis] != len(repeats)");
571
- goto fail;
572
- }
573
-
574
- if (nd == 0) {
575
- total = counts[0]*n;
576
- }
577
- else {
578
-
579
- total = 0;
580
- for (j = 0; j < n; j++) {
581
- if (counts[j] < 0) {
582
- PyErr_SetString(PyExc_ValueError, "count < 0");
583
- goto fail;
584
- }
585
- total += counts[j];
586
- }
587
- }
588
-
589
-
590
- /* Construct new array */
591
- PyArray_DIMS(aop)[axis] = total;
592
- Py_INCREF(PyArray_DESCR(aop));
593
- ret = (PyArrayObject *)PyArray_NewFromDescr(Py_TYPE(aop),
594
- PyArray_DESCR(aop),
595
- PyArray_NDIM(aop),
596
- PyArray_DIMS(aop),
597
- NULL, NULL, 0,
598
- (PyObject *)aop);
599
- PyArray_DIMS(aop)[axis] = n;
600
- if (ret == NULL) {
601
- goto fail;
602
- }
603
- new_data = PyArray_DATA(ret);
604
- old_data = PyArray_DATA(aop);
605
-
606
- chunk = PyArray_DESCR(aop)->elsize;
607
- for(i = axis + 1; i < PyArray_NDIM(aop); i++) {
608
- chunk *= PyArray_DIMS(aop)[i];
609
- }
610
-
611
- n_outer = 1;
612
- for (i = 0; i < axis; i++) {
613
- n_outer *= PyArray_DIMS(aop)[i];
614
- }
615
- for (i = 0; i < n_outer; i++) {
616
- for (j = 0; j < n; j++) {
617
- tmp = nd ? counts[j] : counts[0];
618
- for (k = 0; k < tmp; k++) {
619
- memcpy(new_data, old_data, chunk);
620
- new_data += chunk;
621
- }
622
- old_data += chunk;
623
- }
624
- }
625
-
626
- Py_DECREF(repeats);
627
- PyArray_INCREF(ret);
628
- Py_XDECREF(aop);
629
- return (PyObject *)ret;
630
-
631
- fail:
632
- Py_DECREF(repeats);
633
- Py_XDECREF(aop);
634
- Py_XDECREF(ret);
635
- return NULL;
636
- }
637
-
638
- /*NUMPY_API
639
- */
640
- NPY_NO_EXPORT PyObject *
641
- PyArray_Choose(PyArrayObject *ip, PyObject *op, PyArrayObject *out,
642
- NPY_CLIPMODE clipmode)
643
- {
644
- PyArrayObject *obj = NULL;
645
- PyArray_Descr *dtype;
646
- int n, elsize;
647
- npy_intp i;
648
- char *ret_data;
649
- PyArrayObject **mps, *ap;
650
- PyArrayMultiIterObject *multi = NULL;
651
- npy_intp mi;
652
- ap = NULL;
653
-
654
- /*
655
- * Convert all inputs to arrays of a common type
656
- * Also makes them C-contiguous
657
- */
658
- mps = PyArray_ConvertToCommonType(op, &n);
659
- if (mps == NULL) {
660
- return NULL;
661
- }
662
- for (i = 0; i < n; i++) {
663
- if (mps[i] == NULL) {
664
- goto fail;
665
- }
666
- }
667
- ap = (PyArrayObject *)PyArray_FROM_OT((PyObject *)ip, NPY_INTP);
668
- if (ap == NULL) {
669
- goto fail;
670
- }
671
- /* Broadcast all arrays to each other, index array at the end. */
672
- multi = (PyArrayMultiIterObject *)
673
- PyArray_MultiIterFromObjects((PyObject **)mps, n, 1, ap);
674
- if (multi == NULL) {
675
- goto fail;
676
- }
677
- /* Set-up return array */
678
- if (out == NULL) {
679
- dtype = PyArray_DESCR(mps[0]);
680
- Py_INCREF(dtype);
681
- obj = (PyArrayObject *)PyArray_NewFromDescr(Py_TYPE(ap),
682
- dtype,
683
- multi->nd,
684
- multi->dimensions,
685
- NULL, NULL, 0,
686
- (PyObject *)ap);
687
- }
688
- else {
689
- int flags = NPY_ARRAY_CARRAY |
690
- NPY_ARRAY_UPDATEIFCOPY |
691
- NPY_ARRAY_FORCECAST;
692
-
693
- if ((PyArray_NDIM(out) != multi->nd)
694
- || !PyArray_CompareLists(PyArray_DIMS(out),
695
- multi->dimensions,
696
- multi->nd)) {
697
- PyErr_SetString(PyExc_TypeError,
698
- "choose: invalid shape for output array.");
699
- goto fail;
700
- }
701
- if (clipmode == NPY_RAISE) {
702
- /*
703
- * we need to make sure and get a copy
704
- * so the input array is not changed
705
- * before the error is called
706
- */
707
- flags |= NPY_ARRAY_ENSURECOPY;
708
- }
709
- dtype = PyArray_DESCR(mps[0]);
710
- Py_INCREF(dtype);
711
- obj = (PyArrayObject *)PyArray_FromArray(out, dtype, flags);
712
- }
713
-
714
- if (obj == NULL) {
715
- goto fail;
716
- }
717
- elsize = PyArray_DESCR(obj)->elsize;
718
- ret_data = PyArray_DATA(obj);
719
-
720
- while (PyArray_MultiIter_NOTDONE(multi)) {
721
- mi = *((npy_intp *)PyArray_MultiIter_DATA(multi, n));
722
- if (mi < 0 || mi >= n) {
723
- switch(clipmode) {
724
- case NPY_RAISE:
725
- PyErr_SetString(PyExc_ValueError,
726
- "invalid entry in choice "\
727
- "array");
728
- goto fail;
729
- case NPY_WRAP:
730
- if (mi < 0) {
731
- while (mi < 0) {
732
- mi += n;
733
- }
734
- }
735
- else {
736
- while (mi >= n) {
737
- mi -= n;
738
- }
739
- }
740
- break;
741
- case NPY_CLIP:
742
- if (mi < 0) {
743
- mi = 0;
744
- }
745
- else if (mi >= n) {
746
- mi = n - 1;
747
- }
748
- break;
749
- }
750
- }
751
- memmove(ret_data, PyArray_MultiIter_DATA(multi, mi), elsize);
752
- ret_data += elsize;
753
- PyArray_MultiIter_NEXT(multi);
754
- }
755
-
756
- PyArray_INCREF(obj);
757
- Py_DECREF(multi);
758
- for (i = 0; i < n; i++) {
759
- Py_XDECREF(mps[i]);
760
- }
761
- Py_DECREF(ap);
762
- PyDataMem_FREE(mps);
763
- if (out != NULL && out != obj) {
764
- Py_INCREF(out);
765
- Py_DECREF(obj);
766
- obj = out;
767
- }
768
- return (PyObject *)obj;
769
-
770
- fail:
771
- Py_XDECREF(multi);
772
- for (i = 0; i < n; i++) {
773
- Py_XDECREF(mps[i]);
774
- }
775
- Py_XDECREF(ap);
776
- PyDataMem_FREE(mps);
777
- PyArray_XDECREF_ERR(obj);
778
- return NULL;
779
- }
780
-
781
- /*
782
- * These algorithms use special sorting. They are not called unless the
783
- * underlying sort function for the type is available. Note that axis is
784
- * already valid. The sort functions require 1-d contiguous and well-behaved
785
- * data. Therefore, a copy will be made of the data if needed before handing
786
- * it to the sorting routine. An iterator is constructed and adjusted to walk
787
- * over all but the desired sorting axis.
788
- */
789
- static int
790
- _new_sortlike(PyArrayObject *op, int axis,
791
- NPY_SORTKIND swhich,
792
- PyArray_PartitionFunc * part,
793
- NPY_SELECTKIND pwhich,
794
- npy_intp * kth, npy_intp nkth)
795
- {
796
- PyArrayIterObject *it;
797
- int needcopy = 0, swap;
798
- npy_intp N, size;
799
- int elsize;
800
- npy_intp astride;
801
- PyArray_SortFunc *sort = NULL;
802
-
803
- NPY_BEGIN_THREADS_DEF;
804
-
805
- it = (PyArrayIterObject *)PyArray_IterAllButAxis((PyObject *)op, &axis);
806
- swap = !PyArray_ISNOTSWAPPED(op);
807
- if (it == NULL) {
808
- return -1;
809
- }
810
-
811
- NPY_BEGIN_THREADS_DESCR(PyArray_DESCR(op));
812
- if (part == NULL) {
813
- sort = PyArray_DESCR(op)->f->sort[swhich];
814
- }
815
-
816
- size = it->size;
817
- N = PyArray_DIMS(op)[axis];
818
- elsize = PyArray_DESCR(op)->elsize;
819
- astride = PyArray_STRIDES(op)[axis];
820
-
821
- needcopy = !(PyArray_FLAGS(op) & NPY_ARRAY_ALIGNED) ||
822
- (astride != (npy_intp) elsize) || swap;
823
- if (needcopy) {
824
- char *buffer = PyDataMem_NEW(N*elsize);
825
- if (buffer == NULL) {
826
- goto fail;
827
- }
828
-
829
- while (size--) {
830
- _unaligned_strided_byte_copy(buffer, (npy_intp) elsize, it->dataptr,
831
- astride, N, elsize);
832
- if (swap) {
833
- _strided_byte_swap(buffer, (npy_intp) elsize, N, elsize);
834
- }
835
- if (part == NULL) {
836
- if (sort(buffer, N, op) < 0) {
837
- PyDataMem_FREE(buffer);
838
- goto fail;
839
- }
840
- }
841
- else {
842
- npy_intp pivots[NPY_MAX_PIVOT_STACK];
843
- npy_intp npiv = 0;
844
- npy_intp i;
845
- for (i = 0; i < nkth; i++) {
846
- if (part(buffer, N, kth[i], pivots, &npiv, op) < 0) {
847
- PyDataMem_FREE(buffer);
848
- goto fail;
849
- }
850
- }
851
- }
852
- if (swap) {
853
- _strided_byte_swap(buffer, (npy_intp) elsize, N, elsize);
854
- }
855
- _unaligned_strided_byte_copy(it->dataptr, astride, buffer,
856
- (npy_intp) elsize, N, elsize);
857
- PyArray_ITER_NEXT(it);
858
- }
859
- PyDataMem_FREE(buffer);
860
- }
861
- else {
862
- while (size--) {
863
- if (part == NULL) {
864
- if (sort(it->dataptr, N, op) < 0) {
865
- goto fail;
866
- }
867
- }
868
- else {
869
- npy_intp pivots[NPY_MAX_PIVOT_STACK];
870
- npy_intp npiv = 0;
871
- npy_intp i;
872
- for (i = 0; i < nkth; i++) {
873
- if (part(it->dataptr, N, kth[i], pivots, &npiv, op) < 0) {
874
- goto fail;
875
- }
876
- }
877
- }
878
- PyArray_ITER_NEXT(it);
879
- }
880
- }
881
- NPY_END_THREADS_DESCR(PyArray_DESCR(op));
882
- Py_DECREF(it);
883
- return 0;
884
-
885
- fail:
886
- /* Out of memory during sorting or buffer creation */
887
- NPY_END_THREADS;
888
- PyErr_NoMemory();
889
- Py_DECREF(it);
890
- return -1;
891
- }
892
-
893
- static PyObject*
894
- _new_argsortlike(PyArrayObject *op, int axis,
895
- NPY_SORTKIND swhich,
896
- PyArray_ArgPartitionFunc * argpart,
897
- NPY_SELECTKIND pwhich,
898
- npy_intp * kth, npy_intp nkth)
899
- {
900
-
901
- PyArrayIterObject *it = NULL;
902
- PyArrayIterObject *rit = NULL;
903
- PyArrayObject *ret;
904
- npy_intp N, size, i;
905
- npy_intp astride, rstride, *iptr;
906
- int elsize;
907
- int needcopy = 0, swap;
908
- PyArray_ArgSortFunc *argsort = NULL;
909
-
910
- NPY_BEGIN_THREADS_DEF;
911
-
912
- ret = (PyArrayObject *)PyArray_New(Py_TYPE(op),
913
- PyArray_NDIM(op),
914
- PyArray_DIMS(op),
915
- NPY_INTP,
916
- NULL, NULL, 0, 0, (PyObject *)op);
917
- if (ret == NULL) {
918
- return NULL;
919
- }
920
- it = (PyArrayIterObject *)PyArray_IterAllButAxis((PyObject *)op, &axis);
921
- rit = (PyArrayIterObject *)PyArray_IterAllButAxis((PyObject *)ret, &axis);
922
- if (rit == NULL || it == NULL) {
923
- goto fail;
924
- }
925
- swap = !PyArray_ISNOTSWAPPED(op);
926
-
927
- NPY_BEGIN_THREADS_DESCR(PyArray_DESCR(op));
928
- if (argpart == NULL) {
929
- argsort = PyArray_DESCR(op)->f->argsort[swhich];
930
- }
931
- else {
932
- argpart = get_argpartition_func(PyArray_TYPE(op), pwhich);
933
- }
934
- size = it->size;
935
- N = PyArray_DIMS(op)[axis];
936
- elsize = PyArray_DESCR(op)->elsize;
937
- astride = PyArray_STRIDES(op)[axis];
938
- rstride = PyArray_STRIDE(ret,axis);
939
-
940
- needcopy = swap || !(PyArray_FLAGS(op) & NPY_ARRAY_ALIGNED) ||
941
- (astride != (npy_intp) elsize) ||
942
- (rstride != sizeof(npy_intp));
943
- if (needcopy) {
944
- char *valbuffer, *indbuffer;
945
-
946
- valbuffer = PyDataMem_NEW(N*elsize);
947
- if (valbuffer == NULL) {
948
- goto fail;
949
- }
950
- indbuffer = PyDataMem_NEW(N*sizeof(npy_intp));
951
- if (indbuffer == NULL) {
952
- PyDataMem_FREE(valbuffer);
953
- goto fail;
954
- }
955
- while (size--) {
956
- _unaligned_strided_byte_copy(valbuffer, (npy_intp) elsize, it->dataptr,
957
- astride, N, elsize);
958
- if (swap) {
959
- _strided_byte_swap(valbuffer, (npy_intp) elsize, N, elsize);
960
- }
961
- iptr = (npy_intp *)indbuffer;
962
- for (i = 0; i < N; i++) {
963
- *iptr++ = i;
964
- }
965
- if (argpart == NULL) {
966
- if (argsort(valbuffer, (npy_intp *)indbuffer, N, op) < 0) {
967
- PyDataMem_FREE(valbuffer);
968
- PyDataMem_FREE(indbuffer);
969
- goto fail;
970
- }
971
- }
972
- else {
973
- npy_intp pivots[NPY_MAX_PIVOT_STACK];
974
- npy_intp npiv = 0;
975
- npy_intp i;
976
- for (i = 0; i < nkth; i++) {
977
- if (argpart(valbuffer, (npy_intp *)indbuffer,
978
- N, kth[i], pivots, &npiv, op) < 0) {
979
- PyDataMem_FREE(valbuffer);
980
- PyDataMem_FREE(indbuffer);
981
- goto fail;
982
- }
983
- }
984
- }
985
- _unaligned_strided_byte_copy(rit->dataptr, rstride, indbuffer,
986
- sizeof(npy_intp), N, sizeof(npy_intp));
987
- PyArray_ITER_NEXT(it);
988
- PyArray_ITER_NEXT(rit);
989
- }
990
- PyDataMem_FREE(valbuffer);
991
- PyDataMem_FREE(indbuffer);
992
- }
993
- else {
994
- while (size--) {
995
- iptr = (npy_intp *)rit->dataptr;
996
- for (i = 0; i < N; i++) {
997
- *iptr++ = i;
998
- }
999
- if (argpart == NULL) {
1000
- if (argsort(it->dataptr, (npy_intp *)rit->dataptr,
1001
- N, op) < 0) {
1002
- goto fail;
1003
- }
1004
- }
1005
- else {
1006
- npy_intp pivots[NPY_MAX_PIVOT_STACK];
1007
- npy_intp npiv = 0;
1008
- npy_intp i;
1009
- for (i = 0; i < nkth; i++) {
1010
- if (argpart(it->dataptr, (npy_intp *)rit->dataptr,
1011
- N, kth[i], pivots, &npiv, op) < 0) {
1012
- goto fail;
1013
- }
1014
- }
1015
- }
1016
- PyArray_ITER_NEXT(it);
1017
- PyArray_ITER_NEXT(rit);
1018
- }
1019
- }
1020
-
1021
- NPY_END_THREADS_DESCR(PyArray_DESCR(op));
1022
-
1023
- Py_DECREF(it);
1024
- Py_DECREF(rit);
1025
- return (PyObject *)ret;
1026
-
1027
- fail:
1028
- NPY_END_THREADS;
1029
- if (!PyErr_Occurred()) {
1030
- /* Out of memory during sorting or buffer creation */
1031
- PyErr_NoMemory();
1032
- }
1033
- Py_DECREF(ret);
1034
- Py_XDECREF(it);
1035
- Py_XDECREF(rit);
1036
- return NULL;
1037
- }
1038
-
1039
- /* Be sure to save this global_compare when necessary */
1040
- static PyArrayObject *global_obj;
1041
-
1042
- static int
1043
- sortCompare (const void *a, const void *b)
1044
- {
1045
- return PyArray_DESCR(global_obj)->f->compare(a,b,global_obj);
1046
- }
1047
-
1048
- /*
1049
- * Consumes reference to ap (op gets it) op contains a version of
1050
- * the array with axes swapped if local variable axis is not the
1051
- * last dimension. Origin must be defined locally.
1052
- */
1053
- #define SWAPAXES(op, ap) { \
1054
- orign = PyArray_NDIM(ap)-1; \
1055
- if (axis != orign) { \
1056
- (op) = (PyArrayObject *)PyArray_SwapAxes((ap), axis, orign); \
1057
- Py_DECREF((ap)); \
1058
- if ((op) == NULL) return NULL; \
1059
- } \
1060
- else (op) = (ap); \
1061
- }
1062
-
1063
- /*
1064
- * Consumes reference to ap (op gets it) origin must be previously
1065
- * defined locally. SWAPAXES must have been called previously.
1066
- * op contains the swapped version of the array.
1067
- */
1068
- #define SWAPBACK(op, ap) { \
1069
- if (axis != orign) { \
1070
- (op) = (PyArrayObject *)PyArray_SwapAxes((ap), axis, orign); \
1071
- Py_DECREF((ap)); \
1072
- if ((op) == NULL) return NULL; \
1073
- } \
1074
- else (op) = (ap); \
1075
- }
1076
-
1077
- /* These swap axes in-place if necessary */
1078
- #define SWAPINTP(a,b) {npy_intp c; c=(a); (a) = (b); (b) = c;}
1079
- #define SWAPAXES2(ap) { \
1080
- orign = PyArray_NDIM(ap)-1; \
1081
- if (axis != orign) { \
1082
- SWAPINTP(PyArray_DIMS(ap)[axis], PyArray_DIMS(ap)[orign]); \
1083
- SWAPINTP(PyArray_STRIDES(ap)[axis], PyArray_STRIDES(ap)[orign]); \
1084
- PyArray_UpdateFlags(ap, NPY_ARRAY_C_CONTIGUOUS | \
1085
- NPY_ARRAY_F_CONTIGUOUS); \
1086
- } \
1087
- }
1088
-
1089
- #define SWAPBACK2(ap) { \
1090
- if (axis != orign) { \
1091
- SWAPINTP(PyArray_DIMS(ap)[axis], PyArray_DIMS(ap)[orign]); \
1092
- SWAPINTP(PyArray_STRIDES(ap)[axis], PyArray_STRIDES(ap)[orign]); \
1093
- PyArray_UpdateFlags(ap, NPY_ARRAY_C_CONTIGUOUS | \
1094
- NPY_ARRAY_F_CONTIGUOUS); \
1095
- } \
1096
- }
1097
-
1098
- /*NUMPY_API
1099
- * Sort an array in-place
1100
- */
1101
- NPY_NO_EXPORT int
1102
- PyArray_Sort(PyArrayObject *op, int axis, NPY_SORTKIND which)
1103
- {
1104
- PyArrayObject *ap = NULL, *store_arr = NULL;
1105
- char *ip;
1106
- npy_intp i, n, m;
1107
- int elsize, orign;
1108
- int res = 0;
1109
- int axis_orig = axis;
1110
- int (*sort)(void *, size_t, size_t, npy_comparator);
1111
-
1112
- n = PyArray_NDIM(op);
1113
- if ((n == 0) || (PyArray_SIZE(op) == 1)) {
1114
- return 0;
1115
- }
1116
- if (axis < 0) {
1117
- axis += n;
1118
- }
1119
- if ((axis < 0) || (axis >= n)) {
1120
- PyErr_Format(PyExc_ValueError, "axis(=%d) out of bounds", axis_orig);
1121
- return -1;
1122
- }
1123
- if (PyArray_FailUnlessWriteable(op, "sort array") < 0) {
1124
- return -1;
1125
- }
1126
-
1127
- /* Determine if we should use type-specific algorithm or not */
1128
- if (PyArray_DESCR(op)->f->sort[which] != NULL) {
1129
- return _new_sortlike(op, axis, which, NULL, 0, NULL, 0);
1130
- }
1131
-
1132
- if (PyArray_DESCR(op)->f->compare == NULL) {
1133
- PyErr_SetString(PyExc_TypeError,
1134
- "type does not have compare function");
1135
- return -1;
1136
- }
1137
-
1138
- SWAPAXES2(op);
1139
-
1140
- switch (which) {
1141
- case NPY_QUICKSORT :
1142
- sort = npy_quicksort;
1143
- break;
1144
- case NPY_HEAPSORT :
1145
- sort = npy_heapsort;
1146
- break;
1147
- case NPY_MERGESORT :
1148
- sort = npy_mergesort;
1149
- break;
1150
- default:
1151
- PyErr_SetString(PyExc_TypeError,
1152
- "requested sort kind is not supported");
1153
- goto fail;
1154
- }
1155
-
1156
- ap = (PyArrayObject *)PyArray_FromAny((PyObject *)op,
1157
- NULL, 1, 0,
1158
- NPY_ARRAY_DEFAULT | NPY_ARRAY_UPDATEIFCOPY, NULL);
1159
- if (ap == NULL) {
1160
- goto fail;
1161
- }
1162
- elsize = PyArray_DESCR(ap)->elsize;
1163
- m = PyArray_DIMS(ap)[PyArray_NDIM(ap)-1];
1164
- if (m == 0) {
1165
- goto finish;
1166
- }
1167
- n = PyArray_SIZE(ap)/m;
1168
-
1169
- /* Store global -- allows re-entry -- restore before leaving*/
1170
- store_arr = global_obj;
1171
- global_obj = ap;
1172
- for (ip = PyArray_DATA(ap), i = 0; i < n; i++, ip += elsize*m) {
1173
- res = sort(ip, m, elsize, sortCompare);
1174
- if (res < 0) {
1175
- break;
1176
- }
1177
- }
1178
- global_obj = store_arr;
1179
-
1180
- if (PyErr_Occurred()) {
1181
- goto fail;
1182
- }
1183
- else if (res == -NPY_ENOMEM) {
1184
- PyErr_NoMemory();
1185
- goto fail;
1186
- }
1187
- else if (res == -NPY_ECOMP) {
1188
- PyErr_SetString(PyExc_TypeError,
1189
- "sort comparison failed");
1190
- goto fail;
1191
- }
1192
-
1193
-
1194
- finish:
1195
- Py_DECREF(ap); /* Should update op if needed */
1196
- SWAPBACK2(op);
1197
- return 0;
1198
-
1199
- fail:
1200
- Py_XDECREF(ap);
1201
- SWAPBACK2(op);
1202
- return -1;
1203
- }
1204
-
1205
-
1206
- /*
1207
- * make kth array positive, ravel and sort it
1208
- */
1209
- static PyArrayObject *
1210
- partition_prep_kth_array(PyArrayObject * ktharray,
1211
- PyArrayObject * op,
1212
- int axis)
1213
- {
1214
- const npy_intp * shape = PyArray_SHAPE(op);
1215
- PyArrayObject * kthrvl;
1216
- npy_intp * kth;
1217
- npy_intp nkth, i;
1218
-
1219
- if (!PyArray_CanCastSafely(PyArray_TYPE(ktharray), NPY_INTP)) {
1220
- if (DEPRECATE("Calling partition with a non integer index"
1221
- " will result in an error in the future") < 0) {
1222
- return NULL;
1223
- }
1224
- }
1225
-
1226
- if (PyArray_NDIM(ktharray) > 1) {
1227
- PyErr_Format(PyExc_ValueError, "kth array must have dimension <= 1");
1228
- return NULL;
1229
- }
1230
- kthrvl = (PyArrayObject *)PyArray_Cast(ktharray, NPY_INTP);
1231
-
1232
- if (kthrvl == NULL)
1233
- return NULL;
1234
-
1235
- kth = PyArray_DATA(kthrvl);
1236
- nkth = PyArray_SIZE(kthrvl);
1237
-
1238
- for (i = 0; i < nkth; i++) {
1239
- if (kth[i] < 0) {
1240
- kth[i] += shape[axis];
1241
- }
1242
- if (PyArray_SIZE(op) != 0 && ((kth[i] < 0) || (kth[i] >= shape[axis]))) {
1243
- PyErr_Format(PyExc_ValueError, "kth(=%zd) out of bounds (%zd)",
1244
- kth[i], shape[axis]);
1245
- Py_XDECREF(kthrvl);
1246
- return NULL;
1247
- }
1248
- }
1249
-
1250
- /*
1251
- * sort the array of kths so the partitions will
1252
- * not trample on each other
1253
- */
1254
- PyArray_Sort(kthrvl, -1, NPY_QUICKSORT);
1255
-
1256
- return kthrvl;
1257
- }
1258
-
1259
-
1260
-
1261
- /*NUMPY_API
1262
- * Partition an array in-place
1263
- */
1264
- NPY_NO_EXPORT int
1265
- PyArray_Partition(PyArrayObject *op, PyArrayObject * ktharray, int axis, NPY_SELECTKIND which)
1266
- {
1267
- PyArrayObject *ap = NULL, *store_arr = NULL;
1268
- char *ip;
1269
- npy_intp i, n, m;
1270
- int elsize, orign;
1271
- int res = 0;
1272
- int axis_orig = axis;
1273
- int (*sort)(void *, size_t, size_t, npy_comparator);
1274
- PyArray_PartitionFunc * part = get_partition_func(PyArray_TYPE(op), which);
1275
-
1276
- n = PyArray_NDIM(op);
1277
- if (n == 0) {
1278
- return 0;
1279
- }
1280
- if (axis < 0) {
1281
- axis += n;
1282
- }
1283
- if ((axis < 0) || (axis >= n)) {
1284
- PyErr_Format(PyExc_ValueError, "axis(=%d) out of bounds", axis_orig);
1285
- return -1;
1286
- }
1287
- if (PyArray_FailUnlessWriteable(op, "sort array") < 0) {
1288
- return -1;
1289
- }
1290
-
1291
- if (part) {
1292
- PyArrayObject * kthrvl = partition_prep_kth_array(ktharray, op, axis);
1293
- if (kthrvl == NULL)
1294
- return -1;
1295
-
1296
- res = _new_sortlike(op, axis, 0,
1297
- part, which,
1298
- PyArray_DATA(kthrvl),
1299
- PyArray_SIZE(kthrvl));
1300
- Py_DECREF(kthrvl);
1301
- return res;
1302
- }
1303
-
1304
-
1305
- if (PyArray_DESCR(op)->f->compare == NULL) {
1306
- PyErr_SetString(PyExc_TypeError,
1307
- "type does not have compare function");
1308
- return -1;
1309
- }
1310
-
1311
- SWAPAXES2(op);
1312
-
1313
- /* select not implemented, use quicksort, slower but equivalent */
1314
- switch (which) {
1315
- case NPY_INTROSELECT :
1316
- sort = npy_quicksort;
1317
- break;
1318
- default:
1319
- PyErr_SetString(PyExc_TypeError,
1320
- "requested sort kind is not supported");
1321
- goto fail;
1322
- }
1323
-
1324
- ap = (PyArrayObject *)PyArray_FromAny((PyObject *)op,
1325
- NULL, 1, 0,
1326
- NPY_ARRAY_DEFAULT | NPY_ARRAY_UPDATEIFCOPY, NULL);
1327
- if (ap == NULL) {
1328
- goto fail;
1329
- }
1330
- elsize = PyArray_DESCR(ap)->elsize;
1331
- m = PyArray_DIMS(ap)[PyArray_NDIM(ap)-1];
1332
- if (m == 0) {
1333
- goto finish;
1334
- }
1335
- n = PyArray_SIZE(ap)/m;
1336
-
1337
- /* Store global -- allows re-entry -- restore before leaving*/
1338
- store_arr = global_obj;
1339
- global_obj = ap;
1340
- /* we don't need to care about kth here as we are using a full sort */
1341
- for (ip = PyArray_DATA(ap), i = 0; i < n; i++, ip += elsize*m) {
1342
- res = sort(ip, m, elsize, sortCompare);
1343
- if (res < 0) {
1344
- break;
1345
- }
1346
- }
1347
- global_obj = store_arr;
1348
-
1349
- if (PyErr_Occurred()) {
1350
- goto fail;
1351
- }
1352
- else if (res == -NPY_ENOMEM) {
1353
- PyErr_NoMemory();
1354
- goto fail;
1355
- }
1356
- else if (res == -NPY_ECOMP) {
1357
- PyErr_SetString(PyExc_TypeError,
1358
- "sort comparison failed");
1359
- goto fail;
1360
- }
1361
-
1362
-
1363
- finish:
1364
- Py_DECREF(ap); /* Should update op if needed */
1365
- SWAPBACK2(op);
1366
- return 0;
1367
-
1368
- fail:
1369
- Py_XDECREF(ap);
1370
- SWAPBACK2(op);
1371
- return -1;
1372
- }
1373
-
1374
-
1375
- static char *global_data;
1376
-
1377
- static int
1378
- argsort_static_compare(const void *ip1, const void *ip2)
1379
- {
1380
- int isize = PyArray_DESCR(global_obj)->elsize;
1381
- const npy_intp *ipa = ip1;
1382
- const npy_intp *ipb = ip2;
1383
- return PyArray_DESCR(global_obj)->f->compare(global_data + (isize * *ipa),
1384
- global_data + (isize * *ipb),
1385
- global_obj);
1386
- }
1387
-
1388
- /*NUMPY_API
1389
- * ArgSort an array
1390
- */
1391
- NPY_NO_EXPORT PyObject *
1392
- PyArray_ArgSort(PyArrayObject *op, int axis, NPY_SORTKIND which)
1393
- {
1394
- PyArrayObject *ap = NULL, *ret = NULL, *store, *op2;
1395
- npy_intp *ip;
1396
- npy_intp i, j, n, m, orign;
1397
- int argsort_elsize;
1398
- char *store_ptr;
1399
- int res = 0;
1400
- int (*sort)(void *, size_t, size_t, npy_comparator);
1401
-
1402
- n = PyArray_NDIM(op);
1403
- if ((n == 0) || (PyArray_SIZE(op) == 1)) {
1404
- ret = (PyArrayObject *)PyArray_New(Py_TYPE(op), PyArray_NDIM(op),
1405
- PyArray_DIMS(op),
1406
- NPY_INTP,
1407
- NULL, NULL, 0, 0,
1408
- (PyObject *)op);
1409
- if (ret == NULL) {
1410
- return NULL;
1411
- }
1412
- *((npy_intp *)PyArray_DATA(ret)) = 0;
1413
- return (PyObject *)ret;
1414
- }
1415
-
1416
- /* Creates new reference op2 */
1417
- if ((op2=(PyArrayObject *)PyArray_CheckAxis(op, &axis, 0)) == NULL) {
1418
- return NULL;
1419
- }
1420
- /* Determine if we should use new algorithm or not */
1421
- if (PyArray_DESCR(op2)->f->argsort[which] != NULL) {
1422
- ret = (PyArrayObject *)_new_argsortlike(op2, axis, which,
1423
- NULL, 0, NULL, 0);
1424
- Py_DECREF(op2);
1425
- return (PyObject *)ret;
1426
- }
1427
-
1428
- if (PyArray_DESCR(op2)->f->compare == NULL) {
1429
- PyErr_SetString(PyExc_TypeError,
1430
- "type does not have compare function");
1431
- Py_DECREF(op2);
1432
- op = NULL;
1433
- goto fail;
1434
- }
1435
-
1436
- switch (which) {
1437
- case NPY_QUICKSORT :
1438
- sort = npy_quicksort;
1439
- break;
1440
- case NPY_HEAPSORT :
1441
- sort = npy_heapsort;
1442
- break;
1443
- case NPY_MERGESORT :
1444
- sort = npy_mergesort;
1445
- break;
1446
- default:
1447
- PyErr_SetString(PyExc_TypeError,
1448
- "requested sort kind is not supported");
1449
- Py_DECREF(op2);
1450
- op = NULL;
1451
- goto fail;
1452
- }
1453
-
1454
- /* ap will contain the reference to op2 */
1455
- SWAPAXES(ap, op2);
1456
- op = (PyArrayObject *)PyArray_ContiguousFromAny((PyObject *)ap,
1457
- NPY_NOTYPE,
1458
- 1, 0);
1459
- Py_DECREF(ap);
1460
- if (op == NULL) {
1461
- return NULL;
1462
- }
1463
- ret = (PyArrayObject *)PyArray_New(Py_TYPE(op), PyArray_NDIM(op),
1464
- PyArray_DIMS(op), NPY_INTP,
1465
- NULL, NULL, 0, 0, (PyObject *)op);
1466
- if (ret == NULL) {
1467
- goto fail;
1468
- }
1469
- ip = (npy_intp *)PyArray_DATA(ret);
1470
- argsort_elsize = PyArray_DESCR(op)->elsize;
1471
- m = PyArray_DIMS(op)[PyArray_NDIM(op)-1];
1472
- if (m == 0) {
1473
- goto finish;
1474
- }
1475
- n = PyArray_SIZE(op)/m;
1476
- store_ptr = global_data;
1477
- global_data = PyArray_DATA(op);
1478
- store = global_obj;
1479
- global_obj = op;
1480
- for (i = 0; i < n; i++, ip += m, global_data += m*argsort_elsize) {
1481
- for (j = 0; j < m; j++) {
1482
- ip[j] = j;
1483
- }
1484
- res = sort((char *)ip, m, sizeof(npy_intp), argsort_static_compare);
1485
- if (res < 0) {
1486
- break;
1487
- }
1488
- }
1489
- global_data = store_ptr;
1490
- global_obj = store;
1491
-
1492
- if (PyErr_Occurred()) {
1493
- goto fail;
1494
- }
1495
- else if (res == -NPY_ENOMEM) {
1496
- PyErr_NoMemory();
1497
- goto fail;
1498
- }
1499
- else if (res == -NPY_ECOMP) {
1500
- PyErr_SetString(PyExc_TypeError,
1501
- "sort comparison failed");
1502
- goto fail;
1503
- }
1504
-
1505
- finish:
1506
- Py_DECREF(op);
1507
- SWAPBACK(op, ret);
1508
- return (PyObject *)op;
1509
-
1510
- fail:
1511
- Py_XDECREF(op);
1512
- Py_XDECREF(ret);
1513
- return NULL;
1514
- }
1515
-
1516
-
1517
- /*NUMPY_API
1518
- * ArgPartition an array
1519
- */
1520
- NPY_NO_EXPORT PyObject *
1521
- PyArray_ArgPartition(PyArrayObject *op, PyArrayObject * ktharray, int axis, NPY_SELECTKIND which)
1522
- {
1523
- PyArrayObject *ap = NULL, *ret = NULL, *store, *op2;
1524
- npy_intp *ip;
1525
- npy_intp i, j, n, m, orign;
1526
- int argsort_elsize;
1527
- char *store_ptr;
1528
- int res = 0;
1529
- int (*sort)(void *, size_t, size_t, npy_comparator);
1530
- PyArray_ArgPartitionFunc * argpart =
1531
- get_argpartition_func(PyArray_TYPE(op), which);
1532
-
1533
- n = PyArray_NDIM(op);
1534
- if ((n == 0) || (PyArray_SIZE(op) == 1)) {
1535
- ret = (PyArrayObject *)PyArray_New(Py_TYPE(op), PyArray_NDIM(op),
1536
- PyArray_DIMS(op),
1537
- NPY_INTP,
1538
- NULL, NULL, 0, 0,
1539
- (PyObject *)op);
1540
- if (ret == NULL) {
1541
- return NULL;
1542
- }
1543
- *((npy_intp *)PyArray_DATA(ret)) = 0;
1544
- return (PyObject *)ret;
1545
- }
1546
-
1547
- /* Creates new reference op2 */
1548
- if ((op2=(PyArrayObject *)PyArray_CheckAxis(op, &axis, 0)) == NULL) {
1549
- return NULL;
1550
- }
1551
-
1552
- /* Determine if we should use new algorithm or not */
1553
- if (argpart) {
1554
- PyArrayObject * kthrvl = partition_prep_kth_array(ktharray, op2, axis);
1555
- if (kthrvl == NULL) {
1556
- Py_DECREF(op2);
1557
- return NULL;
1558
- }
1559
-
1560
- ret = (PyArrayObject *)_new_argsortlike(op2, axis, 0,
1561
- argpart, which,
1562
- PyArray_DATA(kthrvl),
1563
- PyArray_SIZE(kthrvl));
1564
- Py_DECREF(kthrvl);
1565
- Py_DECREF(op2);
1566
- return (PyObject *)ret;
1567
- }
1568
-
1569
- if (PyArray_DESCR(op2)->f->compare == NULL) {
1570
- PyErr_SetString(PyExc_TypeError,
1571
- "type does not have compare function");
1572
- Py_DECREF(op2);
1573
- op = NULL;
1574
- goto fail;
1575
- }
1576
-
1577
- /* select not implemented, use quicksort, slower but equivalent */
1578
- switch (which) {
1579
- case NPY_INTROSELECT :
1580
- sort = npy_quicksort;
1581
- break;
1582
- default:
1583
- PyErr_SetString(PyExc_TypeError,
1584
- "requested sort kind is not supported");
1585
- Py_DECREF(op2);
1586
- op = NULL;
1587
- goto fail;
1588
- }
1589
-
1590
- /* ap will contain the reference to op2 */
1591
- SWAPAXES(ap, op2);
1592
- op = (PyArrayObject *)PyArray_ContiguousFromAny((PyObject *)ap,
1593
- NPY_NOTYPE,
1594
- 1, 0);
1595
- Py_DECREF(ap);
1596
- if (op == NULL) {
1597
- return NULL;
1598
- }
1599
- ret = (PyArrayObject *)PyArray_New(Py_TYPE(op), PyArray_NDIM(op),
1600
- PyArray_DIMS(op), NPY_INTP,
1601
- NULL, NULL, 0, 0, (PyObject *)op);
1602
- if (ret == NULL) {
1603
- goto fail;
1604
- }
1605
- ip = (npy_intp *)PyArray_DATA(ret);
1606
- argsort_elsize = PyArray_DESCR(op)->elsize;
1607
- m = PyArray_DIMS(op)[PyArray_NDIM(op)-1];
1608
- if (m == 0) {
1609
- goto finish;
1610
- }
1611
- n = PyArray_SIZE(op)/m;
1612
- store_ptr = global_data;
1613
- global_data = PyArray_DATA(op);
1614
- store = global_obj;
1615
- global_obj = op;
1616
- /* we don't need to care about kth here as we are using a full sort */
1617
- for (i = 0; i < n; i++, ip += m, global_data += m*argsort_elsize) {
1618
- for (j = 0; j < m; j++) {
1619
- ip[j] = j;
1620
- }
1621
- res = sort((char *)ip, m, sizeof(npy_intp), argsort_static_compare);
1622
- if (res < 0) {
1623
- break;
1624
- }
1625
- }
1626
- global_data = store_ptr;
1627
- global_obj = store;
1628
-
1629
- if (PyErr_Occurred()) {
1630
- goto fail;
1631
- }
1632
- else if (res == -NPY_ENOMEM) {
1633
- PyErr_NoMemory();
1634
- goto fail;
1635
- }
1636
- else if (res == -NPY_ECOMP) {
1637
- PyErr_SetString(PyExc_TypeError,
1638
- "sort comparison failed");
1639
- goto fail;
1640
- }
1641
-
1642
- finish:
1643
- Py_DECREF(op);
1644
- SWAPBACK(op, ret);
1645
- return (PyObject *)op;
1646
-
1647
- fail:
1648
- Py_XDECREF(op);
1649
- Py_XDECREF(ret);
1650
- return NULL;
1651
- }
1652
-
1653
-
1654
- /*NUMPY_API
1655
- *LexSort an array providing indices that will sort a collection of arrays
1656
- *lexicographically. The first key is sorted on first, followed by the second key
1657
- *-- requires that arg"merge"sort is available for each sort_key
1658
- *
1659
- *Returns an index array that shows the indexes for the lexicographic sort along
1660
- *the given axis.
1661
- */
1662
- NPY_NO_EXPORT PyObject *
1663
- PyArray_LexSort(PyObject *sort_keys, int axis)
1664
- {
1665
- PyArrayObject **mps;
1666
- PyArrayIterObject **its;
1667
- PyArrayObject *ret = NULL;
1668
- PyArrayIterObject *rit = NULL;
1669
- npy_intp n, N, size, i, j;
1670
- npy_intp astride, rstride, *iptr;
1671
- int nd;
1672
- int needcopy = 0;
1673
- int elsize;
1674
- int maxelsize;
1675
- int object = 0;
1676
- PyArray_ArgSortFunc *argsort;
1677
- NPY_BEGIN_THREADS_DEF;
1678
-
1679
- if (!PySequence_Check(sort_keys)
1680
- || ((n = PySequence_Size(sort_keys)) <= 0)) {
1681
- PyErr_SetString(PyExc_TypeError,
1682
- "need sequence of keys with len > 0 in lexsort");
1683
- return NULL;
1684
- }
1685
- mps = (PyArrayObject **) PyArray_malloc(n * sizeof(PyArrayObject *));
1686
- if (mps == NULL) {
1687
- return PyErr_NoMemory();
1688
- }
1689
- its = (PyArrayIterObject **) PyArray_malloc(n * sizeof(PyArrayIterObject *));
1690
- if (its == NULL) {
1691
- PyArray_free(mps);
1692
- return PyErr_NoMemory();
1693
- }
1694
- for (i = 0; i < n; i++) {
1695
- mps[i] = NULL;
1696
- its[i] = NULL;
1697
- }
1698
- for (i = 0; i < n; i++) {
1699
- PyObject *obj;
1700
- obj = PySequence_GetItem(sort_keys, i);
1701
- if (obj == NULL) {
1702
- goto fail;
1703
- }
1704
- mps[i] = (PyArrayObject *)PyArray_FROM_O(obj);
1705
- Py_DECREF(obj);
1706
- if (mps[i] == NULL) {
1707
- goto fail;
1708
- }
1709
- if (i > 0) {
1710
- if ((PyArray_NDIM(mps[i]) != PyArray_NDIM(mps[0]))
1711
- || (!PyArray_CompareLists(PyArray_DIMS(mps[i]),
1712
- PyArray_DIMS(mps[0]),
1713
- PyArray_NDIM(mps[0])))) {
1714
- PyErr_SetString(PyExc_ValueError,
1715
- "all keys need to be the same shape");
1716
- goto fail;
1717
- }
1718
- }
1719
- if (!PyArray_DESCR(mps[i])->f->argsort[NPY_MERGESORT]) {
1720
- PyErr_Format(PyExc_TypeError,
1721
- "merge sort not available for item %zd", i);
1722
- goto fail;
1723
- }
1724
- if (!object
1725
- && PyDataType_FLAGCHK(PyArray_DESCR(mps[i]), NPY_NEEDS_PYAPI)) {
1726
- object = 1;
1727
- }
1728
- its[i] = (PyArrayIterObject *)PyArray_IterAllButAxis(
1729
- (PyObject *)mps[i], &axis);
1730
- if (its[i] == NULL) {
1731
- goto fail;
1732
- }
1733
- }
1734
-
1735
- /* Now we can check the axis */
1736
- nd = PyArray_NDIM(mps[0]);
1737
- if ((nd == 0) || (PyArray_SIZE(mps[0]) == 1)) {
1738
- /* single element case */
1739
- ret = (PyArrayObject *)PyArray_New(&PyArray_Type, PyArray_NDIM(mps[0]),
1740
- PyArray_DIMS(mps[0]),
1741
- NPY_INTP,
1742
- NULL, NULL, 0, 0, NULL);
1743
-
1744
- if (ret == NULL) {
1745
- goto fail;
1746
- }
1747
- *((npy_intp *)(PyArray_DATA(ret))) = 0;
1748
- goto finish;
1749
- }
1750
- if (axis < 0) {
1751
- axis += nd;
1752
- }
1753
- if ((axis < 0) || (axis >= nd)) {
1754
- PyErr_Format(PyExc_ValueError,
1755
- "axis(=%d) out of bounds", axis);
1756
- goto fail;
1757
- }
1758
-
1759
- /* Now do the sorting */
1760
- ret = (PyArrayObject *)PyArray_New(&PyArray_Type, PyArray_NDIM(mps[0]),
1761
- PyArray_DIMS(mps[0]), NPY_INTP,
1762
- NULL, NULL, 0, 0, NULL);
1763
- if (ret == NULL) {
1764
- goto fail;
1765
- }
1766
- rit = (PyArrayIterObject *)
1767
- PyArray_IterAllButAxis((PyObject *)ret, &axis);
1768
- if (rit == NULL) {
1769
- goto fail;
1770
- }
1771
- if (!object) {
1772
- NPY_BEGIN_THREADS;
1773
- }
1774
- size = rit->size;
1775
- N = PyArray_DIMS(mps[0])[axis];
1776
- rstride = PyArray_STRIDE(ret, axis);
1777
- maxelsize = PyArray_DESCR(mps[0])->elsize;
1778
- needcopy = (rstride != sizeof(npy_intp));
1779
- for (j = 0; j < n; j++) {
1780
- needcopy = needcopy
1781
- || PyArray_ISBYTESWAPPED(mps[j])
1782
- || !(PyArray_FLAGS(mps[j]) & NPY_ARRAY_ALIGNED)
1783
- || (PyArray_STRIDES(mps[j])[axis] != (npy_intp)PyArray_DESCR(mps[j])->elsize);
1784
- if (PyArray_DESCR(mps[j])->elsize > maxelsize) {
1785
- maxelsize = PyArray_DESCR(mps[j])->elsize;
1786
- }
1787
- }
1788
-
1789
- if (needcopy) {
1790
- char *valbuffer, *indbuffer;
1791
- int *swaps;
1792
-
1793
- valbuffer = PyDataMem_NEW(N*maxelsize);
1794
- if (valbuffer == NULL) {
1795
- goto fail;
1796
- }
1797
- indbuffer = PyDataMem_NEW(N*sizeof(npy_intp));
1798
- if (indbuffer == NULL) {
1799
- PyDataMem_FREE(indbuffer);
1800
- goto fail;
1801
- }
1802
- swaps = malloc(n*sizeof(int));
1803
- for (j = 0; j < n; j++) {
1804
- swaps[j] = PyArray_ISBYTESWAPPED(mps[j]);
1805
- }
1806
- while (size--) {
1807
- iptr = (npy_intp *)indbuffer;
1808
- for (i = 0; i < N; i++) {
1809
- *iptr++ = i;
1810
- }
1811
- for (j = 0; j < n; j++) {
1812
- elsize = PyArray_DESCR(mps[j])->elsize;
1813
- astride = PyArray_STRIDES(mps[j])[axis];
1814
- argsort = PyArray_DESCR(mps[j])->f->argsort[NPY_MERGESORT];
1815
- _unaligned_strided_byte_copy(valbuffer, (npy_intp) elsize,
1816
- its[j]->dataptr, astride, N, elsize);
1817
- if (swaps[j]) {
1818
- _strided_byte_swap(valbuffer, (npy_intp) elsize, N, elsize);
1819
- }
1820
- if (argsort(valbuffer, (npy_intp *)indbuffer, N, mps[j]) < 0) {
1821
- PyDataMem_FREE(valbuffer);
1822
- PyDataMem_FREE(indbuffer);
1823
- free(swaps);
1824
- goto fail;
1825
- }
1826
- PyArray_ITER_NEXT(its[j]);
1827
- }
1828
- _unaligned_strided_byte_copy(rit->dataptr, rstride, indbuffer,
1829
- sizeof(npy_intp), N, sizeof(npy_intp));
1830
- PyArray_ITER_NEXT(rit);
1831
- }
1832
- PyDataMem_FREE(valbuffer);
1833
- PyDataMem_FREE(indbuffer);
1834
- free(swaps);
1835
- }
1836
- else {
1837
- while (size--) {
1838
- iptr = (npy_intp *)rit->dataptr;
1839
- for (i = 0; i < N; i++) {
1840
- *iptr++ = i;
1841
- }
1842
- for (j = 0; j < n; j++) {
1843
- argsort = PyArray_DESCR(mps[j])->f->argsort[NPY_MERGESORT];
1844
- if (argsort(its[j]->dataptr, (npy_intp *)rit->dataptr,
1845
- N, mps[j]) < 0) {
1846
- goto fail;
1847
- }
1848
- PyArray_ITER_NEXT(its[j]);
1849
- }
1850
- PyArray_ITER_NEXT(rit);
1851
- }
1852
- }
1853
-
1854
- if (!object) {
1855
- NPY_END_THREADS;
1856
- }
1857
-
1858
- finish:
1859
- for (i = 0; i < n; i++) {
1860
- Py_XDECREF(mps[i]);
1861
- Py_XDECREF(its[i]);
1862
- }
1863
- Py_XDECREF(rit);
1864
- PyArray_free(mps);
1865
- PyArray_free(its);
1866
- return (PyObject *)ret;
1867
-
1868
- fail:
1869
- NPY_END_THREADS;
1870
- if (!PyErr_Occurred()) {
1871
- /* Out of memory during sorting or buffer creation */
1872
- PyErr_NoMemory();
1873
- }
1874
- Py_XDECREF(rit);
1875
- Py_XDECREF(ret);
1876
- for (i = 0; i < n; i++) {
1877
- Py_XDECREF(mps[i]);
1878
- Py_XDECREF(its[i]);
1879
- }
1880
- PyArray_free(mps);
1881
- PyArray_free(its);
1882
- return NULL;
1883
- }
1884
-
1885
-
1886
- /*NUMPY_API
1887
- *
1888
- * Search the sorted array op1 for the location of the items in op2. The
1889
- * result is an array of indexes, one for each element in op2, such that if
1890
- * the item were to be inserted in op1 just before that index the array
1891
- * would still be in sorted order.
1892
- *
1893
- * Parameters
1894
- * ----------
1895
- * op1 : PyArrayObject *
1896
- * Array to be searched, must be 1-D.
1897
- * op2 : PyObject *
1898
- * Array of items whose insertion indexes in op1 are wanted
1899
- * side : {NPY_SEARCHLEFT, NPY_SEARCHRIGHT}
1900
- * If NPY_SEARCHLEFT, return first valid insertion indexes
1901
- * If NPY_SEARCHRIGHT, return last valid insertion indexes
1902
- * perm : PyObject *
1903
- * Permutation array that sorts op1 (optional)
1904
- *
1905
- * Returns
1906
- * -------
1907
- * ret : PyObject *
1908
- * New reference to npy_intp array containing indexes where items in op2
1909
- * could be validly inserted into op1. NULL on error.
1910
- *
1911
- * Notes
1912
- * -----
1913
- * Binary search is used to find the indexes.
1914
- */
1915
- NPY_NO_EXPORT PyObject *
1916
- PyArray_SearchSorted(PyArrayObject *op1, PyObject *op2,
1917
- NPY_SEARCHSIDE side, PyObject *perm)
1918
- {
1919
- PyArrayObject *ap1 = NULL;
1920
- PyArrayObject *ap2 = NULL;
1921
- PyArrayObject *ap3 = NULL;
1922
- PyArrayObject *sorter = NULL;
1923
- PyArrayObject *ret = NULL;
1924
- PyArray_Descr *dtype;
1925
- int ap1_flags = NPY_ARRAY_NOTSWAPPED | NPY_ARRAY_ALIGNED;
1926
- PyArray_BinSearchFunc *binsearch = NULL;
1927
- PyArray_ArgBinSearchFunc *argbinsearch = NULL;
1928
- NPY_BEGIN_THREADS_DEF;
1929
-
1930
- /* Find common type */
1931
- dtype = PyArray_DescrFromObject((PyObject *)op2, PyArray_DESCR(op1));
1932
- if (dtype == NULL) {
1933
- return NULL;
1934
- }
1935
- /* refs to dtype we own = 1 */
1936
-
1937
- /* Look for binary search function */
1938
- if (perm) {
1939
- argbinsearch = get_argbinsearch_func(dtype, side);
1940
- }
1941
- else {
1942
- binsearch = get_binsearch_func(dtype, side);
1943
- }
1944
- if (binsearch == NULL && argbinsearch == NULL) {
1945
- PyErr_SetString(PyExc_TypeError, "compare not supported for type");
1946
- /* refs to dtype we own = 1 */
1947
- Py_DECREF(dtype);
1948
- /* refs to dtype we own = 0 */
1949
- return NULL;
1950
- }
1951
-
1952
- /* need ap2 as contiguous array and of right type */
1953
- /* refs to dtype we own = 1 */
1954
- Py_INCREF(dtype);
1955
- /* refs to dtype we own = 2 */
1956
- ap2 = (PyArrayObject *)PyArray_CheckFromAny(op2, dtype,
1957
- 0, 0,
1958
- NPY_ARRAY_CARRAY_RO | NPY_ARRAY_NOTSWAPPED,
1959
- NULL);
1960
- /* refs to dtype we own = 1, array creation steals one even on failure */
1961
- if (ap2 == NULL) {
1962
- Py_DECREF(dtype);
1963
- /* refs to dtype we own = 0 */
1964
- return NULL;
1965
- }
1966
-
1967
- /*
1968
- * If the needle (ap2) is larger than the haystack (op1) we copy the
1969
- * haystack to a contiguous array for improved cache utilization.
1970
- */
1971
- if (PyArray_SIZE(ap2) > PyArray_SIZE(op1)) {
1972
- ap1_flags |= NPY_ARRAY_CARRAY_RO;
1973
- }
1974
- ap1 = (PyArrayObject *)PyArray_CheckFromAny((PyObject *)op1, dtype,
1975
- 1, 1, ap1_flags, NULL);
1976
- /* refs to dtype we own = 0, array creation steals one even on failure */
1977
- if (ap1 == NULL) {
1978
- goto fail;
1979
- }
1980
-
1981
- if (perm) {
1982
- /* need ap3 as a 1D aligned, not swapped, array of right type */
1983
- ap3 = (PyArrayObject *)PyArray_CheckFromAny(perm, NULL,
1984
- 1, 1,
1985
- NPY_ARRAY_ALIGNED | NPY_ARRAY_NOTSWAPPED,
1986
- NULL);
1987
- if (ap3 == NULL) {
1988
- PyErr_SetString(PyExc_TypeError,
1989
- "could not parse sorter argument");
1990
- goto fail;
1991
- }
1992
- if (!PyArray_ISINTEGER(ap3)) {
1993
- PyErr_SetString(PyExc_TypeError,
1994
- "sorter must only contain integers");
1995
- goto fail;
1996
- }
1997
- /* convert to known integer size */
1998
- sorter = (PyArrayObject *)PyArray_FromArray(ap3,
1999
- PyArray_DescrFromType(NPY_INTP),
2000
- NPY_ARRAY_ALIGNED | NPY_ARRAY_NOTSWAPPED);
2001
- if (sorter == NULL) {
2002
- PyErr_SetString(PyExc_ValueError,
2003
- "could not parse sorter argument");
2004
- goto fail;
2005
- }
2006
- if (PyArray_SIZE(sorter) != PyArray_SIZE(ap1)) {
2007
- PyErr_SetString(PyExc_ValueError,
2008
- "sorter.size must equal a.size");
2009
- goto fail;
2010
- }
2011
- }
2012
-
2013
- /* ret is a contiguous array of intp type to hold returned indexes */
2014
- ret = (PyArrayObject *)PyArray_New(Py_TYPE(ap2), PyArray_NDIM(ap2),
2015
- PyArray_DIMS(ap2), NPY_INTP,
2016
- NULL, NULL, 0, 0, (PyObject *)ap2);
2017
- if (ret == NULL) {
2018
- goto fail;
2019
- }
2020
-
2021
- if (ap3 == NULL) {
2022
- /* do regular binsearch */
2023
- NPY_BEGIN_THREADS_DESCR(PyArray_DESCR(ap2));
2024
- binsearch((const char *)PyArray_DATA(ap1),
2025
- (const char *)PyArray_DATA(ap2),
2026
- (char *)PyArray_DATA(ret),
2027
- PyArray_SIZE(ap1), PyArray_SIZE(ap2),
2028
- PyArray_STRIDES(ap1)[0], PyArray_DESCR(ap2)->elsize,
2029
- NPY_SIZEOF_INTP, ap2);
2030
- NPY_END_THREADS_DESCR(PyArray_DESCR(ap2));
2031
- }
2032
- else {
2033
- /* do binsearch with a sorter array */
2034
- int error = 0;
2035
- NPY_BEGIN_THREADS_DESCR(PyArray_DESCR(ap2));
2036
- error = argbinsearch((const char *)PyArray_DATA(ap1),
2037
- (const char *)PyArray_DATA(ap2),
2038
- (const char *)PyArray_DATA(sorter),
2039
- (char *)PyArray_DATA(ret),
2040
- PyArray_SIZE(ap1), PyArray_SIZE(ap2),
2041
- PyArray_STRIDES(ap1)[0],
2042
- PyArray_DESCR(ap2)->elsize,
2043
- PyArray_STRIDES(sorter)[0], NPY_SIZEOF_INTP, ap2);
2044
- NPY_END_THREADS_DESCR(PyArray_DESCR(ap2));
2045
- if (error < 0) {
2046
- PyErr_SetString(PyExc_ValueError,
2047
- "Sorter index out of range.");
2048
- goto fail;
2049
- }
2050
- Py_DECREF(ap3);
2051
- Py_DECREF(sorter);
2052
- }
2053
- Py_DECREF(ap1);
2054
- Py_DECREF(ap2);
2055
- return (PyObject *)ret;
2056
-
2057
- fail:
2058
- Py_XDECREF(ap1);
2059
- Py_XDECREF(ap2);
2060
- Py_XDECREF(ap3);
2061
- Py_XDECREF(sorter);
2062
- Py_XDECREF(ret);
2063
- return NULL;
2064
- }
2065
-
2066
- /*NUMPY_API
2067
- * Diagonal
2068
- *
2069
- * In NumPy versions prior to 1.7, this function always returned a copy of
2070
- * the diagonal array. In 1.7, the code has been updated to compute a view
2071
- * onto 'self', but it still copies this array before returning, as well as
2072
- * setting the internal WARN_ON_WRITE flag. In a future version, it will
2073
- * simply return a view onto self.
2074
- */
2075
- NPY_NO_EXPORT PyObject *
2076
- PyArray_Diagonal(PyArrayObject *self, int offset, int axis1, int axis2)
2077
- {
2078
- int i, idim, ndim = PyArray_NDIM(self);
2079
- npy_intp *strides;
2080
- npy_intp stride1, stride2;
2081
- npy_intp *shape, dim1, dim2;
2082
-
2083
- char *data;
2084
- npy_intp diag_size;
2085
- PyArray_Descr *dtype;
2086
- PyObject *ret;
2087
- npy_intp ret_shape[NPY_MAXDIMS], ret_strides[NPY_MAXDIMS];
2088
-
2089
- if (ndim < 2) {
2090
- PyErr_SetString(PyExc_ValueError,
2091
- "diag requires an array of at least two dimensions");
2092
- return NULL;
2093
- }
2094
-
2095
- /* Handle negative axes with standard Python indexing rules */
2096
- if (axis1 < 0) {
2097
- axis1 += ndim;
2098
- }
2099
- if (axis2 < 0) {
2100
- axis2 += ndim;
2101
- }
2102
-
2103
- /* Error check the two axes */
2104
- if (axis1 == axis2) {
2105
- PyErr_SetString(PyExc_ValueError,
2106
- "axis1 and axis2 cannot be the same");
2107
- return NULL;
2108
- }
2109
- else if (axis1 < 0 || axis1 >= ndim || axis2 < 0 || axis2 >= ndim) {
2110
- PyErr_Format(PyExc_ValueError,
2111
- "axis1(=%d) and axis2(=%d) "
2112
- "must be within range (ndim=%d)",
2113
- axis1, axis2, ndim);
2114
- return NULL;
2115
- }
2116
-
2117
- /* Get the shape and strides of the two axes */
2118
- shape = PyArray_SHAPE(self);
2119
- dim1 = shape[axis1];
2120
- dim2 = shape[axis2];
2121
- strides = PyArray_STRIDES(self);
2122
- stride1 = strides[axis1];
2123
- stride2 = strides[axis2];
2124
-
2125
- /* Compute the data pointers and diag_size for the view */
2126
- data = PyArray_DATA(self);
2127
- if (offset > 0) {
2128
- if (offset >= dim2) {
2129
- diag_size = 0;
2130
- }
2131
- else {
2132
- data += offset * stride2;
2133
-
2134
- diag_size = dim2 - offset;
2135
- if (dim1 < diag_size) {
2136
- diag_size = dim1;
2137
- }
2138
- }
2139
- }
2140
- else if (offset < 0) {
2141
- offset = -offset;
2142
- if (offset >= dim1) {
2143
- diag_size = 0;
2144
- }
2145
- else {
2146
- data += offset * stride1;
2147
-
2148
- diag_size = dim1 - offset;
2149
- if (dim2 < diag_size) {
2150
- diag_size = dim2;
2151
- }
2152
- }
2153
- }
2154
- else {
2155
- diag_size = dim1 < dim2 ? dim1 : dim2;
2156
- }
2157
-
2158
- /* Build the new shape and strides for the main data */
2159
- i = 0;
2160
- for (idim = 0; idim < ndim; ++idim) {
2161
- if (idim != axis1 && idim != axis2) {
2162
- ret_shape[i] = shape[idim];
2163
- ret_strides[i] = strides[idim];
2164
- ++i;
2165
- }
2166
- }
2167
- ret_shape[ndim-2] = diag_size;
2168
- ret_strides[ndim-2] = stride1 + stride2;
2169
-
2170
- /* Create the diagonal view */
2171
- dtype = PyArray_DTYPE(self);
2172
- Py_INCREF(dtype);
2173
- ret = PyArray_NewFromDescr(Py_TYPE(self),
2174
- dtype,
2175
- ndim-1, ret_shape,
2176
- ret_strides,
2177
- data,
2178
- PyArray_FLAGS(self),
2179
- (PyObject *)self);
2180
- if (ret == NULL) {
2181
- return NULL;
2182
- }
2183
- Py_INCREF(self);
2184
- if (PyArray_SetBaseObject((PyArrayObject *)ret, (PyObject *)self) < 0) {
2185
- Py_DECREF(ret);
2186
- return NULL;
2187
- }
2188
-
2189
- /*
2190
- * For numpy 1.9 the diagonal view is not writeable.
2191
- * This line needs to be removed in 1.10.
2192
- */
2193
- PyArray_CLEARFLAGS((PyArrayObject *)ret, NPY_ARRAY_WRITEABLE);
2194
-
2195
- return ret;
2196
- }
2197
-
2198
- /*NUMPY_API
2199
- * Compress
2200
- */
2201
- NPY_NO_EXPORT PyObject *
2202
- PyArray_Compress(PyArrayObject *self, PyObject *condition, int axis,
2203
- PyArrayObject *out)
2204
- {
2205
- PyArrayObject *cond;
2206
- PyObject *res, *ret;
2207
-
2208
- if (PyArray_Check(condition)) {
2209
- cond = (PyArrayObject *)condition;
2210
- Py_INCREF(cond);
2211
- }
2212
- else {
2213
- PyArray_Descr *dtype = PyArray_DescrFromType(NPY_BOOL);
2214
- if (dtype == NULL) {
2215
- return NULL;
2216
- }
2217
- cond = (PyArrayObject *)PyArray_FromAny(condition, dtype,
2218
- 0, 0, 0, NULL);
2219
- if (cond == NULL) {
2220
- return NULL;
2221
- }
2222
- }
2223
-
2224
- if (PyArray_NDIM(cond) != 1) {
2225
- Py_DECREF(cond);
2226
- PyErr_SetString(PyExc_ValueError,
2227
- "condition must be a 1-d array");
2228
- return NULL;
2229
- }
2230
-
2231
- res = PyArray_Nonzero(cond);
2232
- Py_DECREF(cond);
2233
- if (res == NULL) {
2234
- return res;
2235
- }
2236
- ret = PyArray_TakeFrom(self, PyTuple_GET_ITEM(res, 0), axis,
2237
- out, NPY_RAISE);
2238
- Py_DECREF(res);
2239
- return ret;
2240
- }
2241
-
2242
- /*
2243
- * count number of nonzero bytes in 48 byte block
2244
- * w must be aligned to 8 bytes
2245
- *
2246
- * even though it uses 64 bit types its faster than the bytewise sum on 32 bit
2247
- * but a 32 bit type version would make it even faster on these platforms
2248
- */
2249
- static NPY_INLINE npy_intp
2250
- count_nonzero_bytes_384(const npy_uint64 * w)
2251
- {
2252
- const npy_uint64 w1 = w[0];
2253
- const npy_uint64 w2 = w[1];
2254
- const npy_uint64 w3 = w[2];
2255
- const npy_uint64 w4 = w[3];
2256
- const npy_uint64 w5 = w[4];
2257
- const npy_uint64 w6 = w[5];
2258
- npy_intp r;
2259
-
2260
- /*
2261
- * last part of sideways add popcount, first three bisections can be
2262
- * skipped as we are dealing with bytes.
2263
- * multiplication equivalent to (x + (x>>8) + (x>>16) + (x>>24)) & 0xFF
2264
- * multiplication overflow well defined for unsigned types.
2265
- * w1 + w2 guaranteed to not overflow as we only have 0 and 1 data.
2266
- */
2267
- r = ((w1 + w2 + w3 + w4 + w5 + w6) * 0x0101010101010101ULL) >> 56ULL;
2268
-
2269
- /*
2270
- * bytes not exclusively 0 or 1, sum them individually.
2271
- * should only happen if one does weird stuff with views or external
2272
- * buffers.
2273
- * Doing this after the optimistic computation allows saving registers and
2274
- * better pipelining
2275
- */
2276
- if (NPY_UNLIKELY(
2277
- ((w1 | w2 | w3 | w4 | w5 | w6) & 0xFEFEFEFEFEFEFEFEULL) != 0)) {
2278
- /* reload from pointer to avoid a unnecessary stack spill with gcc */
2279
- const char * c = (const char *)w;
2280
- npy_uintp i, count = 0;
2281
- for (i = 0; i < 48; i++) {
2282
- count += (c[i] != 0);
2283
- }
2284
- return count;
2285
- }
2286
-
2287
- return r;
2288
- }
2289
-
2290
- /*
2291
- * Counts the number of True values in a raw boolean array. This
2292
- * is a low-overhead function which does no heap allocations.
2293
- *
2294
- * Returns -1 on error.
2295
- */
2296
- NPY_NO_EXPORT npy_intp
2297
- count_boolean_trues(int ndim, char *data, npy_intp *ashape, npy_intp *astrides)
2298
- {
2299
- int idim;
2300
- npy_intp shape[NPY_MAXDIMS], strides[NPY_MAXDIMS];
2301
- npy_intp i, coord[NPY_MAXDIMS];
2302
- npy_intp count = 0;
2303
- NPY_BEGIN_THREADS_DEF;
2304
-
2305
- /* Use raw iteration with no heap memory allocation */
2306
- if (PyArray_PrepareOneRawArrayIter(
2307
- ndim, ashape,
2308
- data, astrides,
2309
- &ndim, shape,
2310
- &data, strides) < 0) {
2311
- return -1;
2312
- }
2313
-
2314
- /* Handle zero-sized array */
2315
- if (shape[0] == 0) {
2316
- return 0;
2317
- }
2318
-
2319
- NPY_BEGIN_THREADS_THRESHOLDED(shape[0]);
2320
-
2321
- /* Special case for contiguous inner loop */
2322
- if (strides[0] == 1) {
2323
- NPY_RAW_ITER_START(idim, ndim, coord, shape) {
2324
- /* Process the innermost dimension */
2325
- const char *d = data;
2326
- const char *e = data + shape[0];
2327
- if (NPY_CPU_HAVE_UNALIGNED_ACCESS ||
2328
- npy_is_aligned(d, sizeof(npy_uint64))) {
2329
- npy_uintp stride = 6 * sizeof(npy_uint64);
2330
- for (; d < e - (shape[0] % stride); d += stride) {
2331
- count += count_nonzero_bytes_384((const npy_uint64 *)d);
2332
- }
2333
- }
2334
- for (; d < e; ++d) {
2335
- count += (*d != 0);
2336
- }
2337
- } NPY_RAW_ITER_ONE_NEXT(idim, ndim, coord, shape, data, strides);
2338
- }
2339
- /* General inner loop */
2340
- else {
2341
- NPY_RAW_ITER_START(idim, ndim, coord, shape) {
2342
- char *d = data;
2343
- /* Process the innermost dimension */
2344
- for (i = 0; i < shape[0]; ++i, d += strides[0]) {
2345
- count += (*d != 0);
2346
- }
2347
- } NPY_RAW_ITER_ONE_NEXT(idim, ndim, coord, shape, data, strides);
2348
- }
2349
-
2350
- NPY_END_THREADS;
2351
-
2352
- return count;
2353
- }
2354
-
2355
- /*NUMPY_API
2356
- * Counts the number of non-zero elements in the array.
2357
- *
2358
- * Returns -1 on error.
2359
- */
2360
- NPY_NO_EXPORT npy_intp
2361
- PyArray_CountNonzero(PyArrayObject *self)
2362
- {
2363
- PyArray_NonzeroFunc *nonzero;
2364
- char *data;
2365
- npy_intp stride, count;
2366
- npy_intp nonzero_count = 0;
2367
-
2368
- NpyIter *iter;
2369
- NpyIter_IterNextFunc *iternext;
2370
- char **dataptr;
2371
- npy_intp *strideptr, *innersizeptr;
2372
- NPY_BEGIN_THREADS_DEF;
2373
-
2374
- /* Special low-overhead version specific to the boolean type */
2375
- if (PyArray_DESCR(self)->type_num == NPY_BOOL) {
2376
- return count_boolean_trues(PyArray_NDIM(self), PyArray_DATA(self),
2377
- PyArray_DIMS(self), PyArray_STRIDES(self));
2378
- }
2379
-
2380
- nonzero = PyArray_DESCR(self)->f->nonzero;
2381
-
2382
- /* If it's a trivial one-dimensional loop, don't use an iterator */
2383
- if (PyArray_TRIVIALLY_ITERABLE(self)) {
2384
- PyArray_PREPARE_TRIVIAL_ITERATION(self, count, data, stride);
2385
-
2386
- while (count--) {
2387
- if (nonzero(data, self)) {
2388
- ++nonzero_count;
2389
- }
2390
- data += stride;
2391
- }
2392
-
2393
- return nonzero_count;
2394
- }
2395
-
2396
- /*
2397
- * If the array has size zero, return zero (the iterator rejects
2398
- * size zero arrays)
2399
- */
2400
- if (PyArray_SIZE(self) == 0) {
2401
- return 0;
2402
- }
2403
-
2404
- /*
2405
- * Otherwise create and use an iterator to count the nonzeros.
2406
- */
2407
- iter = NpyIter_New(self, NPY_ITER_READONLY |
2408
- NPY_ITER_EXTERNAL_LOOP |
2409
- NPY_ITER_REFS_OK,
2410
- NPY_KEEPORDER, NPY_NO_CASTING,
2411
- NULL);
2412
- if (iter == NULL) {
2413
- return -1;
2414
- }
2415
-
2416
- /* Get the pointers for inner loop iteration */
2417
- iternext = NpyIter_GetIterNext(iter, NULL);
2418
- if (iternext == NULL) {
2419
- NpyIter_Deallocate(iter);
2420
- return -1;
2421
- }
2422
-
2423
- NPY_BEGIN_THREADS_NDITER(iter);
2424
-
2425
- dataptr = NpyIter_GetDataPtrArray(iter);
2426
- strideptr = NpyIter_GetInnerStrideArray(iter);
2427
- innersizeptr = NpyIter_GetInnerLoopSizePtr(iter);
2428
-
2429
- /* Iterate over all the elements to count the nonzeros */
2430
- do {
2431
- data = *dataptr;
2432
- stride = *strideptr;
2433
- count = *innersizeptr;
2434
-
2435
- while (count--) {
2436
- if (nonzero(data, self)) {
2437
- ++nonzero_count;
2438
- }
2439
- data += stride;
2440
- }
2441
-
2442
- } while(iternext(iter));
2443
-
2444
- NPY_END_THREADS;
2445
-
2446
- NpyIter_Deallocate(iter);
2447
-
2448
- return PyErr_Occurred() ? -1 : nonzero_count;
2449
- }
2450
-
2451
- /*NUMPY_API
2452
- * Nonzero
2453
- *
2454
- * TODO: In NumPy 2.0, should make the iteration order a parameter.
2455
- */
2456
- NPY_NO_EXPORT PyObject *
2457
- PyArray_Nonzero(PyArrayObject *self)
2458
- {
2459
- int i, ndim = PyArray_NDIM(self);
2460
- PyArrayObject *ret = NULL;
2461
- PyObject *ret_tuple;
2462
- npy_intp ret_dims[2];
2463
- PyArray_NonzeroFunc *nonzero = PyArray_DESCR(self)->f->nonzero;
2464
- npy_intp nonzero_count;
2465
-
2466
- NpyIter *iter;
2467
- NpyIter_IterNextFunc *iternext;
2468
- NpyIter_GetMultiIndexFunc *get_multi_index;
2469
- char **dataptr;
2470
-
2471
- /*
2472
- * First count the number of non-zeros in 'self'.
2473
- */
2474
- nonzero_count = PyArray_CountNonzero(self);
2475
- if (nonzero_count < 0) {
2476
- return NULL;
2477
- }
2478
-
2479
- /* Allocate the result as a 2D array */
2480
- ret_dims[0] = nonzero_count;
2481
- ret_dims[1] = (ndim == 0) ? 1 : ndim;
2482
- ret = (PyArrayObject *)PyArray_New(&PyArray_Type, 2, ret_dims,
2483
- NPY_INTP, NULL, NULL, 0, 0,
2484
- NULL);
2485
- if (ret == NULL) {
2486
- return NULL;
2487
- }
2488
-
2489
- /* If it's a one-dimensional result, don't use an iterator */
2490
- if (ndim <= 1) {
2491
- npy_intp * multi_index = (npy_intp *)PyArray_DATA(ret);
2492
- char * data = PyArray_BYTES(self);
2493
- npy_intp stride = (ndim == 0) ? 0 : PyArray_STRIDE(self, 0);
2494
- npy_intp count = (ndim == 0) ? 1 : PyArray_DIM(self, 0);
2495
- NPY_BEGIN_THREADS_DEF;
2496
-
2497
- /* nothing to do */
2498
- if (nonzero_count == 0) {
2499
- goto finish;
2500
- }
2501
-
2502
- NPY_BEGIN_THREADS_THRESHOLDED(count);
2503
-
2504
- /* avoid function call for bool */
2505
- if (PyArray_ISBOOL(self)) {
2506
- /*
2507
- * use fast memchr variant for sparse data, see gh-4370
2508
- * the fast bool count is followed by this sparse path is faster
2509
- * than combining the two loops, even for larger arrays
2510
- */
2511
- if (((double)nonzero_count / count) <= 0.1) {
2512
- npy_intp subsize;
2513
- npy_intp j = 0;
2514
- while (1) {
2515
- npy_memchr(data + j * stride, 0, stride, count - j,
2516
- &subsize, 1);
2517
- j += subsize;
2518
- if (j >= count) {
2519
- break;
2520
- }
2521
- *multi_index++ = j++;
2522
- }
2523
- }
2524
- else {
2525
- npy_intp j;
2526
- for (j = 0; j < count; ++j) {
2527
- if (*data != 0) {
2528
- *multi_index++ = j;
2529
- }
2530
- data += stride;
2531
- }
2532
- }
2533
- }
2534
- else {
2535
- npy_intp j;
2536
- for (j = 0; j < count; ++j) {
2537
- if (nonzero(data, self)) {
2538
- *multi_index++ = j;
2539
- }
2540
- data += stride;
2541
- }
2542
- }
2543
-
2544
- NPY_END_THREADS;
2545
-
2546
- goto finish;
2547
- }
2548
-
2549
- /*
2550
- * Build an iterator tracking a multi-index, in C order.
2551
- */
2552
- iter = NpyIter_New(self, NPY_ITER_READONLY |
2553
- NPY_ITER_MULTI_INDEX |
2554
- NPY_ITER_ZEROSIZE_OK |
2555
- NPY_ITER_REFS_OK,
2556
- NPY_CORDER, NPY_NO_CASTING,
2557
- NULL);
2558
-
2559
- if (iter == NULL) {
2560
- Py_DECREF(ret);
2561
- return NULL;
2562
- }
2563
-
2564
- if (NpyIter_GetIterSize(iter) != 0) {
2565
- npy_intp * multi_index;
2566
- NPY_BEGIN_THREADS_DEF;
2567
- /* Get the pointers for inner loop iteration */
2568
- iternext = NpyIter_GetIterNext(iter, NULL);
2569
- if (iternext == NULL) {
2570
- NpyIter_Deallocate(iter);
2571
- Py_DECREF(ret);
2572
- return NULL;
2573
- }
2574
- get_multi_index = NpyIter_GetGetMultiIndex(iter, NULL);
2575
- if (get_multi_index == NULL) {
2576
- NpyIter_Deallocate(iter);
2577
- Py_DECREF(ret);
2578
- return NULL;
2579
- }
2580
-
2581
- NPY_BEGIN_THREADS_NDITER(iter);
2582
-
2583
- dataptr = NpyIter_GetDataPtrArray(iter);
2584
-
2585
- multi_index = (npy_intp *)PyArray_DATA(ret);
2586
-
2587
- /* Get the multi-index for each non-zero element */
2588
- if (PyArray_ISBOOL(self)) {
2589
- /* avoid function call for bool */
2590
- do {
2591
- if (**dataptr != 0) {
2592
- get_multi_index(iter, multi_index);
2593
- multi_index += ndim;
2594
- }
2595
- } while(iternext(iter));
2596
- }
2597
- else {
2598
- do {
2599
- if (nonzero(*dataptr, self)) {
2600
- get_multi_index(iter, multi_index);
2601
- multi_index += ndim;
2602
- }
2603
- } while(iternext(iter));
2604
- }
2605
-
2606
- NPY_END_THREADS;
2607
- }
2608
-
2609
- NpyIter_Deallocate(iter);
2610
-
2611
- finish:
2612
- /* Treat zero-dimensional as shape (1,) */
2613
- if (ndim == 0) {
2614
- ndim = 1;
2615
- }
2616
-
2617
- ret_tuple = PyTuple_New(ndim);
2618
- if (ret_tuple == NULL) {
2619
- Py_DECREF(ret);
2620
- return NULL;
2621
- }
2622
-
2623
- /* Create views into ret, one for each dimension */
2624
- if (ndim == 1) {
2625
- /* Directly switch to one dimensions (dimension 1 is 1 anyway) */
2626
- ((PyArrayObject_fields *)ret)->nd = 1;
2627
- PyTuple_SET_ITEM(ret_tuple, 0, (PyObject *)ret);
2628
- }
2629
- else {
2630
- for (i = 0; i < ndim; ++i) {
2631
- PyArrayObject *view;
2632
- npy_intp stride = ndim * NPY_SIZEOF_INTP;
2633
-
2634
- view = (PyArrayObject *)PyArray_New(Py_TYPE(self), 1,
2635
- &nonzero_count,
2636
- NPY_INTP, &stride,
2637
- PyArray_BYTES(ret) + i*NPY_SIZEOF_INTP,
2638
- 0, 0, (PyObject *)self);
2639
- if (view == NULL) {
2640
- Py_DECREF(ret);
2641
- Py_DECREF(ret_tuple);
2642
- return NULL;
2643
- }
2644
- Py_INCREF(ret);
2645
- if (PyArray_SetBaseObject(view, (PyObject *)ret) < 0) {
2646
- Py_DECREF(ret);
2647
- Py_DECREF(ret_tuple);
2648
- }
2649
- PyTuple_SET_ITEM(ret_tuple, i, (PyObject *)view);
2650
- }
2651
-
2652
- Py_DECREF(ret);
2653
- }
2654
-
2655
- return ret_tuple;
2656
- }
2657
-
2658
- /*
2659
- * Gets a single item from the array, based on a single multi-index
2660
- * array of values, which must be of length PyArray_NDIM(self).
2661
- */
2662
- NPY_NO_EXPORT PyObject *
2663
- PyArray_MultiIndexGetItem(PyArrayObject *self, npy_intp *multi_index)
2664
- {
2665
- int idim, ndim = PyArray_NDIM(self);
2666
- char *data = PyArray_DATA(self);
2667
- npy_intp *shape = PyArray_SHAPE(self);
2668
- npy_intp *strides = PyArray_STRIDES(self);
2669
-
2670
- /* Get the data pointer */
2671
- for (idim = 0; idim < ndim; ++idim) {
2672
- npy_intp shapevalue = shape[idim];
2673
- npy_intp ind = multi_index[idim];
2674
-
2675
- if (check_and_adjust_index(&ind, shapevalue, idim, NULL) < 0) {
2676
- return NULL;
2677
- }
2678
- data += ind * strides[idim];
2679
- }
2680
-
2681
- return PyArray_DESCR(self)->f->getitem(data, self);
2682
- }
2683
-
2684
- /*
2685
- * Sets a single item in the array, based on a single multi-index
2686
- * array of values, which must be of length PyArray_NDIM(self).
2687
- *
2688
- * Returns 0 on success, -1 on failure.
2689
- */
2690
- NPY_NO_EXPORT int
2691
- PyArray_MultiIndexSetItem(PyArrayObject *self, npy_intp *multi_index,
2692
- PyObject *obj)
2693
- {
2694
- int idim, ndim = PyArray_NDIM(self);
2695
- char *data = PyArray_DATA(self);
2696
- npy_intp *shape = PyArray_SHAPE(self);
2697
- npy_intp *strides = PyArray_STRIDES(self);
2698
-
2699
- /* Get the data pointer */
2700
- for (idim = 0; idim < ndim; ++idim) {
2701
- npy_intp shapevalue = shape[idim];
2702
- npy_intp ind = multi_index[idim];
2703
-
2704
- if (check_and_adjust_index(&ind, shapevalue, idim, NULL) < 0) {
2705
- return -1;
2706
- }
2707
- data += ind * strides[idim];
2708
- }
2709
-
2710
- return PyArray_DESCR(self)->f->setitem(obj, data, self);
2711
- }