numpy 1.9.3__zip → 1.10.0__zip

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1590) hide show
  1. numpy-1.10.0.post2/INSTALL.txt +200 -0
  2. numpy-1.10.0.post2/LICENSE.txt +30 -0
  3. numpy-1.10.0.post2/MANIFEST.in +31 -0
  4. numpy-1.10.0.post2/PKG-INFO +47 -0
  5. numpy-1.10.0.post2/cnew.txt +117 -0
  6. numpy-1.10.0.post2/cold.txt +44 -0
  7. numpy-1.10.0.post2/committers.txt +160 -0
  8. numpy-1.10.0.post2/cpre.txt +283 -0
  9. numpy-1.10.0.post2/crel.txt +161 -0
  10. numpy-1.10.0.post2/doc/release/1.10.0-notes.rst +439 -0
  11. numpy-1.10.0.post2/doc/source/conf.py +331 -0
  12. numpy-1.10.0.post2/doc/source/dev/development_environment.rst +211 -0
  13. numpy-1.10.0.post2/doc/source/dev/gitwash/development_workflow.rst +534 -0
  14. numpy-1.10.0.post2/doc/source/dev/gitwash/git_links.inc +95 -0
  15. numpy-1.10.0.post2/doc/source/dev/gitwash/index.rst +14 -0
  16. numpy-1.10.0.post2/doc/source/dev/index.rst +11 -0
  17. numpy-1.10.0.post2/doc/source/reference/arrays.classes.rst +490 -0
  18. numpy-1.10.0.post2/doc/source/reference/arrays.dtypes.rst +536 -0
  19. numpy-1.10.0.post2/doc/source/reference/arrays.indexing.rst +549 -0
  20. numpy-1.10.0.post2/doc/source/reference/arrays.interface.rst +337 -0
  21. numpy-1.10.0.post2/doc/source/reference/arrays.ndarray.rst +622 -0
  22. numpy-1.10.0.post2/doc/source/reference/arrays.scalars.rst +291 -0
  23. numpy-1.10.0.post2/doc/source/reference/c-api.array.rst +3393 -0
  24. numpy-1.10.0.post2/doc/source/reference/c-api.config.rst +103 -0
  25. numpy-1.10.0.post2/doc/source/reference/c-api.coremath.rst +420 -0
  26. numpy-1.10.0.post2/doc/source/reference/c-api.dtype.rst +376 -0
  27. numpy-1.10.0.post2/doc/source/reference/c-api.generalized-ufuncs.rst +191 -0
  28. numpy-1.10.0.post2/doc/source/reference/c-api.iterator.rst +1300 -0
  29. numpy-1.10.0.post2/doc/source/reference/c-api.types-and-structures.rst +1240 -0
  30. numpy-1.10.0.post2/doc/source/reference/c-api.ufunc.rst +413 -0
  31. numpy-1.10.0.post2/doc/source/reference/index.rst +43 -0
  32. numpy-1.10.0.post2/doc/source/reference/internals.code-explanations.rst +615 -0
  33. numpy-1.10.0.post2/doc/source/reference/routines.array-manipulation.rst +115 -0
  34. numpy-1.10.0.post2/doc/source/reference/routines.io.rst +78 -0
  35. numpy-1.10.0.post2/doc/source/reference/routines.linalg.rst +91 -0
  36. numpy-1.10.0.post2/doc/source/reference/routines.ma.rst +407 -0
  37. numpy-1.10.0.post2/doc/source/reference/routines.sort.rst +41 -0
  38. numpy-1.10.0.post2/doc/source/reference/routines.statistics.rst +57 -0
  39. numpy-1.10.0.post2/doc/source/reference/swig.interface-file.rst +1066 -0
  40. numpy-1.10.0.post2/doc/source/reference/swig.testing.rst +167 -0
  41. numpy-1.10.0.post2/doc/source/reference/ufuncs.rst +666 -0
  42. numpy-1.10.0.post2/doc/source/release.rst +20 -0
  43. numpy-1.10.0.post2/doc/source/user/basics.io.genfromtxt.rst +531 -0
  44. numpy-1.10.0.post2/doc/source/user/basics.rec.rst +7 -0
  45. numpy-1.10.0.post2/doc/source/user/c-info.beyond-basics.rst +560 -0
  46. numpy-1.10.0.post2/doc/source/user/c-info.how-to-extend.rst +642 -0
  47. numpy-1.10.0.post2/doc/source/user/c-info.python-as-glue.rst +1177 -0
  48. numpy-1.10.0.post2/doc/source/user/c-info.ufunc-tutorial.rst +1211 -0
  49. numpy-1.10.0.post2/doc/source/user/install.rst +194 -0
  50. numpy-1.10.0.post2/numpy/__init__.py +227 -0
  51. numpy-1.10.0.post2/numpy/_build_utils/README +8 -0
  52. numpy-1.10.0.post2/numpy/_build_utils/apple_accelerate.py +21 -0
  53. numpy-1.10.0.post2/numpy/_build_utils/common.py +138 -0
  54. numpy-1.10.0.post2/numpy/_build_utils/src/apple_sgemv_fix.c +227 -0
  55. numpy-1.10.0.post2/numpy/_build_utils/waf.py +531 -0
  56. numpy-1.10.0.post2/numpy/_import_tools.py +353 -0
  57. numpy-1.10.0.post2/numpy/add_newdocs.py +7611 -0
  58. numpy-1.10.0.post2/numpy/compat/_inspect.py +194 -0
  59. numpy-1.10.0.post2/numpy/compat/py3k.py +88 -0
  60. numpy-1.10.0.post2/numpy/compat/setup.py +12 -0
  61. numpy-1.10.0.post2/numpy/core/__init__.py +89 -0
  62. numpy-1.10.0.post2/numpy/core/_internal.py +761 -0
  63. numpy-1.10.0.post2/numpy/core/_methods.py +133 -0
  64. numpy-1.10.0.post2/numpy/core/arrayprint.py +760 -0
  65. numpy-1.10.0.post2/numpy/core/code_generators/cversions.txt +34 -0
  66. numpy-1.10.0.post2/numpy/core/code_generators/generate_ufunc_api.py +219 -0
  67. numpy-1.10.0.post2/numpy/core/code_generators/generate_umath.py +1017 -0
  68. numpy-1.10.0.post2/numpy/core/code_generators/numpy_api.py +415 -0
  69. numpy-1.10.0.post2/numpy/core/code_generators/ufunc_docstrings.py +3442 -0
  70. numpy-1.10.0.post2/numpy/core/defchararray.py +2689 -0
  71. numpy-1.10.0.post2/numpy/core/fromnumeric.py +3089 -0
  72. numpy-1.10.0.post2/numpy/core/function_base.py +203 -0
  73. numpy-1.10.0.post2/numpy/core/getlimits.py +308 -0
  74. numpy-1.10.0.post2/numpy/core/include/numpy/ndarrayobject.h +246 -0
  75. numpy-1.10.0.post2/numpy/core/include/numpy/ndarraytypes.h +1797 -0
  76. numpy-1.10.0.post2/numpy/core/include/numpy/npy_3kcompat.h +448 -0
  77. numpy-1.10.0.post2/numpy/core/include/numpy/npy_common.h +1051 -0
  78. numpy-1.10.0.post2/numpy/core/include/numpy/npy_cpu.h +92 -0
  79. numpy-1.10.0.post2/numpy/core/include/numpy/npy_endian.h +61 -0
  80. numpy-1.10.0.post2/numpy/core/include/numpy/npy_math.h +525 -0
  81. numpy-1.10.0.post2/numpy/core/include/numpy/numpyconfig.h +36 -0
  82. numpy-1.10.0.post2/numpy/core/machar.py +342 -0
  83. numpy-1.10.0.post2/numpy/core/memmap.py +311 -0
  84. numpy-1.10.0.post2/numpy/core/numeric.py +2893 -0
  85. numpy-1.10.0.post2/numpy/core/numerictypes.py +1036 -0
  86. numpy-1.10.0.post2/numpy/core/records.py +846 -0
  87. numpy-1.10.0.post2/numpy/core/setup.py +983 -0
  88. numpy-1.10.0.post2/numpy/core/setup_common.py +352 -0
  89. numpy-1.10.0.post2/numpy/core/shape_base.py +350 -0
  90. numpy-1.10.0.post2/numpy/core/src/multiarray/alloc.c +244 -0
  91. numpy-1.10.0.post2/numpy/core/src/multiarray/arrayobject.c +1858 -0
  92. numpy-1.10.0.post2/numpy/core/src/multiarray/arraytypes.c.src +4738 -0
  93. numpy-1.10.0.post2/numpy/core/src/multiarray/arraytypes.h +37 -0
  94. numpy-1.10.0.post2/numpy/core/src/multiarray/buffer.c +981 -0
  95. numpy-1.10.0.post2/numpy/core/src/multiarray/calculation.c +1224 -0
  96. numpy-1.10.0.post2/numpy/core/src/multiarray/cblasfuncs.c +812 -0
  97. numpy-1.10.0.post2/numpy/core/src/multiarray/cblasfuncs.h +10 -0
  98. numpy-1.10.0.post2/numpy/core/src/multiarray/common.c +911 -0
  99. numpy-1.10.0.post2/numpy/core/src/multiarray/common.h +250 -0
  100. numpy-1.10.0.post2/numpy/core/src/multiarray/compiled_base.c +1664 -0
  101. numpy-1.10.0.post2/numpy/core/src/multiarray/compiled_base.h +24 -0
  102. numpy-1.10.0.post2/numpy/core/src/multiarray/conversion_utils.c +1217 -0
  103. numpy-1.10.0.post2/numpy/core/src/multiarray/convert.c +590 -0
  104. numpy-1.10.0.post2/numpy/core/src/multiarray/convert_datatype.c +2155 -0
  105. numpy-1.10.0.post2/numpy/core/src/multiarray/ctors.c +3838 -0
  106. numpy-1.10.0.post2/numpy/core/src/multiarray/datetime.c +3821 -0
  107. numpy-1.10.0.post2/numpy/core/src/multiarray/datetime_busday.c +1322 -0
  108. numpy-1.10.0.post2/numpy/core/src/multiarray/datetime_busdaycal.c +552 -0
  109. numpy-1.10.0.post2/numpy/core/src/multiarray/datetime_strings.c +1772 -0
  110. numpy-1.10.0.post2/numpy/core/src/multiarray/descriptor.c +3719 -0
  111. numpy-1.10.0.post2/numpy/core/src/multiarray/dtype_transfer.c +4239 -0
  112. numpy-1.10.0.post2/numpy/core/src/multiarray/einsum.c.src +3005 -0
  113. numpy-1.10.0.post2/numpy/core/src/multiarray/getset.c +986 -0
  114. numpy-1.10.0.post2/numpy/core/src/multiarray/hashdescr.c +318 -0
  115. numpy-1.10.0.post2/numpy/core/src/multiarray/item_selection.c +2413 -0
  116. numpy-1.10.0.post2/numpy/core/src/multiarray/iterators.c +2192 -0
  117. numpy-1.10.0.post2/numpy/core/src/multiarray/lowlevel_strided_loops.c.src +1769 -0
  118. numpy-1.10.0.post2/numpy/core/src/multiarray/mapping.c +3380 -0
  119. numpy-1.10.0.post2/numpy/core/src/multiarray/mapping.h +77 -0
  120. numpy-1.10.0.post2/numpy/core/src/multiarray/methods.c +2514 -0
  121. numpy-1.10.0.post2/numpy/core/src/multiarray/multiarray_tests.c.src +1035 -0
  122. numpy-1.10.0.post2/numpy/core/src/multiarray/multiarraymodule.c +4628 -0
  123. numpy-1.10.0.post2/numpy/core/src/multiarray/multiarraymodule.h +15 -0
  124. numpy-1.10.0.post2/numpy/core/src/multiarray/nditer_api.c +2809 -0
  125. numpy-1.10.0.post2/numpy/core/src/multiarray/nditer_constr.c +3160 -0
  126. numpy-1.10.0.post2/numpy/core/src/multiarray/nditer_pywrap.c +2499 -0
  127. numpy-1.10.0.post2/numpy/core/src/multiarray/number.c +1106 -0
  128. numpy-1.10.0.post2/numpy/core/src/multiarray/number.h +77 -0
  129. numpy-1.10.0.post2/numpy/core/src/multiarray/numpymemoryview.c +308 -0
  130. numpy-1.10.0.post2/numpy/core/src/multiarray/numpyos.c +683 -0
  131. numpy-1.10.0.post2/numpy/core/src/multiarray/scalarapi.c +870 -0
  132. numpy-1.10.0.post2/numpy/core/src/multiarray/scalartypes.c.src +4343 -0
  133. numpy-1.10.0.post2/numpy/core/src/multiarray/scalartypes.h +55 -0
  134. numpy-1.10.0.post2/numpy/core/src/multiarray/shape.c +1131 -0
  135. numpy-1.10.0.post2/numpy/core/src/multiarray/ucsnarrow.c +174 -0
  136. numpy-1.10.0.post2/numpy/core/src/multiarray/vdot.c +180 -0
  137. numpy-1.10.0.post2/numpy/core/src/multiarray/vdot.h +18 -0
  138. numpy-1.10.0.post2/numpy/core/src/npymath/ieee754.c.src +808 -0
  139. numpy-1.10.0.post2/numpy/core/src/npymath/npy_math.c.src +597 -0
  140. numpy-1.10.0.post2/numpy/core/src/npymath/npy_math_complex.c.src +1788 -0
  141. numpy-1.10.0.post2/numpy/core/src/npymath/npy_math_private.h +544 -0
  142. numpy-1.10.0.post2/numpy/core/src/npysort/heapsort.c.src +402 -0
  143. numpy-1.10.0.post2/numpy/core/src/npysort/mergesort.c.src +488 -0
  144. numpy-1.10.0.post2/numpy/core/src/npysort/npysort_common.h +360 -0
  145. numpy-1.10.0.post2/numpy/core/src/npysort/quicksort.c.src +523 -0
  146. numpy-1.10.0.post2/numpy/core/src/npysort/selection.c.src +426 -0
  147. numpy-1.10.0.post2/numpy/core/src/private/npy_cblas.h +584 -0
  148. numpy-1.10.0.post2/numpy/core/src/private/npy_config.h +101 -0
  149. numpy-1.10.0.post2/numpy/core/src/private/npy_import.h +32 -0
  150. numpy-1.10.0.post2/numpy/core/src/private/npy_partition.h.src +122 -0
  151. numpy-1.10.0.post2/numpy/core/src/private/npy_sort.h +196 -0
  152. numpy-1.10.0.post2/numpy/core/src/private/templ_common.h.src +43 -0
  153. numpy-1.10.0.post2/numpy/core/src/private/ufunc_override.h +397 -0
  154. numpy-1.10.0.post2/numpy/core/src/umath/funcs.inc.src +356 -0
  155. numpy-1.10.0.post2/numpy/core/src/umath/loops.c.src +2675 -0
  156. numpy-1.10.0.post2/numpy/core/src/umath/loops.h.src +497 -0
  157. numpy-1.10.0.post2/numpy/core/src/umath/operand_flag_tests.c.src +105 -0
  158. numpy-1.10.0.post2/numpy/core/src/umath/scalarmath.c.src +1738 -0
  159. numpy-1.10.0.post2/numpy/core/src/umath/simd.inc.src +903 -0
  160. numpy-1.10.0.post2/numpy/core/src/umath/test_rational.c.src +1404 -0
  161. numpy-1.10.0.post2/numpy/core/src/umath/ufunc_object.c +5703 -0
  162. numpy-1.10.0.post2/numpy/core/src/umath/ufunc_type_resolution.c +2159 -0
  163. numpy-1.10.0.post2/numpy/core/src/umath/umath_tests.c.src +392 -0
  164. numpy-1.10.0.post2/numpy/core/src/umath/umathmodule.c +443 -0
  165. numpy-1.10.0.post2/numpy/core/tests/test_abc.py +47 -0
  166. numpy-1.10.0.post2/numpy/core/tests/test_api.py +515 -0
  167. numpy-1.10.0.post2/numpy/core/tests/test_arrayprint.py +171 -0
  168. numpy-1.10.0.post2/numpy/core/tests/test_datetime.py +1820 -0
  169. numpy-1.10.0.post2/numpy/core/tests/test_defchararray.py +703 -0
  170. numpy-1.10.0.post2/numpy/core/tests/test_deprecations.py +619 -0
  171. numpy-1.10.0.post2/numpy/core/tests/test_dtype.py +578 -0
  172. numpy-1.10.0.post2/numpy/core/tests/test_einsum.py +627 -0
  173. numpy-1.10.0.post2/numpy/core/tests/test_errstate.py +52 -0
  174. numpy-1.10.0.post2/numpy/core/tests/test_function_base.py +142 -0
  175. numpy-1.10.0.post2/numpy/core/tests/test_getlimits.py +77 -0
  176. numpy-1.10.0.post2/numpy/core/tests/test_half.py +436 -0
  177. numpy-1.10.0.post2/numpy/core/tests/test_indexerrors.py +126 -0
  178. numpy-1.10.0.post2/numpy/core/tests/test_indexing.py +1047 -0
  179. numpy-1.10.0.post2/numpy/core/tests/test_item_selection.py +73 -0
  180. numpy-1.10.0.post2/numpy/core/tests/test_machar.py +29 -0
  181. numpy-1.10.0.post2/numpy/core/tests/test_memmap.py +130 -0
  182. numpy-1.10.0.post2/numpy/core/tests/test_multiarray.py +5924 -0
  183. numpy-1.10.0.post2/numpy/core/tests/test_multiarray_assignment.py +84 -0
  184. numpy-1.10.0.post2/numpy/core/tests/test_nditer.py +2638 -0
  185. numpy-1.10.0.post2/numpy/core/tests/test_numeric.py +2204 -0
  186. numpy-1.10.0.post2/numpy/core/tests/test_numerictypes.py +382 -0
  187. numpy-1.10.0.post2/numpy/core/tests/test_print.py +248 -0
  188. numpy-1.10.0.post2/numpy/core/tests/test_records.py +299 -0
  189. numpy-1.10.0.post2/numpy/core/tests/test_regression.py +2177 -0
  190. numpy-1.10.0.post2/numpy/core/tests/test_scalarinherit.py +41 -0
  191. numpy-1.10.0.post2/numpy/core/tests/test_scalarmath.py +316 -0
  192. numpy-1.10.0.post2/numpy/core/tests/test_shape_base.py +319 -0
  193. numpy-1.10.0.post2/numpy/core/tests/test_ufunc.py +1227 -0
  194. numpy-1.10.0.post2/numpy/core/tests/test_umath.py +1933 -0
  195. numpy-1.10.0.post2/numpy/core/tests/test_umath_complex.py +538 -0
  196. numpy-1.10.0.post2/numpy/core/tests/test_unicode.py +360 -0
  197. numpy-1.10.0.post2/numpy/distutils/__init__.py +23 -0
  198. numpy-1.10.0.post2/numpy/distutils/ccompiler.py +690 -0
  199. numpy-1.10.0.post2/numpy/distutils/command/autodist.py +94 -0
  200. numpy-1.10.0.post2/numpy/distutils/command/build.py +47 -0
  201. numpy-1.10.0.post2/numpy/distutils/command/build_clib.py +295 -0
  202. numpy-1.10.0.post2/numpy/distutils/command/build_ext.py +522 -0
  203. numpy-1.10.0.post2/numpy/distutils/command/config.py +437 -0
  204. numpy-1.10.0.post2/numpy/distutils/exec_command.py +651 -0
  205. numpy-1.10.0.post2/numpy/distutils/fcompiler/compaq.py +128 -0
  206. numpy-1.10.0.post2/numpy/distutils/fcompiler/gnu.py +403 -0
  207. numpy-1.10.0.post2/numpy/distutils/fcompiler/intel.py +217 -0
  208. numpy-1.10.0.post2/numpy/distutils/fcompiler/pg.py +63 -0
  209. numpy-1.10.0.post2/numpy/distutils/fcompiler/sun.py +55 -0
  210. numpy-1.10.0.post2/numpy/distutils/intelccompiler.py +95 -0
  211. numpy-1.10.0.post2/numpy/distutils/lib2def.py +116 -0
  212. numpy-1.10.0.post2/numpy/distutils/mingw32ccompiler.py +599 -0
  213. numpy-1.10.0.post2/numpy/distutils/misc_util.py +2306 -0
  214. numpy-1.10.0.post2/numpy/distutils/msvc9compiler.py +23 -0
  215. numpy-1.10.0.post2/numpy/distutils/msvccompiler.py +17 -0
  216. numpy-1.10.0.post2/numpy/distutils/npy_pkg_config.py +451 -0
  217. numpy-1.10.0.post2/numpy/distutils/system_info.py +2397 -0
  218. numpy-1.10.0.post2/numpy/distutils/tests/f2py_ext/tests/test_fib2.py +12 -0
  219. numpy-1.10.0.post2/numpy/distutils/tests/f2py_f90_ext/tests/test_foo.py +11 -0
  220. numpy-1.10.0.post2/numpy/distutils/tests/gen_ext/tests/test_fib3.py +11 -0
  221. numpy-1.10.0.post2/numpy/distutils/tests/pyrex_ext/tests/test_primes.py +13 -0
  222. numpy-1.10.0.post2/numpy/distutils/tests/swig_ext/__init__.py +1 -0
  223. numpy-1.10.0.post2/numpy/distutils/tests/swig_ext/tests/test_example.py +17 -0
  224. numpy-1.10.0.post2/numpy/distutils/tests/swig_ext/tests/test_example2.py +15 -0
  225. numpy-1.10.0.post2/numpy/distutils/tests/test_fcompiler_gnu.py +60 -0
  226. numpy-1.10.0.post2/numpy/distutils/tests/test_fcompiler_intel.py +36 -0
  227. numpy-1.10.0.post2/numpy/distutils/tests/test_misc_util.py +79 -0
  228. numpy-1.10.0.post2/numpy/distutils/tests/test_npy_pkg_config.py +102 -0
  229. numpy-1.10.0.post2/numpy/distutils/tests/test_system_info.py +209 -0
  230. numpy-1.10.0.post2/numpy/distutils/unixccompiler.py +125 -0
  231. numpy-1.10.0.post2/numpy/doc/byteswapping.py +156 -0
  232. numpy-1.10.0.post2/numpy/doc/creation.py +144 -0
  233. numpy-1.10.0.post2/numpy/doc/glossary.py +423 -0
  234. numpy-1.10.0.post2/numpy/doc/indexing.py +439 -0
  235. numpy-1.10.0.post2/numpy/doc/structured_arrays.py +290 -0
  236. numpy-1.10.0.post2/numpy/f2py/__init__.py +49 -0
  237. numpy-1.10.0.post2/numpy/f2py/__main__.py +25 -0
  238. numpy-1.10.0.post2/numpy/f2py/auxfuncs.py +858 -0
  239. numpy-1.10.0.post2/numpy/f2py/capi_maps.py +851 -0
  240. numpy-1.10.0.post2/numpy/f2py/cb_rules.py +554 -0
  241. numpy-1.10.0.post2/numpy/f2py/cfuncs.py +1261 -0
  242. numpy-1.10.0.post2/numpy/f2py/common_rules.py +150 -0
  243. numpy-1.10.0.post2/numpy/f2py/crackfortran.py +3314 -0
  244. numpy-1.10.0.post2/numpy/f2py/diagnose.py +156 -0
  245. numpy-1.10.0.post2/numpy/f2py/f2py2e.py +656 -0
  246. numpy-1.10.0.post2/numpy/f2py/f2py_testing.py +48 -0
  247. numpy-1.10.0.post2/numpy/f2py/f90mod_rules.py +272 -0
  248. numpy-1.10.0.post2/numpy/f2py/func2subr.py +299 -0
  249. numpy-1.10.0.post2/numpy/f2py/rules.py +1475 -0
  250. numpy-1.10.0.post2/numpy/f2py/setup.py +117 -0
  251. numpy-1.10.0.post2/numpy/f2py/src/fortranobject.c +1037 -0
  252. numpy-1.10.0.post2/numpy/f2py/src/fortranobject.h +162 -0
  253. numpy-1.10.0.post2/numpy/f2py/tests/src/array_from_pyobj/wrapmodule.c +223 -0
  254. numpy-1.10.0.post2/numpy/f2py/tests/test_array_from_pyobj.py +593 -0
  255. numpy-1.10.0.post2/numpy/f2py/tests/test_assumed_shape.py +35 -0
  256. numpy-1.10.0.post2/numpy/f2py/tests/test_callback.py +136 -0
  257. numpy-1.10.0.post2/numpy/f2py/tests/test_kind.py +36 -0
  258. numpy-1.10.0.post2/numpy/f2py/tests/test_mixed.py +40 -0
  259. numpy-1.10.0.post2/numpy/f2py/tests/test_regression.py +34 -0
  260. numpy-1.10.0.post2/numpy/f2py/tests/test_return_character.py +148 -0
  261. numpy-1.10.0.post2/numpy/f2py/tests/test_return_complex.py +170 -0
  262. numpy-1.10.0.post2/numpy/f2py/tests/test_return_integer.py +180 -0
  263. numpy-1.10.0.post2/numpy/f2py/tests/test_return_logical.py +189 -0
  264. numpy-1.10.0.post2/numpy/f2py/tests/test_return_real.py +206 -0
  265. numpy-1.10.0.post2/numpy/f2py/tests/test_size.py +44 -0
  266. numpy-1.10.0.post2/numpy/f2py/tests/util.py +367 -0
  267. numpy-1.10.0.post2/numpy/f2py/use_rules.py +115 -0
  268. numpy-1.10.0.post2/numpy/fft/fftpack.c +1501 -0
  269. numpy-1.10.0.post2/numpy/fft/fftpack.h +28 -0
  270. numpy-1.10.0.post2/numpy/fft/fftpack.py +1241 -0
  271. numpy-1.10.0.post2/numpy/fft/fftpack_litemodule.c +363 -0
  272. numpy-1.10.0.post2/numpy/fft/info.py +187 -0
  273. numpy-1.10.0.post2/numpy/fft/setup.py +19 -0
  274. numpy-1.10.0.post2/numpy/fft/tests/test_fftpack.py +166 -0
  275. numpy-1.10.0.post2/numpy/fft/tests/test_helper.py +78 -0
  276. numpy-1.10.0.post2/numpy/lib/_iotools.py +917 -0
  277. numpy-1.10.0.post2/numpy/lib/arraypad.py +1497 -0
  278. numpy-1.10.0.post2/numpy/lib/arraysetops.py +480 -0
  279. numpy-1.10.0.post2/numpy/lib/arrayterator.py +226 -0
  280. numpy-1.10.0.post2/numpy/lib/financial.py +737 -0
  281. numpy-1.10.0.post2/numpy/lib/format.py +814 -0
  282. numpy-1.10.0.post2/numpy/lib/function_base.py +4150 -0
  283. numpy-1.10.0.post2/numpy/lib/index_tricks.py +874 -0
  284. numpy-1.10.0.post2/numpy/lib/info.py +152 -0
  285. numpy-1.10.0.post2/numpy/lib/nanfunctions.py +1237 -0
  286. numpy-1.10.0.post2/numpy/lib/npyio.py +1992 -0
  287. numpy-1.10.0.post2/numpy/lib/polynomial.py +1277 -0
  288. numpy-1.10.0.post2/numpy/lib/recfunctions.py +1003 -0
  289. numpy-1.10.0.post2/numpy/lib/setup.py +12 -0
  290. numpy-1.10.0.post2/numpy/lib/shape_base.py +872 -0
  291. numpy-1.10.0.post2/numpy/lib/stride_tricks.py +200 -0
  292. numpy-1.10.0.post2/numpy/lib/tests/data/py2-objarr.npy +0 -0
  293. numpy-1.10.0.post2/numpy/lib/tests/data/py2-objarr.npz +0 -0
  294. numpy-1.10.0.post2/numpy/lib/tests/data/py3-objarr.npy +0 -0
  295. numpy-1.10.0.post2/numpy/lib/tests/data/py3-objarr.npz +0 -0
  296. numpy-1.10.0.post2/numpy/lib/tests/test__iotools.py +348 -0
  297. numpy-1.10.0.post2/numpy/lib/tests/test__version.py +70 -0
  298. numpy-1.10.0.post2/numpy/lib/tests/test_arraypad.py +1047 -0
  299. numpy-1.10.0.post2/numpy/lib/tests/test_arraysetops.py +309 -0
  300. numpy-1.10.0.post2/numpy/lib/tests/test_financial.py +163 -0
  301. numpy-1.10.0.post2/numpy/lib/tests/test_format.py +841 -0
  302. numpy-1.10.0.post2/numpy/lib/tests/test_function_base.py +2555 -0
  303. numpy-1.10.0.post2/numpy/lib/tests/test_index_tricks.py +326 -0
  304. numpy-1.10.0.post2/numpy/lib/tests/test_io.py +1916 -0
  305. numpy-1.10.0.post2/numpy/lib/tests/test_nanfunctions.py +707 -0
  306. numpy-1.10.0.post2/numpy/lib/tests/test_packbits.py +26 -0
  307. numpy-1.10.0.post2/numpy/lib/tests/test_polynomial.py +188 -0
  308. numpy-1.10.0.post2/numpy/lib/tests/test_recfunctions.py +734 -0
  309. numpy-1.10.0.post2/numpy/lib/tests/test_shape_base.py +386 -0
  310. numpy-1.10.0.post2/numpy/lib/tests/test_stride_tricks.py +405 -0
  311. numpy-1.10.0.post2/numpy/lib/tests/test_twodim_base.py +535 -0
  312. numpy-1.10.0.post2/numpy/lib/tests/test_type_check.py +332 -0
  313. numpy-1.10.0.post2/numpy/lib/twodim_base.py +1007 -0
  314. numpy-1.10.0.post2/numpy/lib/type_check.py +596 -0
  315. numpy-1.10.0.post2/numpy/lib/utils.py +1122 -0
  316. numpy-1.10.0.post2/numpy/linalg/lapack_lite/python_xerbla.c +46 -0
  317. numpy-1.10.0.post2/numpy/linalg/lapack_litemodule.c +358 -0
  318. numpy-1.10.0.post2/numpy/linalg/linalg.py +2406 -0
  319. numpy-1.10.0.post2/numpy/linalg/tests/test_build.py +59 -0
  320. numpy-1.10.0.post2/numpy/linalg/tests/test_linalg.py +1351 -0
  321. numpy-1.10.0.post2/numpy/linalg/tests/test_regression.py +95 -0
  322. numpy-1.10.0.post2/numpy/linalg/umath_linalg.c.src +3236 -0
  323. numpy-1.10.0.post2/numpy/ma/__init__.py +56 -0
  324. numpy-1.10.0.post2/numpy/ma/bench.py +131 -0
  325. numpy-1.10.0.post2/numpy/ma/core.py +7608 -0
  326. numpy-1.10.0.post2/numpy/ma/extras.py +1953 -0
  327. numpy-1.10.0.post2/numpy/ma/mrecords.py +796 -0
  328. numpy-1.10.0.post2/numpy/ma/setup.py +13 -0
  329. numpy-1.10.0.post2/numpy/ma/tests/test_core.py +4100 -0
  330. numpy-1.10.0.post2/numpy/ma/tests/test_extras.py +1132 -0
  331. numpy-1.10.0.post2/numpy/ma/tests/test_mrecords.py +520 -0
  332. numpy-1.10.0.post2/numpy/ma/tests/test_old_ma.py +879 -0
  333. numpy-1.10.0.post2/numpy/ma/tests/test_regression.py +80 -0
  334. numpy-1.10.0.post2/numpy/ma/tests/test_subclassing.py +338 -0
  335. numpy-1.10.0.post2/numpy/ma/testutils.py +289 -0
  336. numpy-1.10.0.post2/numpy/ma/timer_comparison.py +440 -0
  337. numpy-1.10.0.post2/numpy/matlib.py +358 -0
  338. numpy-1.10.0.post2/numpy/matrixlib/defmatrix.py +1232 -0
  339. numpy-1.10.0.post2/numpy/matrixlib/tests/test_defmatrix.py +449 -0
  340. numpy-1.10.0.post2/numpy/matrixlib/tests/test_multiarray.py +23 -0
  341. numpy-1.10.0.post2/numpy/matrixlib/tests/test_numeric.py +23 -0
  342. numpy-1.10.0.post2/numpy/matrixlib/tests/test_regression.py +37 -0
  343. numpy-1.10.0.post2/numpy/polynomial/_polybase.py +962 -0
  344. numpy-1.10.0.post2/numpy/polynomial/chebyshev.py +2056 -0
  345. numpy-1.10.0.post2/numpy/polynomial/hermite.py +1831 -0
  346. numpy-1.10.0.post2/numpy/polynomial/hermite_e.py +1828 -0
  347. numpy-1.10.0.post2/numpy/polynomial/laguerre.py +1780 -0
  348. numpy-1.10.0.post2/numpy/polynomial/legendre.py +1808 -0
  349. numpy-1.10.0.post2/numpy/polynomial/polyutils.py +403 -0
  350. numpy-1.10.0.post2/numpy/random/mtrand/distributions.c +912 -0
  351. numpy-1.10.0.post2/numpy/random/mtrand/mtrand.c +34805 -0
  352. numpy-1.10.0.post2/numpy/random/mtrand/mtrand.pyx +4766 -0
  353. numpy-1.10.0.post2/numpy/random/setup.py +61 -0
  354. numpy-1.10.0.post2/numpy/random/tests/test_random.py +723 -0
  355. numpy-1.10.0.post2/numpy/random/tests/test_regression.py +117 -0
  356. numpy-1.10.0.post2/numpy/setup.py +29 -0
  357. numpy-1.10.0.post2/numpy/testing/__init__.py +15 -0
  358. numpy-1.10.0.post2/numpy/testing/decorators.py +271 -0
  359. numpy-1.10.0.post2/numpy/testing/noseclasses.py +353 -0
  360. numpy-1.10.0.post2/numpy/testing/nosetester.py +511 -0
  361. numpy-1.10.0.post2/numpy/testing/print_coercion_tables.py +91 -0
  362. numpy-1.10.0.post2/numpy/testing/setup.py +20 -0
  363. numpy-1.10.0.post2/numpy/testing/tests/test_decorators.py +182 -0
  364. numpy-1.10.0.post2/numpy/testing/tests/test_utils.py +781 -0
  365. numpy-1.10.0.post2/numpy/testing/utils.py +1831 -0
  366. numpy-1.10.0.post2/numpy/tests/test_ctypeslib.py +106 -0
  367. numpy-1.10.0.post2/numpy/tests/test_matlib.py +55 -0
  368. numpy-1.10.0.post2/numpy/tests/test_scripts.py +69 -0
  369. numpy-1.10.0.post2/numpy/version.py +10 -0
  370. numpy-1.10.0.post2/setup.py +260 -0
  371. numpy-1.10.0.post2/site.cfg.example +193 -0
  372. numpy-1.10.0.post2/tmp.txt +789 -0
  373. numpy-1.10.0.post2/tools/swig/README +145 -0
  374. numpy-1.10.0.post2/tools/swig/numpy.i +3161 -0
  375. numpy-1.10.0.post2/tools/swig/test/Array.i +135 -0
  376. numpy-1.10.0.post2/tools/swig/test/ArrayZ.cxx +131 -0
  377. numpy-1.10.0.post2/tools/swig/test/ArrayZ.h +56 -0
  378. numpy-1.10.0.post2/tools/swig/test/Flat.cxx +36 -0
  379. numpy-1.10.0.post2/tools/swig/test/Flat.h +34 -0
  380. numpy-1.10.0.post2/tools/swig/test/Flat.i +36 -0
  381. numpy-1.10.0.post2/tools/swig/test/Makefile +37 -0
  382. numpy-1.10.0.post2/tools/swig/test/setup.py +71 -0
  383. numpy-1.10.0.post2/tools/swig/test/testArray.py +385 -0
  384. numpy-1.10.0.post2/tools/swig/test/testFarray.py +159 -0
  385. numpy-1.10.0.post2/tools/swig/test/testFlat.py +200 -0
  386. numpy-1.10.0.post2/tools/swig/test/testFortran.py +173 -0
  387. numpy-1.10.0.post2/tools/swig/test/testMatrix.py +362 -0
  388. numpy-1.10.0.post2/tools/swig/test/testSuperTensor.py +388 -0
  389. numpy-1.10.0.post2/tools/swig/test/testTensor.py +402 -0
  390. numpy-1.10.0.post2/tools/swig/test/testVector.py +381 -0
  391. numpy-1.9.3/INSTALL.txt +0 -138
  392. numpy-1.9.3/LICENSE.txt +0 -30
  393. numpy-1.9.3/MANIFEST.in +0 -26
  394. numpy-1.9.3/PKG-INFO +0 -39
  395. numpy-1.9.3/doc/release/1.9.3-notes.rst +0 -23
  396. numpy-1.9.3/doc/source/conf.py +0 -331
  397. numpy-1.9.3/doc/source/dev/gitwash/branch_list.png +0 -0
  398. numpy-1.9.3/doc/source/dev/gitwash/branch_list_compare.png +0 -0
  399. numpy-1.9.3/doc/source/dev/gitwash/development_workflow.rst +0 -568
  400. numpy-1.9.3/doc/source/dev/gitwash/git_links.inc +0 -88
  401. numpy-1.9.3/doc/source/dev/gitwash/index.rst +0 -14
  402. numpy-1.9.3/doc/source/dev/index.rst +0 -10
  403. numpy-1.9.3/doc/source/reference/arrays.classes.rst +0 -427
  404. numpy-1.9.3/doc/source/reference/arrays.dtypes.rst +0 -534
  405. numpy-1.9.3/doc/source/reference/arrays.indexing.rst +0 -550
  406. numpy-1.9.3/doc/source/reference/arrays.interface.rst +0 -336
  407. numpy-1.9.3/doc/source/reference/arrays.ndarray.rst +0 -609
  408. numpy-1.9.3/doc/source/reference/arrays.scalars.rst +0 -291
  409. numpy-1.9.3/doc/source/reference/c-api.array.rst +0 -3362
  410. numpy-1.9.3/doc/source/reference/c-api.config.rst +0 -103
  411. numpy-1.9.3/doc/source/reference/c-api.coremath.rst +0 -420
  412. numpy-1.9.3/doc/source/reference/c-api.dtype.rst +0 -376
  413. numpy-1.9.3/doc/source/reference/c-api.generalized-ufuncs.rst +0 -171
  414. numpy-1.9.3/doc/source/reference/c-api.iterator.rst +0 -1298
  415. numpy-1.9.3/doc/source/reference/c-api.types-and-structures.rst +0 -1204
  416. numpy-1.9.3/doc/source/reference/c-api.ufunc.rst +0 -399
  417. numpy-1.9.3/doc/source/reference/index.rst +0 -44
  418. numpy-1.9.3/doc/source/reference/internals.code-explanations.rst +0 -666
  419. numpy-1.9.3/doc/source/reference/routines.array-manipulation.rst +0 -113
  420. numpy-1.9.3/doc/source/reference/routines.io.rst +0 -74
  421. numpy-1.9.3/doc/source/reference/routines.linalg.rst +0 -88
  422. numpy-1.9.3/doc/source/reference/routines.ma.rst +0 -405
  423. numpy-1.9.3/doc/source/reference/routines.sort.rst +0 -42
  424. numpy-1.9.3/doc/source/reference/routines.statistics.rst +0 -55
  425. numpy-1.9.3/doc/source/reference/swig.interface-file.rst +0 -1055
  426. numpy-1.9.3/doc/source/reference/swig.testing.rst +0 -166
  427. numpy-1.9.3/doc/source/reference/ufuncs.rst +0 -651
  428. numpy-1.9.3/doc/source/release.rst +0 -19
  429. numpy-1.9.3/doc/source/user/basics.io.genfromtxt.rst +0 -531
  430. numpy-1.9.3/doc/source/user/basics.rec.rst +0 -7
  431. numpy-1.9.3/doc/source/user/c-info.beyond-basics.rst +0 -560
  432. numpy-1.9.3/doc/source/user/c-info.how-to-extend.rst +0 -642
  433. numpy-1.9.3/doc/source/user/c-info.python-as-glue.rst +0 -1528
  434. numpy-1.9.3/doc/source/user/c-info.ufunc-tutorial.rst +0 -1211
  435. numpy-1.9.3/doc/source/user/install.rst +0 -180
  436. numpy-1.9.3/numpy/__init__.py +0 -216
  437. numpy-1.9.3/numpy/_import_tools.py +0 -348
  438. numpy-1.9.3/numpy/add_newdocs.py +0 -7518
  439. numpy-1.9.3/numpy/compat/_inspect.py +0 -221
  440. numpy-1.9.3/numpy/compat/py3k.py +0 -89
  441. numpy-1.9.3/numpy/compat/setup.py +0 -12
  442. numpy-1.9.3/numpy/core/__init__.py +0 -78
  443. numpy-1.9.3/numpy/core/_internal.py +0 -570
  444. numpy-1.9.3/numpy/core/_methods.py +0 -134
  445. numpy-1.9.3/numpy/core/arrayprint.py +0 -752
  446. numpy-1.9.3/numpy/core/blasdot/_dotblas.c +0 -1255
  447. numpy-1.9.3/numpy/core/blasdot/apple_sgemv_patch.c +0 -216
  448. numpy-1.9.3/numpy/core/blasdot/cblas.h +0 -578
  449. numpy-1.9.3/numpy/core/code_generators/cversions.txt +0 -31
  450. numpy-1.9.3/numpy/core/code_generators/generate_ufunc_api.py +0 -219
  451. numpy-1.9.3/numpy/core/code_generators/generate_umath.py +0 -972
  452. numpy-1.9.3/numpy/core/code_generators/numpy_api.py +0 -412
  453. numpy-1.9.3/numpy/core/code_generators/ufunc_docstrings.py +0 -3419
  454. numpy-1.9.3/numpy/core/defchararray.py +0 -2687
  455. numpy-1.9.3/numpy/core/fromnumeric.py +0 -2938
  456. numpy-1.9.3/numpy/core/function_base.py +0 -190
  457. numpy-1.9.3/numpy/core/getlimits.py +0 -306
  458. numpy-1.9.3/numpy/core/include/numpy/fenv/fenv.c +0 -38
  459. numpy-1.9.3/numpy/core/include/numpy/fenv/fenv.h +0 -224
  460. numpy-1.9.3/numpy/core/include/numpy/ndarrayobject.h +0 -237
  461. numpy-1.9.3/numpy/core/include/numpy/ndarraytypes.h +0 -1820
  462. numpy-1.9.3/numpy/core/include/numpy/npy_3kcompat.h +0 -506
  463. numpy-1.9.3/numpy/core/include/numpy/npy_common.h +0 -1038
  464. numpy-1.9.3/numpy/core/include/numpy/npy_cpu.h +0 -122
  465. numpy-1.9.3/numpy/core/include/numpy/npy_endian.h +0 -49
  466. numpy-1.9.3/numpy/core/include/numpy/npy_math.h +0 -479
  467. numpy-1.9.3/numpy/core/include/numpy/numpyconfig.h +0 -35
  468. numpy-1.9.3/numpy/core/machar.py +0 -338
  469. numpy-1.9.3/numpy/core/memmap.py +0 -308
  470. numpy-1.9.3/numpy/core/numeric.py +0 -2842
  471. numpy-1.9.3/numpy/core/numerictypes.py +0 -1042
  472. numpy-1.9.3/numpy/core/records.py +0 -804
  473. numpy-1.9.3/numpy/core/setup.py +0 -1016
  474. numpy-1.9.3/numpy/core/setup_common.py +0 -330
  475. numpy-1.9.3/numpy/core/shape_base.py +0 -277
  476. numpy-1.9.3/numpy/core/src/multiarray/alloc.c +0 -241
  477. numpy-1.9.3/numpy/core/src/multiarray/arrayobject.c +0 -1791
  478. numpy-1.9.3/numpy/core/src/multiarray/arraytypes.c.src +0 -4372
  479. numpy-1.9.3/numpy/core/src/multiarray/arraytypes.h +0 -13
  480. numpy-1.9.3/numpy/core/src/multiarray/buffer.c +0 -954
  481. numpy-1.9.3/numpy/core/src/multiarray/calculation.c +0 -1229
  482. numpy-1.9.3/numpy/core/src/multiarray/common.c +0 -798
  483. numpy-1.9.3/numpy/core/src/multiarray/common.h +0 -328
  484. numpy-1.9.3/numpy/core/src/multiarray/conversion_utils.c +0 -1240
  485. numpy-1.9.3/numpy/core/src/multiarray/convert.c +0 -589
  486. numpy-1.9.3/numpy/core/src/multiarray/convert_datatype.c +0 -2199
  487. numpy-1.9.3/numpy/core/src/multiarray/ctors.c +0 -3785
  488. numpy-1.9.3/numpy/core/src/multiarray/datetime.c +0 -3823
  489. numpy-1.9.3/numpy/core/src/multiarray/datetime_busday.c +0 -1322
  490. numpy-1.9.3/numpy/core/src/multiarray/datetime_busdaycal.c +0 -552
  491. numpy-1.9.3/numpy/core/src/multiarray/datetime_strings.c +0 -1772
  492. numpy-1.9.3/numpy/core/src/multiarray/descriptor.c +0 -3658
  493. numpy-1.9.3/numpy/core/src/multiarray/dtype_transfer.c +0 -4232
  494. numpy-1.9.3/numpy/core/src/multiarray/einsum.c.src +0 -3013
  495. numpy-1.9.3/numpy/core/src/multiarray/getset.c +0 -984
  496. numpy-1.9.3/numpy/core/src/multiarray/hashdescr.c +0 -319
  497. numpy-1.9.3/numpy/core/src/multiarray/item_selection.c +0 -2711
  498. numpy-1.9.3/numpy/core/src/multiarray/iterators.c +0 -2160
  499. numpy-1.9.3/numpy/core/src/multiarray/lowlevel_strided_loops.c.src +0 -1767
  500. numpy-1.9.3/numpy/core/src/multiarray/mapping.c +0 -3316
  501. numpy-1.9.3/numpy/core/src/multiarray/mapping.h +0 -73
  502. numpy-1.9.3/numpy/core/src/multiarray/methods.c +0 -2497
  503. numpy-1.9.3/numpy/core/src/multiarray/multiarray_tests.c.src +0 -977
  504. numpy-1.9.3/numpy/core/src/multiarray/multiarraymodule.c +0 -4200
  505. numpy-1.9.3/numpy/core/src/multiarray/multiarraymodule.h +0 -4
  506. numpy-1.9.3/numpy/core/src/multiarray/nditer_api.c +0 -2809
  507. numpy-1.9.3/numpy/core/src/multiarray/nditer_constr.c +0 -3159
  508. numpy-1.9.3/numpy/core/src/multiarray/nditer_pywrap.c +0 -2492
  509. numpy-1.9.3/numpy/core/src/multiarray/number.c +0 -1057
  510. numpy-1.9.3/numpy/core/src/multiarray/number.h +0 -76
  511. numpy-1.9.3/numpy/core/src/multiarray/numpymemoryview.c +0 -309
  512. numpy-1.9.3/numpy/core/src/multiarray/numpyos.c +0 -683
  513. numpy-1.9.3/numpy/core/src/multiarray/scalarapi.c +0 -861
  514. numpy-1.9.3/numpy/core/src/multiarray/scalartypes.c.src +0 -4270
  515. numpy-1.9.3/numpy/core/src/multiarray/scalartypes.h +0 -52
  516. numpy-1.9.3/numpy/core/src/multiarray/shape.c +0 -1141
  517. numpy-1.9.3/numpy/core/src/multiarray/ucsnarrow.c +0 -173
  518. numpy-1.9.3/numpy/core/src/npymath/ieee754.c.src +0 -814
  519. numpy-1.9.3/numpy/core/src/npymath/npy_math.c.src +0 -527
  520. numpy-1.9.3/numpy/core/src/npymath/npy_math_complex.c.src +0 -291
  521. numpy-1.9.3/numpy/core/src/npymath/npy_math_private.h +0 -539
  522. numpy-1.9.3/numpy/core/src/npysort/heapsort.c.src +0 -341
  523. numpy-1.9.3/numpy/core/src/npysort/mergesort.c.src +0 -428
  524. numpy-1.9.3/numpy/core/src/npysort/npysort_common.h +0 -367
  525. numpy-1.9.3/numpy/core/src/npysort/quicksort.c.src +0 -363
  526. numpy-1.9.3/numpy/core/src/npysort/selection.c.src +0 -474
  527. numpy-1.9.3/numpy/core/src/private/npy_config.h +0 -68
  528. numpy-1.9.3/numpy/core/src/private/npy_partition.h.src +0 -138
  529. numpy-1.9.3/numpy/core/src/private/npy_sort.h +0 -194
  530. numpy-1.9.3/numpy/core/src/private/scalarmathmodule.h.src +0 -42
  531. numpy-1.9.3/numpy/core/src/private/ufunc_override.h +0 -384
  532. numpy-1.9.3/numpy/core/src/scalarmathmodule.c.src +0 -1980
  533. numpy-1.9.3/numpy/core/src/umath/funcs.inc.src +0 -715
  534. numpy-1.9.3/numpy/core/src/umath/loops.c.src +0 -2654
  535. numpy-1.9.3/numpy/core/src/umath/loops.h.src +0 -501
  536. numpy-1.9.3/numpy/core/src/umath/operand_flag_tests.c.src +0 -105
  537. numpy-1.9.3/numpy/core/src/umath/simd.inc.src +0 -881
  538. numpy-1.9.3/numpy/core/src/umath/test_rational.c.src +0 -1404
  539. numpy-1.9.3/numpy/core/src/umath/ufunc_object.c +0 -5520
  540. numpy-1.9.3/numpy/core/src/umath/ufunc_type_resolution.c +0 -2164
  541. numpy-1.9.3/numpy/core/src/umath/umath_tests.c.src +0 -341
  542. numpy-1.9.3/numpy/core/src/umath/umathmodule.c +0 -561
  543. numpy-1.9.3/numpy/core/tests/test_abc.py +0 -45
  544. numpy-1.9.3/numpy/core/tests/test_api.py +0 -514
  545. numpy-1.9.3/numpy/core/tests/test_arrayprint.py +0 -167
  546. numpy-1.9.3/numpy/core/tests/test_blasdot.py +0 -249
  547. numpy-1.9.3/numpy/core/tests/test_datetime.py +0 -1781
  548. numpy-1.9.3/numpy/core/tests/test_defchararray.py +0 -642
  549. numpy-1.9.3/numpy/core/tests/test_deprecations.py +0 -512
  550. numpy-1.9.3/numpy/core/tests/test_dtype.py +0 -542
  551. numpy-1.9.3/numpy/core/tests/test_einsum.py +0 -583
  552. numpy-1.9.3/numpy/core/tests/test_errstate.py +0 -51
  553. numpy-1.9.3/numpy/core/tests/test_function_base.py +0 -111
  554. numpy-1.9.3/numpy/core/tests/test_getlimits.py +0 -86
  555. numpy-1.9.3/numpy/core/tests/test_half.py +0 -439
  556. numpy-1.9.3/numpy/core/tests/test_indexerrors.py +0 -127
  557. numpy-1.9.3/numpy/core/tests/test_indexing.py +0 -1014
  558. numpy-1.9.3/numpy/core/tests/test_item_selection.py +0 -70
  559. numpy-1.9.3/numpy/core/tests/test_machar.py +0 -30
  560. numpy-1.9.3/numpy/core/tests/test_memmap.py +0 -127
  561. numpy-1.9.3/numpy/core/tests/test_multiarray.py +0 -4645
  562. numpy-1.9.3/numpy/core/tests/test_multiarray_assignment.py +0 -80
  563. numpy-1.9.3/numpy/core/tests/test_nditer.py +0 -2630
  564. numpy-1.9.3/numpy/core/tests/test_numeric.py +0 -2117
  565. numpy-1.9.3/numpy/core/tests/test_numerictypes.py +0 -377
  566. numpy-1.9.3/numpy/core/tests/test_print.py +0 -245
  567. numpy-1.9.3/numpy/core/tests/test_records.py +0 -185
  568. numpy-1.9.3/numpy/core/tests/test_regression.py +0 -2115
  569. numpy-1.9.3/numpy/core/tests/test_scalarinherit.py +0 -34
  570. numpy-1.9.3/numpy/core/tests/test_scalarmath.py +0 -275
  571. numpy-1.9.3/numpy/core/tests/test_shape_base.py +0 -250
  572. numpy-1.9.3/numpy/core/tests/test_ufunc.py +0 -1153
  573. numpy-1.9.3/numpy/core/tests/test_umath.py +0 -1695
  574. numpy-1.9.3/numpy/core/tests/test_umath_complex.py +0 -537
  575. numpy-1.9.3/numpy/core/tests/test_unicode.py +0 -357
  576. numpy-1.9.3/numpy/distutils/__init__.py +0 -39
  577. numpy-1.9.3/numpy/distutils/ccompiler.py +0 -656
  578. numpy-1.9.3/numpy/distutils/command/autodist.py +0 -43
  579. numpy-1.9.3/numpy/distutils/command/build.py +0 -39
  580. numpy-1.9.3/numpy/distutils/command/build_clib.py +0 -284
  581. numpy-1.9.3/numpy/distutils/command/build_ext.py +0 -515
  582. numpy-1.9.3/numpy/distutils/command/config.py +0 -476
  583. numpy-1.9.3/numpy/distutils/exec_command.py +0 -618
  584. numpy-1.9.3/numpy/distutils/fcompiler/compaq.py +0 -128
  585. numpy-1.9.3/numpy/distutils/fcompiler/gnu.py +0 -390
  586. numpy-1.9.3/numpy/distutils/fcompiler/intel.py +0 -205
  587. numpy-1.9.3/numpy/distutils/fcompiler/pg.py +0 -60
  588. numpy-1.9.3/numpy/distutils/fcompiler/sun.py +0 -52
  589. numpy-1.9.3/numpy/distutils/intelccompiler.py +0 -45
  590. numpy-1.9.3/numpy/distutils/lib2def.py +0 -116
  591. numpy-1.9.3/numpy/distutils/mingw32ccompiler.py +0 -582
  592. numpy-1.9.3/numpy/distutils/misc_util.py +0 -2271
  593. numpy-1.9.3/numpy/distutils/npy_pkg_config.py +0 -464
  594. numpy-1.9.3/numpy/distutils/system_info.py +0 -2319
  595. numpy-1.9.3/numpy/distutils/tests/f2py_ext/tests/test_fib2.py +0 -13
  596. numpy-1.9.3/numpy/distutils/tests/f2py_f90_ext/tests/test_foo.py +0 -12
  597. numpy-1.9.3/numpy/distutils/tests/gen_ext/tests/test_fib3.py +0 -12
  598. numpy-1.9.3/numpy/distutils/tests/pyrex_ext/tests/test_primes.py +0 -14
  599. numpy-1.9.3/numpy/distutils/tests/swig_ext/tests/test_example.py +0 -18
  600. numpy-1.9.3/numpy/distutils/tests/swig_ext/tests/test_example2.py +0 -16
  601. numpy-1.9.3/numpy/distutils/tests/test_fcompiler_gnu.py +0 -53
  602. numpy-1.9.3/numpy/distutils/tests/test_fcompiler_intel.py +0 -36
  603. numpy-1.9.3/numpy/distutils/tests/test_misc_util.py +0 -75
  604. numpy-1.9.3/numpy/distutils/tests/test_npy_pkg_config.py +0 -98
  605. numpy-1.9.3/numpy/distutils/unixccompiler.py +0 -113
  606. numpy-1.9.3/numpy/doc/byteswapping.py +0 -147
  607. numpy-1.9.3/numpy/doc/creation.py +0 -144
  608. numpy-1.9.3/numpy/doc/glossary.py +0 -418
  609. numpy-1.9.3/numpy/doc/indexing.py +0 -437
  610. numpy-1.9.3/numpy/doc/structured_arrays.py +0 -223
  611. numpy-1.9.3/numpy/f2py/__init__.py +0 -49
  612. numpy-1.9.3/numpy/f2py/auxfuncs.py +0 -711
  613. numpy-1.9.3/numpy/f2py/capi_maps.py +0 -773
  614. numpy-1.9.3/numpy/f2py/cb_rules.py +0 -539
  615. numpy-1.9.3/numpy/f2py/cfuncs.py +0 -1224
  616. numpy-1.9.3/numpy/f2py/common_rules.py +0 -132
  617. numpy-1.9.3/numpy/f2py/crackfortran.py +0 -2870
  618. numpy-1.9.3/numpy/f2py/diagnose.py +0 -149
  619. numpy-1.9.3/numpy/f2py/f2py2e.py +0 -598
  620. numpy-1.9.3/numpy/f2py/f2py_testing.py +0 -46
  621. numpy-1.9.3/numpy/f2py/f90mod_rules.py +0 -246
  622. numpy-1.9.3/numpy/f2py/func2subr.py +0 -291
  623. numpy-1.9.3/numpy/f2py/rules.py +0 -1448
  624. numpy-1.9.3/numpy/f2py/setup.py +0 -129
  625. numpy-1.9.3/numpy/f2py/src/fortranobject.c +0 -972
  626. numpy-1.9.3/numpy/f2py/src/fortranobject.h +0 -162
  627. numpy-1.9.3/numpy/f2py/tests/src/array_from_pyobj/wrapmodule.c +0 -223
  628. numpy-1.9.3/numpy/f2py/tests/test_array_from_pyobj.py +0 -559
  629. numpy-1.9.3/numpy/f2py/tests/test_assumed_shape.py +0 -37
  630. numpy-1.9.3/numpy/f2py/tests/test_callback.py +0 -132
  631. numpy-1.9.3/numpy/f2py/tests/test_kind.py +0 -36
  632. numpy-1.9.3/numpy/f2py/tests/test_mixed.py +0 -41
  633. numpy-1.9.3/numpy/f2py/tests/test_regression.py +0 -32
  634. numpy-1.9.3/numpy/f2py/tests/test_return_character.py +0 -142
  635. numpy-1.9.3/numpy/f2py/tests/test_return_complex.py +0 -169
  636. numpy-1.9.3/numpy/f2py/tests/test_return_integer.py +0 -178
  637. numpy-1.9.3/numpy/f2py/tests/test_return_logical.py +0 -187
  638. numpy-1.9.3/numpy/f2py/tests/test_return_real.py +0 -203
  639. numpy-1.9.3/numpy/f2py/tests/test_size.py +0 -47
  640. numpy-1.9.3/numpy/f2py/tests/util.py +0 -353
  641. numpy-1.9.3/numpy/f2py/use_rules.py +0 -109
  642. numpy-1.9.3/numpy/fft/fftpack.c +0 -1501
  643. numpy-1.9.3/numpy/fft/fftpack.h +0 -28
  644. numpy-1.9.3/numpy/fft/fftpack.py +0 -1169
  645. numpy-1.9.3/numpy/fft/fftpack_litemodule.c +0 -371
  646. numpy-1.9.3/numpy/fft/info.py +0 -179
  647. numpy-1.9.3/numpy/fft/setup.py +0 -20
  648. numpy-1.9.3/numpy/fft/tests/test_fftpack.py +0 -75
  649. numpy-1.9.3/numpy/fft/tests/test_helper.py +0 -78
  650. numpy-1.9.3/numpy/lib/_iotools.py +0 -891
  651. numpy-1.9.3/numpy/lib/arraypad.py +0 -1475
  652. numpy-1.9.3/numpy/lib/arraysetops.py +0 -464
  653. numpy-1.9.3/numpy/lib/arrayterator.py +0 -226
  654. numpy-1.9.3/numpy/lib/financial.py +0 -737
  655. numpy-1.9.3/numpy/lib/format.py +0 -771
  656. numpy-1.9.3/numpy/lib/function_base.py +0 -3884
  657. numpy-1.9.3/numpy/lib/index_tricks.py +0 -869
  658. numpy-1.9.3/numpy/lib/info.py +0 -151
  659. numpy-1.9.3/numpy/lib/nanfunctions.py +0 -1158
  660. numpy-1.9.3/numpy/lib/npyio.py +0 -1871
  661. numpy-1.9.3/numpy/lib/polynomial.py +0 -1271
  662. numpy-1.9.3/numpy/lib/recfunctions.py +0 -1003
  663. numpy-1.9.3/numpy/lib/setup.py +0 -23
  664. numpy-1.9.3/numpy/lib/shape_base.py +0 -865
  665. numpy-1.9.3/numpy/lib/src/_compiled_base.c +0 -1761
  666. numpy-1.9.3/numpy/lib/stride_tricks.py +0 -123
  667. numpy-1.9.3/numpy/lib/tests/test__iotools.py +0 -326
  668. numpy-1.9.3/numpy/lib/tests/test__version.py +0 -57
  669. numpy-1.9.3/numpy/lib/tests/test_arraypad.py +0 -560
  670. numpy-1.9.3/numpy/lib/tests/test_arraysetops.py +0 -301
  671. numpy-1.9.3/numpy/lib/tests/test_financial.py +0 -160
  672. numpy-1.9.3/numpy/lib/tests/test_format.py +0 -716
  673. numpy-1.9.3/numpy/lib/tests/test_function_base.py +0 -2145
  674. numpy-1.9.3/numpy/lib/tests/test_index_tricks.py +0 -289
  675. numpy-1.9.3/numpy/lib/tests/test_io.py +0 -1754
  676. numpy-1.9.3/numpy/lib/tests/test_nanfunctions.py +0 -774
  677. numpy-1.9.3/numpy/lib/tests/test_polynomial.py +0 -177
  678. numpy-1.9.3/numpy/lib/tests/test_recfunctions.py +0 -705
  679. numpy-1.9.3/numpy/lib/tests/test_shape_base.py +0 -368
  680. numpy-1.9.3/numpy/lib/tests/test_stride_tricks.py +0 -238
  681. numpy-1.9.3/numpy/lib/tests/test_twodim_base.py +0 -504
  682. numpy-1.9.3/numpy/lib/tests/test_type_check.py +0 -328
  683. numpy-1.9.3/numpy/lib/twodim_base.py +0 -1003
  684. numpy-1.9.3/numpy/lib/type_check.py +0 -605
  685. numpy-1.9.3/numpy/lib/utils.py +0 -1176
  686. numpy-1.9.3/numpy/linalg/lapack_lite/python_xerbla.c +0 -47
  687. numpy-1.9.3/numpy/linalg/lapack_litemodule.c +0 -362
  688. numpy-1.9.3/numpy/linalg/linalg.py +0 -2136
  689. numpy-1.9.3/numpy/linalg/tests/test_build.py +0 -53
  690. numpy-1.9.3/numpy/linalg/tests/test_linalg.py +0 -1156
  691. numpy-1.9.3/numpy/linalg/tests/test_regression.py +0 -90
  692. numpy-1.9.3/numpy/linalg/umath_linalg.c.src +0 -3210
  693. numpy-1.9.3/numpy/ma/__init__.py +0 -58
  694. numpy-1.9.3/numpy/ma/bench.py +0 -166
  695. numpy-1.9.3/numpy/ma/core.py +0 -7374
  696. numpy-1.9.3/numpy/ma/extras.py +0 -1932
  697. numpy-1.9.3/numpy/ma/mrecords.py +0 -734
  698. numpy-1.9.3/numpy/ma/setup.py +0 -20
  699. numpy-1.9.3/numpy/ma/tests/test_core.py +0 -3706
  700. numpy-1.9.3/numpy/ma/tests/test_extras.py +0 -954
  701. numpy-1.9.3/numpy/ma/tests/test_mrecords.py +0 -521
  702. numpy-1.9.3/numpy/ma/tests/test_old_ma.py +0 -869
  703. numpy-1.9.3/numpy/ma/tests/test_regression.py +0 -75
  704. numpy-1.9.3/numpy/ma/tests/test_subclassing.py +0 -236
  705. numpy-1.9.3/numpy/ma/testutils.py +0 -240
  706. numpy-1.9.3/numpy/ma/timer_comparison.py +0 -459
  707. numpy-1.9.3/numpy/matlib.py +0 -358
  708. numpy-1.9.3/numpy/matrixlib/defmatrix.py +0 -1094
  709. numpy-1.9.3/numpy/matrixlib/tests/test_defmatrix.py +0 -400
  710. numpy-1.9.3/numpy/matrixlib/tests/test_multiarray.py +0 -18
  711. numpy-1.9.3/numpy/matrixlib/tests/test_numeric.py +0 -10
  712. numpy-1.9.3/numpy/matrixlib/tests/test_regression.py +0 -34
  713. numpy-1.9.3/numpy/polynomial/_polybase.py +0 -962
  714. numpy-1.9.3/numpy/polynomial/chebyshev.py +0 -2056
  715. numpy-1.9.3/numpy/polynomial/hermite.py +0 -1789
  716. numpy-1.9.3/numpy/polynomial/hermite_e.py +0 -1786
  717. numpy-1.9.3/numpy/polynomial/laguerre.py +0 -1781
  718. numpy-1.9.3/numpy/polynomial/legendre.py +0 -1809
  719. numpy-1.9.3/numpy/polynomial/polytemplate.py +0 -927
  720. numpy-1.9.3/numpy/polynomial/polyutils.py +0 -403
  721. numpy-1.9.3/numpy/random/mtrand/distributions.c +0 -892
  722. numpy-1.9.3/numpy/random/mtrand/mtrand.c +0 -36656
  723. numpy-1.9.3/numpy/random/mtrand/mtrand.pyx +0 -4706
  724. numpy-1.9.3/numpy/random/setup.py +0 -74
  725. numpy-1.9.3/numpy/random/tests/test_random.py +0 -707
  726. numpy-1.9.3/numpy/random/tests/test_regression.py +0 -86
  727. numpy-1.9.3/numpy/setup.py +0 -27
  728. numpy-1.9.3/numpy/testing/__init__.py +0 -16
  729. numpy-1.9.3/numpy/testing/decorators.py +0 -271
  730. numpy-1.9.3/numpy/testing/noseclasses.py +0 -353
  731. numpy-1.9.3/numpy/testing/nosetester.py +0 -504
  732. numpy-1.9.3/numpy/testing/print_coercion_tables.py +0 -89
  733. numpy-1.9.3/numpy/testing/setup.py +0 -20
  734. numpy-1.9.3/numpy/testing/tests/test_decorators.py +0 -185
  735. numpy-1.9.3/numpy/testing/tests/test_utils.py +0 -558
  736. numpy-1.9.3/numpy/testing/utils.py +0 -1715
  737. numpy-1.9.3/numpy/tests/test_ctypeslib.py +0 -102
  738. numpy-1.9.3/numpy/tests/test_matlib.py +0 -55
  739. numpy-1.9.3/numpy/version.py +0 -10
  740. numpy-1.9.3/setup.py +0 -251
  741. numpy-1.9.3/site.cfg.example +0 -157
  742. numpy-1.9.3/tools/swig/README +0 -135
  743. numpy-1.9.3/tools/swig/numpy.i +0 -3085
  744. numpy-1.9.3/tools/swig/test/Array.i +0 -102
  745. numpy-1.9.3/tools/swig/test/Makefile +0 -34
  746. numpy-1.9.3/tools/swig/test/setup.py +0 -64
  747. numpy-1.9.3/tools/swig/test/testArray.py +0 -284
  748. numpy-1.9.3/tools/swig/test/testFarray.py +0 -159
  749. numpy-1.9.3/tools/swig/test/testFortran.py +0 -173
  750. numpy-1.9.3/tools/swig/test/testMatrix.py +0 -362
  751. numpy-1.9.3/tools/swig/test/testSuperTensor.py +0 -388
  752. numpy-1.9.3/tools/swig/test/testTensor.py +0 -402
  753. numpy-1.9.3/tools/swig/test/testVector.py +0 -381
  754. {numpy-1.9.3 → numpy-1.10.0.post2}/BENTO_BUILD.txt +0 -0
  755. {numpy-1.9.3 → numpy-1.10.0.post2}/COMPATIBILITY +0 -0
  756. {numpy-1.9.3 → numpy-1.10.0.post2}/DEV_README.txt +0 -0
  757. {numpy-1.9.3 → numpy-1.10.0.post2}/README.txt +0 -0
  758. {numpy-1.9.3 → numpy-1.10.0.post2}/THANKS.txt +0 -0
  759. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/Makefile +0 -0
  760. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/BUGS.txt +0 -0
  761. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/FAQ.txt +0 -0
  762. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/HISTORY.txt +0 -0
  763. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/Makefile +0 -0
  764. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/OLDNEWS.txt +0 -0
  765. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/README.txt +0 -0
  766. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/Release-1.x.txt +0 -0
  767. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/Release-2.x.txt +0 -0
  768. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/Release-3.x.txt +0 -0
  769. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/Release-4.x.txt +0 -0
  770. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/TESTING.txt +0 -0
  771. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/THANKS.txt +0 -0
  772. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/TODO.txt +0 -0
  773. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/apps.tex +0 -0
  774. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/bugs.tex +0 -0
  775. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/collectinput.py +0 -0
  776. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/commands.tex +0 -0
  777. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/default.css +0 -0
  778. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/docutils.conf +0 -0
  779. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/ex1/arr.f +0 -0
  780. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/ex1/bar.f +0 -0
  781. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/ex1/foo.f +0 -0
  782. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/ex1/foobar-smart.f90 +0 -0
  783. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/ex1/foobar.f90 +0 -0
  784. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/ex1/foobarmodule.tex +0 -0
  785. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/ex1/runme +0 -0
  786. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2py.1 +0 -0
  787. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2py2e.tex +0 -0
  788. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/README.txt +0 -0
  789. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/aerostructure.jpg +0 -0
  790. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/flow.jpg +0 -0
  791. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/mk_html.sh +0 -0
  792. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/mk_pdf.sh +0 -0
  793. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/mk_ps.sh +0 -0
  794. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/src/examples/exp1.f +0 -0
  795. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/src/examples/exp1mess.txt +0 -0
  796. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/src/examples/exp1session.txt +0 -0
  797. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/src/examples/foo.pyf +0 -0
  798. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/src/examples/foom.pyf +0 -0
  799. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/structure.jpg +0 -0
  800. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/fortranobject.tex +0 -0
  801. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/hello.f +0 -0
  802. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/index.html +0 -0
  803. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/intro.tex +0 -0
  804. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/multiarray/array_from_pyobj.c +0 -0
  805. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/multiarray/bar.c +0 -0
  806. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/multiarray/foo.f +0 -0
  807. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/multiarray/fortran_array_from_pyobj.txt +0 -0
  808. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/multiarray/fun.pyf +0 -0
  809. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/multiarray/run.pyf +0 -0
  810. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/multiarray/transpose.txt +0 -0
  811. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/multiarrays.txt +0 -0
  812. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/notes.tex +0 -0
  813. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/oldnews.html +0 -0
  814. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/options.tex +0 -0
  815. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/pyforttest.pyf +0 -0
  816. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/pytest.py +0 -0
  817. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/python9.tex +0 -0
  818. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/signaturefile.tex +0 -0
  819. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/simple.f +0 -0
  820. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/simple_session.dat +0 -0
  821. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/using_F_compiler.txt +0 -0
  822. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/f2py/win32_notes.txt +0 -0
  823. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/postprocess.py +0 -0
  824. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.3.0-notes.rst +0 -0
  825. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.4.0-notes.rst +0 -0
  826. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.5.0-notes.rst +0 -0
  827. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.6.0-notes.rst +0 -0
  828. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.6.1-notes.rst +0 -0
  829. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.6.2-notes.rst +0 -0
  830. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.7.0-notes.rst +0 -0
  831. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.7.1-notes.rst +0 -0
  832. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.7.2-notes.rst +0 -0
  833. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.8.0-notes.rst +0 -0
  834. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.8.1-notes.rst +0 -0
  835. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.8.2-notes.rst +0 -0
  836. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.9.0-notes.rst +0 -0
  837. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.9.1-notes.rst +0 -0
  838. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/1.9.2-notes.rst +0 -0
  839. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/release/time_based_proposal.rst +0 -0
  840. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/.git +0 -0
  841. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/.gitignore +0 -0
  842. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/Makefile +0 -0
  843. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/README.rst +0 -0
  844. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_static/scipyshiny_small.png +0 -0
  845. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/layout.html +0 -0
  846. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/searchbox.html +0 -0
  847. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/sourcelink.html +0 -0
  848. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/css/extend.css +0 -0
  849. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/css/pygments.css +0 -0
  850. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/css/scipy-central.css +0 -0
  851. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/css/spc-bootstrap.css +0 -0
  852. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/css/spc-extend.css +0 -0
  853. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/all-icons.svg +0 -0
  854. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/contents.png +0 -0
  855. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/create-new-account-icon.png +0 -0
  856. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/external-link-icon-shrunk.png +0 -0
  857. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/external-link-icon.png +0 -0
  858. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/external-link-icon.svg +0 -0
  859. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/external-link-list-icon-tiniest.png +0 -0
  860. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/external-link-list-icon-tiny.png +0 -0
  861. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/external-link-list-icon.png +0 -0
  862. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ad.png +0 -0
  863. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ae.png +0 -0
  864. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-af.png +0 -0
  865. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ag.png +0 -0
  866. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ai.png +0 -0
  867. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-al.png +0 -0
  868. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-am.png +0 -0
  869. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ao.png +0 -0
  870. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-aq.png +0 -0
  871. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ar.png +0 -0
  872. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-as.png +0 -0
  873. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-at.png +0 -0
  874. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-au.png +0 -0
  875. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-aw.png +0 -0
  876. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-az.png +0 -0
  877. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ba.png +0 -0
  878. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bb.png +0 -0
  879. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bd.png +0 -0
  880. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-be.png +0 -0
  881. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bf.png +0 -0
  882. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bg.png +0 -0
  883. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bh.png +0 -0
  884. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bi.png +0 -0
  885. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bj.png +0 -0
  886. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bl.png +0 -0
  887. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bm.png +0 -0
  888. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bn.png +0 -0
  889. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bo.png +0 -0
  890. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-br.png +0 -0
  891. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bs.png +0 -0
  892. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bt.png +0 -0
  893. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bw.png +0 -0
  894. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-by.png +0 -0
  895. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bz.png +0 -0
  896. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ca.png +0 -0
  897. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cc.png +0 -0
  898. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cd.png +0 -0
  899. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cf.png +0 -0
  900. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cg.png +0 -0
  901. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ch.png +0 -0
  902. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ci.png +0 -0
  903. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ck.png +0 -0
  904. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cl.png +0 -0
  905. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cm.png +0 -0
  906. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cn.png +0 -0
  907. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-co.png +0 -0
  908. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cr.png +0 -0
  909. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cu.png +0 -0
  910. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cv.png +0 -0
  911. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cw.png +0 -0
  912. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cx.png +0 -0
  913. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cy.png +0 -0
  914. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cz.png +0 -0
  915. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-de.png +0 -0
  916. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-dj.png +0 -0
  917. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-dk.png +0 -0
  918. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-dm.png +0 -0
  919. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-do.png +0 -0
  920. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-dz.png +0 -0
  921. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ec.png +0 -0
  922. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ee.png +0 -0
  923. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-eg.png +0 -0
  924. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-er.png +0 -0
  925. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-es.png +0 -0
  926. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-et.png +0 -0
  927. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-fi.png +0 -0
  928. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-fj.png +0 -0
  929. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-fk.png +0 -0
  930. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-fm.png +0 -0
  931. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-fo.png +0 -0
  932. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-fr.png +0 -0
  933. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ga.png +0 -0
  934. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gb.png +0 -0
  935. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gd.png +0 -0
  936. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ge.png +0 -0
  937. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gf.png +0 -0
  938. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gg.png +0 -0
  939. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gh.png +0 -0
  940. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gi.png +0 -0
  941. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gl.png +0 -0
  942. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gm.png +0 -0
  943. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gn.png +0 -0
  944. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gq.png +0 -0
  945. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gr.png +0 -0
  946. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gs.png +0 -0
  947. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gt.png +0 -0
  948. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gu.png +0 -0
  949. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gw.png +0 -0
  950. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gy.png +0 -0
  951. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-hk.png +0 -0
  952. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-hm.png +0 -0
  953. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-hn.png +0 -0
  954. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-hr.png +0 -0
  955. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ht.png +0 -0
  956. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-hu.png +0 -0
  957. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-id.png +0 -0
  958. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ie.png +0 -0
  959. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-il.png +0 -0
  960. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-im.png +0 -0
  961. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-in.png +0 -0
  962. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-io.png +0 -0
  963. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-iq.png +0 -0
  964. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ir.png +0 -0
  965. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-is.png +0 -0
  966. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-it.png +0 -0
  967. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-je.png +0 -0
  968. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-jm.png +0 -0
  969. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-jo.png +0 -0
  970. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-jp.png +0 -0
  971. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ke.png +0 -0
  972. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kg.png +0 -0
  973. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kh.png +0 -0
  974. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ki.png +0 -0
  975. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-km.png +0 -0
  976. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kn.png +0 -0
  977. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kp.png +0 -0
  978. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kr.png +0 -0
  979. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kw.png +0 -0
  980. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ky.png +0 -0
  981. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kz.png +0 -0
  982. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-la.png +0 -0
  983. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lb.png +0 -0
  984. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lc.png +0 -0
  985. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-li.png +0 -0
  986. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lk.png +0 -0
  987. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lr.png +0 -0
  988. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ls.png +0 -0
  989. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lt.png +0 -0
  990. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lu.png +0 -0
  991. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lv.png +0 -0
  992. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ly.png +0 -0
  993. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ma.png +0 -0
  994. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mc.png +0 -0
  995. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-md.png +0 -0
  996. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-me.png +0 -0
  997. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mf.png +0 -0
  998. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mg.png +0 -0
  999. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mh.png +0 -0
  1000. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mk.png +0 -0
  1001. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ml.png +0 -0
  1002. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mm.png +0 -0
  1003. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mn.png +0 -0
  1004. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mo.png +0 -0
  1005. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mp.png +0 -0
  1006. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mq.png +0 -0
  1007. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mr.png +0 -0
  1008. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ms.png +0 -0
  1009. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mt.png +0 -0
  1010. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mu.png +0 -0
  1011. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mv.png +0 -0
  1012. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mw.png +0 -0
  1013. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mx.png +0 -0
  1014. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-my.png +0 -0
  1015. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mz.png +0 -0
  1016. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-na.png +0 -0
  1017. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-nc.png +0 -0
  1018. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ne.png +0 -0
  1019. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-nf.png +0 -0
  1020. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ng.png +0 -0
  1021. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ni.png +0 -0
  1022. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-nl.png +0 -0
  1023. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-no.png +0 -0
  1024. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-np.png +0 -0
  1025. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-nr.png +0 -0
  1026. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-nu.png +0 -0
  1027. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-nz.png +0 -0
  1028. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-om.png +0 -0
  1029. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pa.png +0 -0
  1030. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pe.png +0 -0
  1031. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pf.png +0 -0
  1032. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pg.png +0 -0
  1033. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ph.png +0 -0
  1034. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pk.png +0 -0
  1035. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pl.png +0 -0
  1036. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pm.png +0 -0
  1037. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pn.png +0 -0
  1038. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pr.png +0 -0
  1039. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ps.png +0 -0
  1040. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pt.png +0 -0
  1041. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pw.png +0 -0
  1042. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-py.png +0 -0
  1043. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-qa.png +0 -0
  1044. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-re.png +0 -0
  1045. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ro.png +0 -0
  1046. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-rs.png +0 -0
  1047. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ru.png +0 -0
  1048. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-rw.png +0 -0
  1049. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sa.png +0 -0
  1050. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sb.png +0 -0
  1051. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sc.png +0 -0
  1052. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sd.png +0 -0
  1053. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-se.png +0 -0
  1054. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sg.png +0 -0
  1055. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sh.png +0 -0
  1056. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-si.png +0 -0
  1057. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sj.png +0 -0
  1058. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sk.png +0 -0
  1059. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sl.png +0 -0
  1060. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sm.png +0 -0
  1061. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sn.png +0 -0
  1062. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-so.png +0 -0
  1063. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sr.png +0 -0
  1064. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-st.png +0 -0
  1065. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sv.png +0 -0
  1066. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sy.png +0 -0
  1067. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sz.png +0 -0
  1068. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tc.png +0 -0
  1069. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-td.png +0 -0
  1070. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tf.png +0 -0
  1071. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tg.png +0 -0
  1072. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-th.png +0 -0
  1073. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tj.png +0 -0
  1074. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tk.png +0 -0
  1075. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tl.png +0 -0
  1076. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tm.png +0 -0
  1077. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tn.png +0 -0
  1078. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-to.png +0 -0
  1079. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tr.png +0 -0
  1080. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tt.png +0 -0
  1081. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tv.png +0 -0
  1082. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tw.png +0 -0
  1083. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tz.png +0 -0
  1084. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ua.png +0 -0
  1085. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ug.png +0 -0
  1086. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-um.png +0 -0
  1087. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-us.png +0 -0
  1088. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-uy.png +0 -0
  1089. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-uz.png +0 -0
  1090. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-va.png +0 -0
  1091. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-vc.png +0 -0
  1092. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ve.png +0 -0
  1093. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-vg.png +0 -0
  1094. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-vi.png +0 -0
  1095. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-vn.png +0 -0
  1096. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-vu.png +0 -0
  1097. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-wf.png +0 -0
  1098. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ws.png +0 -0
  1099. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ye.png +0 -0
  1100. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-za.png +0 -0
  1101. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-zm.png +0 -0
  1102. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-zw.png +0 -0
  1103. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/glyphicons-halflings-white.png +0 -0
  1104. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/glyphicons-halflings.png +0 -0
  1105. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/important-icon.png +0 -0
  1106. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/information-icon.png +0 -0
  1107. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/internet-web-browser.png +0 -0
  1108. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/multiple-file-icon-shrunk.png +0 -0
  1109. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/multiple-file-icon.png +0 -0
  1110. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/multiple-file-icon.svg +0 -0
  1111. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/multiple-file-list-icon-tiny.png +0 -0
  1112. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/multiple-file-list-icon.png +0 -0
  1113. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/navigation.png +0 -0
  1114. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/person-list-icon-tiny.png +0 -0
  1115. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/person-list-icon.png +0 -0
  1116. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/scipy-logo.png +0 -0
  1117. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/scipy_org_logo.gif +0 -0
  1118. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/scipycentral_logo.png +0 -0
  1119. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/scipyshiny_small.png +0 -0
  1120. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/send-email-icon.png +0 -0
  1121. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/single-file-icon-shrunk.png +0 -0
  1122. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/single-file-icon.png +0 -0
  1123. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/single-file-icon.svg +0 -0
  1124. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/single-file-list-icon-tiniest.png +0 -0
  1125. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/single-file-list-icon-tiny.png +0 -0
  1126. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/single-file-list-icon.png +0 -0
  1127. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/transparent-pixel.gif +0 -0
  1128. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/ui-anim_basic_16x16.gif +0 -0
  1129. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/js/copybutton.js +0 -0
  1130. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/accordion.less +0 -0
  1131. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/alerts.less +0 -0
  1132. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/bootstrap.less +0 -0
  1133. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/breadcrumbs.less +0 -0
  1134. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/button-groups.less +0 -0
  1135. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/buttons.less +0 -0
  1136. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/carousel.less +0 -0
  1137. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/close.less +0 -0
  1138. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/code.less +0 -0
  1139. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/component-animations.less +0 -0
  1140. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/dropdowns.less +0 -0
  1141. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/forms.less +0 -0
  1142. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/grid.less +0 -0
  1143. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/hero-unit.less +0 -0
  1144. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/labels-badges.less +0 -0
  1145. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/layouts.less +0 -0
  1146. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/media.less +0 -0
  1147. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/mixins.less +0 -0
  1148. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/modals.less +0 -0
  1149. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/navbar.less +0 -0
  1150. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/navs.less +0 -0
  1151. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/pager.less +0 -0
  1152. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/pagination.less +0 -0
  1153. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/popovers.less +0 -0
  1154. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/progress-bars.less +0 -0
  1155. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/reset.less +0 -0
  1156. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/responsive-1200px-min.less +0 -0
  1157. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/responsive-767px-max.less +0 -0
  1158. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/responsive-768px-979px.less +0 -0
  1159. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/responsive-navbar.less +0 -0
  1160. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/responsive-utilities.less +0 -0
  1161. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/responsive.less +0 -0
  1162. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/scaffolding.less +0 -0
  1163. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/sprites.less +0 -0
  1164. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/tables.less +0 -0
  1165. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/thumbnails.less +0 -0
  1166. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/tooltip.less +0 -0
  1167. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/type.less +0 -0
  1168. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/utilities.less +0 -0
  1169. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/variables.less +0 -0
  1170. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/wells.less +0 -0
  1171. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-bootstrap.less +0 -0
  1172. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-content.less +0 -0
  1173. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-extend.less +0 -0
  1174. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-footer.less +0 -0
  1175. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-header.less +0 -0
  1176. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-rightsidebar.less +0 -0
  1177. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-utils.less +0 -0
  1178. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/scipy.css_t +0 -0
  1179. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/theme.conf +0 -0
  1180. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/conf.py +0 -0
  1181. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/index.rst +0 -0
  1182. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/test_autodoc.rst +0 -0
  1183. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/test_autodoc_2.rst +0 -0
  1184. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/test_autodoc_3.rst +0 -0
  1185. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/test_autodoc_4.rst +0 -0
  1186. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/test_optimize.rst +0 -0
  1187. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/_templates/autosummary/class.rst +0 -0
  1188. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/_templates/indexcontent.html +0 -0
  1189. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/_templates/indexsidebar.html +0 -0
  1190. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/_templates/layout.html +0 -0
  1191. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/about.rst +0 -0
  1192. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/bugs.rst +0 -0
  1193. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/contents.rst +0 -0
  1194. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/dev/gitwash/configure_git.rst +0 -0
  1195. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/dev/gitwash/development_setup.rst +0 -0
  1196. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/dev/gitwash/dot2_dot3.rst +0 -0
  1197. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/dev/gitwash/following_latest.rst +0 -0
  1198. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/dev/gitwash/forking_button.png +0 -0
  1199. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/dev/gitwash/git_development.rst +0 -0
  1200. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/dev/gitwash/git_intro.rst +0 -0
  1201. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/dev/gitwash/git_resources.rst +0 -0
  1202. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/dev/gitwash/pull_button.png +0 -0
  1203. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/dev/gitwash_links.txt +0 -0
  1204. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/advanced.rst +0 -0
  1205. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/allocarr.f90 +0 -0
  1206. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/allocarr_session.dat +0 -0
  1207. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/array.f +0 -0
  1208. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/array_session.dat +0 -0
  1209. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/calculate.f +0 -0
  1210. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/calculate_session.dat +0 -0
  1211. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/callback.f +0 -0
  1212. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/callback2.pyf +0 -0
  1213. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/callback_session.dat +0 -0
  1214. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/common.f +0 -0
  1215. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/common_session.dat +0 -0
  1216. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/compile_session.dat +0 -0
  1217. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/distutils.rst +0 -0
  1218. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/extcallback.f +0 -0
  1219. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/extcallback_session.dat +0 -0
  1220. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/fib1.f +0 -0
  1221. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/fib1.pyf +0 -0
  1222. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/fib2.pyf +0 -0
  1223. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/fib3.f +0 -0
  1224. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/ftype.f +0 -0
  1225. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/ftype_session.dat +0 -0
  1226. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/getting-started.rst +0 -0
  1227. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/index.rst +0 -0
  1228. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/moddata.f90 +0 -0
  1229. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/moddata_session.dat +0 -0
  1230. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/python-usage.rst +0 -0
  1231. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/run_main_session.dat +0 -0
  1232. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/scalar.f +0 -0
  1233. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/scalar_session.dat +0 -0
  1234. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/setup_example.py +0 -0
  1235. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/signature-file.rst +0 -0
  1236. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/spam.pyf +0 -0
  1237. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/spam_session.dat +0 -0
  1238. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/string.f +0 -0
  1239. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/string_session.dat +0 -0
  1240. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/usage.rst +0 -0
  1241. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/var.pyf +0 -0
  1242. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/f2py/var_session.dat +0 -0
  1243. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/glossary.rst +0 -0
  1244. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/license.rst +0 -0
  1245. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/datetime-proposal.rst +0 -0
  1246. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/datetime-proposal3.rst +0 -0
  1247. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/deferred-ufunc-evaluation.rst +0 -0
  1248. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/generalized-ufuncs.rst +0 -0
  1249. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/groupby_additions.rst +0 -0
  1250. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/index.rst +0 -0
  1251. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/math_config_clean.rst +0 -0
  1252. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/missing-data.rst +0 -0
  1253. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/new-iterator-ufunc.rst +0 -0
  1254. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/newbugtracker.rst +0 -0
  1255. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/npy-format.rst +0 -0
  1256. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/structured_array_extensions.rst +0 -0
  1257. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/ufunc-overrides.rst +0 -0
  1258. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/neps/warnfix.rst +0 -0
  1259. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/arrays.datetime.rst +0 -0
  1260. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/arrays.nditer.rst +0 -0
  1261. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/arrays.rst +0 -0
  1262. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/c-api.deprecations.rst +0 -0
  1263. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/c-api.rst +0 -0
  1264. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/distutils.rst +0 -0
  1265. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/figures/dtype-hierarchy.dia +0 -0
  1266. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/figures/dtype-hierarchy.pdf +0 -0
  1267. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/figures/dtype-hierarchy.png +0 -0
  1268. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/figures/threefundamental.fig +0 -0
  1269. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/figures/threefundamental.pdf +0 -0
  1270. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/figures/threefundamental.png +0 -0
  1271. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/internals.rst +0 -0
  1272. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/maskedarray.baseclass.rst +0 -0
  1273. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/maskedarray.generic.rst +0 -0
  1274. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/maskedarray.rst +0 -0
  1275. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.array-creation.rst +0 -0
  1276. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.bitwise.rst +0 -0
  1277. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.char.rst +0 -0
  1278. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.ctypeslib.rst +0 -0
  1279. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.datetime.rst +0 -0
  1280. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.dtype.rst +0 -0
  1281. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.dual.rst +0 -0
  1282. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.emath.rst +0 -0
  1283. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.err.rst +0 -0
  1284. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.fft.rst +0 -0
  1285. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.financial.rst +0 -0
  1286. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.functional.rst +0 -0
  1287. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.help.rst +0 -0
  1288. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.indexing.rst +0 -0
  1289. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.logic.rst +0 -0
  1290. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.math.rst +0 -0
  1291. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.matlib.rst +0 -0
  1292. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.numarray.rst +0 -0
  1293. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.oldnumeric.rst +0 -0
  1294. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.other.rst +0 -0
  1295. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.padding.rst +0 -0
  1296. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.chebyshev.rst +0 -0
  1297. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.classes.rst +0 -0
  1298. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.hermite.rst +0 -0
  1299. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.hermite_e.rst +0 -0
  1300. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.laguerre.rst +0 -0
  1301. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.legendre.rst +0 -0
  1302. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.package.rst +0 -0
  1303. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.poly1d.rst +0 -0
  1304. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.polynomial.rst +0 -0
  1305. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.rst +0 -0
  1306. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.random.rst +0 -0
  1307. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.rst +0 -0
  1308. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.set.rst +0 -0
  1309. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.testing.rst +0 -0
  1310. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/routines.window.rst +0 -0
  1311. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/reference/swig.rst +0 -0
  1312. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/basics.broadcasting.rst +0 -0
  1313. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/basics.byteswapping.rst +0 -0
  1314. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/basics.creation.rst +0 -0
  1315. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/basics.indexing.rst +0 -0
  1316. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/basics.io.rst +0 -0
  1317. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/basics.rst +0 -0
  1318. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/basics.subclassing.rst +0 -0
  1319. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/basics.types.rst +0 -0
  1320. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/c-info.rst +0 -0
  1321. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/howtofind.rst +0 -0
  1322. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/index.rst +0 -0
  1323. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/introduction.rst +0 -0
  1324. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/misc.rst +0 -0
  1325. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/performance.rst +0 -0
  1326. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/source/user/whatisnumpy.rst +0 -0
  1327. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/.git +0 -0
  1328. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/.gitignore +0 -0
  1329. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/.travis.yml +0 -0
  1330. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/LICENSE.txt +0 -0
  1331. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/MANIFEST.in +0 -0
  1332. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/README.rst +0 -0
  1333. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/__init__.py +0 -0
  1334. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/comment_eater.py +0 -0
  1335. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/compiler_unparse.py +0 -0
  1336. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/docscrape.py +0 -0
  1337. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/docscrape_sphinx.py +0 -0
  1338. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/linkcode.py +0 -0
  1339. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/numpydoc.py +0 -0
  1340. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/phantom_import.py +0 -0
  1341. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/plot_directive.py +0 -0
  1342. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/tests/test_docscrape.py +0 -0
  1343. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/tests/test_linkcode.py +0 -0
  1344. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/tests/test_phantom_import.py +0 -0
  1345. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/tests/test_plot_directive.py +0 -0
  1346. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/tests/test_traitsdoc.py +0 -0
  1347. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/traitsdoc.py +0 -0
  1348. {numpy-1.9.3 → numpy-1.10.0.post2}/doc/sphinxext/setup.py +0 -0
  1349. {numpy-1.9.3/numpy/core/code_generators → numpy-1.10.0.post2/numpy/_build_utils}/__init__.py +0 -0
  1350. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/compat/__init__.py +0 -0
  1351. {numpy-1.9.3/numpy/distutils/tests/f2py_ext → numpy-1.10.0.post2/numpy/core/code_generators}/__init__.py +0 -0
  1352. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/code_generators/genapi.py +0 -0
  1353. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/code_generators/generate_numpy_api.py +0 -0
  1354. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/cversions.py +0 -0
  1355. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/_neighborhood_iterator_imp.h +0 -0
  1356. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/_numpyconfig.h.in +0 -0
  1357. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/arrayobject.h +0 -0
  1358. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/arrayscalars.h +0 -0
  1359. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/halffloat.h +0 -0
  1360. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/noprefix.h +0 -0
  1361. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/npy_1_7_deprecated_api.h +0 -0
  1362. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/npy_interrupt.h +0 -0
  1363. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/npy_no_deprecated_api.h +0 -0
  1364. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/npy_os.h +0 -0
  1365. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/old_defines.h +0 -0
  1366. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/oldnumeric.h +0 -0
  1367. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/ufuncobject.h +0 -0
  1368. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/include/numpy/utils.h +0 -0
  1369. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/info.py +0 -0
  1370. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/mlib.ini.in +0 -0
  1371. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/npymath.ini.in +0 -0
  1372. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/dummymodule.c +0 -0
  1373. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/_datetime.h +0 -0
  1374. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/alloc.h +0 -0
  1375. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/array_assign.c +0 -0
  1376. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/array_assign.h +0 -0
  1377. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/array_assign_array.c +0 -0
  1378. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/array_assign_scalar.c +0 -0
  1379. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/arrayobject.h +0 -0
  1380. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/buffer.h +0 -0
  1381. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/calculation.h +0 -0
  1382. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/conversion_utils.h +0 -0
  1383. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/convert.h +0 -0
  1384. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/convert_datatype.h +0 -0
  1385. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/ctors.h +0 -0
  1386. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/datetime_busday.h +0 -0
  1387. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/datetime_busdaycal.h +0 -0
  1388. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/datetime_strings.h +0 -0
  1389. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/descriptor.h +0 -0
  1390. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/flagsobject.c +0 -0
  1391. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/getset.h +0 -0
  1392. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/hashdescr.h +0 -0
  1393. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/item_selection.h +0 -0
  1394. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/iterators.h +0 -0
  1395. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/methods.h +0 -0
  1396. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/nditer_impl.h +0 -0
  1397. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/nditer_pywrap.h +0 -0
  1398. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/nditer_templ.c.src +0 -0
  1399. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/numpymemoryview.h +0 -0
  1400. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/numpyos.h +0 -0
  1401. {numpy-1.9.3/numpy/core/blasdot → numpy-1.10.0.post2/numpy/core/src/multiarray}/python_xerbla.c +0 -0
  1402. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/refcount.c +0 -0
  1403. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/refcount.h +0 -0
  1404. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/sequence.c +0 -0
  1405. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/sequence.h +0 -0
  1406. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/shape.h +0 -0
  1407. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/ucsnarrow.h +0 -0
  1408. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/usertypes.c +0 -0
  1409. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/multiarray/usertypes.h +0 -0
  1410. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/npymath/_signbit.c +0 -0
  1411. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/npymath/halffloat.c +0 -0
  1412. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/npymath/npy_math_common.h +0 -0
  1413. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/npysort/binsearch.c.src +0 -0
  1414. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/private/lowlevel_strided_loops.h +0 -0
  1415. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/private/npy_binsearch.h.src +0 -0
  1416. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/private/npy_fpmath.h +0 -0
  1417. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/private/npy_pycompat.h +0 -0
  1418. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/umath/reduction.c +0 -0
  1419. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/umath/reduction.h +0 -0
  1420. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/umath/struct_ufunc_test.c.src +0 -0
  1421. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/umath/ufunc_object.h +0 -0
  1422. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/src/umath/ufunc_type_resolution.h +0 -0
  1423. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/tests/data/astype_copy.pkl +0 -0
  1424. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/tests/data/recarray_from_file.fits +0 -0
  1425. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/core/tests/test_scalarprint.py +0 -0
  1426. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/ctypeslib.py +0 -0
  1427. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/__version__.py +0 -0
  1428. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/__init__.py +0 -0
  1429. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/bdist_rpm.py +0 -0
  1430. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/build_py.py +0 -0
  1431. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/build_scripts.py +0 -0
  1432. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/build_src.py +0 -0
  1433. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/config_compiler.py +0 -0
  1434. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/develop.py +0 -0
  1435. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/egg_info.py +0 -0
  1436. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/install.py +0 -0
  1437. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/install_clib.py +0 -0
  1438. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/install_data.py +0 -0
  1439. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/install_headers.py +0 -0
  1440. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/command/sdist.py +0 -0
  1441. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/compat.py +0 -0
  1442. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/conv_template.py +0 -0
  1443. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/core.py +0 -0
  1444. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/cpuinfo.py +0 -0
  1445. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/environment.py +0 -0
  1446. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/extension.py +0 -0
  1447. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/__init__.py +0 -0
  1448. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/absoft.py +0 -0
  1449. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/g95.py +0 -0
  1450. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/hpux.py +0 -0
  1451. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/ibm.py +0 -0
  1452. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/lahey.py +0 -0
  1453. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/mips.py +0 -0
  1454. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/nag.py +0 -0
  1455. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/none.py +0 -0
  1456. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/pathf95.py +0 -0
  1457. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/vast.py +0 -0
  1458. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/from_template.py +0 -0
  1459. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/info.py +0 -0
  1460. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/line_endings.py +0 -0
  1461. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/log.py +0 -0
  1462. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/mingw/gfortran_vs2003_hack.c +0 -0
  1463. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/numpy_distribution.py +0 -0
  1464. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/pathccompiler.py +0 -0
  1465. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/setup.py +0 -0
  1466. {numpy-1.9.3/numpy/distutils/tests/f2py_f90_ext → numpy-1.10.0.post2/numpy/distutils/tests/f2py_ext}/__init__.py +0 -0
  1467. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/f2py_ext/setup.py +0 -0
  1468. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/f2py_ext/src/fib1.f +0 -0
  1469. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/f2py_ext/src/fib2.pyf +0 -0
  1470. {numpy-1.9.3/numpy/distutils/tests/gen_ext → numpy-1.10.0.post2/numpy/distutils/tests/f2py_f90_ext}/__init__.py +0 -0
  1471. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/f2py_f90_ext/include/body.f90 +0 -0
  1472. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/f2py_f90_ext/setup.py +0 -0
  1473. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/f2py_f90_ext/src/foo_free.f90 +0 -0
  1474. {numpy-1.9.3/numpy/distutils/tests/pyrex_ext → numpy-1.10.0.post2/numpy/distutils/tests/gen_ext}/__init__.py +0 -0
  1475. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/gen_ext/setup.py +0 -0
  1476. {numpy-1.9.3/numpy/distutils/tests/swig_ext → numpy-1.10.0.post2/numpy/distutils/tests/pyrex_ext}/__init__.py +0 -0
  1477. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/pyrex_ext/primes.pyx +0 -0
  1478. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/pyrex_ext/setup.py +0 -0
  1479. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/setup.py +0 -0
  1480. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/swig_ext/setup.py +0 -0
  1481. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/swig_ext/src/example.c +0 -0
  1482. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/swig_ext/src/example.i +0 -0
  1483. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/swig_ext/src/zoo.cc +0 -0
  1484. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/swig_ext/src/zoo.h +0 -0
  1485. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/swig_ext/src/zoo.i +0 -0
  1486. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/distutils/tests/test_exec_command.py +0 -0
  1487. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/__init__.py +0 -0
  1488. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/basics.py +0 -0
  1489. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/broadcasting.py +0 -0
  1490. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/constants.py +0 -0
  1491. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/howtofind.py +0 -0
  1492. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/internals.py +0 -0
  1493. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/io.py +0 -0
  1494. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/jargon.py +0 -0
  1495. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/methods_vs_functions.py +0 -0
  1496. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/misc.py +0 -0
  1497. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/performance.py +0 -0
  1498. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/subclassing.py +0 -0
  1499. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/doc/ufuncs.py +0 -0
  1500. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/dual.py +0 -0
  1501. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/__version__.py +0 -0
  1502. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/info.py +0 -0
  1503. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/tests/src/assumed_shape/.f2py_f2cmap +0 -0
  1504. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/tests/src/assumed_shape/foo_free.f90 +0 -0
  1505. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/tests/src/assumed_shape/foo_mod.f90 +0 -0
  1506. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/tests/src/assumed_shape/foo_use.f90 +0 -0
  1507. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/tests/src/assumed_shape/precision.f90 +0 -0
  1508. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/tests/src/kind/foo.f90 +0 -0
  1509. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/tests/src/mixed/foo.f +0 -0
  1510. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/tests/src/mixed/foo_fixed.f90 +0 -0
  1511. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/tests/src/mixed/foo_free.f90 +0 -0
  1512. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/tests/src/regression/inout.f90 +0 -0
  1513. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/f2py/tests/src/size/foo.f90 +0 -0
  1514. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/fft/__init__.py +0 -0
  1515. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/fft/helper.py +0 -0
  1516. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/__init__.py +0 -0
  1517. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/_datasource.py +0 -0
  1518. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/_version.py +0 -0
  1519. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/scimath.py +0 -0
  1520. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/tests/data/python3.npy +0 -0
  1521. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/tests/data/win64python2.npy +0 -0
  1522. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/tests/test__datasource.py +0 -0
  1523. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/tests/test_arrayterator.py +0 -0
  1524. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/tests/test_regression.py +0 -0
  1525. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/tests/test_ufunclike.py +0 -0
  1526. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/tests/test_utils.py +0 -0
  1527. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/ufunclike.py +0 -0
  1528. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/lib/user_array.py +0 -0
  1529. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/linalg/__init__.py +0 -0
  1530. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/linalg/info.py +0 -0
  1531. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/linalg/lapack_lite/blas_lite.c +0 -0
  1532. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/linalg/lapack_lite/dlamch.c +0 -0
  1533. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/linalg/lapack_lite/dlapack_lite.c +0 -0
  1534. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/linalg/lapack_lite/f2c.h +0 -0
  1535. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/linalg/lapack_lite/f2c_lite.c +0 -0
  1536. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/linalg/lapack_lite/zlapack_lite.c +0 -0
  1537. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/linalg/setup.py +0 -0
  1538. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/linalg/tests/test_deprecations.py +0 -0
  1539. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/ma/version.py +0 -0
  1540. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/matrixlib/__init__.py +0 -0
  1541. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/matrixlib/setup.py +0 -0
  1542. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/polynomial/__init__.py +0 -0
  1543. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/polynomial/polynomial.py +0 -0
  1544. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/polynomial/setup.py +0 -0
  1545. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_chebyshev.py +0 -0
  1546. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_classes.py +0 -0
  1547. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_hermite.py +0 -0
  1548. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_hermite_e.py +0 -0
  1549. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_laguerre.py +0 -0
  1550. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_legendre.py +0 -0
  1551. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_polynomial.py +0 -0
  1552. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_polyutils.py +0 -0
  1553. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_printing.py +0 -0
  1554. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/random/__init__.py +0 -0
  1555. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/random/info.py +0 -0
  1556. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/random/mtrand/Python.pxi +0 -0
  1557. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/random/mtrand/distributions.h +0 -0
  1558. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/random/mtrand/generate_mtrand_c.py +0 -0
  1559. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/random/mtrand/initarray.c +0 -0
  1560. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/random/mtrand/initarray.h +0 -0
  1561. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/random/mtrand/mtrand_py_helper.h +0 -0
  1562. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/random/mtrand/numpy.pxd +0 -0
  1563. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/random/mtrand/randomkit.c +0 -0
  1564. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/random/mtrand/randomkit.h +0 -0
  1565. {numpy-1.9.3 → numpy-1.10.0.post2}/numpy/testing/tests/test_doctesting.py +0 -0
  1566. {numpy-1.9.3 → numpy-1.10.0.post2}/setupegg.py +0 -0
  1567. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/Makefile +0 -0
  1568. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/pyfragments.swg +0 -0
  1569. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Array1.cxx +0 -0
  1570. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Array1.h +0 -0
  1571. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Array2.cxx +0 -0
  1572. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Array2.h +0 -0
  1573. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Farray.cxx +0 -0
  1574. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Farray.h +0 -0
  1575. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Farray.i +0 -0
  1576. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Fortran.cxx +0 -0
  1577. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Fortran.h +0 -0
  1578. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Fortran.i +0 -0
  1579. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Matrix.cxx +0 -0
  1580. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Matrix.h +0 -0
  1581. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Matrix.i +0 -0
  1582. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/SuperTensor.cxx +0 -0
  1583. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/SuperTensor.h +0 -0
  1584. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/SuperTensor.i +0 -0
  1585. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Tensor.cxx +0 -0
  1586. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Tensor.h +0 -0
  1587. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Tensor.i +0 -0
  1588. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Vector.cxx +0 -0
  1589. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Vector.h +0 -0
  1590. {numpy-1.9.3 → numpy-1.10.0.post2}/tools/swig/test/Vector.i +0 -0
