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,2406 @@
1
+ """Lite version of scipy.linalg.
2
+
3
+ Notes
4
+ -----
5
+ This module is a lite version of the linalg.py module in SciPy which
6
+ contains high-level Python interface to the LAPACK library. The lite
7
+ version only accesses the following LAPACK functions: dgesv, zgesv,
8
+ dgeev, zgeev, dgesdd, zgesdd, dgelsd, zgelsd, dsyevd, zheevd, dgetrf,
9
+ zgetrf, dpotrf, zpotrf, dgeqrf, zgeqrf, zungqr, dorgqr.
10
+ """
11
+ from __future__ import division, absolute_import, print_function
12
+
13
+
14
+ __all__ = ['matrix_power', 'solve', 'tensorsolve', 'tensorinv', 'inv',
15
+ 'cholesky', 'eigvals', 'eigvalsh', 'pinv', 'slogdet', 'det',
16
+ 'svd', 'eig', 'eigh', 'lstsq', 'norm', 'qr', 'cond', 'matrix_rank',
17
+ 'LinAlgError', 'multi_dot']
18
+
19
+ import warnings
20
+
21
+ from numpy.core import (
22
+ array, asarray, zeros, empty, empty_like, transpose, intc, single, double,
23
+ csingle, cdouble, inexact, complexfloating, newaxis, ravel, all, Inf, dot,
24
+ add, multiply, sqrt, maximum, fastCopyAndTranspose, sum, isfinite, size,
25
+ finfo, errstate, geterrobj, longdouble, rollaxis, amin, amax, product, abs,
26
+ broadcast, atleast_2d, intp, asanyarray, isscalar
27
+ )
28
+ from numpy.lib import triu, asfarray
29
+ from numpy.linalg import lapack_lite, _umath_linalg
30
+ from numpy.matrixlib.defmatrix import matrix_power
31
+ from numpy.compat import asbytes
32
+
33
+ # For Python2/3 compatibility
34
+ _N = asbytes('N')
35
+ _V = asbytes('V')
36
+ _A = asbytes('A')
37
+ _S = asbytes('S')
38
+ _L = asbytes('L')
39
+
40
+ fortran_int = intc
41
+
42
+ # Error object
43
+ class LinAlgError(Exception):
44
+ """
45
+ Generic Python-exception-derived object raised by linalg functions.
46
+
47
+ General purpose exception class, derived from Python's exception.Exception
48
+ class, programmatically raised in linalg functions when a Linear
49
+ Algebra-related condition would prevent further correct execution of the
50
+ function.
51
+
52
+ Parameters
53
+ ----------
54
+ None
55
+
56
+ Examples
57
+ --------
58
+ >>> from numpy import linalg as LA
59
+ >>> LA.inv(np.zeros((2,2)))
60
+ Traceback (most recent call last):
61
+ File "<stdin>", line 1, in <module>
62
+ File "...linalg.py", line 350,
63
+ in inv return wrap(solve(a, identity(a.shape[0], dtype=a.dtype)))
64
+ File "...linalg.py", line 249,
65
+ in solve
66
+ raise LinAlgError('Singular matrix')
67
+ numpy.linalg.LinAlgError: Singular matrix
68
+
69
+ """
70
+ pass
71
+
72
+ # Dealing with errors in _umath_linalg
73
+
74
+ _linalg_error_extobj = None
75
+
76
+ def _determine_error_states():
77
+ global _linalg_error_extobj
78
+ errobj = geterrobj()
79
+ bufsize = errobj[0]
80
+
81
+ with errstate(invalid='call', over='ignore',
82
+ divide='ignore', under='ignore'):
83
+ invalid_call_errmask = geterrobj()[1]
84
+
85
+ _linalg_error_extobj = [bufsize, invalid_call_errmask, None]
86
+
87
+ _determine_error_states()
88
+
89
+ def _raise_linalgerror_singular(err, flag):
90
+ raise LinAlgError("Singular matrix")
91
+
92
+ def _raise_linalgerror_nonposdef(err, flag):
93
+ raise LinAlgError("Matrix is not positive definite")
94
+
95
+ def _raise_linalgerror_eigenvalues_nonconvergence(err, flag):
96
+ raise LinAlgError("Eigenvalues did not converge")
97
+
98
+ def _raise_linalgerror_svd_nonconvergence(err, flag):
99
+ raise LinAlgError("SVD did not converge")
100
+
101
+ def get_linalg_error_extobj(callback):
102
+ extobj = list(_linalg_error_extobj)
103
+ extobj[2] = callback
104
+ return extobj
105
+
106
+ def _makearray(a):
107
+ new = asarray(a)
108
+ wrap = getattr(a, "__array_prepare__", new.__array_wrap__)
109
+ return new, wrap
110
+
111
+ def isComplexType(t):
112
+ return issubclass(t, complexfloating)
113
+
114
+ _real_types_map = {single : single,
115
+ double : double,
116
+ csingle : single,
117
+ cdouble : double}
118
+
119
+ _complex_types_map = {single : csingle,
120
+ double : cdouble,
121
+ csingle : csingle,
122
+ cdouble : cdouble}
123
+
124
+ def _realType(t, default=double):
125
+ return _real_types_map.get(t, default)
126
+
127
+ def _complexType(t, default=cdouble):
128
+ return _complex_types_map.get(t, default)
129
+
130
+ def _linalgRealType(t):
131
+ """Cast the type t to either double or cdouble."""
132
+ return double
133
+
134
+ _complex_types_map = {single : csingle,
135
+ double : cdouble,
136
+ csingle : csingle,
137
+ cdouble : cdouble}
138
+
139
+ def _commonType(*arrays):
140
+ # in lite version, use higher precision (always double or cdouble)
141
+ result_type = single
142
+ is_complex = False
143
+ for a in arrays:
144
+ if issubclass(a.dtype.type, inexact):
145
+ if isComplexType(a.dtype.type):
146
+ is_complex = True
147
+ rt = _realType(a.dtype.type, default=None)
148
+ if rt is None:
149
+ # unsupported inexact scalar
150
+ raise TypeError("array type %s is unsupported in linalg" %
151
+ (a.dtype.name,))
152
+ else:
153
+ rt = double
154
+ if rt is double:
155
+ result_type = double
156
+ if is_complex:
157
+ t = cdouble
158
+ result_type = _complex_types_map[result_type]
159
+ else:
160
+ t = double
161
+ return t, result_type
162
+
163
+
164
+ # _fastCopyAndTranpose assumes the input is 2D (as all the calls in here are).
165
+
166
+ _fastCT = fastCopyAndTranspose
167
+
168
+ def _to_native_byte_order(*arrays):
169
+ ret = []
170
+ for arr in arrays:
171
+ if arr.dtype.byteorder not in ('=', '|'):
172
+ ret.append(asarray(arr, dtype=arr.dtype.newbyteorder('=')))
173
+ else:
174
+ ret.append(arr)
175
+ if len(ret) == 1:
176
+ return ret[0]
177
+ else:
178
+ return ret
179
+
180
+ def _fastCopyAndTranspose(type, *arrays):
181
+ cast_arrays = ()
182
+ for a in arrays:
183
+ if a.dtype.type is type:
184
+ cast_arrays = cast_arrays + (_fastCT(a),)
185
+ else:
186
+ cast_arrays = cast_arrays + (_fastCT(a.astype(type)),)
187
+ if len(cast_arrays) == 1:
188
+ return cast_arrays[0]
189
+ else:
190
+ return cast_arrays
191
+
192
+ def _assertRank2(*arrays):
193
+ for a in arrays:
194
+ if len(a.shape) != 2:
195
+ raise LinAlgError('%d-dimensional array given. Array must be '
196
+ 'two-dimensional' % len(a.shape))
197
+
198
+ def _assertRankAtLeast2(*arrays):
199
+ for a in arrays:
200
+ if len(a.shape) < 2:
201
+ raise LinAlgError('%d-dimensional array given. Array must be '
202
+ 'at least two-dimensional' % len(a.shape))
203
+
204
+ def _assertSquareness(*arrays):
205
+ for a in arrays:
206
+ if max(a.shape) != min(a.shape):
207
+ raise LinAlgError('Array must be square')
208
+
209
+ def _assertNdSquareness(*arrays):
210
+ for a in arrays:
211
+ if max(a.shape[-2:]) != min(a.shape[-2:]):
212
+ raise LinAlgError('Last 2 dimensions of the array must be square')
213
+
214
+ def _assertFinite(*arrays):
215
+ for a in arrays:
216
+ if not (isfinite(a).all()):
217
+ raise LinAlgError("Array must not contain infs or NaNs")
218
+
219
+ def _assertNoEmpty2d(*arrays):
220
+ for a in arrays:
221
+ if a.size == 0 and product(a.shape[-2:]) == 0:
222
+ raise LinAlgError("Arrays cannot be empty")
223
+
224
+
225
+ # Linear equations
226
+
227
+ def tensorsolve(a, b, axes=None):
228
+ """
229
+ Solve the tensor equation ``a x = b`` for x.
230
+
231
+ It is assumed that all indices of `x` are summed over in the product,
232
+ together with the rightmost indices of `a`, as is done in, for example,
233
+ ``tensordot(a, x, axes=len(b.shape))``.
234
+
235
+ Parameters
236
+ ----------
237
+ a : array_like
238
+ Coefficient tensor, of shape ``b.shape + Q``. `Q`, a tuple, equals
239
+ the shape of that sub-tensor of `a` consisting of the appropriate
240
+ number of its rightmost indices, and must be such that
241
+ ``prod(Q) == prod(b.shape)`` (in which sense `a` is said to be
242
+ 'square').
243
+ b : array_like
244
+ Right-hand tensor, which can be of any shape.
245
+ axes : tuple of ints, optional
246
+ Axes in `a` to reorder to the right, before inversion.
247
+ If None (default), no reordering is done.
248
+
249
+ Returns
250
+ -------
251
+ x : ndarray, shape Q
252
+
253
+ Raises
254
+ ------
255
+ LinAlgError
256
+ If `a` is singular or not 'square' (in the above sense).
257
+
258
+ See Also
259
+ --------
260
+ tensordot, tensorinv, einsum
261
+
262
+ Examples
263
+ --------
264
+ >>> a = np.eye(2*3*4)
265
+ >>> a.shape = (2*3, 4, 2, 3, 4)
266
+ >>> b = np.random.randn(2*3, 4)
267
+ >>> x = np.linalg.tensorsolve(a, b)
268
+ >>> x.shape
269
+ (2, 3, 4)
270
+ >>> np.allclose(np.tensordot(a, x, axes=3), b)
271
+ True
272
+
273
+ """
274
+ a, wrap = _makearray(a)
275
+ b = asarray(b)
276
+ an = a.ndim
277
+
278
+ if axes is not None:
279
+ allaxes = list(range(0, an))
280
+ for k in axes:
281
+ allaxes.remove(k)
282
+ allaxes.insert(an, k)
283
+ a = a.transpose(allaxes)
284
+
285
+ oldshape = a.shape[-(an-b.ndim):]
286
+ prod = 1
287
+ for k in oldshape:
288
+ prod *= k
289
+
290
+ a = a.reshape(-1, prod)
291
+ b = b.ravel()
292
+ res = wrap(solve(a, b))
293
+ res.shape = oldshape
294
+ return res
295
+
296
+ def solve(a, b):
297
+ """
298
+ Solve a linear matrix equation, or system of linear scalar equations.
299
+
300
+ Computes the "exact" solution, `x`, of the well-determined, i.e., full
301
+ rank, linear matrix equation `ax = b`.
302
+
303
+ Parameters
304
+ ----------
305
+ a : (..., M, M) array_like
306
+ Coefficient matrix.
307
+ b : {(..., M,), (..., M, K)}, array_like
308
+ Ordinate or "dependent variable" values.
309
+
310
+ Returns
311
+ -------
312
+ x : {(..., M,), (..., M, K)} ndarray
313
+ Solution to the system a x = b. Returned shape is identical to `b`.
314
+
315
+ Raises
316
+ ------
317
+ LinAlgError
318
+ If `a` is singular or not square.
319
+
320
+ Notes
321
+ -----
322
+
323
+ .. versionadded:: 1.8.0
324
+
325
+ Broadcasting rules apply, see the `numpy.linalg` documentation for
326
+ details.
327
+
328
+ The solutions are computed using LAPACK routine _gesv
329
+
330
+ `a` must be square and of full-rank, i.e., all rows (or, equivalently,
331
+ columns) must be linearly independent; if either is not true, use
332
+ `lstsq` for the least-squares best "solution" of the
333
+ system/equation.
334
+
335
+ References
336
+ ----------
337
+ .. [1] G. Strang, *Linear Algebra and Its Applications*, 2nd Ed., Orlando,
338
+ FL, Academic Press, Inc., 1980, pg. 22.
339
+
340
+ Examples
341
+ --------
342
+ Solve the system of equations ``3 * x0 + x1 = 9`` and ``x0 + 2 * x1 = 8``:
343
+
344
+ >>> a = np.array([[3,1], [1,2]])
345
+ >>> b = np.array([9,8])
346
+ >>> x = np.linalg.solve(a, b)
347
+ >>> x
348
+ array([ 2., 3.])
349
+
350
+ Check that the solution is correct:
351
+
352
+ >>> np.allclose(np.dot(a, x), b)
353
+ True
354
+
355
+ """
356
+ a, _ = _makearray(a)
357
+ _assertRankAtLeast2(a)
358
+ _assertNdSquareness(a)
359
+ b, wrap = _makearray(b)
360
+ t, result_t = _commonType(a, b)
361
+
362
+ # We use the b = (..., M,) logic, only if the number of extra dimensions
363
+ # match exactly
364
+ if b.ndim == a.ndim - 1:
365
+ if a.shape[-1] == 0 and b.shape[-1] == 0:
366
+ # Legal, but the ufunc cannot handle the 0-sized inner dims
367
+ # let the ufunc handle all wrong cases.
368
+ a = a.reshape(a.shape[:-1])
369
+ bc = broadcast(a, b)
370
+ return wrap(empty(bc.shape, dtype=result_t))
371
+
372
+ gufunc = _umath_linalg.solve1
373
+ else:
374
+ if b.size == 0:
375
+ if (a.shape[-1] == 0 and b.shape[-2] == 0) or b.shape[-1] == 0:
376
+ a = a[:,:1].reshape(a.shape[:-1] + (1,))
377
+ bc = broadcast(a, b)
378
+ return wrap(empty(bc.shape, dtype=result_t))
379
+
380
+ gufunc = _umath_linalg.solve
381
+
382
+ signature = 'DD->D' if isComplexType(t) else 'dd->d'
383
+ extobj = get_linalg_error_extobj(_raise_linalgerror_singular)
384
+ r = gufunc(a, b, signature=signature, extobj=extobj)
385
+
386
+ return wrap(r.astype(result_t, copy=False))
387
+
388
+
389
+ def tensorinv(a, ind=2):
390
+ """
391
+ Compute the 'inverse' of an N-dimensional array.
392
+
393
+ The result is an inverse for `a` relative to the tensordot operation
394
+ ``tensordot(a, b, ind)``, i. e., up to floating-point accuracy,
395
+ ``tensordot(tensorinv(a), a, ind)`` is the "identity" tensor for the
396
+ tensordot operation.
397
+
398
+ Parameters
399
+ ----------
400
+ a : array_like
401
+ Tensor to 'invert'. Its shape must be 'square', i. e.,
402
+ ``prod(a.shape[:ind]) == prod(a.shape[ind:])``.
403
+ ind : int, optional
404
+ Number of first indices that are involved in the inverse sum.
405
+ Must be a positive integer, default is 2.
406
+
407
+ Returns
408
+ -------
409
+ b : ndarray
410
+ `a`'s tensordot inverse, shape ``a.shape[ind:] + a.shape[:ind]``.
411
+
412
+ Raises
413
+ ------
414
+ LinAlgError
415
+ If `a` is singular or not 'square' (in the above sense).
416
+
417
+ See Also
418
+ --------
419
+ tensordot, tensorsolve
420
+
421
+ Examples
422
+ --------
423
+ >>> a = np.eye(4*6)
424
+ >>> a.shape = (4, 6, 8, 3)
425
+ >>> ainv = np.linalg.tensorinv(a, ind=2)
426
+ >>> ainv.shape
427
+ (8, 3, 4, 6)
428
+ >>> b = np.random.randn(4, 6)
429
+ >>> np.allclose(np.tensordot(ainv, b), np.linalg.tensorsolve(a, b))
430
+ True
431
+
432
+ >>> a = np.eye(4*6)
433
+ >>> a.shape = (24, 8, 3)
434
+ >>> ainv = np.linalg.tensorinv(a, ind=1)
435
+ >>> ainv.shape
436
+ (8, 3, 24)
437
+ >>> b = np.random.randn(24)
438
+ >>> np.allclose(np.tensordot(ainv, b, 1), np.linalg.tensorsolve(a, b))
439
+ True
440
+
441
+ """
442
+ a = asarray(a)
443
+ oldshape = a.shape
444
+ prod = 1
445
+ if ind > 0:
446
+ invshape = oldshape[ind:] + oldshape[:ind]
447
+ for k in oldshape[ind:]:
448
+ prod *= k
449
+ else:
450
+ raise ValueError("Invalid ind argument.")
451
+ a = a.reshape(prod, -1)
452
+ ia = inv(a)
453
+ return ia.reshape(*invshape)
454
+
455
+
456
+ # Matrix inversion
457
+
458
+ def inv(a):
459
+ """
460
+ Compute the (multiplicative) inverse of a matrix.
461
+
462
+ Given a square matrix `a`, return the matrix `ainv` satisfying
463
+ ``dot(a, ainv) = dot(ainv, a) = eye(a.shape[0])``.
464
+
465
+ Parameters
466
+ ----------
467
+ a : (..., M, M) array_like
468
+ Matrix to be inverted.
469
+
470
+ Returns
471
+ -------
472
+ ainv : (..., M, M) ndarray or matrix
473
+ (Multiplicative) inverse of the matrix `a`.
474
+
475
+ Raises
476
+ ------
477
+ LinAlgError
478
+ If `a` is not square or inversion fails.
479
+
480
+ Notes
481
+ -----
482
+
483
+ .. versionadded:: 1.8.0
484
+
485
+ Broadcasting rules apply, see the `numpy.linalg` documentation for
486
+ details.
487
+
488
+ Examples
489
+ --------
490
+ >>> from numpy.linalg import inv
491
+ >>> a = np.array([[1., 2.], [3., 4.]])
492
+ >>> ainv = inv(a)
493
+ >>> np.allclose(np.dot(a, ainv), np.eye(2))
494
+ True
495
+ >>> np.allclose(np.dot(ainv, a), np.eye(2))
496
+ True
497
+
498
+ If a is a matrix object, then the return value is a matrix as well:
499
+
500
+ >>> ainv = inv(np.matrix(a))
501
+ >>> ainv
502
+ matrix([[-2. , 1. ],
503
+ [ 1.5, -0.5]])
504
+
505
+ Inverses of several matrices can be computed at once:
506
+
507
+ >>> a = np.array([[[1., 2.], [3., 4.]], [[1, 3], [3, 5]]])
508
+ >>> inv(a)
509
+ array([[[-2. , 1. ],
510
+ [ 1.5, -0.5]],
511
+ [[-5. , 2. ],
512
+ [ 3. , -1. ]]])
513
+
514
+ """
515
+ a, wrap = _makearray(a)
516
+ _assertRankAtLeast2(a)
517
+ _assertNdSquareness(a)
518
+ t, result_t = _commonType(a)
519
+
520
+ if a.shape[-1] == 0:
521
+ # The inner array is 0x0, the ufunc cannot handle this case
522
+ return wrap(empty_like(a, dtype=result_t))
523
+
524
+ signature = 'D->D' if isComplexType(t) else 'd->d'
525
+ extobj = get_linalg_error_extobj(_raise_linalgerror_singular)
526
+ ainv = _umath_linalg.inv(a, signature=signature, extobj=extobj)
527
+ return wrap(ainv.astype(result_t, copy=False))
528
+
529
+
530
+ # Cholesky decomposition
531
+
532
+ def cholesky(a):
533
+ """
534
+ Cholesky decomposition.
535
+
536
+ Return the Cholesky decomposition, `L * L.H`, of the square matrix `a`,
537
+ where `L` is lower-triangular and .H is the conjugate transpose operator
538
+ (which is the ordinary transpose if `a` is real-valued). `a` must be
539
+ Hermitian (symmetric if real-valued) and positive-definite. Only `L` is
540
+ actually returned.
541
+
542
+ Parameters
543
+ ----------
544
+ a : (..., M, M) array_like
545
+ Hermitian (symmetric if all elements are real), positive-definite
546
+ input matrix.
547
+
548
+ Returns
549
+ -------
550
+ L : (..., M, M) array_like
551
+ Upper or lower-triangular Cholesky factor of `a`. Returns a
552
+ matrix object if `a` is a matrix object.
553
+
554
+ Raises
555
+ ------
556
+ LinAlgError
557
+ If the decomposition fails, for example, if `a` is not
558
+ positive-definite.
559
+
560
+ Notes
561
+ -----
562
+
563
+ .. versionadded:: 1.8.0
564
+
565
+ Broadcasting rules apply, see the `numpy.linalg` documentation for
566
+ details.
567
+
568
+ The Cholesky decomposition is often used as a fast way of solving
569
+
570
+ .. math:: A \\mathbf{x} = \\mathbf{b}
571
+
572
+ (when `A` is both Hermitian/symmetric and positive-definite).
573
+
574
+ First, we solve for :math:`\\mathbf{y}` in
575
+
576
+ .. math:: L \\mathbf{y} = \\mathbf{b},
577
+
578
+ and then for :math:`\\mathbf{x}` in
579
+
580
+ .. math:: L.H \\mathbf{x} = \\mathbf{y}.
581
+
582
+ Examples
583
+ --------
584
+ >>> A = np.array([[1,-2j],[2j,5]])
585
+ >>> A
586
+ array([[ 1.+0.j, 0.-2.j],
587
+ [ 0.+2.j, 5.+0.j]])
588
+ >>> L = np.linalg.cholesky(A)
589
+ >>> L
590
+ array([[ 1.+0.j, 0.+0.j],
591
+ [ 0.+2.j, 1.+0.j]])
592
+ >>> np.dot(L, L.T.conj()) # verify that L * L.H = A
593
+ array([[ 1.+0.j, 0.-2.j],
594
+ [ 0.+2.j, 5.+0.j]])
595
+ >>> A = [[1,-2j],[2j,5]] # what happens if A is only array_like?
596
+ >>> np.linalg.cholesky(A) # an ndarray object is returned
597
+ array([[ 1.+0.j, 0.+0.j],
598
+ [ 0.+2.j, 1.+0.j]])
599
+ >>> # But a matrix object is returned if A is a matrix object
600
+ >>> LA.cholesky(np.matrix(A))
601
+ matrix([[ 1.+0.j, 0.+0.j],
602
+ [ 0.+2.j, 1.+0.j]])
603
+
604
+ """
605
+ extobj = get_linalg_error_extobj(_raise_linalgerror_nonposdef)
606
+ gufunc = _umath_linalg.cholesky_lo
607
+ a, wrap = _makearray(a)
608
+ _assertRankAtLeast2(a)
609
+ _assertNdSquareness(a)
610
+ t, result_t = _commonType(a)
611
+ signature = 'D->D' if isComplexType(t) else 'd->d'
612
+ r = gufunc(a, signature=signature, extobj=extobj)
613
+ return wrap(r.astype(result_t, copy=False))
614
+
615
+ # QR decompostion
616
+
617
+ def qr(a, mode='reduced'):
618
+ """
619
+ Compute the qr factorization of a matrix.
620
+
621
+ Factor the matrix `a` as *qr*, where `q` is orthonormal and `r` is
622
+ upper-triangular.
623
+
624
+ Parameters
625
+ ----------
626
+ a : array_like, shape (M, N)
627
+ Matrix to be factored.
628
+ mode : {'reduced', 'complete', 'r', 'raw', 'full', 'economic'}, optional
629
+ If K = min(M, N), then
630
+
631
+ 'reduced' : returns q, r with dimensions (M, K), (K, N) (default)
632
+ 'complete' : returns q, r with dimensions (M, M), (M, N)
633
+ 'r' : returns r only with dimensions (K, N)
634
+ 'raw' : returns h, tau with dimensions (N, M), (K,)
635
+ 'full' : alias of 'reduced', deprecated
636
+ 'economic' : returns h from 'raw', deprecated.
637
+
638
+ The options 'reduced', 'complete, and 'raw' are new in numpy 1.8,
639
+ see the notes for more information. The default is 'reduced' and to
640
+ maintain backward compatibility with earlier versions of numpy both
641
+ it and the old default 'full' can be omitted. Note that array h
642
+ returned in 'raw' mode is transposed for calling Fortran. The
643
+ 'economic' mode is deprecated. The modes 'full' and 'economic' may
644
+ be passed using only the first letter for backwards compatibility,
645
+ but all others must be spelled out. See the Notes for more
646
+ explanation.
647
+
648
+
649
+ Returns
650
+ -------
651
+ q : ndarray of float or complex, optional
652
+ A matrix with orthonormal columns. When mode = 'complete' the
653
+ result is an orthogonal/unitary matrix depending on whether or not
654
+ a is real/complex. The determinant may be either +/- 1 in that
655
+ case.
656
+ r : ndarray of float or complex, optional
657
+ The upper-triangular matrix.
658
+ (h, tau) : ndarrays of np.double or np.cdouble, optional
659
+ The array h contains the Householder reflectors that generate q
660
+ along with r. The tau array contains scaling factors for the
661
+ reflectors. In the deprecated 'economic' mode only h is returned.
662
+
663
+ Raises
664
+ ------
665
+ LinAlgError
666
+ If factoring fails.
667
+
668
+ Notes
669
+ -----
670
+ This is an interface to the LAPACK routines dgeqrf, zgeqrf,
671
+ dorgqr, and zungqr.
672
+
673
+ For more information on the qr factorization, see for example:
674
+ http://en.wikipedia.org/wiki/QR_factorization
675
+
676
+ Subclasses of `ndarray` are preserved except for the 'raw' mode. So if
677
+ `a` is of type `matrix`, all the return values will be matrices too.
678
+
679
+ New 'reduced', 'complete', and 'raw' options for mode were added in
680
+ Numpy 1.8 and the old option 'full' was made an alias of 'reduced'. In
681
+ addition the options 'full' and 'economic' were deprecated. Because
682
+ 'full' was the previous default and 'reduced' is the new default,
683
+ backward compatibility can be maintained by letting `mode` default.
684
+ The 'raw' option was added so that LAPACK routines that can multiply
685
+ arrays by q using the Householder reflectors can be used. Note that in
686
+ this case the returned arrays are of type np.double or np.cdouble and
687
+ the h array is transposed to be FORTRAN compatible. No routines using
688
+ the 'raw' return are currently exposed by numpy, but some are available
689
+ in lapack_lite and just await the necessary work.
690
+
691
+ Examples
692
+ --------
693
+ >>> a = np.random.randn(9, 6)
694
+ >>> q, r = np.linalg.qr(a)
695
+ >>> np.allclose(a, np.dot(q, r)) # a does equal qr
696
+ True
697
+ >>> r2 = np.linalg.qr(a, mode='r')
698
+ >>> r3 = np.linalg.qr(a, mode='economic')
699
+ >>> np.allclose(r, r2) # mode='r' returns the same r as mode='full'
700
+ True
701
+ >>> # But only triu parts are guaranteed equal when mode='economic'
702
+ >>> np.allclose(r, np.triu(r3[:6,:6], k=0))
703
+ True
704
+
705
+ Example illustrating a common use of `qr`: solving of least squares
706
+ problems
707
+
708
+ What are the least-squares-best `m` and `y0` in ``y = y0 + mx`` for
709
+ the following data: {(0,1), (1,0), (1,2), (2,1)}. (Graph the points
710
+ and you'll see that it should be y0 = 0, m = 1.) The answer is provided
711
+ by solving the over-determined matrix equation ``Ax = b``, where::
712
+
713
+ A = array([[0, 1], [1, 1], [1, 1], [2, 1]])
714
+ x = array([[y0], [m]])
715
+ b = array([[1], [0], [2], [1]])
716
+
717
+ If A = qr such that q is orthonormal (which is always possible via
718
+ Gram-Schmidt), then ``x = inv(r) * (q.T) * b``. (In numpy practice,
719
+ however, we simply use `lstsq`.)
720
+
721
+ >>> A = np.array([[0, 1], [1, 1], [1, 1], [2, 1]])
722
+ >>> A
723
+ array([[0, 1],
724
+ [1, 1],
725
+ [1, 1],
726
+ [2, 1]])
727
+ >>> b = np.array([1, 0, 2, 1])
728
+ >>> q, r = LA.qr(A)
729
+ >>> p = np.dot(q.T, b)
730
+ >>> np.dot(LA.inv(r), p)
731
+ array([ 1.1e-16, 1.0e+00])
732
+
733
+ """
734
+ if mode not in ('reduced', 'complete', 'r', 'raw'):
735
+ if mode in ('f', 'full'):
736
+ # 2013-04-01, 1.8
737
+ msg = "".join((
738
+ "The 'full' option is deprecated in favor of 'reduced'.\n",
739
+ "For backward compatibility let mode default."))
740
+ warnings.warn(msg, DeprecationWarning)
741
+ mode = 'reduced'
742
+ elif mode in ('e', 'economic'):
743
+ # 2013-04-01, 1.8
744
+ msg = "The 'economic' option is deprecated.",
745
+ warnings.warn(msg, DeprecationWarning)
746
+ mode = 'economic'
747
+ else:
748
+ raise ValueError("Unrecognized mode '%s'" % mode)
749
+
750
+ a, wrap = _makearray(a)
751
+ _assertRank2(a)
752
+ _assertNoEmpty2d(a)
753
+ m, n = a.shape
754
+ t, result_t = _commonType(a)
755
+ a = _fastCopyAndTranspose(t, a)
756
+ a = _to_native_byte_order(a)
757
+ mn = min(m, n)
758
+ tau = zeros((mn,), t)
759
+ if isComplexType(t):
760
+ lapack_routine = lapack_lite.zgeqrf
761
+ routine_name = 'zgeqrf'
762
+ else:
763
+ lapack_routine = lapack_lite.dgeqrf
764
+ routine_name = 'dgeqrf'
765
+
766
+ # calculate optimal size of work data 'work'
767
+ lwork = 1
768
+ work = zeros((lwork,), t)
769
+ results = lapack_routine(m, n, a, m, tau, work, -1, 0)
770
+ if results['info'] != 0:
771
+ raise LinAlgError('%s returns %d' % (routine_name, results['info']))
772
+
773
+ # do qr decomposition
774
+ lwork = int(abs(work[0]))
775
+ work = zeros((lwork,), t)
776
+ results = lapack_routine(m, n, a, m, tau, work, lwork, 0)
777
+ if results['info'] != 0:
778
+ raise LinAlgError('%s returns %d' % (routine_name, results['info']))
779
+
780
+ # handle modes that don't return q
781
+ if mode == 'r':
782
+ r = _fastCopyAndTranspose(result_t, a[:, :mn])
783
+ return wrap(triu(r))
784
+
785
+ if mode == 'raw':
786
+ return a, tau
787
+
788
+ if mode == 'economic':
789
+ if t != result_t :
790
+ a = a.astype(result_t, copy=False)
791
+ return wrap(a.T)
792
+
793
+ # generate q from a
794
+ if mode == 'complete' and m > n:
795
+ mc = m
796
+ q = empty((m, m), t)
797
+ else:
798
+ mc = mn
799
+ q = empty((n, m), t)
800
+ q[:n] = a
801
+
802
+ if isComplexType(t):
803
+ lapack_routine = lapack_lite.zungqr
804
+ routine_name = 'zungqr'
805
+ else:
806
+ lapack_routine = lapack_lite.dorgqr
807
+ routine_name = 'dorgqr'
808
+
809
+ # determine optimal lwork
810
+ lwork = 1
811
+ work = zeros((lwork,), t)
812
+ results = lapack_routine(m, mc, mn, q, m, tau, work, -1, 0)
813
+ if results['info'] != 0:
814
+ raise LinAlgError('%s returns %d' % (routine_name, results['info']))
815
+
816
+ # compute q
817
+ lwork = int(abs(work[0]))
818
+ work = zeros((lwork,), t)
819
+ results = lapack_routine(m, mc, mn, q, m, tau, work, lwork, 0)
820
+ if results['info'] != 0:
821
+ raise LinAlgError('%s returns %d' % (routine_name, results['info']))
822
+
823
+ q = _fastCopyAndTranspose(result_t, q[:mc])
824
+ r = _fastCopyAndTranspose(result_t, a[:, :mc])
825
+
826
+ return wrap(q), wrap(triu(r))
827
+
828
+
829
+ # Eigenvalues
830
+
831
+
832
+ def eigvals(a):
833
+ """
834
+ Compute the eigenvalues of a general matrix.
835
+
836
+ Main difference between `eigvals` and `eig`: the eigenvectors aren't
837
+ returned.
838
+
839
+ Parameters
840
+ ----------
841
+ a : (..., M, M) array_like
842
+ A complex- or real-valued matrix whose eigenvalues will be computed.
843
+
844
+ Returns
845
+ -------
846
+ w : (..., M,) ndarray
847
+ The eigenvalues, each repeated according to its multiplicity.
848
+ They are not necessarily ordered, nor are they necessarily
849
+ real for real matrices.
850
+
851
+ Raises
852
+ ------
853
+ LinAlgError
854
+ If the eigenvalue computation does not converge.
855
+
856
+ See Also
857
+ --------
858
+ eig : eigenvalues and right eigenvectors of general arrays
859
+ eigvalsh : eigenvalues of symmetric or Hermitian arrays.
860
+ eigh : eigenvalues and eigenvectors of symmetric/Hermitian arrays.
861
+
862
+ Notes
863
+ -----
864
+
865
+ .. versionadded:: 1.8.0
866
+
867
+ Broadcasting rules apply, see the `numpy.linalg` documentation for
868
+ details.
869
+
870
+ This is implemented using the _geev LAPACK routines which compute
871
+ the eigenvalues and eigenvectors of general square arrays.
872
+
873
+ Examples
874
+ --------
875
+ Illustration, using the fact that the eigenvalues of a diagonal matrix
876
+ are its diagonal elements, that multiplying a matrix on the left
877
+ by an orthogonal matrix, `Q`, and on the right by `Q.T` (the transpose
878
+ of `Q`), preserves the eigenvalues of the "middle" matrix. In other words,
879
+ if `Q` is orthogonal, then ``Q * A * Q.T`` has the same eigenvalues as
880
+ ``A``:
881
+
882
+ >>> from numpy import linalg as LA
883
+ >>> x = np.random.random()
884
+ >>> Q = np.array([[np.cos(x), -np.sin(x)], [np.sin(x), np.cos(x)]])
885
+ >>> LA.norm(Q[0, :]), LA.norm(Q[1, :]), np.dot(Q[0, :],Q[1, :])
886
+ (1.0, 1.0, 0.0)
887
+
888
+ Now multiply a diagonal matrix by Q on one side and by Q.T on the other:
889
+
890
+ >>> D = np.diag((-1,1))
891
+ >>> LA.eigvals(D)
892
+ array([-1., 1.])
893
+ >>> A = np.dot(Q, D)
894
+ >>> A = np.dot(A, Q.T)
895
+ >>> LA.eigvals(A)
896
+ array([ 1., -1.])
897
+
898
+ """
899
+ a, wrap = _makearray(a)
900
+ _assertNoEmpty2d(a)
901
+ _assertRankAtLeast2(a)
902
+ _assertNdSquareness(a)
903
+ _assertFinite(a)
904
+ t, result_t = _commonType(a)
905
+
906
+ extobj = get_linalg_error_extobj(
907
+ _raise_linalgerror_eigenvalues_nonconvergence)
908
+ signature = 'D->D' if isComplexType(t) else 'd->D'
909
+ w = _umath_linalg.eigvals(a, signature=signature, extobj=extobj)
910
+
911
+ if not isComplexType(t):
912
+ if all(w.imag == 0):
913
+ w = w.real
914
+ result_t = _realType(result_t)
915
+ else:
916
+ result_t = _complexType(result_t)
917
+
918
+ return w.astype(result_t, copy=False)
919
+
920
+ def eigvalsh(a, UPLO='L'):
921
+ """
922
+ Compute the eigenvalues of a Hermitian or real symmetric matrix.
923
+
924
+ Main difference from eigh: the eigenvectors are not computed.
925
+
926
+ Parameters
927
+ ----------
928
+ a : (..., M, M) array_like
929
+ A complex- or real-valued matrix whose eigenvalues are to be
930
+ computed.
931
+ UPLO : {'L', 'U'}, optional
932
+ Same as `lower`, with 'L' for lower and 'U' for upper triangular.
933
+ Deprecated.
934
+
935
+ Returns
936
+ -------
937
+ w : (..., M,) ndarray
938
+ The eigenvalues in ascending order, each repeated according to
939
+ its multiplicity.
940
+
941
+ Raises
942
+ ------
943
+ LinAlgError
944
+ If the eigenvalue computation does not converge.
945
+
946
+ See Also
947
+ --------
948
+ eigh : eigenvalues and eigenvectors of symmetric/Hermitian arrays.
949
+ eigvals : eigenvalues of general real or complex arrays.
950
+ eig : eigenvalues and right eigenvectors of general real or complex
951
+ arrays.
952
+
953
+ Notes
954
+ -----
955
+
956
+ .. versionadded:: 1.8.0
957
+
958
+ Broadcasting rules apply, see the `numpy.linalg` documentation for
959
+ details.
960
+
961
+ The eigenvalues are computed using LAPACK routines _syevd, _heevd
962
+
963
+ Examples
964
+ --------
965
+ >>> from numpy import linalg as LA
966
+ >>> a = np.array([[1, -2j], [2j, 5]])
967
+ >>> LA.eigvalsh(a)
968
+ array([ 0.17157288, 5.82842712])
969
+
970
+ """
971
+ UPLO = UPLO.upper()
972
+ if UPLO not in ('L', 'U'):
973
+ raise ValueError("UPLO argument must be 'L' or 'U'")
974
+
975
+ extobj = get_linalg_error_extobj(
976
+ _raise_linalgerror_eigenvalues_nonconvergence)
977
+ if UPLO == 'L':
978
+ gufunc = _umath_linalg.eigvalsh_lo
979
+ else:
980
+ gufunc = _umath_linalg.eigvalsh_up
981
+
982
+ a, wrap = _makearray(a)
983
+ _assertNoEmpty2d(a)
984
+ _assertRankAtLeast2(a)
985
+ _assertNdSquareness(a)
986
+ t, result_t = _commonType(a)
987
+ signature = 'D->d' if isComplexType(t) else 'd->d'
988
+ w = gufunc(a, signature=signature, extobj=extobj)
989
+ return w.astype(_realType(result_t), copy=False)
990
+
991
+ def _convertarray(a):
992
+ t, result_t = _commonType(a)
993
+ a = _fastCT(a.astype(t))
994
+ return a, t, result_t
995
+
996
+
997
+ # Eigenvectors
998
+
999
+
1000
+ def eig(a):
1001
+ """
1002
+ Compute the eigenvalues and right eigenvectors of a square array.
1003
+
1004
+ Parameters
1005
+ ----------
1006
+ a : (..., M, M) array
1007
+ Matrices for which the eigenvalues and right eigenvectors will
1008
+ be computed
1009
+
1010
+ Returns
1011
+ -------
1012
+ w : (..., M) array
1013
+ The eigenvalues, each repeated according to its multiplicity.
1014
+ The eigenvalues are not necessarily ordered. The resulting
1015
+ array will be of complex type, unless the imaginary part is
1016
+ zero in which case it will be cast to a real type. When `a`
1017
+ is real the resulting eigenvalues will be real (0 imaginary
1018
+ part) or occur in conjugate pairs
1019
+
1020
+ v : (..., M, M) array
1021
+ The normalized (unit "length") eigenvectors, such that the
1022
+ column ``v[:,i]`` is the eigenvector corresponding to the
1023
+ eigenvalue ``w[i]``.
1024
+
1025
+ Raises
1026
+ ------
1027
+ LinAlgError
1028
+ If the eigenvalue computation does not converge.
1029
+
1030
+ See Also
1031
+ --------
1032
+ eigvals : eigenvalues of a non-symmetric array.
1033
+
1034
+ eigh : eigenvalues and eigenvectors of a symmetric or Hermitian
1035
+ (conjugate symmetric) array.
1036
+
1037
+ eigvalsh : eigenvalues of a symmetric or Hermitian (conjugate symmetric)
1038
+ array.
1039
+
1040
+ Notes
1041
+ -----
1042
+
1043
+ .. versionadded:: 1.8.0
1044
+
1045
+ Broadcasting rules apply, see the `numpy.linalg` documentation for
1046
+ details.
1047
+
1048
+ This is implemented using the _geev LAPACK routines which compute
1049
+ the eigenvalues and eigenvectors of general square arrays.
1050
+
1051
+ The number `w` is an eigenvalue of `a` if there exists a vector
1052
+ `v` such that ``dot(a,v) = w * v``. Thus, the arrays `a`, `w`, and
1053
+ `v` satisfy the equations ``dot(a[:,:], v[:,i]) = w[i] * v[:,i]``
1054
+ for :math:`i \\in \\{0,...,M-1\\}`.
1055
+
1056
+ The array `v` of eigenvectors may not be of maximum rank, that is, some
1057
+ of the columns may be linearly dependent, although round-off error may
1058
+ obscure that fact. If the eigenvalues are all different, then theoretically
1059
+ the eigenvectors are linearly independent. Likewise, the (complex-valued)
1060
+ matrix of eigenvectors `v` is unitary if the matrix `a` is normal, i.e.,
1061
+ if ``dot(a, a.H) = dot(a.H, a)``, where `a.H` denotes the conjugate
1062
+ transpose of `a`.
1063
+
1064
+ Finally, it is emphasized that `v` consists of the *right* (as in
1065
+ right-hand side) eigenvectors of `a`. A vector `y` satisfying
1066
+ ``dot(y.T, a) = z * y.T`` for some number `z` is called a *left*
1067
+ eigenvector of `a`, and, in general, the left and right eigenvectors
1068
+ of a matrix are not necessarily the (perhaps conjugate) transposes
1069
+ of each other.
1070
+
1071
+ References
1072
+ ----------
1073
+ G. Strang, *Linear Algebra and Its Applications*, 2nd Ed., Orlando, FL,
1074
+ Academic Press, Inc., 1980, Various pp.
1075
+
1076
+ Examples
1077
+ --------
1078
+ >>> from numpy import linalg as LA
1079
+
1080
+ (Almost) trivial example with real e-values and e-vectors.
1081
+
1082
+ >>> w, v = LA.eig(np.diag((1, 2, 3)))
1083
+ >>> w; v
1084
+ array([ 1., 2., 3.])
1085
+ array([[ 1., 0., 0.],
1086
+ [ 0., 1., 0.],
1087
+ [ 0., 0., 1.]])
1088
+
1089
+ Real matrix possessing complex e-values and e-vectors; note that the
1090
+ e-values are complex conjugates of each other.
1091
+
1092
+ >>> w, v = LA.eig(np.array([[1, -1], [1, 1]]))
1093
+ >>> w; v
1094
+ array([ 1. + 1.j, 1. - 1.j])
1095
+ array([[ 0.70710678+0.j , 0.70710678+0.j ],
1096
+ [ 0.00000000-0.70710678j, 0.00000000+0.70710678j]])
1097
+
1098
+ Complex-valued matrix with real e-values (but complex-valued e-vectors);
1099
+ note that a.conj().T = a, i.e., a is Hermitian.
1100
+
1101
+ >>> a = np.array([[1, 1j], [-1j, 1]])
1102
+ >>> w, v = LA.eig(a)
1103
+ >>> w; v
1104
+ array([ 2.00000000e+00+0.j, 5.98651912e-36+0.j]) # i.e., {2, 0}
1105
+ array([[ 0.00000000+0.70710678j, 0.70710678+0.j ],
1106
+ [ 0.70710678+0.j , 0.00000000+0.70710678j]])
1107
+
1108
+ Be careful about round-off error!
1109
+
1110
+ >>> a = np.array([[1 + 1e-9, 0], [0, 1 - 1e-9]])
1111
+ >>> # Theor. e-values are 1 +/- 1e-9
1112
+ >>> w, v = LA.eig(a)
1113
+ >>> w; v
1114
+ array([ 1., 1.])
1115
+ array([[ 1., 0.],
1116
+ [ 0., 1.]])
1117
+
1118
+ """
1119
+ a, wrap = _makearray(a)
1120
+ _assertRankAtLeast2(a)
1121
+ _assertNdSquareness(a)
1122
+ _assertFinite(a)
1123
+ t, result_t = _commonType(a)
1124
+
1125
+ extobj = get_linalg_error_extobj(
1126
+ _raise_linalgerror_eigenvalues_nonconvergence)
1127
+ signature = 'D->DD' if isComplexType(t) else 'd->DD'
1128
+ w, vt = _umath_linalg.eig(a, signature=signature, extobj=extobj)
1129
+
1130
+ if not isComplexType(t) and all(w.imag == 0.0):
1131
+ w = w.real
1132
+ vt = vt.real
1133
+ result_t = _realType(result_t)
1134
+ else:
1135
+ result_t = _complexType(result_t)
1136
+
1137
+ vt = vt.astype(result_t, copy=False)
1138
+ return w.astype(result_t, copy=False), wrap(vt)
1139
+
1140
+
1141
+ def eigh(a, UPLO='L'):
1142
+ """
1143
+ Return the eigenvalues and eigenvectors of a Hermitian or symmetric matrix.
1144
+
1145
+ Returns two objects, a 1-D array containing the eigenvalues of `a`, and
1146
+ a 2-D square array or matrix (depending on the input type) of the
1147
+ corresponding eigenvectors (in columns).
1148
+
1149
+ Parameters
1150
+ ----------
1151
+ a : (..., M, M) array
1152
+ Hermitian/Symmetric matrices whose eigenvalues and
1153
+ eigenvectors are to be computed.
1154
+ UPLO : {'L', 'U'}, optional
1155
+ Specifies whether the calculation is done with the lower triangular
1156
+ part of `a` ('L', default) or the upper triangular part ('U').
1157
+
1158
+ Returns
1159
+ -------
1160
+ w : (..., M) ndarray
1161
+ The eigenvalues in ascending order, each repeated according to
1162
+ its multiplicity.
1163
+ v : {(..., M, M) ndarray, (..., M, M) matrix}
1164
+ The column ``v[:, i]`` is the normalized eigenvector corresponding
1165
+ to the eigenvalue ``w[i]``. Will return a matrix object if `a` is
1166
+ a matrix object.
1167
+
1168
+ Raises
1169
+ ------
1170
+ LinAlgError
1171
+ If the eigenvalue computation does not converge.
1172
+
1173
+ See Also
1174
+ --------
1175
+ eigvalsh : eigenvalues of symmetric or Hermitian arrays.
1176
+ eig : eigenvalues and right eigenvectors for non-symmetric arrays.
1177
+ eigvals : eigenvalues of non-symmetric arrays.
1178
+
1179
+ Notes
1180
+ -----
1181
+
1182
+ .. versionadded:: 1.8.0
1183
+
1184
+ Broadcasting rules apply, see the `numpy.linalg` documentation for
1185
+ details.
1186
+
1187
+ The eigenvalues/eigenvectors are computed using LAPACK routines _syevd,
1188
+ _heevd
1189
+
1190
+ The eigenvalues of real symmetric or complex Hermitian matrices are
1191
+ always real. [1]_ The array `v` of (column) eigenvectors is unitary
1192
+ and `a`, `w`, and `v` satisfy the equations
1193
+ ``dot(a, v[:, i]) = w[i] * v[:, i]``.
1194
+
1195
+ References
1196
+ ----------
1197
+ .. [1] G. Strang, *Linear Algebra and Its Applications*, 2nd Ed., Orlando,
1198
+ FL, Academic Press, Inc., 1980, pg. 222.
1199
+
1200
+ Examples
1201
+ --------
1202
+ >>> from numpy import linalg as LA
1203
+ >>> a = np.array([[1, -2j], [2j, 5]])
1204
+ >>> a
1205
+ array([[ 1.+0.j, 0.-2.j],
1206
+ [ 0.+2.j, 5.+0.j]])
1207
+ >>> w, v = LA.eigh(a)
1208
+ >>> w; v
1209
+ array([ 0.17157288, 5.82842712])
1210
+ array([[-0.92387953+0.j , -0.38268343+0.j ],
1211
+ [ 0.00000000+0.38268343j, 0.00000000-0.92387953j]])
1212
+
1213
+ >>> np.dot(a, v[:, 0]) - w[0] * v[:, 0] # verify 1st e-val/vec pair
1214
+ array([2.77555756e-17 + 0.j, 0. + 1.38777878e-16j])
1215
+ >>> np.dot(a, v[:, 1]) - w[1] * v[:, 1] # verify 2nd e-val/vec pair
1216
+ array([ 0.+0.j, 0.+0.j])
1217
+
1218
+ >>> A = np.matrix(a) # what happens if input is a matrix object
1219
+ >>> A
1220
+ matrix([[ 1.+0.j, 0.-2.j],
1221
+ [ 0.+2.j, 5.+0.j]])
1222
+ >>> w, v = LA.eigh(A)
1223
+ >>> w; v
1224
+ array([ 0.17157288, 5.82842712])
1225
+ matrix([[-0.92387953+0.j , -0.38268343+0.j ],
1226
+ [ 0.00000000+0.38268343j, 0.00000000-0.92387953j]])
1227
+
1228
+ """
1229
+ UPLO = UPLO.upper()
1230
+ if UPLO not in ('L', 'U'):
1231
+ raise ValueError("UPLO argument must be 'L' or 'U'")
1232
+
1233
+ a, wrap = _makearray(a)
1234
+ _assertRankAtLeast2(a)
1235
+ _assertNdSquareness(a)
1236
+ t, result_t = _commonType(a)
1237
+
1238
+ extobj = get_linalg_error_extobj(
1239
+ _raise_linalgerror_eigenvalues_nonconvergence)
1240
+ if UPLO == 'L':
1241
+ gufunc = _umath_linalg.eigh_lo
1242
+ else:
1243
+ gufunc = _umath_linalg.eigh_up
1244
+
1245
+ signature = 'D->dD' if isComplexType(t) else 'd->dd'
1246
+ w, vt = gufunc(a, signature=signature, extobj=extobj)
1247
+ w = w.astype(_realType(result_t), copy=False)
1248
+ vt = vt.astype(result_t, copy=False)
1249
+ return w, wrap(vt)
1250
+
1251
+
1252
+ # Singular value decomposition
1253
+
1254
+ def svd(a, full_matrices=1, compute_uv=1):
1255
+ """
1256
+ Singular Value Decomposition.
1257
+
1258
+ Factors the matrix `a` as ``u * np.diag(s) * v``, where `u` and `v`
1259
+ are unitary and `s` is a 1-d array of `a`'s singular values.
1260
+
1261
+ Parameters
1262
+ ----------
1263
+ a : (..., M, N) array_like
1264
+ A real or complex matrix of shape (`M`, `N`) .
1265
+ full_matrices : bool, optional
1266
+ If True (default), `u` and `v` have the shapes (`M`, `M`) and
1267
+ (`N`, `N`), respectively. Otherwise, the shapes are (`M`, `K`)
1268
+ and (`K`, `N`), respectively, where `K` = min(`M`, `N`).
1269
+ compute_uv : bool, optional
1270
+ Whether or not to compute `u` and `v` in addition to `s`. True
1271
+ by default.
1272
+
1273
+ Returns
1274
+ -------
1275
+ u : { (..., M, M), (..., M, K) } array
1276
+ Unitary matrices. The actual shape depends on the value of
1277
+ ``full_matrices``. Only returned when ``compute_uv`` is True.
1278
+ s : (..., K) array
1279
+ The singular values for every matrix, sorted in descending order.
1280
+ v : { (..., N, N), (..., K, N) } array
1281
+ Unitary matrices. The actual shape depends on the value of
1282
+ ``full_matrices``. Only returned when ``compute_uv`` is True.
1283
+
1284
+ Raises
1285
+ ------
1286
+ LinAlgError
1287
+ If SVD computation does not converge.
1288
+
1289
+ Notes
1290
+ -----
1291
+
1292
+ .. versionadded:: 1.8.0
1293
+
1294
+ Broadcasting rules apply, see the `numpy.linalg` documentation for
1295
+ details.
1296
+
1297
+ The decomposition is performed using LAPACK routine _gesdd
1298
+
1299
+ The SVD is commonly written as ``a = U S V.H``. The `v` returned
1300
+ by this function is ``V.H`` and ``u = U``.
1301
+
1302
+ If ``U`` is a unitary matrix, it means that it
1303
+ satisfies ``U.H = inv(U)``.
1304
+
1305
+ The rows of `v` are the eigenvectors of ``a.H a``. The columns
1306
+ of `u` are the eigenvectors of ``a a.H``. For row ``i`` in
1307
+ `v` and column ``i`` in `u`, the corresponding eigenvalue is
1308
+ ``s[i]**2``.
1309
+
1310
+ If `a` is a `matrix` object (as opposed to an `ndarray`), then so
1311
+ are all the return values.
1312
+
1313
+ Examples
1314
+ --------
1315
+ >>> a = np.random.randn(9, 6) + 1j*np.random.randn(9, 6)
1316
+
1317
+ Reconstruction based on full SVD:
1318
+
1319
+ >>> U, s, V = np.linalg.svd(a, full_matrices=True)
1320
+ >>> U.shape, V.shape, s.shape
1321
+ ((9, 9), (6, 6), (6,))
1322
+ >>> S = np.zeros((9, 6), dtype=complex)
1323
+ >>> S[:6, :6] = np.diag(s)
1324
+ >>> np.allclose(a, np.dot(U, np.dot(S, V)))
1325
+ True
1326
+
1327
+ Reconstruction based on reduced SVD:
1328
+
1329
+ >>> U, s, V = np.linalg.svd(a, full_matrices=False)
1330
+ >>> U.shape, V.shape, s.shape
1331
+ ((9, 6), (6, 6), (6,))
1332
+ >>> S = np.diag(s)
1333
+ >>> np.allclose(a, np.dot(U, np.dot(S, V)))
1334
+ True
1335
+
1336
+ """
1337
+ a, wrap = _makearray(a)
1338
+ _assertNoEmpty2d(a)
1339
+ _assertRankAtLeast2(a)
1340
+ t, result_t = _commonType(a)
1341
+
1342
+ extobj = get_linalg_error_extobj(_raise_linalgerror_svd_nonconvergence)
1343
+
1344
+ m = a.shape[-2]
1345
+ n = a.shape[-1]
1346
+ if compute_uv:
1347
+ if full_matrices:
1348
+ if m < n:
1349
+ gufunc = _umath_linalg.svd_m_f
1350
+ else:
1351
+ gufunc = _umath_linalg.svd_n_f
1352
+ else:
1353
+ if m < n:
1354
+ gufunc = _umath_linalg.svd_m_s
1355
+ else:
1356
+ gufunc = _umath_linalg.svd_n_s
1357
+
1358
+ signature = 'D->DdD' if isComplexType(t) else 'd->ddd'
1359
+ u, s, vt = gufunc(a, signature=signature, extobj=extobj)
1360
+ u = u.astype(result_t, copy=False)
1361
+ s = s.astype(_realType(result_t), copy=False)
1362
+ vt = vt.astype(result_t, copy=False)
1363
+ return wrap(u), s, wrap(vt)
1364
+ else:
1365
+ if m < n:
1366
+ gufunc = _umath_linalg.svd_m
1367
+ else:
1368
+ gufunc = _umath_linalg.svd_n
1369
+
1370
+ signature = 'D->d' if isComplexType(t) else 'd->d'
1371
+ s = gufunc(a, signature=signature, extobj=extobj)
1372
+ s = s.astype(_realType(result_t), copy=False)
1373
+ return s
1374
+
1375
+ def cond(x, p=None):
1376
+ """
1377
+ Compute the condition number of a matrix.
1378
+
1379
+ This function is capable of returning the condition number using
1380
+ one of seven different norms, depending on the value of `p` (see
1381
+ Parameters below).
1382
+
1383
+ Parameters
1384
+ ----------
1385
+ x : (..., M, N) array_like
1386
+ The matrix whose condition number is sought.
1387
+ p : {None, 1, -1, 2, -2, inf, -inf, 'fro'}, optional
1388
+ Order of the norm:
1389
+
1390
+ ===== ============================
1391
+ p norm for matrices
1392
+ ===== ============================
1393
+ None 2-norm, computed directly using the ``SVD``
1394
+ 'fro' Frobenius norm
1395
+ inf max(sum(abs(x), axis=1))
1396
+ -inf min(sum(abs(x), axis=1))
1397
+ 1 max(sum(abs(x), axis=0))
1398
+ -1 min(sum(abs(x), axis=0))
1399
+ 2 2-norm (largest sing. value)
1400
+ -2 smallest singular value
1401
+ ===== ============================
1402
+
1403
+ inf means the numpy.inf object, and the Frobenius norm is
1404
+ the root-of-sum-of-squares norm.
1405
+
1406
+ Returns
1407
+ -------
1408
+ c : {float, inf}
1409
+ The condition number of the matrix. May be infinite.
1410
+
1411
+ See Also
1412
+ --------
1413
+ numpy.linalg.norm
1414
+
1415
+ Notes
1416
+ -----
1417
+ The condition number of `x` is defined as the norm of `x` times the
1418
+ norm of the inverse of `x` [1]_; the norm can be the usual L2-norm
1419
+ (root-of-sum-of-squares) or one of a number of other matrix norms.
1420
+
1421
+ References
1422
+ ----------
1423
+ .. [1] G. Strang, *Linear Algebra and Its Applications*, Orlando, FL,
1424
+ Academic Press, Inc., 1980, pg. 285.
1425
+
1426
+ Examples
1427
+ --------
1428
+ >>> from numpy import linalg as LA
1429
+ >>> a = np.array([[1, 0, -1], [0, 1, 0], [1, 0, 1]])
1430
+ >>> a
1431
+ array([[ 1, 0, -1],
1432
+ [ 0, 1, 0],
1433
+ [ 1, 0, 1]])
1434
+ >>> LA.cond(a)
1435
+ 1.4142135623730951
1436
+ >>> LA.cond(a, 'fro')
1437
+ 3.1622776601683795
1438
+ >>> LA.cond(a, np.inf)
1439
+ 2.0
1440
+ >>> LA.cond(a, -np.inf)
1441
+ 1.0
1442
+ >>> LA.cond(a, 1)
1443
+ 2.0
1444
+ >>> LA.cond(a, -1)
1445
+ 1.0
1446
+ >>> LA.cond(a, 2)
1447
+ 1.4142135623730951
1448
+ >>> LA.cond(a, -2)
1449
+ 0.70710678118654746
1450
+ >>> min(LA.svd(a, compute_uv=0))*min(LA.svd(LA.inv(a), compute_uv=0))
1451
+ 0.70710678118654746
1452
+
1453
+ """
1454
+ x = asarray(x) # in case we have a matrix
1455
+ if p is None:
1456
+ s = svd(x, compute_uv=False)
1457
+ return s[..., 0]/s[..., -1]
1458
+ else:
1459
+ return norm(x, p, axis=(-2, -1)) * norm(inv(x), p, axis=(-2, -1))
1460
+
1461
+
1462
+ def matrix_rank(M, tol=None):
1463
+ """
1464
+ Return matrix rank of array using SVD method
1465
+
1466
+ Rank of the array is the number of SVD singular values of the array that are
1467
+ greater than `tol`.
1468
+
1469
+ Parameters
1470
+ ----------
1471
+ M : {(M,), (M, N)} array_like
1472
+ array of <=2 dimensions
1473
+ tol : {None, float}, optional
1474
+ threshold below which SVD values are considered zero. If `tol` is
1475
+ None, and ``S`` is an array with singular values for `M`, and
1476
+ ``eps`` is the epsilon value for datatype of ``S``, then `tol` is
1477
+ set to ``S.max() * max(M.shape) * eps``.
1478
+
1479
+ Notes
1480
+ -----
1481
+ The default threshold to detect rank deficiency is a test on the magnitude
1482
+ of the singular values of `M`. By default, we identify singular values less
1483
+ than ``S.max() * max(M.shape) * eps`` as indicating rank deficiency (with
1484
+ the symbols defined above). This is the algorithm MATLAB uses [1]. It also
1485
+ appears in *Numerical recipes* in the discussion of SVD solutions for linear
1486
+ least squares [2].
1487
+
1488
+ This default threshold is designed to detect rank deficiency accounting for
1489
+ the numerical errors of the SVD computation. Imagine that there is a column
1490
+ in `M` that is an exact (in floating point) linear combination of other
1491
+ columns in `M`. Computing the SVD on `M` will not produce a singular value
1492
+ exactly equal to 0 in general: any difference of the smallest SVD value from
1493
+ 0 will be caused by numerical imprecision in the calculation of the SVD.
1494
+ Our threshold for small SVD values takes this numerical imprecision into
1495
+ account, and the default threshold will detect such numerical rank
1496
+ deficiency. The threshold may declare a matrix `M` rank deficient even if
1497
+ the linear combination of some columns of `M` is not exactly equal to
1498
+ another column of `M` but only numerically very close to another column of
1499
+ `M`.
1500
+
1501
+ We chose our default threshold because it is in wide use. Other thresholds
1502
+ are possible. For example, elsewhere in the 2007 edition of *Numerical
1503
+ recipes* there is an alternative threshold of ``S.max() *
1504
+ np.finfo(M.dtype).eps / 2. * np.sqrt(m + n + 1.)``. The authors describe
1505
+ this threshold as being based on "expected roundoff error" (p 71).
1506
+
1507
+ The thresholds above deal with floating point roundoff error in the
1508
+ calculation of the SVD. However, you may have more information about the
1509
+ sources of error in `M` that would make you consider other tolerance values
1510
+ to detect *effective* rank deficiency. The most useful measure of the
1511
+ tolerance depends on the operations you intend to use on your matrix. For
1512
+ example, if your data come from uncertain measurements with uncertainties
1513
+ greater than floating point epsilon, choosing a tolerance near that
1514
+ uncertainty may be preferable. The tolerance may be absolute if the
1515
+ uncertainties are absolute rather than relative.
1516
+
1517
+ References
1518
+ ----------
1519
+ .. [1] MATLAB reference documention, "Rank"
1520
+ http://www.mathworks.com/help/techdoc/ref/rank.html
1521
+ .. [2] W. H. Press, S. A. Teukolsky, W. T. Vetterling and B. P. Flannery,
1522
+ "Numerical Recipes (3rd edition)", Cambridge University Press, 2007,
1523
+ page 795.
1524
+
1525
+ Examples
1526
+ --------
1527
+ >>> from numpy.linalg import matrix_rank
1528
+ >>> matrix_rank(np.eye(4)) # Full rank matrix
1529
+ 4
1530
+ >>> I=np.eye(4); I[-1,-1] = 0. # rank deficient matrix
1531
+ >>> matrix_rank(I)
1532
+ 3
1533
+ >>> matrix_rank(np.ones((4,))) # 1 dimension - rank 1 unless all 0
1534
+ 1
1535
+ >>> matrix_rank(np.zeros((4,)))
1536
+ 0
1537
+ """
1538
+ M = asarray(M)
1539
+ if M.ndim > 2:
1540
+ raise TypeError('array should have 2 or fewer dimensions')
1541
+ if M.ndim < 2:
1542
+ return int(not all(M==0))
1543
+ S = svd(M, compute_uv=False)
1544
+ if tol is None:
1545
+ tol = S.max() * max(M.shape) * finfo(S.dtype).eps
1546
+ return sum(S > tol)
1547
+
1548
+
1549
+ # Generalized inverse
1550
+
1551
+ def pinv(a, rcond=1e-15 ):
1552
+ """
1553
+ Compute the (Moore-Penrose) pseudo-inverse of a matrix.
1554
+
1555
+ Calculate the generalized inverse of a matrix using its
1556
+ singular-value decomposition (SVD) and including all
1557
+ *large* singular values.
1558
+
1559
+ Parameters
1560
+ ----------
1561
+ a : (M, N) array_like
1562
+ Matrix to be pseudo-inverted.
1563
+ rcond : float
1564
+ Cutoff for small singular values.
1565
+ Singular values smaller (in modulus) than
1566
+ `rcond` * largest_singular_value (again, in modulus)
1567
+ are set to zero.
1568
+
1569
+ Returns
1570
+ -------
1571
+ B : (N, M) ndarray
1572
+ The pseudo-inverse of `a`. If `a` is a `matrix` instance, then so
1573
+ is `B`.
1574
+
1575
+ Raises
1576
+ ------
1577
+ LinAlgError
1578
+ If the SVD computation does not converge.
1579
+
1580
+ Notes
1581
+ -----
1582
+ The pseudo-inverse of a matrix A, denoted :math:`A^+`, is
1583
+ defined as: "the matrix that 'solves' [the least-squares problem]
1584
+ :math:`Ax = b`," i.e., if :math:`\\bar{x}` is said solution, then
1585
+ :math:`A^+` is that matrix such that :math:`\\bar{x} = A^+b`.
1586
+
1587
+ It can be shown that if :math:`Q_1 \\Sigma Q_2^T = A` is the singular
1588
+ value decomposition of A, then
1589
+ :math:`A^+ = Q_2 \\Sigma^+ Q_1^T`, where :math:`Q_{1,2}` are
1590
+ orthogonal matrices, :math:`\\Sigma` is a diagonal matrix consisting
1591
+ of A's so-called singular values, (followed, typically, by
1592
+ zeros), and then :math:`\\Sigma^+` is simply the diagonal matrix
1593
+ consisting of the reciprocals of A's singular values
1594
+ (again, followed by zeros). [1]_
1595
+
1596
+ References
1597
+ ----------
1598
+ .. [1] G. Strang, *Linear Algebra and Its Applications*, 2nd Ed., Orlando,
1599
+ FL, Academic Press, Inc., 1980, pp. 139-142.
1600
+
1601
+ Examples
1602
+ --------
1603
+ The following example checks that ``a * a+ * a == a`` and
1604
+ ``a+ * a * a+ == a+``:
1605
+
1606
+ >>> a = np.random.randn(9, 6)
1607
+ >>> B = np.linalg.pinv(a)
1608
+ >>> np.allclose(a, np.dot(a, np.dot(B, a)))
1609
+ True
1610
+ >>> np.allclose(B, np.dot(B, np.dot(a, B)))
1611
+ True
1612
+
1613
+ """
1614
+ a, wrap = _makearray(a)
1615
+ _assertNoEmpty2d(a)
1616
+ a = a.conjugate()
1617
+ u, s, vt = svd(a, 0)
1618
+ m = u.shape[0]
1619
+ n = vt.shape[1]
1620
+ cutoff = rcond*maximum.reduce(s)
1621
+ for i in range(min(n, m)):
1622
+ if s[i] > cutoff:
1623
+ s[i] = 1./s[i]
1624
+ else:
1625
+ s[i] = 0.;
1626
+ res = dot(transpose(vt), multiply(s[:, newaxis], transpose(u)))
1627
+ return wrap(res)
1628
+
1629
+ # Determinant
1630
+
1631
+ def slogdet(a):
1632
+ """
1633
+ Compute the sign and (natural) logarithm of the determinant of an array.
1634
+
1635
+ If an array has a very small or very large determinant, then a call to
1636
+ `det` may overflow or underflow. This routine is more robust against such
1637
+ issues, because it computes the logarithm of the determinant rather than
1638
+ the determinant itself.
1639
+
1640
+ Parameters
1641
+ ----------
1642
+ a : (..., M, M) array_like
1643
+ Input array, has to be a square 2-D array.
1644
+
1645
+ Returns
1646
+ -------
1647
+ sign : (...) array_like
1648
+ A number representing the sign of the determinant. For a real matrix,
1649
+ this is 1, 0, or -1. For a complex matrix, this is a complex number
1650
+ with absolute value 1 (i.e., it is on the unit circle), or else 0.
1651
+ logdet : (...) array_like
1652
+ The natural log of the absolute value of the determinant.
1653
+
1654
+ If the determinant is zero, then `sign` will be 0 and `logdet` will be
1655
+ -Inf. In all cases, the determinant is equal to ``sign * np.exp(logdet)``.
1656
+
1657
+ See Also
1658
+ --------
1659
+ det
1660
+
1661
+ Notes
1662
+ -----
1663
+
1664
+ .. versionadded:: 1.8.0
1665
+
1666
+ Broadcasting rules apply, see the `numpy.linalg` documentation for
1667
+ details.
1668
+
1669
+ .. versionadded:: 1.6.0.
1670
+
1671
+ The determinant is computed via LU factorization using the LAPACK
1672
+ routine z/dgetrf.
1673
+
1674
+
1675
+ Examples
1676
+ --------
1677
+ The determinant of a 2-D array ``[[a, b], [c, d]]`` is ``ad - bc``:
1678
+
1679
+ >>> a = np.array([[1, 2], [3, 4]])
1680
+ >>> (sign, logdet) = np.linalg.slogdet(a)
1681
+ >>> (sign, logdet)
1682
+ (-1, 0.69314718055994529)
1683
+ >>> sign * np.exp(logdet)
1684
+ -2.0
1685
+
1686
+ Computing log-determinants for a stack of matrices:
1687
+
1688
+ >>> a = np.array([ [[1, 2], [3, 4]], [[1, 2], [2, 1]], [[1, 3], [3, 1]] ])
1689
+ >>> a.shape
1690
+ (3, 2, 2)
1691
+ >>> sign, logdet = np.linalg.slogdet(a)
1692
+ >>> (sign, logdet)
1693
+ (array([-1., -1., -1.]), array([ 0.69314718, 1.09861229, 2.07944154]))
1694
+ >>> sign * np.exp(logdet)
1695
+ array([-2., -3., -8.])
1696
+
1697
+ This routine succeeds where ordinary `det` does not:
1698
+
1699
+ >>> np.linalg.det(np.eye(500) * 0.1)
1700
+ 0.0
1701
+ >>> np.linalg.slogdet(np.eye(500) * 0.1)
1702
+ (1, -1151.2925464970228)
1703
+
1704
+ """
1705
+ a = asarray(a)
1706
+ _assertNoEmpty2d(a)
1707
+ _assertRankAtLeast2(a)
1708
+ _assertNdSquareness(a)
1709
+ t, result_t = _commonType(a)
1710
+ real_t = _realType(result_t)
1711
+ signature = 'D->Dd' if isComplexType(t) else 'd->dd'
1712
+ sign, logdet = _umath_linalg.slogdet(a, signature=signature)
1713
+ if isscalar(sign):
1714
+ sign = sign.astype(result_t)
1715
+ else:
1716
+ sign = sign.astype(result_t, copy=False)
1717
+ if isscalar(logdet):
1718
+ logdet = logdet.astype(real_t)
1719
+ else:
1720
+ logdet = logdet.astype(real_t, copy=False)
1721
+ return sign, logdet
1722
+
1723
+ def det(a):
1724
+ """
1725
+ Compute the determinant of an array.
1726
+
1727
+ Parameters
1728
+ ----------
1729
+ a : (..., M, M) array_like
1730
+ Input array to compute determinants for.
1731
+
1732
+ Returns
1733
+ -------
1734
+ det : (...) array_like
1735
+ Determinant of `a`.
1736
+
1737
+ See Also
1738
+ --------
1739
+ slogdet : Another way to representing the determinant, more suitable
1740
+ for large matrices where underflow/overflow may occur.
1741
+
1742
+ Notes
1743
+ -----
1744
+
1745
+ .. versionadded:: 1.8.0
1746
+
1747
+ Broadcasting rules apply, see the `numpy.linalg` documentation for
1748
+ details.
1749
+
1750
+ The determinant is computed via LU factorization using the LAPACK
1751
+ routine z/dgetrf.
1752
+
1753
+ Examples
1754
+ --------
1755
+ The determinant of a 2-D array [[a, b], [c, d]] is ad - bc:
1756
+
1757
+ >>> a = np.array([[1, 2], [3, 4]])
1758
+ >>> np.linalg.det(a)
1759
+ -2.0
1760
+
1761
+ Computing determinants for a stack of matrices:
1762
+
1763
+ >>> a = np.array([ [[1, 2], [3, 4]], [[1, 2], [2, 1]], [[1, 3], [3, 1]] ])
1764
+ >>> a.shape
1765
+ (3, 2, 2)
1766
+ >>> np.linalg.det(a)
1767
+ array([-2., -3., -8.])
1768
+
1769
+ """
1770
+ a = asarray(a)
1771
+ _assertNoEmpty2d(a)
1772
+ _assertRankAtLeast2(a)
1773
+ _assertNdSquareness(a)
1774
+ t, result_t = _commonType(a)
1775
+ signature = 'D->D' if isComplexType(t) else 'd->d'
1776
+ r = _umath_linalg.det(a, signature=signature)
1777
+ if isscalar(r):
1778
+ r = r.astype(result_t)
1779
+ else:
1780
+ r = r.astype(result_t, copy=False)
1781
+ return r
1782
+
1783
+ # Linear Least Squares
1784
+
1785
+ def lstsq(a, b, rcond=-1):
1786
+ """
1787
+ Return the least-squares solution to a linear matrix equation.
1788
+
1789
+ Solves the equation `a x = b` by computing a vector `x` that
1790
+ minimizes the Euclidean 2-norm `|| b - a x ||^2`. The equation may
1791
+ be under-, well-, or over- determined (i.e., the number of
1792
+ linearly independent rows of `a` can be less than, equal to, or
1793
+ greater than its number of linearly independent columns). If `a`
1794
+ is square and of full rank, then `x` (but for round-off error) is
1795
+ the "exact" solution of the equation.
1796
+
1797
+ Parameters
1798
+ ----------
1799
+ a : (M, N) array_like
1800
+ "Coefficient" matrix.
1801
+ b : {(M,), (M, K)} array_like
1802
+ Ordinate or "dependent variable" values. If `b` is two-dimensional,
1803
+ the least-squares solution is calculated for each of the `K` columns
1804
+ of `b`.
1805
+ rcond : float, optional
1806
+ Cut-off ratio for small singular values of `a`.
1807
+ Singular values are set to zero if they are smaller than `rcond`
1808
+ times the largest singular value of `a`.
1809
+
1810
+ Returns
1811
+ -------
1812
+ x : {(N,), (N, K)} ndarray
1813
+ Least-squares solution. If `b` is two-dimensional,
1814
+ the solutions are in the `K` columns of `x`.
1815
+ residuals : {(), (1,), (K,)} ndarray
1816
+ Sums of residuals; squared Euclidean 2-norm for each column in
1817
+ ``b - a*x``.
1818
+ If the rank of `a` is < N or M <= N, this is an empty array.
1819
+ If `b` is 1-dimensional, this is a (1,) shape array.
1820
+ Otherwise the shape is (K,).
1821
+ rank : int
1822
+ Rank of matrix `a`.
1823
+ s : (min(M, N),) ndarray
1824
+ Singular values of `a`.
1825
+
1826
+ Raises
1827
+ ------
1828
+ LinAlgError
1829
+ If computation does not converge.
1830
+
1831
+ Notes
1832
+ -----
1833
+ If `b` is a matrix, then all array results are returned as matrices.
1834
+
1835
+ Examples
1836
+ --------
1837
+ Fit a line, ``y = mx + c``, through some noisy data-points:
1838
+
1839
+ >>> x = np.array([0, 1, 2, 3])
1840
+ >>> y = np.array([-1, 0.2, 0.9, 2.1])
1841
+
1842
+ By examining the coefficients, we see that the line should have a
1843
+ gradient of roughly 1 and cut the y-axis at, more or less, -1.
1844
+
1845
+ We can rewrite the line equation as ``y = Ap``, where ``A = [[x 1]]``
1846
+ and ``p = [[m], [c]]``. Now use `lstsq` to solve for `p`:
1847
+
1848
+ >>> A = np.vstack([x, np.ones(len(x))]).T
1849
+ >>> A
1850
+ array([[ 0., 1.],
1851
+ [ 1., 1.],
1852
+ [ 2., 1.],
1853
+ [ 3., 1.]])
1854
+
1855
+ >>> m, c = np.linalg.lstsq(A, y)[0]
1856
+ >>> print m, c
1857
+ 1.0 -0.95
1858
+
1859
+ Plot the data along with the fitted line:
1860
+
1861
+ >>> import matplotlib.pyplot as plt
1862
+ >>> plt.plot(x, y, 'o', label='Original data', markersize=10)
1863
+ >>> plt.plot(x, m*x + c, 'r', label='Fitted line')
1864
+ >>> plt.legend()
1865
+ >>> plt.show()
1866
+
1867
+ """
1868
+ import math
1869
+ a, _ = _makearray(a)
1870
+ b, wrap = _makearray(b)
1871
+ is_1d = len(b.shape) == 1
1872
+ if is_1d:
1873
+ b = b[:, newaxis]
1874
+ _assertRank2(a, b)
1875
+ m = a.shape[0]
1876
+ n = a.shape[1]
1877
+ n_rhs = b.shape[1]
1878
+ ldb = max(n, m)
1879
+ if m != b.shape[0]:
1880
+ raise LinAlgError('Incompatible dimensions')
1881
+ t, result_t = _commonType(a, b)
1882
+ result_real_t = _realType(result_t)
1883
+ real_t = _linalgRealType(t)
1884
+ bstar = zeros((ldb, n_rhs), t)
1885
+ bstar[:b.shape[0], :n_rhs] = b.copy()
1886
+ a, bstar = _fastCopyAndTranspose(t, a, bstar)
1887
+ a, bstar = _to_native_byte_order(a, bstar)
1888
+ s = zeros((min(m, n),), real_t)
1889
+ nlvl = max( 0, int( math.log( float(min(m, n))/2. ) ) + 1 )
1890
+ iwork = zeros((3*min(m, n)*nlvl+11*min(m, n),), fortran_int)
1891
+ if isComplexType(t):
1892
+ lapack_routine = lapack_lite.zgelsd
1893
+ lwork = 1
1894
+ rwork = zeros((lwork,), real_t)
1895
+ work = zeros((lwork,), t)
1896
+ results = lapack_routine(m, n, n_rhs, a, m, bstar, ldb, s, rcond,
1897
+ 0, work, -1, rwork, iwork, 0)
1898
+ lwork = int(abs(work[0]))
1899
+ rwork = zeros((lwork,), real_t)
1900
+ a_real = zeros((m, n), real_t)
1901
+ bstar_real = zeros((ldb, n_rhs,), real_t)
1902
+ results = lapack_lite.dgelsd(m, n, n_rhs, a_real, m,
1903
+ bstar_real, ldb, s, rcond,
1904
+ 0, rwork, -1, iwork, 0)
1905
+ lrwork = int(rwork[0])
1906
+ work = zeros((lwork,), t)
1907
+ rwork = zeros((lrwork,), real_t)
1908
+ results = lapack_routine(m, n, n_rhs, a, m, bstar, ldb, s, rcond,
1909
+ 0, work, lwork, rwork, iwork, 0)
1910
+ else:
1911
+ lapack_routine = lapack_lite.dgelsd
1912
+ lwork = 1
1913
+ work = zeros((lwork,), t)
1914
+ results = lapack_routine(m, n, n_rhs, a, m, bstar, ldb, s, rcond,
1915
+ 0, work, -1, iwork, 0)
1916
+ lwork = int(work[0])
1917
+ work = zeros((lwork,), t)
1918
+ results = lapack_routine(m, n, n_rhs, a, m, bstar, ldb, s, rcond,
1919
+ 0, work, lwork, iwork, 0)
1920
+ if results['info'] > 0:
1921
+ raise LinAlgError('SVD did not converge in Linear Least Squares')
1922
+ resids = array([], result_real_t)
1923
+ if is_1d:
1924
+ x = array(ravel(bstar)[:n], dtype=result_t, copy=True)
1925
+ if results['rank'] == n and m > n:
1926
+ if isComplexType(t):
1927
+ resids = array([sum(abs(ravel(bstar)[n:])**2)],
1928
+ dtype=result_real_t)
1929
+ else:
1930
+ resids = array([sum((ravel(bstar)[n:])**2)],
1931
+ dtype=result_real_t)
1932
+ else:
1933
+ x = array(transpose(bstar)[:n,:], dtype=result_t, copy=True)
1934
+ if results['rank'] == n and m > n:
1935
+ if isComplexType(t):
1936
+ resids = sum(abs(transpose(bstar)[n:,:])**2, axis=0).astype(
1937
+ result_real_t, copy=False)
1938
+ else:
1939
+ resids = sum((transpose(bstar)[n:,:])**2, axis=0).astype(
1940
+ result_real_t, copy=False)
1941
+
1942
+ st = s[:min(n, m)].astype(result_real_t, copy=True)
1943
+ return wrap(x), wrap(resids), results['rank'], st
1944
+
1945
+
1946
+ def _multi_svd_norm(x, row_axis, col_axis, op):
1947
+ """Compute a function of the singular values of the 2-D matrices in `x`.
1948
+
1949
+ This is a private utility function used by numpy.linalg.norm().
1950
+
1951
+ Parameters
1952
+ ----------
1953
+ x : ndarray
1954
+ row_axis, col_axis : int
1955
+ The axes of `x` that hold the 2-D matrices.
1956
+ op : callable
1957
+ This should be either numpy.amin or numpy.amax or numpy.sum.
1958
+
1959
+ Returns
1960
+ -------
1961
+ result : float or ndarray
1962
+ If `x` is 2-D, the return values is a float.
1963
+ Otherwise, it is an array with ``x.ndim - 2`` dimensions.
1964
+ The return values are either the minimum or maximum or sum of the
1965
+ singular values of the matrices, depending on whether `op`
1966
+ is `numpy.amin` or `numpy.amax` or `numpy.sum`.
1967
+
1968
+ """
1969
+ if row_axis > col_axis:
1970
+ row_axis -= 1
1971
+ y = rollaxis(rollaxis(x, col_axis, x.ndim), row_axis, -1)
1972
+ result = op(svd(y, compute_uv=0), axis=-1)
1973
+ return result
1974
+
1975
+
1976
+ def norm(x, ord=None, axis=None, keepdims=False):
1977
+ """
1978
+ Matrix or vector norm.
1979
+
1980
+ This function is able to return one of eight different matrix norms,
1981
+ or one of an infinite number of vector norms (described below), depending
1982
+ on the value of the ``ord`` parameter.
1983
+
1984
+ Parameters
1985
+ ----------
1986
+ x : array_like
1987
+ Input array. If `axis` is None, `x` must be 1-D or 2-D.
1988
+ ord : {non-zero int, inf, -inf, 'fro', 'nuc'}, optional
1989
+ Order of the norm (see table under ``Notes``). inf means numpy's
1990
+ `inf` object.
1991
+ axis : {int, 2-tuple of ints, None}, optional
1992
+ If `axis` is an integer, it specifies the axis of `x` along which to
1993
+ compute the vector norms. If `axis` is a 2-tuple, it specifies the
1994
+ axes that hold 2-D matrices, and the matrix norms of these matrices
1995
+ are computed. If `axis` is None then either a vector norm (when `x`
1996
+ is 1-D) or a matrix norm (when `x` is 2-D) is returned.
1997
+ keepdims : bool, optional
1998
+ If this is set to True, the axes which are normed over are left in the
1999
+ result as dimensions with size one. With this option the result will
2000
+ broadcast correctly against the original `x`.
2001
+
2002
+ .. versionadded:: 1.10.0
2003
+
2004
+ Returns
2005
+ -------
2006
+ n : float or ndarray
2007
+ Norm of the matrix or vector(s).
2008
+
2009
+ Notes
2010
+ -----
2011
+ For values of ``ord <= 0``, the result is, strictly speaking, not a
2012
+ mathematical 'norm', but it may still be useful for various numerical
2013
+ purposes.
2014
+
2015
+ The following norms can be calculated:
2016
+
2017
+ ===== ============================ ==========================
2018
+ ord norm for matrices norm for vectors
2019
+ ===== ============================ ==========================
2020
+ None Frobenius norm 2-norm
2021
+ 'fro' Frobenius norm --
2022
+ 'nuc' nuclear norm --
2023
+ inf max(sum(abs(x), axis=1)) max(abs(x))
2024
+ -inf min(sum(abs(x), axis=1)) min(abs(x))
2025
+ 0 -- sum(x != 0)
2026
+ 1 max(sum(abs(x), axis=0)) as below
2027
+ -1 min(sum(abs(x), axis=0)) as below
2028
+ 2 2-norm (largest sing. value) as below
2029
+ -2 smallest singular value as below
2030
+ other -- sum(abs(x)**ord)**(1./ord)
2031
+ ===== ============================ ==========================
2032
+
2033
+ The Frobenius norm is given by [1]_:
2034
+
2035
+ :math:`||A||_F = [\\sum_{i,j} abs(a_{i,j})^2]^{1/2}`
2036
+
2037
+ The nuclear norm is the sum of the singular values.
2038
+
2039
+ References
2040
+ ----------
2041
+ .. [1] G. H. Golub and C. F. Van Loan, *Matrix Computations*,
2042
+ Baltimore, MD, Johns Hopkins University Press, 1985, pg. 15
2043
+
2044
+ Examples
2045
+ --------
2046
+ >>> from numpy import linalg as LA
2047
+ >>> a = np.arange(9) - 4
2048
+ >>> a
2049
+ array([-4, -3, -2, -1, 0, 1, 2, 3, 4])
2050
+ >>> b = a.reshape((3, 3))
2051
+ >>> b
2052
+ array([[-4, -3, -2],
2053
+ [-1, 0, 1],
2054
+ [ 2, 3, 4]])
2055
+
2056
+ >>> LA.norm(a)
2057
+ 7.745966692414834
2058
+ >>> LA.norm(b)
2059
+ 7.745966692414834
2060
+ >>> LA.norm(b, 'fro')
2061
+ 7.745966692414834
2062
+ >>> LA.norm(a, np.inf)
2063
+ 4
2064
+ >>> LA.norm(b, np.inf)
2065
+ 9
2066
+ >>> LA.norm(a, -np.inf)
2067
+ 0
2068
+ >>> LA.norm(b, -np.inf)
2069
+ 2
2070
+
2071
+ >>> LA.norm(a, 1)
2072
+ 20
2073
+ >>> LA.norm(b, 1)
2074
+ 7
2075
+ >>> LA.norm(a, -1)
2076
+ -4.6566128774142013e-010
2077
+ >>> LA.norm(b, -1)
2078
+ 6
2079
+ >>> LA.norm(a, 2)
2080
+ 7.745966692414834
2081
+ >>> LA.norm(b, 2)
2082
+ 7.3484692283495345
2083
+
2084
+ >>> LA.norm(a, -2)
2085
+ nan
2086
+ >>> LA.norm(b, -2)
2087
+ 1.8570331885190563e-016
2088
+ >>> LA.norm(a, 3)
2089
+ 5.8480354764257312
2090
+ >>> LA.norm(a, -3)
2091
+ nan
2092
+
2093
+ Using the `axis` argument to compute vector norms:
2094
+
2095
+ >>> c = np.array([[ 1, 2, 3],
2096
+ ... [-1, 1, 4]])
2097
+ >>> LA.norm(c, axis=0)
2098
+ array([ 1.41421356, 2.23606798, 5. ])
2099
+ >>> LA.norm(c, axis=1)
2100
+ array([ 3.74165739, 4.24264069])
2101
+ >>> LA.norm(c, ord=1, axis=1)
2102
+ array([6, 6])
2103
+
2104
+ Using the `axis` argument to compute matrix norms:
2105
+
2106
+ >>> m = np.arange(8).reshape(2,2,2)
2107
+ >>> LA.norm(m, axis=(1,2))
2108
+ array([ 3.74165739, 11.22497216])
2109
+ >>> LA.norm(m[0, :, :]), LA.norm(m[1, :, :])
2110
+ (3.7416573867739413, 11.224972160321824)
2111
+
2112
+ """
2113
+ x = asarray(x)
2114
+
2115
+ # Immediately handle some default, simple, fast, and common cases.
2116
+ if axis is None:
2117
+ ndim = x.ndim
2118
+ if ((ord is None) or
2119
+ (ord in ('f', 'fro') and ndim == 2) or
2120
+ (ord == 2 and ndim == 1)):
2121
+
2122
+ x = x.ravel(order='K')
2123
+ if isComplexType(x.dtype.type):
2124
+ sqnorm = dot(x.real, x.real) + dot(x.imag, x.imag)
2125
+ else:
2126
+ sqnorm = dot(x, x)
2127
+ ret = sqrt(sqnorm)
2128
+ if keepdims:
2129
+ ret = ret.reshape(ndim*[1])
2130
+ return ret
2131
+
2132
+ # Normalize the `axis` argument to a tuple.
2133
+ nd = x.ndim
2134
+ if axis is None:
2135
+ axis = tuple(range(nd))
2136
+ elif not isinstance(axis, tuple):
2137
+ try:
2138
+ axis = int(axis)
2139
+ except:
2140
+ raise TypeError("'axis' must be None, an integer or a tuple of integers")
2141
+ axis = (axis,)
2142
+
2143
+ if len(axis) == 1:
2144
+ if ord == Inf:
2145
+ return abs(x).max(axis=axis, keepdims=keepdims)
2146
+ elif ord == -Inf:
2147
+ return abs(x).min(axis=axis, keepdims=keepdims)
2148
+ elif ord == 0:
2149
+ # Zero norm
2150
+ return (x != 0).sum(axis=axis, keepdims=keepdims)
2151
+ elif ord == 1:
2152
+ # special case for speedup
2153
+ return add.reduce(abs(x), axis=axis, keepdims=keepdims)
2154
+ elif ord is None or ord == 2:
2155
+ # special case for speedup
2156
+ s = (x.conj() * x).real
2157
+ return sqrt(add.reduce(s, axis=axis, keepdims=keepdims))
2158
+ else:
2159
+ try:
2160
+ ord + 1
2161
+ except TypeError:
2162
+ raise ValueError("Invalid norm order for vectors.")
2163
+ if x.dtype.type is longdouble:
2164
+ # Convert to a float type, so integer arrays give
2165
+ # float results. Don't apply asfarray to longdouble arrays,
2166
+ # because it will downcast to float64.
2167
+ absx = abs(x)
2168
+ else:
2169
+ absx = x if isComplexType(x.dtype.type) else asfarray(x)
2170
+ if absx.dtype is x.dtype:
2171
+ absx = abs(absx)
2172
+ else:
2173
+ # if the type changed, we can safely overwrite absx
2174
+ abs(absx, out=absx)
2175
+ absx **= ord
2176
+ return add.reduce(absx, axis=axis, keepdims=keepdims) ** (1.0 / ord)
2177
+ elif len(axis) == 2:
2178
+ row_axis, col_axis = axis
2179
+ if row_axis < 0:
2180
+ row_axis += nd
2181
+ if col_axis < 0:
2182
+ col_axis += nd
2183
+ if not (0 <= row_axis < nd and 0 <= col_axis < nd):
2184
+ raise ValueError('Invalid axis %r for an array with shape %r' %
2185
+ (axis, x.shape))
2186
+ if row_axis == col_axis:
2187
+ raise ValueError('Duplicate axes given.')
2188
+ if ord == 2:
2189
+ ret = _multi_svd_norm(x, row_axis, col_axis, amax)
2190
+ elif ord == -2:
2191
+ ret = _multi_svd_norm(x, row_axis, col_axis, amin)
2192
+ elif ord == 1:
2193
+ if col_axis > row_axis:
2194
+ col_axis -= 1
2195
+ ret = add.reduce(abs(x), axis=row_axis).max(axis=col_axis)
2196
+ elif ord == Inf:
2197
+ if row_axis > col_axis:
2198
+ row_axis -= 1
2199
+ ret = add.reduce(abs(x), axis=col_axis).max(axis=row_axis)
2200
+ elif ord == -1:
2201
+ if col_axis > row_axis:
2202
+ col_axis -= 1
2203
+ ret = add.reduce(abs(x), axis=row_axis).min(axis=col_axis)
2204
+ elif ord == -Inf:
2205
+ if row_axis > col_axis:
2206
+ row_axis -= 1
2207
+ ret = add.reduce(abs(x), axis=col_axis).min(axis=row_axis)
2208
+ elif ord in [None, 'fro', 'f']:
2209
+ ret = sqrt(add.reduce((x.conj() * x).real, axis=axis))
2210
+ elif ord == 'nuc':
2211
+ ret = _multi_svd_norm(x, row_axis, col_axis, sum)
2212
+ else:
2213
+ raise ValueError("Invalid norm order for matrices.")
2214
+ if keepdims:
2215
+ ret_shape = list(x.shape)
2216
+ ret_shape[axis[0]] = 1
2217
+ ret_shape[axis[1]] = 1
2218
+ ret = ret.reshape(ret_shape)
2219
+ return ret
2220
+ else:
2221
+ raise ValueError("Improper number of dimensions to norm.")
2222
+
2223
+
2224
+ # multi_dot
2225
+
2226
+ def multi_dot(arrays):
2227
+ """
2228
+ Compute the dot product of two or more arrays in a single function call,
2229
+ while automatically selecting the fastest evaluation order.
2230
+
2231
+ `multi_dot` chains `numpy.dot` and uses optimal parenthesization
2232
+ of the matrices [1]_ [2]_. Depending on the shapes of the matrices,
2233
+ this can speed up the multiplication a lot.
2234
+
2235
+ If the first argument is 1-D it is treated as a row vector.
2236
+ If the last argument is 1-D it is treated as a column vector.
2237
+ The other arguments must be 2-D.
2238
+
2239
+ Think of `multi_dot` as::
2240
+
2241
+ def multi_dot(arrays): return functools.reduce(np.dot, arrays)
2242
+
2243
+
2244
+ Parameters
2245
+ ----------
2246
+ arrays : sequence of array_like
2247
+ If the first argument is 1-D it is treated as row vector.
2248
+ If the last argument is 1-D it is treated as column vector.
2249
+ The other arguments must be 2-D.
2250
+
2251
+ Returns
2252
+ -------
2253
+ output : ndarray
2254
+ Returns the dot product of the supplied arrays.
2255
+
2256
+ See Also
2257
+ --------
2258
+ dot : dot multiplication with two arguments.
2259
+
2260
+ References
2261
+ ----------
2262
+
2263
+ .. [1] Cormen, "Introduction to Algorithms", Chapter 15.2, p. 370-378
2264
+ .. [2] http://en.wikipedia.org/wiki/Matrix_chain_multiplication
2265
+
2266
+ Examples
2267
+ --------
2268
+ `multi_dot` allows you to write::
2269
+
2270
+ >>> from numpy.linalg import multi_dot
2271
+ >>> # Prepare some data
2272
+ >>> A = np.random.random(10000, 100)
2273
+ >>> B = np.random.random(100, 1000)
2274
+ >>> C = np.random.random(1000, 5)
2275
+ >>> D = np.random.random(5, 333)
2276
+ >>> # the actual dot multiplication
2277
+ >>> multi_dot([A, B, C, D])
2278
+
2279
+ instead of::
2280
+
2281
+ >>> np.dot(np.dot(np.dot(A, B), C), D)
2282
+ >>> # or
2283
+ >>> A.dot(B).dot(C).dot(D)
2284
+
2285
+
2286
+ Example: multiplication costs of different parenthesizations
2287
+ ------------------------------------------------------------
2288
+
2289
+ The cost for a matrix multiplication can be calculated with the
2290
+ following function::
2291
+
2292
+ def cost(A, B): return A.shape[0] * A.shape[1] * B.shape[1]
2293
+
2294
+ Let's assume we have three matrices
2295
+ :math:`A_{10x100}, B_{100x5}, C_{5x50}$`.
2296
+
2297
+ The costs for the two different parenthesizations are as follows::
2298
+
2299
+ cost((AB)C) = 10*100*5 + 10*5*50 = 5000 + 2500 = 7500
2300
+ cost(A(BC)) = 10*100*50 + 100*5*50 = 50000 + 25000 = 75000
2301
+
2302
+ """
2303
+ n = len(arrays)
2304
+ # optimization only makes sense for len(arrays) > 2
2305
+ if n < 2:
2306
+ raise ValueError("Expecting at least two arrays.")
2307
+ elif n == 2:
2308
+ return dot(arrays[0], arrays[1])
2309
+
2310
+ arrays = [asanyarray(a) for a in arrays]
2311
+
2312
+ # save original ndim to reshape the result array into the proper form later
2313
+ ndim_first, ndim_last = arrays[0].ndim, arrays[-1].ndim
2314
+ # Explicitly convert vectors to 2D arrays to keep the logic of the internal
2315
+ # _multi_dot_* functions as simple as possible.
2316
+ if arrays[0].ndim == 1:
2317
+ arrays[0] = atleast_2d(arrays[0])
2318
+ if arrays[-1].ndim == 1:
2319
+ arrays[-1] = atleast_2d(arrays[-1]).T
2320
+ _assertRank2(*arrays)
2321
+
2322
+ # _multi_dot_three is much faster than _multi_dot_matrix_chain_order
2323
+ if n == 3:
2324
+ result = _multi_dot_three(arrays[0], arrays[1], arrays[2])
2325
+ else:
2326
+ order = _multi_dot_matrix_chain_order(arrays)
2327
+ result = _multi_dot(arrays, order, 0, n - 1)
2328
+
2329
+ # return proper shape
2330
+ if ndim_first == 1 and ndim_last == 1:
2331
+ return result[0, 0] # scalar
2332
+ elif ndim_first == 1 or ndim_last == 1:
2333
+ return result.ravel() # 1-D
2334
+ else:
2335
+ return result
2336
+
2337
+
2338
+ def _multi_dot_three(A, B, C):
2339
+ """
2340
+ Find the best order for three arrays and do the multiplication.
2341
+
2342
+ For three arguments `_multi_dot_three` is approximately 15 times faster
2343
+ than `_multi_dot_matrix_chain_order`
2344
+
2345
+ """
2346
+ # cost1 = cost((AB)C)
2347
+ cost1 = (A.shape[0] * A.shape[1] * B.shape[1] + # (AB)
2348
+ A.shape[0] * B.shape[1] * C.shape[1]) # (--)C
2349
+ # cost2 = cost((AB)C)
2350
+ cost2 = (B.shape[0] * B.shape[1] * C.shape[1] + # (BC)
2351
+ A.shape[0] * A.shape[1] * C.shape[1]) # A(--)
2352
+
2353
+ if cost1 < cost2:
2354
+ return dot(dot(A, B), C)
2355
+ else:
2356
+ return dot(A, dot(B, C))
2357
+
2358
+
2359
+ def _multi_dot_matrix_chain_order(arrays, return_costs=False):
2360
+ """
2361
+ Return a np.array that encodes the optimal order of mutiplications.
2362
+
2363
+ The optimal order array is then used by `_multi_dot()` to do the
2364
+ multiplication.
2365
+
2366
+ Also return the cost matrix if `return_costs` is `True`
2367
+
2368
+ The implementation CLOSELY follows Cormen, "Introduction to Algorithms",
2369
+ Chapter 15.2, p. 370-378. Note that Cormen uses 1-based indices.
2370
+
2371
+ cost[i, j] = min([
2372
+ cost[prefix] + cost[suffix] + cost_mult(prefix, suffix)
2373
+ for k in range(i, j)])
2374
+
2375
+ """
2376
+ n = len(arrays)
2377
+ # p stores the dimensions of the matrices
2378
+ # Example for p: A_{10x100}, B_{100x5}, C_{5x50} --> p = [10, 100, 5, 50]
2379
+ p = [a.shape[0] for a in arrays] + [arrays[-1].shape[1]]
2380
+ # m is a matrix of costs of the subproblems
2381
+ # m[i,j]: min number of scalar multiplications needed to compute A_{i..j}
2382
+ m = zeros((n, n), dtype=double)
2383
+ # s is the actual ordering
2384
+ # s[i, j] is the value of k at which we split the product A_i..A_j
2385
+ s = empty((n, n), dtype=intp)
2386
+
2387
+ for l in range(1, n):
2388
+ for i in range(n - l):
2389
+ j = i + l
2390
+ m[i, j] = Inf
2391
+ for k in range(i, j):
2392
+ q = m[i, k] + m[k+1, j] + p[i]*p[k+1]*p[j+1]
2393
+ if q < m[i, j]:
2394
+ m[i, j] = q
2395
+ s[i, j] = k # Note that Cormen uses 1-based index
2396
+
2397
+ return (s, m) if return_costs else s
2398
+
2399
+
2400
+ def _multi_dot(arrays, order, i, j):
2401
+ """Actually do the multiplication with the given order."""
2402
+ if i == j:
2403
+ return arrays[i]
2404
+ else:
2405
+ return dot(_multi_dot(arrays, order, i, order[i, j]),
2406
+ _multi_dot(arrays, order, order[i, j] + 1, j))