@@ -0,0 +1,2675 @@
1
+ /* -*- c -*- */
2
+
3
+ #define _UMATHMODULE
4
+ #define NPY_NO_DEPRECATED_API NPY_API_VERSION
5
+
6
+ #include "Python.h"
7
+
8
+ #include "npy_config.h"
9
+ #ifdef ENABLE_SEPARATE_COMPILATION
10
+ #define PY_ARRAY_UNIQUE_SYMBOL _npy_umathmodule_ARRAY_API
11
+ #define NO_IMPORT_ARRAY
12
+ #endif
13
+
14
+ #include "numpy/npy_common.h"
15
+ #include "numpy/arrayobject.h"
16
+ #include "numpy/ufuncobject.h"
17
+ #include "numpy/npy_math.h"
18
+ #include "numpy/halffloat.h"
19
+ #include "lowlevel_strided_loops.h"
20
+
21
+ #include "npy_pycompat.h"
22
+
23
+ #include "ufunc_object.h"
24
+
25
+ #include <string.h> /* for memchr */
26
+
27
+ /*
28
+ * cutoff blocksize for pairwise summation
29
+ * decreasing it decreases errors slightly as more pairs are summed but
30
+ * also lowers performance, as the inner loop is unrolled eight times it is
31
+ * effectively 16
32
+ */
33
+ #define PW_BLOCKSIZE 128
34
+
35
+ /*
36
+ * include vectorized functions and dispatchers
37
+ * this file is safe to include also for generic builds
38
+ * platform specific instructions are either masked via the proprocessor or
39
+ * runtime detected
40
+ */
41
+ #include "simd.inc"
42
+
43
+
44
+ /*
45
+ *****************************************************************************
46
+ ** UFUNC LOOPS **
47
+ *****************************************************************************
48
+ */
49
+
50
+ /* unary loop input and output contiguous */
51
+ #define IS_UNARY_CONT(tin, tout) (steps[0] == sizeof(tin) && \
52
+ steps[1] == sizeof(tout))
53
+
54
+ #define IS_BINARY_REDUCE ((args[0] == args[2])\
55
+ && (steps[0] == steps[2])\
56
+ && (steps[0] == 0))
57
+
58
+ /* binary loop input and output contiguous */
59
+ #define IS_BINARY_CONT(tin, tout) (steps[0] == sizeof(tin) && \
60
+ steps[1] == sizeof(tin) && \
61
+ steps[2] == sizeof(tout))
62
+ /* binary loop input and output contiguous with first scalar */
63
+ #define IS_BINARY_CONT_S1(tin, tout) (steps[0] == 0 && \
64
+ steps[1] == sizeof(tin) && \
65
+ steps[2] == sizeof(tout))
66
+ /* binary loop input and output contiguous with second scalar */
67
+ #define IS_BINARY_CONT_S2(tin, tout) (steps[0] == sizeof(tin) && \
68
+ steps[1] == 0 && \
69
+ steps[2] == sizeof(tout))
70
+
71
+ #define OUTPUT_LOOP\
72
+ char *op1 = args[1];\
73
+ npy_intp os1 = steps[1];\
74
+ npy_intp n = dimensions[0];\
75
+ npy_intp i;\
76
+ for(i = 0; i < n; i++, op1 += os1)
77
+
78
+ #define UNARY_LOOP\
79
+ char *ip1 = args[0], *op1 = args[1];\
80
+ npy_intp is1 = steps[0], os1 = steps[1];\
81
+ npy_intp n = dimensions[0];\
82
+ npy_intp i;\
83
+ for(i = 0; i < n; i++, ip1 += is1, op1 += os1)
84
+
85
+ /*
86
+ * loop with contiguous specialization
87
+ * op should be the code working on `tin in` and
88
+ * storing the result in `tout * out`
89
+ * combine with NPY_GCC_OPT_3 to allow autovectorization
90
+ * should only be used where its worthwhile to avoid code bloat
91
+ */
92
+ #define UNARY_LOOP_FAST(tin, tout, op) \
93
+ do { \
94
+ /* condition allows compiler to optimize the generic macro */ \
95
+ if (IS_UNARY_CONT(tin, tout)) { \
96
+ UNARY_LOOP { \
97
+ const tin in = *(tin *)ip1; \
98
+ tout * out = (tout *)op1; \
99
+ op; \
100
+ } \
101
+ } \
102
+ else { \
103
+ UNARY_LOOP { \
104
+ const tin in = *(tin *)ip1; \
105
+ tout * out = (tout *)op1; \
106
+ op; \
107
+ } \
108
+ } \
109
+ } \
110
+ while (0)
111
+
112
+ #define UNARY_LOOP_TWO_OUT\
113
+ char *ip1 = args[0], *op1 = args[1], *op2 = args[2];\
114
+ npy_intp is1 = steps[0], os1 = steps[1], os2 = steps[2];\
115
+ npy_intp n = dimensions[0];\
116
+ npy_intp i;\
117
+ for(i = 0; i < n; i++, ip1 += is1, op1 += os1, op2 += os2)
118
+
119
+ #define BINARY_LOOP\
120
+ char *ip1 = args[0], *ip2 = args[1], *op1 = args[2];\
121
+ npy_intp is1 = steps[0], is2 = steps[1], os1 = steps[2];\
122
+ npy_intp n = dimensions[0];\
123
+ npy_intp i;\
124
+ for(i = 0; i < n; i++, ip1 += is1, ip2 += is2, op1 += os1)
125
+
126
+ /*
127
+ * loop with contiguous specialization
128
+ * op should be the code working on `tin in1`, `tin in2` and
129
+ * storing the result in `tout * out`
130
+ * combine with NPY_GCC_OPT_3 to allow autovectorization
131
+ * should only be used where its worthwhile to avoid code bloat
132
+ */
133
+ #define BINARY_LOOP_FAST(tin, tout, op) \
134
+ do { \
135
+ /* condition allows compiler to optimize the generic macro */ \
136
+ if (IS_BINARY_CONT(tin, tout)) { \
137
+ BINARY_LOOP { \
138
+ const tin in1 = *(tin *)ip1; \
139
+ const tin in2 = *(tin *)ip2; \
140
+ tout * out = (tout *)op1; \
141
+ op; \
142
+ } \
143
+ } \
144
+ else if (IS_BINARY_CONT_S1(tin, tout)) { \
145
+ const tin in1 = *(tin *)args[0]; \
146
+ BINARY_LOOP { \
147
+ const tin in2 = *(tin *)ip2; \
148
+ tout * out = (tout *)op1; \
149
+ op; \
150
+ } \
151
+ } \
152
+ else if (IS_BINARY_CONT_S2(tin, tout)) { \
153
+ const tin in2 = *(tin *)args[1]; \
154
+ BINARY_LOOP { \
155
+ const tin in1 = *(tin *)ip1; \
156
+ tout * out = (tout *)op1; \
157
+ op; \
158
+ } \
159
+ } \
160
+ else { \
161
+ BINARY_LOOP { \
162
+ const tin in1 = *(tin *)ip1; \
163
+ const tin in2 = *(tin *)ip2; \
164
+ tout * out = (tout *)op1; \
165
+ op; \
166
+ } \
167
+ } \
168
+ } \
169
+ while (0)
170
+
171
+ #define BINARY_REDUCE_LOOP_INNER\
172
+ char *ip2 = args[1]; \
173
+ npy_intp is2 = steps[1]; \
174
+ npy_intp n = dimensions[0]; \
175
+ npy_intp i; \
176
+ for(i = 0; i < n; i++, ip2 += is2)
177
+
178
+ #define BINARY_REDUCE_LOOP(TYPE)\
179
+ char *iop1 = args[0]; \
180
+ TYPE io1 = *(TYPE *)iop1; \
181
+ BINARY_REDUCE_LOOP_INNER
182
+
183
+ #define BINARY_LOOP_TWO_OUT\
184
+ char *ip1 = args[0], *ip2 = args[1], *op1 = args[2], *op2 = args[3];\
185
+ npy_intp is1 = steps[0], is2 = steps[1], os1 = steps[2], os2 = steps[3];\
186
+ npy_intp n = dimensions[0];\
187
+ npy_intp i;\
188
+ for(i = 0; i < n; i++, ip1 += is1, ip2 += is2, op1 += os1, op2 += os2)
189
+
190
+ /******************************************************************************
191
+ ** GENERIC FLOAT LOOPS **
192
+ *****************************************************************************/
193
+
194
+
195
+ typedef float halfUnaryFunc(npy_half x);
196
+ typedef float floatUnaryFunc(float x);
197
+ typedef double doubleUnaryFunc(double x);
198
+ typedef npy_longdouble longdoubleUnaryFunc(npy_longdouble x);
199
+ typedef npy_half halfBinaryFunc(npy_half x, npy_half y);
200
+ typedef float floatBinaryFunc(float x, float y);
201
+ typedef double doubleBinaryFunc(double x, double y);
202
+ typedef npy_longdouble longdoubleBinaryFunc(npy_longdouble x, npy_longdouble y);
203
+
204
+
205
+ /*UFUNC_API*/
206
+ NPY_NO_EXPORT void
207
+ PyUFunc_e_e(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
208
+ {
209
+ halfUnaryFunc *f = (halfUnaryFunc *)func;
210
+ UNARY_LOOP {
211
+ const npy_half in1 = *(npy_half *)ip1;
212
+ *(npy_half *)op1 = f(in1);
213
+ }
214
+ }
215
+
216
+ /*UFUNC_API*/
217
+ NPY_NO_EXPORT void
218
+ PyUFunc_e_e_As_f_f(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
219
+ {
220
+ floatUnaryFunc *f = (floatUnaryFunc *)func;
221
+ UNARY_LOOP {
222
+ const float in1 = npy_half_to_float(*(npy_half *)ip1);
223
+ *(npy_half *)op1 = npy_float_to_half(f(in1));
224
+ }
225
+ }
226
+
227
+ /*UFUNC_API*/
228
+ NPY_NO_EXPORT void
229
+ PyUFunc_e_e_As_d_d(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
230
+ {
231
+ doubleUnaryFunc *f = (doubleUnaryFunc *)func;
232
+ UNARY_LOOP {
233
+ const double in1 = npy_half_to_double(*(npy_half *)ip1);
234
+ *(npy_half *)op1 = npy_double_to_half(f(in1));
235
+ }
236
+ }
237
+
238
+ /*UFUNC_API*/
239
+ NPY_NO_EXPORT void
240
+ PyUFunc_f_f(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
241
+ {
242
+ floatUnaryFunc *f = (floatUnaryFunc *)func;
243
+ UNARY_LOOP {
244
+ const float in1 = *(float *)ip1;
245
+ *(float *)op1 = f(in1);
246
+ }
247
+ }
248
+
249
+ /*UFUNC_API*/
250
+ NPY_NO_EXPORT void
251
+ PyUFunc_f_f_As_d_d(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
252
+ {
253
+ doubleUnaryFunc *f = (doubleUnaryFunc *)func;
254
+ UNARY_LOOP {
255
+ const float in1 = *(float *)ip1;
256
+ *(float *)op1 = (float)f((double)in1);
257
+ }
258
+ }
259
+
260
+ /*UFUNC_API*/
261
+ NPY_NO_EXPORT void
262
+ PyUFunc_ee_e(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
263
+ {
264
+ halfBinaryFunc *f = (halfBinaryFunc *)func;
265
+ BINARY_LOOP {
266
+ npy_half in1 = *(npy_half *)ip1;
267
+ npy_half in2 = *(npy_half *)ip2;
268
+ *(npy_half *)op1 = f(in1, in2);
269
+ }
270
+ }
271
+
272
+ /*UFUNC_API*/
273
+ NPY_NO_EXPORT void
274
+ PyUFunc_ee_e_As_ff_f(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
275
+ {
276
+ floatBinaryFunc *f = (floatBinaryFunc *)func;
277
+ BINARY_LOOP {
278
+ float in1 = npy_half_to_float(*(npy_half *)ip1);
279
+ float in2 = npy_half_to_float(*(npy_half *)ip2);
280
+ *(npy_half *)op1 = npy_float_to_half(f(in1, in2));
281
+ }
282
+ }
283
+
284
+ /*UFUNC_API*/
285
+ NPY_NO_EXPORT void
286
+ PyUFunc_ee_e_As_dd_d(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
287
+ {
288
+ doubleBinaryFunc *f = (doubleBinaryFunc *)func;
289
+ BINARY_LOOP {
290
+ double in1 = npy_half_to_double(*(npy_half *)ip1);
291
+ double in2 = npy_half_to_double(*(npy_half *)ip2);
292
+ *(npy_half *)op1 = npy_double_to_half(f(in1, in2));
293
+ }
294
+ }
295
+
296
+ /*UFUNC_API*/
297
+ NPY_NO_EXPORT void
298
+ PyUFunc_ff_f(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
299
+ {
300
+ floatBinaryFunc *f = (floatBinaryFunc *)func;
301
+ BINARY_LOOP {
302
+ float in1 = *(float *)ip1;
303
+ float in2 = *(float *)ip2;
304
+ *(float *)op1 = f(in1, in2);
305
+ }
306
+ }
307
+
308
+ /*UFUNC_API*/
309
+ NPY_NO_EXPORT void
310
+ PyUFunc_ff_f_As_dd_d(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
311
+ {
312
+ doubleBinaryFunc *f = (doubleBinaryFunc *)func;
313
+ BINARY_LOOP {
314
+ float in1 = *(float *)ip1;
315
+ float in2 = *(float *)ip2;
316
+ *(float *)op1 = (double)f((double)in1, (double)in2);
317
+ }
318
+ }
319
+
320
+ /*UFUNC_API*/
321
+ NPY_NO_EXPORT void
322
+ PyUFunc_d_d(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
323
+ {
324
+ doubleUnaryFunc *f = (doubleUnaryFunc *)func;
325
+ UNARY_LOOP {
326
+ double in1 = *(double *)ip1;
327
+ *(double *)op1 = f(in1);
328
+ }
329
+ }
330
+
331
+ /*UFUNC_API*/
332
+ NPY_NO_EXPORT void
333
+ PyUFunc_dd_d(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
334
+ {
335
+ doubleBinaryFunc *f = (doubleBinaryFunc *)func;
336
+ BINARY_LOOP {
337
+ double in1 = *(double *)ip1;
338
+ double in2 = *(double *)ip2;
339
+ *(double *)op1 = f(in1, in2);
340
+ }
341
+ }
342
+
343
+ /*UFUNC_API*/
344
+ NPY_NO_EXPORT void
345
+ PyUFunc_g_g(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
346
+ {
347
+ longdoubleUnaryFunc *f = (longdoubleUnaryFunc *)func;
348
+ UNARY_LOOP {
349
+ npy_longdouble in1 = *(npy_longdouble *)ip1;
350
+ *(npy_longdouble *)op1 = f(in1);
351
+ }
352
+ }
353
+
354
+ /*UFUNC_API*/
355
+ NPY_NO_EXPORT void
356
+ PyUFunc_gg_g(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
357
+ {
358
+ longdoubleBinaryFunc *f = (longdoubleBinaryFunc *)func;
359
+ BINARY_LOOP {
360
+ npy_longdouble in1 = *(npy_longdouble *)ip1;
361
+ npy_longdouble in2 = *(npy_longdouble *)ip2;
362
+ *(npy_longdouble *)op1 = f(in1, in2);
363
+ }
364
+ }
365
+
366
+
367
+
368
+ /******************************************************************************
369
+ ** GENERIC COMPLEX LOOPS **
370
+ *****************************************************************************/
371
+
372
+
373
+ typedef void cdoubleUnaryFunc(npy_cdouble *x, npy_cdouble *r);
374
+ typedef void cfloatUnaryFunc(npy_cfloat *x, npy_cfloat *r);
375
+ typedef void clongdoubleUnaryFunc(npy_clongdouble *x, npy_clongdouble *r);
376
+ typedef void cdoubleBinaryFunc(npy_cdouble *x, npy_cdouble *y, npy_cdouble *r);
377
+ typedef void cfloatBinaryFunc(npy_cfloat *x, npy_cfloat *y, npy_cfloat *r);
378
+ typedef void clongdoubleBinaryFunc(npy_clongdouble *x, npy_clongdouble *y,
379
+ npy_clongdouble *r);
380
+
381
+ /*UFUNC_API*/
382
+ NPY_NO_EXPORT void
383
+ PyUFunc_F_F(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
384
+ {
385
+ cfloatUnaryFunc *f = (cfloatUnaryFunc *)func;
386
+ UNARY_LOOP {
387
+ npy_cfloat in1 = *(npy_cfloat *)ip1;
388
+ npy_cfloat *out = (npy_cfloat *)op1;
389
+ f(&in1, out);
390
+ }
391
+ }
392
+
393
+ /*UFUNC_API*/
394
+ NPY_NO_EXPORT void
395
+ PyUFunc_F_F_As_D_D(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
396
+ {
397
+ cdoubleUnaryFunc *f = (cdoubleUnaryFunc *)func;
398
+ UNARY_LOOP {
399
+ npy_cdouble tmp, out;
400
+ tmp.real = (double)((float *)ip1)[0];
401
+ tmp.imag = (double)((float *)ip1)[1];
402
+ f(&tmp, &out);
403
+ ((float *)op1)[0] = (float)out.real;
404
+ ((float *)op1)[1] = (float)out.imag;
405
+ }
406
+ }
407
+
408
+ /*UFUNC_API*/
409
+ NPY_NO_EXPORT void
410
+ PyUFunc_FF_F(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
411
+ {
412
+ cfloatBinaryFunc *f = (cfloatBinaryFunc *)func;
413
+ BINARY_LOOP {
414
+ npy_cfloat in1 = *(npy_cfloat *)ip1;
415
+ npy_cfloat in2 = *(npy_cfloat *)ip2;
416
+ npy_cfloat *out = (npy_cfloat *)op1;
417
+ f(&in1, &in2, out);
418
+ }
419
+ }
420
+
421
+ /*UFUNC_API*/
422
+ NPY_NO_EXPORT void
423
+ PyUFunc_FF_F_As_DD_D(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
424
+ {
425
+ cdoubleBinaryFunc *f = (cdoubleBinaryFunc *)func;
426
+ BINARY_LOOP {
427
+ npy_cdouble tmp1, tmp2, out;
428
+ tmp1.real = (double)((float *)ip1)[0];
429
+ tmp1.imag = (double)((float *)ip1)[1];
430
+ tmp2.real = (double)((float *)ip2)[0];
431
+ tmp2.imag = (double)((float *)ip2)[1];
432
+ f(&tmp1, &tmp2, &out);
433
+ ((float *)op1)[0] = (float)out.real;
434
+ ((float *)op1)[1] = (float)out.imag;
435
+ }
436
+ }
437
+
438
+ /*UFUNC_API*/
439
+ NPY_NO_EXPORT void
440
+ PyUFunc_D_D(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
441
+ {
442
+ cdoubleUnaryFunc *f = (cdoubleUnaryFunc *)func;
443
+ UNARY_LOOP {
444
+ npy_cdouble in1 = *(npy_cdouble *)ip1;
445
+ npy_cdouble *out = (npy_cdouble *)op1;
446
+ f(&in1, out);
447
+ }
448
+ }
449
+
450
+ /*UFUNC_API*/
451
+ NPY_NO_EXPORT void
452
+ PyUFunc_DD_D(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
453
+ {
454
+ cdoubleBinaryFunc *f = (cdoubleBinaryFunc *)func;
455
+ BINARY_LOOP {
456
+ npy_cdouble in1 = *(npy_cdouble *)ip1;
457
+ npy_cdouble in2 = *(npy_cdouble *)ip2;
458
+ npy_cdouble *out = (npy_cdouble *)op1;
459
+ f(&in1, &in2, out);
460
+ }
461
+ }
462
+
463
+ /*UFUNC_API*/
464
+ NPY_NO_EXPORT void
465
+ PyUFunc_G_G(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
466
+ {
467
+ clongdoubleUnaryFunc *f = (clongdoubleUnaryFunc *)func;
468
+ UNARY_LOOP {
469
+ npy_clongdouble in1 = *(npy_clongdouble *)ip1;
470
+ npy_clongdouble *out = (npy_clongdouble *)op1;
471
+ f(&in1, out);
472
+ }
473
+ }
474
+
475
+ /*UFUNC_API*/
476
+ NPY_NO_EXPORT void
477
+ PyUFunc_GG_G(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
478
+ {
479
+ clongdoubleBinaryFunc *f = (clongdoubleBinaryFunc *)func;
480
+ BINARY_LOOP {
481
+ npy_clongdouble in1 = *(npy_clongdouble *)ip1;
482
+ npy_clongdouble in2 = *(npy_clongdouble *)ip2;
483
+ npy_clongdouble *out = (npy_clongdouble *)op1;
484
+ f(&in1, &in2, out);
485
+ }
486
+ }
487
+
488
+
489
+ /******************************************************************************
490
+ ** GENERIC OBJECT lOOPS **
491
+ *****************************************************************************/
492
+
493
+ /*UFUNC_API*/
494
+ NPY_NO_EXPORT void
495
+ PyUFunc_O_O(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
496
+ {
497
+ unaryfunc f = (unaryfunc)func;
498
+ UNARY_LOOP {
499
+ PyObject *in1 = *(PyObject **)ip1;
500
+ PyObject **out = (PyObject **)op1;
501
+ PyObject *ret = f(in1 ? in1 : Py_None);
502
+ if (ret == NULL) {
503
+ return;
504
+ }
505
+ Py_XDECREF(*out);
506
+ *out = ret;
507
+ }
508
+ }
509
+
510
+ /*UFUNC_API*/
511
+ NPY_NO_EXPORT void
512
+ PyUFunc_O_O_method(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
513
+ {
514
+ char *meth = (char *)func;
515
+ UNARY_LOOP {
516
+ PyObject *in1 = *(PyObject **)ip1;
517
+ PyObject **out = (PyObject **)op1;
518
+ PyObject *ret = PyObject_CallMethod(in1 ? in1 : Py_None, meth, NULL);
519
+ if (ret == NULL) {
520
+ return;
521
+ }
522
+ Py_XDECREF(*out);
523
+ *out = ret;
524
+ }
525
+ }
526
+
527
+ /*UFUNC_API*/
528
+ NPY_NO_EXPORT void
529
+ PyUFunc_OO_O(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
530
+ {
531
+ binaryfunc f = (binaryfunc)func;
532
+ BINARY_LOOP {
533
+ PyObject *in1 = *(PyObject **)ip1;
534
+ PyObject *in2 = *(PyObject **)ip2;
535
+ PyObject **out = (PyObject **)op1;
536
+ PyObject *ret = f(in1 ? in1 : Py_None, in2 ? in2 : Py_None);
537
+ if (ret == NULL) {
538
+ return;
539
+ }
540
+ Py_XDECREF(*out);
541
+ *out = ret;
542
+ }
543
+ }
544
+
545
+ /*UFUNC_API*/
546
+ NPY_NO_EXPORT void
547
+ PyUFunc_OO_O_method(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
548
+ {
549
+ char *meth = (char *)func;
550
+ BINARY_LOOP {
551
+ PyObject *in1 = *(PyObject **)ip1;
552
+ PyObject *in2 = *(PyObject **)ip2;
553
+ PyObject **out = (PyObject **)op1;
554
+ PyObject *ret = PyObject_CallMethod(in1 ? in1 : Py_None,
555
+ meth, "(O)", in2);
556
+ if (ret == NULL) {
557
+ return;
558
+ }
559
+ Py_XDECREF(*out);
560
+ *out = ret;
561
+ }
562
+ }
563
+
564
+ /*
565
+ * A general-purpose ufunc that deals with general-purpose Python callable.
566
+ * func is a structure with nin, nout, and a Python callable function
567
+ */
568
+
569
+ /*UFUNC_API*/
570
+ NPY_NO_EXPORT void
571
+ PyUFunc_On_Om(char **args, npy_intp *dimensions, npy_intp *steps, void *func)
572
+ {
573
+ npy_intp n = dimensions[0];
574
+ PyUFunc_PyFuncData *data = (PyUFunc_PyFuncData *)func;
575
+ int nin = data->nin;
576
+ int nout = data->nout;
577
+ PyObject *tocall = data->callable;
578
+ char *ptrs[NPY_MAXARGS];
579
+ PyObject *arglist, *result;
580
+ PyObject *in, **op;
581
+ npy_intp i, j, ntot;
582
+
583
+ ntot = nin+nout;
584
+
585
+ for(j = 0; j < ntot; j++) {
586
+ ptrs[j] = args[j];
587
+ }
588
+ for(i = 0; i < n; i++) {
589
+ arglist = PyTuple_New(nin);
590
+ if (arglist == NULL) {
591
+ return;
592
+ }
593
+ for(j = 0; j < nin; j++) {
594
+ in = *((PyObject **)ptrs[j]);
595
+ if (in == NULL) {
596
+ in = Py_None;
597
+ }
598
+ PyTuple_SET_ITEM(arglist, j, in);
599
+ Py_INCREF(in);
600
+ }
601
+ result = PyEval_CallObject(tocall, arglist);
602
+ Py_DECREF(arglist);
603
+ if (result == NULL) {
604
+ return;
605
+ }
606
+ if (PyTuple_Check(result)) {
607
+ if (nout != PyTuple_Size(result)) {
608
+ Py_DECREF(result);
609
+ return;
610
+ }
611
+ for(j = 0; j < nout; j++) {
612
+ op = (PyObject **)ptrs[j+nin];
613
+ Py_XDECREF(*op);
614
+ *op = PyTuple_GET_ITEM(result, j);
615
+ Py_INCREF(*op);
616
+ }
617
+ Py_DECREF(result);
618
+ }
619
+ else if (nout == 1) {
620
+ op = (PyObject **)ptrs[nin];
621
+ Py_XDECREF(*op);
622
+ *op = result;
623
+ }
624
+ else {
625
+ /*
626
+ * The single output does not match the expected nout != 1,
627
+ * which may be reasonable for nout == 0. For other values,
628
+ * behave as if a 1-tuple had been returned and exit.
629
+ */
630
+ Py_DECREF(result);
631
+ if (nout != 0) {
632
+ return;
633
+ }
634
+ }
635
+ for(j = 0; j < ntot; j++) {
636
+ ptrs[j] += steps[j];
637
+ }
638
+ }
639
+ }
640
+
641
+ /*
642
+ *****************************************************************************
643
+ ** BOOLEAN LOOPS **
644
+ *****************************************************************************
645
+ */
646
+
647
+ /**begin repeat
648
+ * #kind = equal, not_equal, greater, greater_equal, less, less_equal#
649
+ * #OP = ==, !=, >, >=, <, <=#
650
+ **/
651
+
652
+ NPY_NO_EXPORT void
653
+ BOOL_@kind@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
654
+ {
655
+ BINARY_LOOP {
656
+ npy_bool in1 = *((npy_bool *)ip1) != 0;
657
+ npy_bool in2 = *((npy_bool *)ip2) != 0;
658
+ *((npy_bool *)op1)= in1 @OP@ in2;
659
+ }
660
+ }
661
+ /**end repeat**/
662
+
663
+
664
+ /**begin repeat
665
+ * #kind = logical_and, logical_or#
666
+ * #OP = &&, ||#
667
+ * #SC = ==, !=#
668
+ * #and = 1, 0#
669
+ **/
670
+
671
+ NPY_NO_EXPORT void
672
+ BOOL_@kind@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
673
+ {
674
+ if(IS_BINARY_REDUCE) {
675
+ #ifdef NPY_HAVE_SSE2_INTRINSICS
676
+ /*
677
+ * stick with our variant for more reliable performance, only known
678
+ * platform which outperforms it by ~20% is an i7 with glibc 2.17
679
+ */
680
+ if (run_reduce_simd_@kind@_BOOL(args, dimensions, steps)) {
681
+ return;
682
+ }
683
+ #else
684
+ /* for now only use libc on 32-bit/non-x86 */
685
+ if (steps[1] == 1) {
686
+ npy_bool * op = (npy_bool *)args[0];
687
+ #if @and@
688
+ /* np.all(), search for a zero (false) */
689
+ if (*op) {
690
+ *op = memchr(args[1], 0, dimensions[0]) == NULL;
691
+ }
692
+ #else
693
+ /*
694
+ * np.any(), search for a non-zero (true) via comparing against
695
+ * zero blocks, memcmp is faster than memchr on SSE4 machines
696
+ * with glibc >= 2.12 and memchr can only check for equal 1
697
+ */
698
+ static const npy_bool zero[4096]; /* zero by C standard */
699
+ npy_uintp i, n = dimensions[0];
700
+
701
+ for (i = 0; !*op && i < n - (n % sizeof(zero)); i += sizeof(zero)) {
702
+ *op = memcmp(&args[1][i], zero, sizeof(zero)) != 0;
703
+ }
704
+ if (!*op && n - i > 0) {
705
+ *op = memcmp(&args[1][i], zero, n - i) != 0;
706
+ }
707
+ #endif
708
+ return;
709
+ }
710
+ #endif
711
+ else {
712
+ BINARY_REDUCE_LOOP(npy_bool) {
713
+ const npy_bool in2 = *(npy_bool *)ip2;
714
+ io1 = io1 @OP@ in2;
715
+ if (io1 @SC@ 0) {
716
+ break;
717
+ }
718
+ }
719
+ *((npy_bool *)iop1) = io1;
720
+ }
721
+ }
722
+ else {
723
+ if (run_binary_simd_@kind@_BOOL(args, dimensions, steps)) {
724
+ return;
725
+ }
726
+ else {
727
+ BINARY_LOOP {
728
+ const npy_bool in1 = *(npy_bool *)ip1;
729
+ const npy_bool in2 = *(npy_bool *)ip2;
730
+ *((npy_bool *)op1) = in1 @OP@ in2;
731
+ }
732
+ }
733
+ }
734
+ }
735
+ /**end repeat**/
736
+
737
+ /**begin repeat
738
+ * #kind = absolute, logical_not#
739
+ * #OP = !=, ==#
740
+ **/
741
+ NPY_NO_EXPORT void
742
+ BOOL_@kind@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
743
+ {
744
+ if (run_unary_simd_@kind@_BOOL(args, dimensions, steps)) {
745
+ return;
746
+ }
747
+ else {
748
+ UNARY_LOOP {
749
+ npy_bool in1 = *(npy_bool *)ip1;
750
+ *((npy_bool *)op1) = in1 @OP@ 0;
751
+ }
752
+ }
753
+ }
754
+ /**end repeat**/
755
+
756
+ NPY_NO_EXPORT void
757
+ BOOL__ones_like(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(data))
758
+ {
759
+ OUTPUT_LOOP {
760
+ *((npy_bool *)op1) = 1;
761
+ }
762
+ }
763
+
764
+
765
+ /*
766
+ *****************************************************************************
767
+ ** INTEGER LOOPS
768
+ *****************************************************************************
769
+ */
770
+
771
+ /**begin repeat
772
+ * #TYPE = BYTE, UBYTE, SHORT, USHORT, INT, UINT,
773
+ * LONG, ULONG, LONGLONG, ULONGLONG#
774
+ * #type = npy_byte, npy_ubyte, npy_short, npy_ushort, npy_int, npy_uint,
775
+ * npy_long, npy_ulong, npy_longlong, npy_ulonglong#
776
+ * #ftype = npy_float, npy_float, npy_float, npy_float, npy_double, npy_double,
777
+ * npy_double, npy_double, npy_double, npy_double#
778
+ */
779
+
780
+ #define @TYPE@_floor_divide @TYPE@_divide
781
+ #define @TYPE@_fmax @TYPE@_maximum
782
+ #define @TYPE@_fmin @TYPE@_minimum
783
+
784
+ NPY_NO_EXPORT void
785
+ @TYPE@__ones_like(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(data))
786
+ {
787
+ OUTPUT_LOOP {
788
+ *((@type@ *)op1) = 1;
789
+ }
790
+ }
791
+
792
+ NPY_NO_EXPORT NPY_GCC_OPT_3 void
793
+ @TYPE@_square(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(data))
794
+ {
795
+ UNARY_LOOP_FAST(@type@, @type@, *out = in * in);
796
+ }
797
+
798
+ NPY_NO_EXPORT void
799
+ @TYPE@_reciprocal(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(data))
800
+ {
801
+ UNARY_LOOP_FAST(@type@, @type@, *out = 1.0 / in);
802
+ }
803
+
804
+ NPY_NO_EXPORT void
805
+ @TYPE@_conjugate(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
806
+ {
807
+ UNARY_LOOP_FAST(@type@, @type@, *out = in);
808
+ }
809
+
810
+ NPY_NO_EXPORT NPY_GCC_OPT_3 void
811
+ @TYPE@_negative(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
812
+ {
813
+ UNARY_LOOP_FAST(@type@, @type@, *out = -in);
814
+ }
815
+
816
+ NPY_NO_EXPORT NPY_GCC_OPT_3 void
817
+ @TYPE@_logical_not(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
818
+ {
819
+ UNARY_LOOP_FAST(@type@, npy_bool, *out = !in);
820
+ }
821
+
822
+ NPY_NO_EXPORT NPY_GCC_OPT_3 void
823
+ @TYPE@_invert(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
824
+ {
825
+ UNARY_LOOP_FAST(@type@, @type@, *out = ~in);
826
+ }
827
+
828
+ /**begin repeat1
829
+ * Arithmetic
830
+ * #kind = add, subtract, multiply, bitwise_and, bitwise_or, bitwise_xor,
831
+ * left_shift, right_shift#
832
+ * #OP = +, -,*, &, |, ^, <<, >>#
833
+ */
834
+
835
+ NPY_NO_EXPORT NPY_GCC_OPT_3 void
836
+ @TYPE@_@kind@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
837
+ {
838
+ if(IS_BINARY_REDUCE) {
839
+ BINARY_REDUCE_LOOP(@type@) {
840
+ io1 @OP@= *(@type@ *)ip2;
841
+ }
842
+ *((@type@ *)iop1) = io1;
843
+ }
844
+ else {
845
+ BINARY_LOOP_FAST(@type@, @type@, *out = in1 @OP@ in2);
846
+ }
847
+ }
848
+
849
+ /**end repeat1**/
850
+
851
+ /**begin repeat1
852
+ * #kind = equal, not_equal, greater, greater_equal, less, less_equal,
853
+ * logical_and, logical_or#
854
+ * #OP = ==, !=, >, >=, <, <=, &&, ||#
855
+ */
856
+
857
+ NPY_NO_EXPORT NPY_GCC_OPT_3 void
858
+ @TYPE@_@kind@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
859
+ {
860
+ /*
861
+ * gcc vectorization of this is not good (PR60575) but manual integer
862
+ * vectorization is too tedious to be worthwhile
863
+ */
864
+ BINARY_LOOP_FAST(@type@, npy_bool, *out = in1 @OP@ in2);
865
+ }
866
+
867
+ /**end repeat1**/
868
+
869
+ NPY_NO_EXPORT void
870
+ @TYPE@_logical_xor(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
871
+ {
872
+ BINARY_LOOP {
873
+ const int t1 = !!*(@type@ *)ip1;
874
+ const int t2 = !!*(@type@ *)ip2;
875
+ *((npy_bool *)op1) = (t1 != t2);
876
+ }
877
+ }
878
+
879
+ /**begin repeat1
880
+ * #kind = maximum, minimum#
881
+ * #OP = >, <#
882
+ **/
883
+
884
+ NPY_NO_EXPORT void
885
+ @TYPE@_@kind@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
886
+ {
887
+ if (IS_BINARY_REDUCE) {
888
+ BINARY_REDUCE_LOOP(@type@) {
889
+ const @type@ in2 = *(@type@ *)ip2;
890
+ io1 = (io1 @OP@ in2) ? io1 : in2;
891
+ }
892
+ *((@type@ *)iop1) = io1;
893
+ }
894
+ else {
895
+ BINARY_LOOP {
896
+ const @type@ in1 = *(@type@ *)ip1;
897
+ const @type@ in2 = *(@type@ *)ip2;
898
+ *((@type@ *)op1) = (in1 @OP@ in2) ? in1 : in2;
899
+ }
900
+ }
901
+ }
902
+
903
+ /**end repeat1**/
904
+
905
+ NPY_NO_EXPORT void
906
+ @TYPE@_true_divide(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
907
+ {
908
+ BINARY_LOOP {
909
+ const double in1 = (double)(*(@type@ *)ip1);
910
+ const double in2 = (double)(*(@type@ *)ip2);
911
+ *((double *)op1) = in1/in2;
912
+ }
913
+ }
914
+
915
+ NPY_NO_EXPORT void
916
+ @TYPE@_power(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
917
+ {
918
+ BINARY_LOOP {
919
+ const @ftype@ in1 = (@ftype@)*(@type@ *)ip1;
920
+ const @ftype@ in2 = (@ftype@)*(@type@ *)ip2;
921
+ *((@type@ *)op1) = (@type@) pow(in1, in2);
922
+ }
923
+ }
924
+
925
+ NPY_NO_EXPORT void
926
+ @TYPE@_fmod(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
927
+ {
928
+ BINARY_LOOP {
929
+ const @type@ in1 = *(@type@ *)ip1;
930
+ const @type@ in2 = *(@type@ *)ip2;
931
+ if (in2 == 0) {
932
+ npy_set_floatstatus_divbyzero();
933
+ *((@type@ *)op1) = 0;
934
+ }
935
+ else {
936
+ *((@type@ *)op1)= in1 % in2;
937
+ }
938
+
939
+ }
940
+ }
941
+
942
+ /**end repeat**/
943
+
944
+ /**begin repeat
945
+ * #TYPE = BYTE, SHORT, INT, LONG, LONGLONG#
946
+ * #type = npy_byte, npy_short, npy_int, npy_long, npy_longlong#
947
+ */
948
+
949
+ NPY_NO_EXPORT NPY_GCC_OPT_3 void
950
+ @TYPE@_absolute(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
951
+ {
952
+ UNARY_LOOP_FAST(@type@, @type@, *out = (in >= 0) ? in : -in);
953
+ }
954
+
955
+ NPY_NO_EXPORT NPY_GCC_OPT_3 void
956
+ @TYPE@_sign(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
957
+ {
958
+ UNARY_LOOP_FAST(@type@, @type@, *out = in > 0 ? 1 : (in < 0 ? -1 : 0));
959
+ }
960
+
961
+ NPY_NO_EXPORT void
962
+ @TYPE@_divide(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
963
+ {
964
+ BINARY_LOOP {
965
+ const @type@ in1 = *(@type@ *)ip1;
966
+ const @type@ in2 = *(@type@ *)ip2;
967
+ /*
968
+ * FIXME: On x86 at least, dividing the smallest representable integer
969
+ * by -1 causes a SIFGPE (division overflow). We treat this case here
970
+ * (to avoid a SIGFPE crash at python level), but a good solution would
971
+ * be to treat integer division problems separately from FPU exceptions
972
+ * (i.e. a different approach than npy_set_floatstatus_divbyzero()).
973
+ */
974
+ if (in2 == 0 || (in1 == NPY_MIN_@TYPE@ && in2 == -1)) {
975
+ npy_set_floatstatus_divbyzero();
976
+ *((@type@ *)op1) = 0;
977
+ }
978
+ else if (((in1 > 0) != (in2 > 0)) && (in1 % in2 != 0)) {
979
+ *((@type@ *)op1) = in1/in2 - 1;
980
+ }
981
+ else {
982
+ *((@type@ *)op1) = in1/in2;
983
+ }
984
+ }
985
+ }
986
+
987
+ NPY_NO_EXPORT void
988
+ @TYPE@_remainder(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
989
+ {
990
+ BINARY_LOOP {
991
+ const @type@ in1 = *(@type@ *)ip1;
992
+ const @type@ in2 = *(@type@ *)ip2;
993
+ if (in2 == 0) {
994
+ npy_set_floatstatus_divbyzero();
995
+ *((@type@ *)op1) = 0;
996
+ }
997
+ else {
998
+ /* handle mixed case the way Python does */
999
+ const @type@ rem = in1 % in2;
1000
+ if ((in1 > 0) == (in2 > 0) || rem == 0) {
1001
+ *((@type@ *)op1) = rem;
1002
+ }
1003
+ else {
1004
+ *((@type@ *)op1) = rem + in2;
1005
+ }
1006
+ }
1007
+ }
1008
+ }
1009
+
1010
+ /**end repeat**/
1011
+
1012
+ /**begin repeat
1013
+ * #TYPE = UBYTE, USHORT, UINT, ULONG, ULONGLONG#
1014
+ * #type = npy_ubyte, npy_ushort, npy_uint, npy_ulong, npy_ulonglong#
1015
+ */
1016
+
1017
+ NPY_NO_EXPORT void
1018
+ @TYPE@_absolute(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1019
+ {
1020
+ UNARY_LOOP {
1021
+ const @type@ in1 = *(@type@ *)ip1;
1022
+ *((@type@ *)op1) = in1;
1023
+ }
1024
+ }
1025
+
1026
+ NPY_NO_EXPORT NPY_GCC_OPT_3 void
1027
+ @TYPE@_sign(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1028
+ {
1029
+ UNARY_LOOP_FAST(@type@, @type@, *out = in > 0 ? 1 : 0);
1030
+ }
1031
+
1032
+ NPY_NO_EXPORT void
1033
+ @TYPE@_divide(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1034
+ {
1035
+ BINARY_LOOP {
1036
+ const @type@ in1 = *(@type@ *)ip1;
1037
+ const @type@ in2 = *(@type@ *)ip2;
1038
+ if (in2 == 0) {
1039
+ npy_set_floatstatus_divbyzero();
1040
+ *((@type@ *)op1) = 0;
1041
+ }
1042
+ else {
1043
+ *((@type@ *)op1)= in1/in2;
1044
+ }
1045
+ }
1046
+ }
1047
+
1048
+ NPY_NO_EXPORT void
1049
+ @TYPE@_remainder(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1050
+ {
1051
+ BINARY_LOOP {
1052
+ const @type@ in1 = *(@type@ *)ip1;
1053
+ const @type@ in2 = *(@type@ *)ip2;
1054
+ if (in2 == 0) {
1055
+ npy_set_floatstatus_divbyzero();
1056
+ *((@type@ *)op1) = 0;
1057
+ }
1058
+ else {
1059
+ *((@type@ *)op1) = in1 % in2;
1060
+ }
1061
+ }
1062
+ }
1063
+
1064
+ /**end repeat**/
1065
+
1066
+ /*
1067
+ *****************************************************************************
1068
+ ** DATETIME LOOPS **
1069
+ *****************************************************************************
1070
+ */
1071
+
1072
+ NPY_NO_EXPORT void
1073
+ TIMEDELTA_negative(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1074
+ {
1075
+ UNARY_LOOP {
1076
+ const npy_timedelta in1 = *(npy_timedelta *)ip1;
1077
+ if (in1 == NPY_DATETIME_NAT) {
1078
+ *((npy_timedelta *)op1) = NPY_DATETIME_NAT;
1079
+ }
1080
+ else {
1081
+ *((npy_timedelta *)op1) = -in1;
1082
+ }
1083
+ }
1084
+ }
1085
+
1086
+ NPY_NO_EXPORT void
1087
+ TIMEDELTA_absolute(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1088
+ {
1089
+ UNARY_LOOP {
1090
+ const npy_timedelta in1 = *(npy_timedelta *)ip1;
1091
+ if (in1 == NPY_DATETIME_NAT) {
1092
+ *((npy_timedelta *)op1) = NPY_DATETIME_NAT;
1093
+ }
1094
+ else {
1095
+ *((npy_timedelta *)op1) = (in1 >= 0) ? in1 : -in1;
1096
+ }
1097
+ }
1098
+ }
1099
+
1100
+ NPY_NO_EXPORT void
1101
+ TIMEDELTA_sign(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1102
+ {
1103
+ UNARY_LOOP {
1104
+ const npy_timedelta in1 = *(npy_timedelta *)ip1;
1105
+ *((npy_timedelta *)op1) = in1 > 0 ? 1 : (in1 < 0 ? -1 : 0);
1106
+ }
1107
+ }
1108
+
1109
+ /**begin repeat
1110
+ * #type = npy_datetime, npy_timedelta#
1111
+ * #TYPE = DATETIME, TIMEDELTA#
1112
+ */
1113
+
1114
+ NPY_NO_EXPORT void
1115
+ @TYPE@__ones_like(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(data))
1116
+ {
1117
+ OUTPUT_LOOP {
1118
+ *((@type@ *)op1) = 1;
1119
+ }
1120
+ }
1121
+
1122
+ /**begin repeat1
1123
+ * #kind = equal, not_equal, greater, greater_equal, less, less_equal#
1124
+ * #OP = ==, !=, >, >=, <, <=#
1125
+ */
1126
+ NPY_NO_EXPORT void
1127
+ @TYPE@_@kind@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1128
+ {
1129
+ BINARY_LOOP {
1130
+ const @type@ in1 = *(@type@ *)ip1;
1131
+ const @type@ in2 = *(@type@ *)ip2;
1132
+ *((npy_bool *)op1) = in1 @OP@ in2;
1133
+ }
1134
+ }
1135
+ /**end repeat1**/
1136
+
1137
+ /**begin repeat1
1138
+ * #kind = maximum, minimum#
1139
+ * #OP = >, <#
1140
+ **/
1141
+ NPY_NO_EXPORT void
1142
+ @TYPE@_@kind@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1143
+ {
1144
+ BINARY_LOOP {
1145
+ const @type@ in1 = *(@type@ *)ip1;
1146
+ const @type@ in2 = *(@type@ *)ip2;
1147
+ if (in1 == NPY_DATETIME_NAT) {
1148
+ *((@type@ *)op1) = in2;
1149
+ }
1150
+ else if (in2 == NPY_DATETIME_NAT) {
1151
+ *((@type@ *)op1) = in1;
1152
+ }
1153
+ else {
1154
+ *((@type@ *)op1) = (in1 @OP@ in2) ? in1 : in2;
1155
+ }
1156
+ }
1157
+ }
1158
+ /**end repeat1**/
1159
+
1160
+ /**end repeat**/
1161
+
1162
+ NPY_NO_EXPORT void
1163
+ DATETIME_Mm_M_add(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(data))
1164
+ {
1165
+ BINARY_LOOP {
1166
+ const npy_datetime in1 = *(npy_datetime *)ip1;
1167
+ const npy_timedelta in2 = *(npy_timedelta *)ip2;
1168
+ if (in1 == NPY_DATETIME_NAT || in2 == NPY_DATETIME_NAT) {
1169
+ *((npy_datetime *)op1) = NPY_DATETIME_NAT;
1170
+ }
1171
+ else {
1172
+ *((npy_datetime *)op1) = in1 + in2;
1173
+ }
1174
+ }
1175
+ }
1176
+
1177
+ NPY_NO_EXPORT void
1178
+ DATETIME_mM_M_add(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1179
+ {
1180
+ BINARY_LOOP {
1181
+ const npy_timedelta in1 = *(npy_timedelta *)ip1;
1182
+ const npy_datetime in2 = *(npy_datetime *)ip2;
1183
+ if (in1 == NPY_DATETIME_NAT || in2 == NPY_DATETIME_NAT) {
1184
+ *((npy_datetime *)op1) = NPY_DATETIME_NAT;
1185
+ }
1186
+ else {
1187
+ *((npy_datetime *)op1) = in1 + in2;
1188
+ }
1189
+ }
1190
+ }
1191
+
1192
+ NPY_NO_EXPORT void
1193
+ TIMEDELTA_mm_m_add(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1194
+ {
1195
+ BINARY_LOOP {
1196
+ const npy_timedelta in1 = *(npy_timedelta *)ip1;
1197
+ const npy_timedelta in2 = *(npy_timedelta *)ip2;
1198
+ if (in1 == NPY_DATETIME_NAT || in2 == NPY_DATETIME_NAT) {
1199
+ *((npy_timedelta *)op1) = NPY_DATETIME_NAT;
1200
+ }
1201
+ else {
1202
+ *((npy_timedelta *)op1) = in1 + in2;
1203
+ }
1204
+ }
1205
+ }
1206
+
1207
+ NPY_NO_EXPORT void
1208
+ DATETIME_Mm_M_subtract(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1209
+ {
1210
+ BINARY_LOOP {
1211
+ const npy_datetime in1 = *(npy_datetime *)ip1;
1212
+ const npy_timedelta in2 = *(npy_timedelta *)ip2;
1213
+ if (in1 == NPY_DATETIME_NAT || in2 == NPY_DATETIME_NAT) {
1214
+ *((npy_datetime *)op1) = NPY_DATETIME_NAT;
1215
+ }
1216
+ else {
1217
+ *((npy_datetime *)op1) = in1 - in2;
1218
+ }
1219
+ }
1220
+ }
1221
+
1222
+ NPY_NO_EXPORT void
1223
+ DATETIME_MM_m_subtract(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1224
+ {
1225
+ BINARY_LOOP {
1226
+ const npy_datetime in1 = *(npy_datetime *)ip1;
1227
+ const npy_datetime in2 = *(npy_datetime *)ip2;
1228
+ if (in1 == NPY_DATETIME_NAT || in2 == NPY_DATETIME_NAT) {
1229
+ *((npy_timedelta *)op1) = NPY_DATETIME_NAT;
1230
+ }
1231
+ else {
1232
+ *((npy_timedelta *)op1) = in1 - in2;
1233
+ }
1234
+ }
1235
+ }
1236
+
1237
+ NPY_NO_EXPORT void
1238
+ TIMEDELTA_mm_m_subtract(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1239
+ {
1240
+ BINARY_LOOP {
1241
+ const npy_timedelta in1 = *(npy_timedelta *)ip1;
1242
+ const npy_timedelta in2 = *(npy_timedelta *)ip2;
1243
+ if (in1 == NPY_DATETIME_NAT || in2 == NPY_DATETIME_NAT) {
1244
+ *((npy_timedelta *)op1) = NPY_DATETIME_NAT;
1245
+ }
1246
+ else {
1247
+ *((npy_timedelta *)op1) = in1 - in2;
1248
+ }
1249
+ }
1250
+ }
1251
+
1252
+ /* Note: Assuming 'q' == NPY_LONGLONG */
1253
+ NPY_NO_EXPORT void
1254
+ TIMEDELTA_mq_m_multiply(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1255
+ {
1256
+ BINARY_LOOP {
1257
+ const npy_timedelta in1 = *(npy_timedelta *)ip1;
1258
+ const npy_int64 in2 = *(npy_int64 *)ip2;
1259
+ if (in1 == NPY_DATETIME_NAT) {
1260
+ *((npy_timedelta *)op1) = NPY_DATETIME_NAT;
1261
+ }
1262
+ else {
1263
+ *((npy_timedelta *)op1) = in1 * in2;
1264
+ }
1265
+ }
1266
+ }
1267
+
1268
+ /* Note: Assuming 'q' == NPY_LONGLONG */
1269
+ NPY_NO_EXPORT void
1270
+ TIMEDELTA_qm_m_multiply(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1271
+ {
1272
+ BINARY_LOOP {
1273
+ const npy_int64 in1 = *(npy_int64 *)ip1;
1274
+ const npy_timedelta in2 = *(npy_timedelta *)ip2;
1275
+ if (in2 == NPY_DATETIME_NAT) {
1276
+ *((npy_timedelta *)op1) = NPY_DATETIME_NAT;
1277
+ }
1278
+ else {
1279
+ *((npy_timedelta *)op1) = in1 * in2;
1280
+ }
1281
+ }
1282
+ }
1283
+
1284
+ NPY_NO_EXPORT void
1285
+ TIMEDELTA_md_m_multiply(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1286
+ {
1287
+ BINARY_LOOP {
1288
+ const npy_timedelta in1 = *(npy_timedelta *)ip1;
1289
+ const double in2 = *(double *)ip2;
1290
+ if (in1 == NPY_DATETIME_NAT) {
1291
+ *((npy_timedelta *)op1) = NPY_DATETIME_NAT;
1292
+ }
1293
+ else {
1294
+ double result = in1 * in2;
1295
+ if (npy_isfinite(result)) {
1296
+ *((npy_timedelta *)op1) = (npy_timedelta)result;
1297
+ }
1298
+ else {
1299
+ *((npy_timedelta *)op1) = NPY_DATETIME_NAT;
1300
+ }
1301
+ }
1302
+ }
1303
+ }
1304
+
1305
+ NPY_NO_EXPORT void
1306
+ TIMEDELTA_dm_m_multiply(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1307
+ {
1308
+ BINARY_LOOP {
1309
+ const double in1 = *(double *)ip1;
1310
+ const npy_timedelta in2 = *(npy_timedelta *)ip2;
1311
+ if (in2 == NPY_DATETIME_NAT) {
1312
+ *((npy_timedelta *)op1) = NPY_DATETIME_NAT;
1313
+ }
1314
+ else {
1315
+ double result = in1 * in2;
1316
+ if (npy_isfinite(result)) {
1317
+ *((npy_timedelta *)op1) = (npy_timedelta)result;
1318
+ }
1319
+ else {
1320
+ *((npy_timedelta *)op1) = NPY_DATETIME_NAT;
1321
+ }
1322
+ }
1323
+ }
1324
+ }
1325
+
1326
+ /* Note: Assuming 'q' == NPY_LONGLONG */
1327
+ NPY_NO_EXPORT void
1328
+ TIMEDELTA_mq_m_divide(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1329
+ {
1330
+ BINARY_LOOP {
1331
+ const npy_timedelta in1 = *(npy_timedelta *)ip1;
1332
+ const npy_int64 in2 = *(npy_int64 *)ip2;
1333
+ if (in1 == NPY_DATETIME_NAT || in2 == 0) {
1334
+ *((npy_timedelta *)op1) = NPY_DATETIME_NAT;
1335
+ }
1336
+ else {
1337
+ *((npy_timedelta *)op1) = in1 / in2;
1338
+ }
1339
+ }
1340
+ }
1341
+
1342
+ NPY_NO_EXPORT void
1343
+ TIMEDELTA_md_m_divide(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1344
+ {
1345
+ BINARY_LOOP {
1346
+ const npy_timedelta in1 = *(npy_timedelta *)ip1;
1347
+ const double in2 = *(double *)ip2;
1348
+ if (in1 == NPY_DATETIME_NAT) {
1349
+ *((npy_timedelta *)op1) = NPY_DATETIME_NAT;
1350
+ }
1351
+ else {
1352
+ double result = in1 / in2;
1353
+ if (npy_isfinite(result)) {
1354
+ *((npy_timedelta *)op1) = (npy_timedelta)result;
1355
+ }
1356
+ else {
1357
+ *((npy_timedelta *)op1) = NPY_DATETIME_NAT;
1358
+ }
1359
+ }
1360
+ }
1361
+ }
1362
+
1363
+ NPY_NO_EXPORT void
1364
+ TIMEDELTA_mm_d_divide(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1365
+ {
1366
+ BINARY_LOOP {
1367
+ const npy_timedelta in1 = *(npy_timedelta *)ip1;
1368
+ const npy_timedelta in2 = *(npy_timedelta *)ip2;
1369
+ if (in1 == NPY_DATETIME_NAT || in2 == NPY_DATETIME_NAT) {
1370
+ *((double *)op1) = NPY_NAN;
1371
+ }
1372
+ else {
1373
+ *((double *)op1) = (double)in1 / (double)in2;
1374
+ }
1375
+ }
1376
+ }
1377
+
1378
+ /*
1379
+ *****************************************************************************
1380
+ ** FLOAT LOOPS **
1381
+ *****************************************************************************
1382
+ */
1383
+
1384
+ /**begin repeat
1385
+ * Float types
1386
+ * #type = npy_float, npy_double#
1387
+ * #TYPE = FLOAT, DOUBLE#
1388
+ * #scalarf = npy_sqrtf, npy_sqrt#
1389
+ */
1390
+
1391
+ NPY_NO_EXPORT void
1392
+ @TYPE@_sqrt(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1393
+ {
1394
+ if (!run_unary_simd_sqrt_@TYPE@(args, dimensions, steps)) {
1395
+ UNARY_LOOP {
1396
+ const @type@ in1 = *(@type@ *)ip1;
1397
+ *(@type@ *)op1 = @scalarf@(in1);
1398
+ }
1399
+ }
1400
+ }
1401
+
1402
+ /**end repeat**/
1403
+
1404
+
1405
+ /**begin repeat
1406
+ * Float types
1407
+ * #type = npy_float, npy_double, npy_longdouble, npy_float#
1408
+ * #dtype = npy_float, npy_double, npy_longdouble, npy_half#
1409
+ * #TYPE = FLOAT, DOUBLE, LONGDOUBLE, HALF#
1410
+ * #c = f, , l, #
1411
+ * #C = F, , L, #
1412
+ * #trf = , , , npy_half_to_float#
1413
+ */
1414
+
1415
+ /*
1416
+ * Pairwise summation, rounding error O(lg n) instead of O(n).
1417
+ * The recursion depth is O(lg n) as well.
1418
+ * when updating also update similar complex floats summation
1419
+ */
1420
+ static @type@
1421
+ pairwise_sum_@TYPE@(@dtype@ *a, npy_uintp n, npy_intp stride)
1422
+ {
1423
+ if (n < 8) {
1424
+ npy_intp i;
1425
+ @type@ res = 0.;
1426
+ for (i = 0; i < n; i++) {
1427
+ res += @trf@(a[i * stride]);
1428
+ }
1429
+ return res;
1430
+ }
1431
+ else if (n <= PW_BLOCKSIZE) {
1432
+ npy_intp i;
1433
+ @type@ r[8], res;
1434
+
1435
+ /*
1436
+ * sum a block with 8 accumulators
1437
+ * 8 times unroll reduces blocksize to 16 and allows vectorization with
1438
+ * avx without changing summation ordering
1439
+ */
1440
+ r[0] = @trf@(a[0 * stride]);
1441
+ r[1] = @trf@(a[1 * stride]);
1442
+ r[2] = @trf@(a[2 * stride]);
1443
+ r[3] = @trf@(a[3 * stride]);
1444
+ r[4] = @trf@(a[4 * stride]);
1445
+ r[5] = @trf@(a[5 * stride]);
1446
+ r[6] = @trf@(a[6 * stride]);
1447
+ r[7] = @trf@(a[7 * stride]);
1448
+
1449
+ for (i = 8; i < n - (n % 8); i += 8) {
1450
+ r[0] += @trf@(a[(i + 0) * stride]);
1451
+ r[1] += @trf@(a[(i + 1) * stride]);
1452
+ r[2] += @trf@(a[(i + 2) * stride]);
1453
+ r[3] += @trf@(a[(i + 3) * stride]);
1454
+ r[4] += @trf@(a[(i + 4) * stride]);
1455
+ r[5] += @trf@(a[(i + 5) * stride]);
1456
+ r[6] += @trf@(a[(i + 6) * stride]);
1457
+ r[7] += @trf@(a[(i + 7) * stride]);
1458
+ }
1459
+
1460
+ /* accumulate now to avoid stack spills for single peel loop */
1461
+ res = ((r[0] + r[1]) + (r[2] + r[3])) +
1462
+ ((r[4] + r[5]) + (r[6] + r[7]));
1463
+
1464
+ /* do non multiple of 8 rest */
1465
+ for (; i < n; i++) {
1466
+ res += @trf@(a[i * stride]);
1467
+ }
1468
+ return res;
1469
+ }
1470
+ else {
1471
+ /* divide by two but avoid non-multiples of unroll factor */
1472
+ npy_uintp n2 = n / 2;
1473
+ n2 -= n2 % 8;
1474
+ return pairwise_sum_@TYPE@(a, n2, stride) +
1475
+ pairwise_sum_@TYPE@(a + n2 * stride, n - n2, stride);
1476
+ }
1477
+ }
1478
+
1479
+ /**end repeat**/
1480
+
1481
+ /**begin repeat
1482
+ * Float types
1483
+ * #type = npy_float, npy_double, npy_longdouble#
1484
+ * #TYPE = FLOAT, DOUBLE, LONGDOUBLE#
1485
+ * #c = f, , l#
1486
+ * #C = F, , L#
1487
+ */
1488
+
1489
+ /**begin repeat1
1490
+ * Arithmetic
1491
+ * # kind = add, subtract, multiply, divide#
1492
+ * # OP = +, -, *, /#
1493
+ * # PW = 1, 0, 0, 0#
1494
+ */
1495
+ NPY_NO_EXPORT void
1496
+ @TYPE@_@kind@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1497
+ {
1498
+ if (IS_BINARY_REDUCE) {
1499
+ #if @PW@
1500
+ @type@ * iop1 = (@type@ *)args[0];
1501
+ npy_intp n = dimensions[0];
1502
+
1503
+ *iop1 @OP@= pairwise_sum_@TYPE@((@type@ *)args[1], n,
1504
+ steps[1] / (npy_intp)sizeof(@type@));
1505
+ #else
1506
+ BINARY_REDUCE_LOOP(@type@) {
1507
+ io1 @OP@= *(@type@ *)ip2;
1508
+ }
1509
+ *((@type@ *)iop1) = io1;
1510
+ #endif
1511
+ }
1512
+ else if (!run_binary_simd_@kind@_@TYPE@(args, dimensions, steps)) {
1513
+ BINARY_LOOP {
1514
+ const @type@ in1 = *(@type@ *)ip1;
1515
+ const @type@ in2 = *(@type@ *)ip2;
1516
+ *((@type@ *)op1) = in1 @OP@ in2;
1517
+ }
1518
+ }
1519
+ }
1520
+ /**end repeat1**/
1521
+
1522
+ /**begin repeat1
1523
+ * #kind = equal, not_equal, less, less_equal, greater, greater_equal,
1524
+ * logical_and, logical_or#
1525
+ * #OP = ==, !=, <, <=, >, >=, &&, ||#
1526
+ */
1527
+ NPY_NO_EXPORT void
1528
+ @TYPE@_@kind@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1529
+ {
1530
+ if (!run_binary_simd_@kind@_@TYPE@(args, dimensions, steps)) {
1531
+ BINARY_LOOP {
1532
+ const @type@ in1 = *(@type@ *)ip1;
1533
+ const @type@ in2 = *(@type@ *)ip2;
1534
+ *((npy_bool *)op1) = in1 @OP@ in2;
1535
+ }
1536
+ }
1537
+ }
1538
+ /**end repeat1**/
1539
+
1540
+ NPY_NO_EXPORT void
1541
+ @TYPE@_logical_xor(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1542
+ {
1543
+ BINARY_LOOP {
1544
+ const int t1 = !!*(@type@ *)ip1;
1545
+ const int t2 = !!*(@type@ *)ip2;
1546
+ *((npy_bool *)op1) = (t1 != t2);
1547
+ }
1548
+ }
1549
+
1550
+ NPY_NO_EXPORT void
1551
+ @TYPE@_logical_not(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1552
+ {
1553
+ UNARY_LOOP {
1554
+ const @type@ in1 = *(@type@ *)ip1;
1555
+ *((npy_bool *)op1) = !in1;
1556
+ }
1557
+ }
1558
+
1559
+ /**begin repeat1
1560
+ * #kind = isnan, isinf, isfinite, signbit#
1561
+ * #func = npy_isnan, npy_isinf, npy_isfinite, npy_signbit#
1562
+ * #isnan = 1, 0*3#
1563
+ **/
1564
+ NPY_NO_EXPORT void
1565
+ @TYPE@_@kind@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1566
+ {
1567
+ char * margs[] = {args[0], args[0], args[1]};
1568
+ npy_intp msteps[] = {steps[0], steps[0], steps[1]};
1569
+ if (!@isnan@ || !run_binary_simd_not_equal_@TYPE@(margs, dimensions, msteps)) {
1570
+ UNARY_LOOP {
1571
+ const @type@ in1 = *(@type@ *)ip1;
1572
+ *((npy_bool *)op1) = @func@(in1) != 0;
1573
+ }
1574
+ }
1575
+ }
1576
+ /**end repeat1**/
1577
+
1578
+ NPY_NO_EXPORT void
1579
+ @TYPE@_spacing(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1580
+ {
1581
+ UNARY_LOOP {
1582
+ const @type@ in1 = *(@type@ *)ip1;
1583
+ *((@type@ *)op1) = npy_spacing@c@(in1);
1584
+ }
1585
+ }
1586
+
1587
+ NPY_NO_EXPORT void
1588
+ @TYPE@_copysign(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1589
+ {
1590
+ BINARY_LOOP {
1591
+ const @type@ in1 = *(@type@ *)ip1;
1592
+ const @type@ in2 = *(@type@ *)ip2;
1593
+ *((@type@ *)op1)= npy_copysign@c@(in1, in2);
1594
+ }
1595
+ }
1596
+
1597
+ NPY_NO_EXPORT void
1598
+ @TYPE@_nextafter(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1599
+ {
1600
+ BINARY_LOOP {
1601
+ const @type@ in1 = *(@type@ *)ip1;
1602
+ const @type@ in2 = *(@type@ *)ip2;
1603
+ *((@type@ *)op1)= npy_nextafter@c@(in1, in2);
1604
+ }
1605
+ }
1606
+
1607
+ /**begin repeat1
1608
+ * #kind = maximum, minimum#
1609
+ * #OP = >=, <=#
1610
+ **/
1611
+ NPY_NO_EXPORT void
1612
+ @TYPE@_@kind@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1613
+ {
1614
+ /* */
1615
+ if (IS_BINARY_REDUCE) {
1616
+ if (!run_unary_reduce_simd_@kind@_@TYPE@(args, dimensions, steps)) {
1617
+ BINARY_REDUCE_LOOP(@type@) {
1618
+ const @type@ in2 = *(@type@ *)ip2;
1619
+ io1 = (io1 @OP@ in2 || npy_isnan(io1)) ? io1 : in2;
1620
+ }
1621
+ *((@type@ *)iop1) = io1;
1622
+ }
1623
+ }
1624
+ else {
1625
+ BINARY_LOOP {
1626
+ const @type@ in1 = *(@type@ *)ip1;
1627
+ const @type@ in2 = *(@type@ *)ip2;
1628
+ *((@type@ *)op1) = (in1 @OP@ in2 || npy_isnan(in1)) ? in1 : in2;
1629
+ }
1630
+ }
1631
+ }
1632
+ /**end repeat1**/
1633
+
1634
+ /**begin repeat1
1635
+ * #kind = fmax, fmin#
1636
+ * #OP = >=, <=#
1637
+ **/
1638
+ NPY_NO_EXPORT void
1639
+ @TYPE@_@kind@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1640
+ {
1641
+ /* */
1642
+ if (IS_BINARY_REDUCE) {
1643
+ BINARY_REDUCE_LOOP(@type@) {
1644
+ const @type@ in2 = *(@type@ *)ip2;
1645
+ io1 = (io1 @OP@ in2 || npy_isnan(in2)) ? io1 : in2;
1646
+ }
1647
+ *((@type@ *)iop1) = io1;
1648
+ }
1649
+ else {
1650
+ BINARY_LOOP {
1651
+ const @type@ in1 = *(@type@ *)ip1;
1652
+ const @type@ in2 = *(@type@ *)ip2;
1653
+ *((@type@ *)op1) = (in1 @OP@ in2 || npy_isnan(in2)) ? in1 : in2;
1654
+ }
1655
+ }
1656
+ }
1657
+ /**end repeat1**/
1658
+
1659
+ NPY_NO_EXPORT void
1660
+ @TYPE@_floor_divide(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1661
+ {
1662
+ BINARY_LOOP {
1663
+ const @type@ in1 = *(@type@ *)ip1;
1664
+ const @type@ in2 = *(@type@ *)ip2;
1665
+ *((@type@ *)op1) = npy_floor@c@(in1/in2);
1666
+ }
1667
+ }
1668
+
1669
+ NPY_NO_EXPORT void
1670
+ @TYPE@_remainder(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1671
+ {
1672
+ BINARY_LOOP {
1673
+ const @type@ in1 = *(@type@ *)ip1;
1674
+ const @type@ in2 = *(@type@ *)ip2;
1675
+ const @type@ res = npy_fmod@c@(in1,in2);
1676
+ if (res && ((in2 < 0) != (res < 0))) {
1677
+ *((@type@ *)op1) = res + in2;
1678
+ }
1679
+ else {
1680
+ *((@type@ *)op1) = res;
1681
+ }
1682
+ }
1683
+ }
1684
+
1685
+ NPY_NO_EXPORT void
1686
+ @TYPE@_square(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(data))
1687
+ {
1688
+ char * margs[] = {args[0], args[0], args[1]};
1689
+ npy_intp msteps[] = {steps[0], steps[0], steps[1]};
1690
+ if (!run_binary_simd_multiply_@TYPE@(margs, dimensions, msteps)) {
1691
+ UNARY_LOOP {
1692
+ const @type@ in1 = *(@type@ *)ip1;
1693
+ *((@type@ *)op1) = in1*in1;
1694
+ }
1695
+ }
1696
+ }
1697
+
1698
+ NPY_NO_EXPORT void
1699
+ @TYPE@_reciprocal(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(data))
1700
+ {
1701
+ @type@ one = 1.@c@;
1702
+ char * margs[] = {(char*)&one, args[0], args[1]};
1703
+ npy_intp msteps[] = {0, steps[0], steps[1]};
1704
+ if (!run_binary_simd_divide_@TYPE@(margs, dimensions, msteps)) {
1705
+ UNARY_LOOP {
1706
+ const @type@ in1 = *(@type@ *)ip1;
1707
+ *((@type@ *)op1) = 1/in1;
1708
+ }
1709
+ }
1710
+ }
1711
+
1712
+ NPY_NO_EXPORT void
1713
+ @TYPE@__ones_like(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(data))
1714
+ {
1715
+ OUTPUT_LOOP {
1716
+ *((@type@ *)op1) = 1;
1717
+ }
1718
+ }
1719
+
1720
+ NPY_NO_EXPORT void
1721
+ @TYPE@_conjugate(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1722
+ {
1723
+ UNARY_LOOP {
1724
+ const @type@ in1 = *(@type@ *)ip1;
1725
+ *((@type@ *)op1) = in1;
1726
+ }
1727
+ }
1728
+
1729
+ NPY_NO_EXPORT void
1730
+ @TYPE@_absolute(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1731
+ {
1732
+ if (!run_unary_simd_absolute_@TYPE@(args, dimensions, steps)) {
1733
+ UNARY_LOOP {
1734
+ const @type@ in1 = *(@type@ *)ip1;
1735
+ const @type@ tmp = in1 > 0 ? in1 : -in1;
1736
+ /* add 0 to clear -0.0 */
1737
+ *((@type@ *)op1) = tmp + 0;
1738
+ }
1739
+ }
1740
+ }
1741
+
1742
+ NPY_NO_EXPORT void
1743
+ @TYPE@_negative(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1744
+ {
1745
+ if (!run_unary_simd_negative_@TYPE@(args, dimensions, steps)) {
1746
+ UNARY_LOOP {
1747
+ const @type@ in1 = *(@type@ *)ip1;
1748
+ *((@type@ *)op1) = -in1;
1749
+ }
1750
+ }
1751
+ }
1752
+
1753
+ NPY_NO_EXPORT void
1754
+ @TYPE@_sign(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1755
+ {
1756
+ /* Sign of nan is nan */
1757
+ UNARY_LOOP {
1758
+ const @type@ in1 = *(@type@ *)ip1;
1759
+ *((@type@ *)op1) = in1 > 0 ? 1 : (in1 < 0 ? -1 : (in1 == 0 ? 0 : in1));
1760
+ }
1761
+ }
1762
+
1763
+ NPY_NO_EXPORT void
1764
+ @TYPE@_modf(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1765
+ {
1766
+ UNARY_LOOP_TWO_OUT {
1767
+ const @type@ in1 = *(@type@ *)ip1;
1768
+ *((@type@ *)op1) = npy_modf@c@(in1, (@type@ *)op2);
1769
+ }
1770
+ }
1771
+
1772
+ NPY_NO_EXPORT void
1773
+ @TYPE@_frexp(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1774
+ {
1775
+ UNARY_LOOP_TWO_OUT {
1776
+ const @type@ in1 = *(@type@ *)ip1;
1777
+ *((@type@ *)op1) = npy_frexp@c@(in1, (int *)op2);
1778
+ }
1779
+ }
1780
+
1781
+ NPY_NO_EXPORT void
1782
+ @TYPE@_ldexp(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1783
+ {
1784
+ BINARY_LOOP {
1785
+ const @type@ in1 = *(@type@ *)ip1;
1786
+ const int in2 = *(int *)ip2;
1787
+ *((@type@ *)op1) = npy_ldexp@c@(in1, in2);
1788
+ }
1789
+ }
1790
+
1791
+ NPY_NO_EXPORT void
1792
+ @TYPE@_ldexp_long(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1793
+ {
1794
+ /*
1795
+ * Additional loop to handle npy_long integer inputs (cf. #866, #1633).
1796
+ * npy_long != npy_int on many 64-bit platforms, so we need this second loop
1797
+ * to handle the default integer type.
1798
+ */
1799
+ BINARY_LOOP {
1800
+ const @type@ in1 = *(@type@ *)ip1;
1801
+ const long in2 = *(long *)ip2;
1802
+ if (((int)in2) == in2) {
1803
+ /* Range OK */
1804
+ *((@type@ *)op1) = npy_ldexp@c@(in1, ((int)in2));
1805
+ }
1806
+ else {
1807
+ /*
1808
+ * Outside npy_int range -- also ldexp will overflow in this case,
1809
+ * given that exponent has less bits than npy_int.
1810
+ */
1811
+ if (in2 > 0) {
1812
+ *((@type@ *)op1) = npy_ldexp@c@(in1, NPY_MAX_INT);
1813
+ }
1814
+ else {
1815
+ *((@type@ *)op1) = npy_ldexp@c@(in1, NPY_MIN_INT);
1816
+ }
1817
+ }
1818
+ }
1819
+ }
1820
+
1821
+ #define @TYPE@_true_divide @TYPE@_divide
1822
+
1823
+ /**end repeat**/
1824
+
1825
+ /*
1826
+ *****************************************************************************
1827
+ ** HALF-FLOAT LOOPS **
1828
+ *****************************************************************************
1829
+ */
1830
+
1831
+
1832
+ /**begin repeat
1833
+ * Arithmetic
1834
+ * # kind = add, subtract, multiply, divide#
1835
+ * # OP = +, -, *, /#
1836
+ * # PW = 1, 0, 0, 0#
1837
+ */
1838
+ NPY_NO_EXPORT void
1839
+ HALF_@kind@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1840
+ {
1841
+ if (IS_BINARY_REDUCE) {
1842
+ char *iop1 = args[0];
1843
+ float io1 = npy_half_to_float(*(npy_half *)iop1);
1844
+ #if @PW@
1845
+ npy_intp n = dimensions[0];
1846
+
1847
+ io1 @OP@= pairwise_sum_HALF((npy_half *)args[1], n,
1848
+ steps[1] / (npy_intp)sizeof(npy_half));
1849
+ #else
1850
+ BINARY_REDUCE_LOOP_INNER {
1851
+ io1 @OP@= npy_half_to_float(*(npy_half *)ip2);
1852
+ }
1853
+ #endif
1854
+ *((npy_half *)iop1) = npy_float_to_half(io1);
1855
+ }
1856
+ else {
1857
+ BINARY_LOOP {
1858
+ const float in1 = npy_half_to_float(*(npy_half *)ip1);
1859
+ const float in2 = npy_half_to_float(*(npy_half *)ip2);
1860
+ *((npy_half *)op1) = npy_float_to_half(in1 @OP@ in2);
1861
+ }
1862
+ }
1863
+ }
1864
+ /**end repeat**/
1865
+
1866
+ #define _HALF_LOGICAL_AND(a,b) (!npy_half_iszero(a) && !npy_half_iszero(b))
1867
+ #define _HALF_LOGICAL_OR(a,b) (!npy_half_iszero(a) || !npy_half_iszero(b))
1868
+ /**begin repeat
1869
+ * #kind = equal, not_equal, less, less_equal, greater,
1870
+ * greater_equal, logical_and, logical_or#
1871
+ * #OP = npy_half_eq, npy_half_ne, npy_half_lt, npy_half_le, npy_half_gt,
1872
+ * npy_half_ge, _HALF_LOGICAL_AND, _HALF_LOGICAL_OR#
1873
+ */
1874
+ NPY_NO_EXPORT void
1875
+ HALF_@kind@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1876
+ {
1877
+ BINARY_LOOP {
1878
+ const npy_half in1 = *(npy_half *)ip1;
1879
+ const npy_half in2 = *(npy_half *)ip2;
1880
+ *((npy_bool *)op1) = @OP@(in1, in2);
1881
+ }
1882
+ }
1883
+ /**end repeat**/
1884
+ #undef _HALF_LOGICAL_AND
1885
+ #undef _HALF_LOGICAL_OR
1886
+
1887
+ NPY_NO_EXPORT void
1888
+ HALF_logical_xor(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1889
+ {
1890
+ BINARY_LOOP {
1891
+ const int in1 = !npy_half_iszero(*(npy_half *)ip1);
1892
+ const int in2 = !npy_half_iszero(*(npy_half *)ip2);
1893
+ *((npy_bool *)op1) = (in1 != in2);
1894
+ }
1895
+ }
1896
+
1897
+ NPY_NO_EXPORT void
1898
+ HALF_logical_not(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1899
+ {
1900
+ UNARY_LOOP {
1901
+ const npy_half in1 = *(npy_half *)ip1;
1902
+ *((npy_bool *)op1) = npy_half_iszero(in1);
1903
+ }
1904
+ }
1905
+
1906
+ /**begin repeat
1907
+ * #kind = isnan, isinf, isfinite, signbit#
1908
+ * #func = npy_half_isnan, npy_half_isinf, npy_half_isfinite, npy_half_signbit#
1909
+ **/
1910
+ NPY_NO_EXPORT void
1911
+ HALF_@kind@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1912
+ {
1913
+ UNARY_LOOP {
1914
+ const npy_half in1 = *(npy_half *)ip1;
1915
+ *((npy_bool *)op1) = @func@(in1) != 0;
1916
+ }
1917
+ }
1918
+ /**end repeat**/
1919
+
1920
+ NPY_NO_EXPORT void
1921
+ HALF_spacing(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1922
+ {
1923
+ UNARY_LOOP {
1924
+ const npy_half in1 = *(npy_half *)ip1;
1925
+ *((npy_half *)op1) = npy_half_spacing(in1);
1926
+ }
1927
+ }
1928
+
1929
+ NPY_NO_EXPORT void
1930
+ HALF_copysign(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1931
+ {
1932
+ BINARY_LOOP {
1933
+ const npy_half in1 = *(npy_half *)ip1;
1934
+ const npy_half in2 = *(npy_half *)ip2;
1935
+ *((npy_half *)op1)= npy_half_copysign(in1, in2);
1936
+ }
1937
+ }
1938
+
1939
+ NPY_NO_EXPORT void
1940
+ HALF_nextafter(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1941
+ {
1942
+ BINARY_LOOP {
1943
+ const npy_half in1 = *(npy_half *)ip1;
1944
+ const npy_half in2 = *(npy_half *)ip2;
1945
+ *((npy_half *)op1)= npy_half_nextafter(in1, in2);
1946
+ }
1947
+ }
1948
+
1949
+ /**begin repeat
1950
+ * #kind = maximum, minimum#
1951
+ * #OP = npy_half_ge, npy_half_le#
1952
+ **/
1953
+ NPY_NO_EXPORT void
1954
+ HALF_@kind@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1955
+ {
1956
+ /* */
1957
+ BINARY_LOOP {
1958
+ const npy_half in1 = *(npy_half *)ip1;
1959
+ const npy_half in2 = *(npy_half *)ip2;
1960
+ *((npy_half *)op1) = (@OP@(in1, in2) || npy_half_isnan(in1)) ? in1 : in2;
1961
+ }
1962
+ }
1963
+ /**end repeat**/
1964
+
1965
+ /**begin repeat
1966
+ * #kind = fmax, fmin#
1967
+ * #OP = npy_half_ge, npy_half_le#
1968
+ **/
1969
+ NPY_NO_EXPORT void
1970
+ HALF_@kind@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1971
+ {
1972
+ /* */
1973
+ BINARY_LOOP {
1974
+ const npy_half in1 = *(npy_half *)ip1;
1975
+ const npy_half in2 = *(npy_half *)ip2;
1976
+ *((npy_half *)op1) = (@OP@(in1, in2) || npy_half_isnan(in2)) ? in1 : in2;
1977
+ }
1978
+ }
1979
+ /**end repeat**/
1980
+
1981
+ NPY_NO_EXPORT void
1982
+ HALF_floor_divide(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1983
+ {
1984
+ BINARY_LOOP {
1985
+ const float in1 = npy_half_to_float(*(npy_half *)ip1);
1986
+ const float in2 = npy_half_to_float(*(npy_half *)ip2);
1987
+ *((npy_half *)op1) = npy_float_to_half(npy_floorf(in1/in2));
1988
+ }
1989
+ }
1990
+
1991
+ NPY_NO_EXPORT void
1992
+ HALF_remainder(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
1993
+ {
1994
+ BINARY_LOOP {
1995
+ const float in1 = npy_half_to_float(*(npy_half *)ip1);
1996
+ const float in2 = npy_half_to_float(*(npy_half *)ip2);
1997
+ const float res = npy_fmodf(in1,in2);
1998
+ if (res && ((in2 < 0) != (res < 0))) {
1999
+ *((npy_half *)op1) = npy_float_to_half(res + in2);
2000
+ }
2001
+ else {
2002
+ *((npy_half *)op1) = npy_float_to_half(res);
2003
+ }
2004
+ }
2005
+ }
2006
+
2007
+ NPY_NO_EXPORT void
2008
+ HALF_square(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(data))
2009
+ {
2010
+ UNARY_LOOP {
2011
+ const float in1 = npy_half_to_float(*(npy_half *)ip1);
2012
+ *((npy_half *)op1) = npy_float_to_half(in1*in1);
2013
+ }
2014
+ }
2015
+
2016
+ NPY_NO_EXPORT void
2017
+ HALF_reciprocal(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(data))
2018
+ {
2019
+ UNARY_LOOP {
2020
+ const float in1 = npy_half_to_float(*(npy_half *)ip1);
2021
+ *((npy_half *)op1) = npy_float_to_half(1/in1);
2022
+ }
2023
+ }
2024
+
2025
+ NPY_NO_EXPORT void
2026
+ HALF__ones_like(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(data))
2027
+ {
2028
+ OUTPUT_LOOP {
2029
+ *((npy_half *)op1) = NPY_HALF_ONE;
2030
+ }
2031
+ }
2032
+
2033
+ NPY_NO_EXPORT void
2034
+ HALF_conjugate(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
2035
+ {
2036
+ UNARY_LOOP {
2037
+ const npy_half in1 = *(npy_half *)ip1;
2038
+ *((npy_half *)op1) = in1;
2039
+ }
2040
+ }
2041
+
2042
+ NPY_NO_EXPORT void
2043
+ HALF_absolute(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
2044
+ {
2045
+ UNARY_LOOP {
2046
+ const npy_half in1 = *(npy_half *)ip1;
2047
+ *((npy_half *)op1) = in1&0x7fffu;
2048
+ }
2049
+ }
2050
+
2051
+ NPY_NO_EXPORT void
2052
+ HALF_negative(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
2053
+ {
2054
+ UNARY_LOOP {
2055
+ const npy_half in1 = *(npy_half *)ip1;
2056
+ *((npy_half *)op1) = in1^0x8000u;
2057
+ }
2058
+ }
2059
+
2060
+ NPY_NO_EXPORT void
2061
+ HALF_sign(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
2062
+ {
2063
+ /* Sign of nan is nan */
2064
+ UNARY_LOOP {
2065
+ const npy_half in1 = *(npy_half *)ip1;
2066
+ *((npy_half *)op1) = npy_half_isnan(in1) ? in1 :
2067
+ (((in1&0x7fffu) == 0) ? 0 :
2068
+ (((in1&0x8000u) == 0) ? NPY_HALF_ONE : NPY_HALF_NEGONE));
2069
+ }
2070
+ }
2071
+
2072
+ NPY_NO_EXPORT void
2073
+ HALF_modf(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
2074
+ {
2075
+ float temp;
2076
+
2077
+ UNARY_LOOP_TWO_OUT {
2078
+ const float in1 = npy_half_to_float(*(npy_half *)ip1);
2079
+ *((npy_half *)op1) = npy_float_to_half(npy_modff(in1, &temp));
2080
+ *((npy_half *)op2) = npy_float_to_half(temp);
2081
+ }
2082
+ }
2083
+
2084
+ NPY_NO_EXPORT void
2085
+ HALF_frexp(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
2086
+ {
2087
+ UNARY_LOOP_TWO_OUT {
2088
+ const float in1 = npy_half_to_float(*(npy_half *)ip1);
2089
+ *((npy_half *)op1) = npy_float_to_half(npy_frexpf(in1, (int *)op2));
2090
+ }
2091
+ }
2092
+
2093
+ NPY_NO_EXPORT void
2094
+ HALF_ldexp(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
2095
+ {
2096
+ BINARY_LOOP {
2097
+ const float in1 = npy_half_to_float(*(npy_half *)ip1);
2098
+ const int in2 = *(int *)ip2;
2099
+ *((npy_half *)op1) = npy_float_to_half(npy_ldexpf(in1, in2));
2100
+ }
2101
+ }
2102
+
2103
+ NPY_NO_EXPORT void
2104
+ HALF_ldexp_long(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
2105
+ {
2106
+ /*
2107
+ * Additional loop to handle npy_long integer inputs (cf. #866, #1633).
2108
+ * npy_long != npy_int on many 64-bit platforms, so we need this second loop
2109
+ * to handle the default integer type.
2110
+ */
2111
+ BINARY_LOOP {
2112
+ const float in1 = npy_half_to_float(*(npy_half *)ip1);
2113
+ const long in2 = *(long *)ip2;
2114
+ if (((int)in2) == in2) {
2115
+ /* Range OK */
2116
+ *((npy_half *)op1) = npy_float_to_half(npy_ldexpf(in1, ((int)in2)));
2117
+ }
2118
+ else {
2119
+ /*
2120
+ * Outside npy_int range -- also ldexp will overflow in this case,
2121
+ * given that exponent has less bits than npy_int.
2122
+ */
2123
+ if (in2 > 0) {
2124
+ *((npy_half *)op1) = npy_float_to_half(npy_ldexpf(in1, NPY_MAX_INT));
2125
+ }
2126
+ else {
2127
+ *((npy_half *)op1) = npy_float_to_half(npy_ldexpf(in1, NPY_MIN_INT));
2128
+ }
2129
+ }
2130
+ }
2131
+ }
2132
+
2133
+ #define HALF_true_divide HALF_divide
2134
+
2135
+
2136
+ /*
2137
+ *****************************************************************************
2138
+ ** COMPLEX LOOPS **
2139
+ *****************************************************************************
2140
+ */
2141
+
2142
+ #define CGE(xr,xi,yr,yi) ((xr > yr && !npy_isnan(xi) && !npy_isnan(yi)) \
2143
+ || (xr == yr && xi >= yi))
2144
+ #define CLE(xr,xi,yr,yi) ((xr < yr && !npy_isnan(xi) && !npy_isnan(yi)) \
2145
+ || (xr == yr && xi <= yi))
2146
+ #define CGT(xr,xi,yr,yi) ((xr > yr && !npy_isnan(xi) && !npy_isnan(yi)) \
2147
+ || (xr == yr && xi > yi))
2148
+ #define CLT(xr,xi,yr,yi) ((xr < yr && !npy_isnan(xi) && !npy_isnan(yi)) \
2149
+ || (xr == yr && xi < yi))
2150
+ #define CEQ(xr,xi,yr,yi) (xr == yr && xi == yi)
2151
+ #define CNE(xr,xi,yr,yi) (xr != yr || xi != yi)
2152
+
2153
+ /**begin repeat
2154
+ * complex types
2155
+ * #TYPE = CFLOAT, CDOUBLE, CLONGDOUBLE#
2156
+ * #ftype = npy_float, npy_double, npy_longdouble#
2157
+ * #c = f, , l#
2158
+ * #C = F, , L#
2159
+ */
2160
+
2161
+ /* similar to pairwise sum of real floats */
2162
+ static void
2163
+ pairwise_sum_@TYPE@(@ftype@ *rr, @ftype@ * ri, @ftype@ * a, npy_uintp n,
2164
+ npy_intp stride)
2165
+ {
2166
+ assert(n % 2 == 0);
2167
+ if (n < 8) {
2168
+ npy_intp i;
2169
+ *rr = 0.;
2170
+ *ri = 0.;
2171
+ for (i = 0; i < n; i += 2) {
2172
+ *rr += a[i * stride + 0];
2173
+ *ri += a[i * stride + 1];
2174
+ }
2175
+ return;
2176
+ }
2177
+ else if (n <= PW_BLOCKSIZE) {
2178
+ npy_intp i;
2179
+ @ftype@ r[8];
2180
+
2181
+ /*
2182
+ * sum a block with 8 accumulators
2183
+ * 8 times unroll reduces blocksize to 16 and allows vectorization with
2184
+ * avx without changing summation ordering
2185
+ */
2186
+ r[0] = a[0 * stride];
2187
+ r[1] = a[0 * stride + 1];
2188
+ r[2] = a[2 * stride];
2189
+ r[3] = a[2 * stride + 1];
2190
+ r[4] = a[4 * stride];
2191
+ r[5] = a[4 * stride + 1];
2192
+ r[6] = a[6 * stride];
2193
+ r[7] = a[6 * stride + 1];
2194
+
2195
+ for (i = 8; i < n - (n % 8); i += 8) {
2196
+ r[0] += a[(i + 0) * stride];
2197
+ r[1] += a[(i + 0) * stride + 1];
2198
+ r[2] += a[(i + 2) * stride];
2199
+ r[3] += a[(i + 2) * stride + 1];
2200
+ r[4] += a[(i + 4) * stride];
2201
+ r[5] += a[(i + 4) * stride + 1];
2202
+ r[6] += a[(i + 6) * stride];
2203
+ r[7] += a[(i + 6) * stride + 1];
2204
+ }
2205
+
2206
+ /* accumulate now to avoid stack spills for single peel loop */
2207
+ *rr = ((r[0] + r[2]) + (r[4] + r[6]));
2208
+ *ri = ((r[1] + r[3]) + (r[5] + r[7]));
2209
+
2210
+ /* do non multiple of 8 rest */
2211
+ for (; i < n; i+=2) {
2212
+ *rr += a[i * stride + 0];
2213
+ *ri += a[i * stride + 1];
2214
+ }
2215
+ return;
2216
+ }
2217
+ else {
2218
+ /* divide by two but avoid non-multiples of unroll factor */
2219
+ @ftype@ rr1, ri1, rr2, ri2;
2220
+ npy_uintp n2 = n / 2;
2221
+ n2 -= n2 % 8;
2222
+ pairwise_sum_@TYPE@(&rr1, &ri1, a, n2, stride);
2223
+ pairwise_sum_@TYPE@(&rr2, &ri2, a + n2 * stride, n - n2, stride);
2224
+ *rr = rr1 + rr2;
2225
+ *ri = ri1 + ri2;
2226
+ return;
2227
+ }
2228
+ }
2229
+
2230
+ /**begin repeat1
2231
+ * arithmetic
2232
+ * #kind = add, subtract#
2233
+ * #OP = +, -#
2234
+ * #PW = 1, 0#
2235
+ */
2236
+ NPY_NO_EXPORT void
2237
+ @TYPE@_@kind@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
2238
+ {
2239
+ if (IS_BINARY_REDUCE && @PW@) {
2240
+ npy_intp n = dimensions[0];
2241
+ @ftype@ * or = ((@ftype@ *)args[0]);
2242
+ @ftype@ * oi = ((@ftype@ *)args[0]) + 1;
2243
+ @ftype@ rr, ri;
2244
+
2245
+ pairwise_sum_@TYPE@(&rr, &ri, (@ftype@ *)args[1], n * 2,
2246
+ steps[1] / (npy_intp)sizeof(@ftype@) / 2);
2247
+ *or @OP@= rr;
2248
+ *oi @OP@= ri;
2249
+ return;
2250
+ }
2251
+ else {
2252
+ BINARY_LOOP {
2253
+ const @ftype@ in1r = ((@ftype@ *)ip1)[0];
2254
+ const @ftype@ in1i = ((@ftype@ *)ip1)[1];
2255
+ const @ftype@ in2r = ((@ftype@ *)ip2)[0];
2256
+ const @ftype@ in2i = ((@ftype@ *)ip2)[1];
2257
+ ((@ftype@ *)op1)[0] = in1r @OP@ in2r;
2258
+ ((@ftype@ *)op1)[1] = in1i @OP@ in2i;
2259
+ }
2260
+ }
2261
+ }
2262
+ /**end repeat1**/
2263
+
2264
+ NPY_NO_EXPORT void
2265
+ @TYPE@_multiply(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
2266
+ {
2267
+ BINARY_LOOP {
2268
+ const @ftype@ in1r = ((@ftype@ *)ip1)[0];
2269
+ const @ftype@ in1i = ((@ftype@ *)ip1)[1];
2270
+ const @ftype@ in2r = ((@ftype@ *)ip2)[0];
2271
+ const @ftype@ in2i = ((@ftype@ *)ip2)[1];
2272
+ ((@ftype@ *)op1)[0] = in1r*in2r - in1i*in2i;
2273
+ ((@ftype@ *)op1)[1] = in1r*in2i + in1i*in2r;
2274
+ }
2275
+ }
2276
+
2277
+ NPY_NO_EXPORT void
2278
+ @TYPE@_divide(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
2279
+ {
2280
+ BINARY_LOOP {
2281
+ const @ftype@ in1r = ((@ftype@ *)ip1)[0];
2282
+ const @ftype@ in1i = ((@ftype@ *)ip1)[1];
2283
+ const @ftype@ in2r = ((@ftype@ *)ip2)[0];
2284
+ const @ftype@ in2i = ((@ftype@ *)ip2)[1];
2285
+ const @ftype@ in2r_abs = npy_fabs@c@(in2r);
2286
+ const @ftype@ in2i_abs = npy_fabs@c@(in2i);
2287
+ if (in2r_abs >= in2i_abs) {
2288
+ if (in2r_abs == 0 && in2i_abs == 0) {
2289
+ /* divide by zero should yield a complex inf or nan */
2290
+ ((@ftype@ *)op1)[0] = in1r/in2r_abs;
2291
+ ((@ftype@ *)op1)[1] = in1i/in2i_abs;
2292
+ }
2293
+ else {
2294
+ const @ftype@ rat = in2i/in2r;
2295
+ const @ftype@ scl = 1.0@c@/(in2r + in2i*rat);
2296
+ ((@ftype@ *)op1)[0] = (in1r + in1i*rat)*scl;
2297
+ ((@ftype@ *)op1)[1] = (in1i - in1r*rat)*scl;
2298
+ }
2299
+ }
2300
+ else {
2301
+ const @ftype@ rat = in2r/in2i;
2302
+ const @ftype@ scl = 1.0@c@/(in2i + in2r*rat);
2303
+ ((@ftype@ *)op1)[0] = (in1r*rat + in1i)*scl;
2304
+ ((@ftype@ *)op1)[1] = (in1i*rat - in1r)*scl;
2305
+ }
2306
+ }
2307
+ }
2308
+
2309
+ NPY_NO_EXPORT void
2310
+ @TYPE@_floor_divide(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
2311
+ {
2312
+ BINARY_LOOP {
2313
+ const @ftype@ in1r = ((@ftype@ *)ip1)[0];
2314
+ const @ftype@ in1i = ((@ftype@ *)ip1)[1];
2315
+ const @ftype@ in2r = ((@ftype@ *)ip2)[0];
2316
+ const @ftype@ in2i = ((@ftype@ *)ip2)[1];
2317
+ if (npy_fabs@c@(in2r) >= npy_fabs@c@(in2i)) {
2318
+ const @ftype@ rat = in2i/in2r;
2319
+ ((@ftype@ *)op1)[0] = npy_floor@c@((in1r + in1i*rat)/(in2r + in2i*rat));
2320
+ ((@ftype@ *)op1)[1] = 0;
2321
+ }
2322
+ else {
2323
+ const @ftype@ rat = in2r/in2i;
2324
+ ((@ftype@ *)op1)[0] = npy_floor@c@((in1r*rat + in1i)/(in2i + in2r*rat));
2325
+ ((@ftype@ *)op1)[1] = 0;
2326
+ }
2327
+ }
2328
+ }
2329
+
2330
+ /**begin repeat1
2331
+ * #kind= greater, greater_equal, less, less_equal, equal, not_equal#
2332
+ * #OP = CGT, CGE, CLT, CLE, CEQ, CNE#
2333
+ */
2334
+ NPY_NO_EXPORT void
2335
+ @TYPE@_@kind@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
2336
+ {
2337
+ BINARY_LOOP {
2338
+ const @ftype@ in1r = ((@ftype@ *)ip1)[0];
2339
+ const @ftype@ in1i = ((@ftype@ *)ip1)[1];
2340
+ const @ftype@ in2r = ((@ftype@ *)ip2)[0];
2341
+ const @ftype@ in2i = ((@ftype@ *)ip2)[1];
2342
+ *((npy_bool *)op1) = @OP@(in1r,in1i,in2r,in2i);
2343
+ }
2344
+ }
2345
+ /**end repeat1**/
2346
+
2347
+ /**begin repeat1
2348
+ #kind = logical_and, logical_or#
2349
+ #OP1 = ||, ||#
2350
+ #OP2 = &&, ||#
2351
+ */
2352
+ NPY_NO_EXPORT void
2353
+ @TYPE@_@kind@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
2354
+ {
2355
+ BINARY_LOOP {
2356
+ const @ftype@ in1r = ((@ftype@ *)ip1)[0];
2357
+ const @ftype@ in1i = ((@ftype@ *)ip1)[1];
2358
+ const @ftype@ in2r = ((@ftype@ *)ip2)[0];
2359
+ const @ftype@ in2i = ((@ftype@ *)ip2)[1];
2360
+ *((npy_bool *)op1) = (in1r @OP1@ in1i) @OP2@ (in2r @OP1@ in2i);
2361
+ }
2362
+ }
2363
+ /**end repeat1**/
2364
+
2365
+ NPY_NO_EXPORT void
2366
+ @TYPE@_logical_xor(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
2367
+ {
2368
+ BINARY_LOOP {
2369
+ const @ftype@ in1r = ((@ftype@ *)ip1)[0];
2370
+ const @ftype@ in1i = ((@ftype@ *)ip1)[1];
2371
+ const @ftype@ in2r = ((@ftype@ *)ip2)[0];
2372
+ const @ftype@ in2i = ((@ftype@ *)ip2)[1];
2373
+ const npy_bool tmp1 = (in1r || in1i);
2374
+ const npy_bool tmp2 = (in2r || in2i);
2375
+ *((npy_bool *)op1) = tmp1 != tmp2;
2376
+ }
2377
+ }
2378
+
2379
+ NPY_NO_EXPORT void
2380
+ @TYPE@_logical_not(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
2381
+ {
2382
+ UNARY_LOOP {
2383
+ const @ftype@ in1r = ((@ftype@ *)ip1)[0];
2384
+ const @ftype@ in1i = ((@ftype@ *)ip1)[1];
2385
+ *((npy_bool *)op1) = !(in1r || in1i);
2386
+ }
2387
+ }
2388
+
2389
+ /**begin repeat1
2390
+ * #kind = isnan, isinf, isfinite#
2391
+ * #func = npy_isnan, npy_isinf, npy_isfinite#
2392
+ * #OP = ||, ||, &&#
2393
+ **/
2394
+ NPY_NO_EXPORT void
2395
+ @TYPE@_@kind@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
2396
+ {
2397
+ UNARY_LOOP {
2398
+ const @ftype@ in1r = ((@ftype@ *)ip1)[0];
2399
+ const @ftype@ in1i = ((@ftype@ *)ip1)[1];
2400
+ *((npy_bool *)op1) = @func@(in1r) @OP@ @func@(in1i);
2401
+ }
2402
+ }
2403
+ /**end repeat1**/
2404
+
2405
+ NPY_NO_EXPORT void
2406
+ @TYPE@_square(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(data))
2407
+ {
2408
+ UNARY_LOOP {
2409
+ const @ftype@ in1r = ((@ftype@ *)ip1)[0];
2410
+ const @ftype@ in1i = ((@ftype@ *)ip1)[1];
2411
+ ((@ftype@ *)op1)[0] = in1r*in1r - in1i*in1i;
2412
+ ((@ftype@ *)op1)[1] = in1r*in1i + in1i*in1r;
2413
+ }
2414
+ }
2415
+
2416
+ NPY_NO_EXPORT void
2417
+ @TYPE@_reciprocal(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(data))
2418
+ {
2419
+ UNARY_LOOP {
2420
+ const @ftype@ in1r = ((@ftype@ *)ip1)[0];
2421
+ const @ftype@ in1i = ((@ftype@ *)ip1)[1];
2422
+ if (npy_fabs@c@(in1i) <= npy_fabs@c@(in1r)) {
2423
+ const @ftype@ r = in1i/in1r;
2424
+ const @ftype@ d = in1r + in1i*r;
2425
+ ((@ftype@ *)op1)[0] = 1/d;
2426
+ ((@ftype@ *)op1)[1] = -r/d;
2427
+ } else {
2428
+ const @ftype@ r = in1r/in1i;
2429
+ const @ftype@ d = in1r*r + in1i;
2430
+ ((@ftype@ *)op1)[0] = r/d;
2431
+ ((@ftype@ *)op1)[1] = -1/d;
2432
+ }
2433
+ }
2434
+ }
2435
+
2436
+ NPY_NO_EXPORT void
2437
+ @TYPE@__ones_like(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(data))
2438
+ {
2439
+ OUTPUT_LOOP {
2440
+ ((@ftype@ *)op1)[0] = 1;
2441
+ ((@ftype@ *)op1)[1] = 0;
2442
+ }
2443
+ }
2444
+
2445
+ NPY_NO_EXPORT void
2446
+ @TYPE@_conjugate(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func)) {
2447
+ UNARY_LOOP {
2448
+ const @ftype@ in1r = ((@ftype@ *)ip1)[0];
2449
+ const @ftype@ in1i = ((@ftype@ *)ip1)[1];
2450
+ ((@ftype@ *)op1)[0] = in1r;
2451
+ ((@ftype@ *)op1)[1] = -in1i;
2452
+ }
2453
+ }
2454
+
2455
+ NPY_NO_EXPORT void
2456
+ @TYPE@_absolute(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
2457
+ {
2458
+ UNARY_LOOP {
2459
+ const @ftype@ in1r = ((@ftype@ *)ip1)[0];
2460
+ const @ftype@ in1i = ((@ftype@ *)ip1)[1];
2461
+ *((@ftype@ *)op1) = npy_hypot@c@(in1r, in1i);
2462
+ }
2463
+ }
2464
+
2465
+ NPY_NO_EXPORT void
2466
+ @TYPE@__arg(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
2467
+ {
2468
+ UNARY_LOOP {
2469
+ const @ftype@ in1r = ((@ftype@ *)ip1)[0];
2470
+ const @ftype@ in1i = ((@ftype@ *)ip1)[1];
2471
+ *((@ftype@ *)op1) = npy_atan2@c@(in1i, in1r);
2472
+ }
2473
+ }
2474
+
2475
+ NPY_NO_EXPORT void
2476
+ @TYPE@_sign(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
2477
+ {
2478
+ /* fixme: sign of nan is currently 0 */
2479
+ UNARY_LOOP {
2480
+ const @ftype@ in1r = ((@ftype@ *)ip1)[0];
2481
+ const @ftype@ in1i = ((@ftype@ *)ip1)[1];
2482
+ ((@ftype@ *)op1)[0] = CGT(in1r, in1i, 0.0, 0.0) ? 1 :
2483
+ (CLT(in1r, in1i, 0.0, 0.0) ? -1 :
2484
+ (CEQ(in1r, in1i, 0.0, 0.0) ? 0 : NPY_NAN@C@));
2485
+ ((@ftype@ *)op1)[1] = 0;
2486
+ }
2487
+ }
2488
+
2489
+ /**begin repeat1
2490
+ * #kind = maximum, minimum#
2491
+ * #OP = CGE, CLE#
2492
+ */
2493
+ NPY_NO_EXPORT void
2494
+ @TYPE@_@kind@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
2495
+ {
2496
+ BINARY_LOOP {
2497
+ const @ftype@ in1r = ((@ftype@ *)ip1)[0];
2498
+ const @ftype@ in1i = ((@ftype@ *)ip1)[1];
2499
+ const @ftype@ in2r = ((@ftype@ *)ip2)[0];
2500
+ const @ftype@ in2i = ((@ftype@ *)ip2)[1];
2501
+ if (@OP@(in1r, in1i, in2r, in2i) || npy_isnan(in1r) || npy_isnan(in1i)) {
2502
+ ((@ftype@ *)op1)[0] = in1r;
2503
+ ((@ftype@ *)op1)[1] = in1i;
2504
+ }
2505
+ else {
2506
+ ((@ftype@ *)op1)[0] = in2r;
2507
+ ((@ftype@ *)op1)[1] = in2i;
2508
+ }
2509
+ }
2510
+ }
2511
+ /**end repeat1**/
2512
+
2513
+ /**begin repeat1
2514
+ * #kind = fmax, fmin#
2515
+ * #OP = CGE, CLE#
2516
+ */
2517
+ NPY_NO_EXPORT void
2518
+ @TYPE@_@kind@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
2519
+ {
2520
+ BINARY_LOOP {
2521
+ const @ftype@ in1r = ((@ftype@ *)ip1)[0];
2522
+ const @ftype@ in1i = ((@ftype@ *)ip1)[1];
2523
+ const @ftype@ in2r = ((@ftype@ *)ip2)[0];
2524
+ const @ftype@ in2i = ((@ftype@ *)ip2)[1];
2525
+ if (@OP@(in1r, in1i, in2r, in2i) || npy_isnan(in2r) || npy_isnan(in2i)) {
2526
+ ((@ftype@ *)op1)[0] = in1r;
2527
+ ((@ftype@ *)op1)[1] = in1i;
2528
+ }
2529
+ else {
2530
+ ((@ftype@ *)op1)[0] = in2r;
2531
+ ((@ftype@ *)op1)[1] = in2i;
2532
+ }
2533
+ }
2534
+ }
2535
+ /**end repeat1**/
2536
+
2537
+ #define @TYPE@_true_divide @TYPE@_divide
2538
+
2539
+ /**end repeat**/
2540
+
2541
+ #undef CGE
2542
+ #undef CLE
2543
+ #undef CGT
2544
+ #undef CLT
2545
+ #undef CEQ
2546
+ #undef CNE
2547
+
2548
+ /*
2549
+ *****************************************************************************
2550
+ ** OBJECT LOOPS **
2551
+ *****************************************************************************
2552
+ */
2553
+
2554
+ /**begin repeat
2555
+ * #kind = equal, not_equal, greater, greater_equal, less, less_equal#
2556
+ * #OP = EQ, NE, GT, GE, LT, LE#
2557
+ * #identity = NPY_TRUE, NPY_FALSE, -1*4#
2558
+ */
2559
+ NPY_NO_EXPORT void
2560
+ OBJECT_@kind@(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func)) {
2561
+ BINARY_LOOP {
2562
+ int ret;
2563
+ PyObject *ret_obj;
2564
+ PyObject *in1 = *(PyObject **)ip1;
2565
+ PyObject *in2 = *(PyObject **)ip2;
2566
+
2567
+ in1 = in1 ? in1 : Py_None;
2568
+ in2 = in2 ? in2 : Py_None;
2569
+
2570
+ /*
2571
+ * Do not use RichCompareBool because it includes an identity check
2572
+ * (for == and !=).
2573
+ * This is wrong for elementwise behaviour, since it means
2574
+ * that NaN can be equal to NaN and an array is equal to itself.
2575
+ */
2576
+ ret_obj = PyObject_RichCompare(in1, in2, Py_@OP@);
2577
+ if (ret_obj == NULL) {
2578
+ #if @identity@ != -1
2579
+ if (in1 == in2) {
2580
+ /* 2014-01-26, 1.9 */
2581
+ PyErr_Clear();
2582
+ if (DEPRECATE("numpy @kind@ will not check object identity "
2583
+ "in the future. The comparison error will "
2584
+ "be raised.") < 0) {
2585
+ return;
2586
+ }
2587
+ *((npy_bool *)op1) = @identity@;
2588
+ continue;
2589
+ }
2590
+ #endif
2591
+ return;
2592
+ }
2593
+ ret = PyObject_IsTrue(ret_obj);
2594
+ Py_DECREF(ret_obj);
2595
+ if (ret == -1) {
2596
+ #if @identity@ != -1
2597
+ if (in1 == in2) {
2598
+ /* 2014-01-26, 1.9 */
2599
+ PyErr_Clear();
2600
+ if (DEPRECATE("numpy @kind@ will not check object identity "
2601
+ "in the future. The error trying to get the "
2602
+ "boolean value of the comparison result will "
2603
+ "be raised.") < 0) {
2604
+ return;
2605
+ }
2606
+ *((npy_bool *)op1) = @identity@;
2607
+ continue;
2608
+ }
2609
+ #endif
2610
+ return;
2611
+ }
2612
+ #if @identity@ != -1
2613
+ if ((in1 == in2) && ((npy_bool)ret != @identity@)) {
2614
+ /* 2014-01-26, 1.9 */
2615
+ if (DEPRECATE_FUTUREWARNING(
2616
+ "numpy @kind@ will not check object identity "
2617
+ "in the future. The comparison did not return the "
2618
+ "same result as suggested by the identity (`is`)) "
2619
+ "and will change.") < 0) {
2620
+ return;
2621
+ }
2622
+ *((npy_bool *)op1) = @identity@;
2623
+ continue;
2624
+ }
2625
+ #endif
2626
+ *((npy_bool *)op1) = (npy_bool)ret;
2627
+ }
2628
+ }
2629
+ /**end repeat**/
2630
+
2631
+ NPY_NO_EXPORT void
2632
+ OBJECT_sign(char **args, npy_intp *dimensions, npy_intp *steps, void *NPY_UNUSED(func))
2633
+ {
2634
+ #if defined(NPY_PY3K)
2635
+ PyObject *zero = PyLong_FromLong(0);
2636
+ UNARY_LOOP {
2637
+ PyObject *in1 = *(PyObject **)ip1;
2638
+ PyObject **out = (PyObject **)op1;
2639
+ int v;
2640
+ PyObject *ret;
2641
+ if (PyObject_Cmp(in1 ? in1 : Py_None, zero, &v) == -1) {
2642
+ return;
2643
+ }
2644
+ ret = PyLong_FromLong(v);
2645
+ if (PyErr_Occurred()) {
2646
+ Py_DECREF(zero);
2647
+ return;
2648
+ }
2649
+ Py_XDECREF(*out);
2650
+ *out = ret;
2651
+ }
2652
+ Py_DECREF(zero);
2653
+ #else
2654
+ PyObject *zero = PyInt_FromLong(0);
2655
+ UNARY_LOOP {
2656
+ PyObject *in1 = *(PyObject **)ip1;
2657
+ PyObject **out = (PyObject **)op1;
2658
+ PyObject *ret = PyInt_FromLong(
2659
+ PyObject_Compare(in1 ? in1 : Py_None, zero));
2660
+ if (PyErr_Occurred()) {
2661
+ Py_DECREF(zero);
2662
+ return;
2663
+ }
2664
+ Py_XDECREF(*out);
2665
+ *out = ret;
2666
+ }
2667
+ Py_DECREF(zero);
2668
+ #endif
2669
+ }
2670
+
2671
+ /*
2672
+ *****************************************************************************
2673
+ ** END LOOPS **
2674
+ *****************************************************************************
2675
+ */