8000 Add generalized ufunc linalg functions and make numpy.linalg use them by pv · Pull Request #3220 · numpy/numpy · GitHub
[go: up one dir, main page]

Skip to content

Add generalized ufunc linalg functions and make numpy.linalg use them #3220

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 92 commits into from
Apr 17, 2013
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
3ce193b
created a new module to hold linalg ufuncs.
Jan 21, 2013
07c0237
inner1d and mat_mult implemented using blas.
Sep 21, 2012
65bb3e7
refactored some code, make it cleaner overall and ready to reuse some…
Sep 24, 2012
1db3f9b
det and slogdet working
Oct 2, 2012
cf94941
eigh and eigvalsh working
Oct 4, 2012
2a6d450
solve gufunc working
Oct 5, 2012
67820dd
solve1 and inv working
Oct 5, 2012
c1efc48
fixed possible issues with BLAS _copy (0 is not a valid incx/incy val…
Oct 6, 2012
234523c
working eig and eigvals priority 2 functions.
Oct 9, 2012
4c9f286
svd implemented. Single output working. Multiple options not function…
Oct 11, 2012
7f3afca
modified the code so it just used external definitions of blas/lapack…
Oct 12, 2012
c679f7b
lapack_lite for builds of umath_linalg without an optimized lapack in…
Oct 17, 2012
c85e833
added some single precision functions to f2c_lite.c that were missing…
Oct 17, 2012
26d6bef
added plenty of simple functions (quadratic_form plus all the "inspir…
Oct 23, 2012
c47ee06
added information about the contents of umath-linalg module
Oct 23, 2012
05f9401
fixed gufuncs so that they use the proper signature (mwiebe fix present)
Oct 24, 2012
95eef39
fixed a warning in f2c_lite.c for umath/lapack_lite
Oct 29, 2012
2bb6c8e
poinv and chosolve working. Rebuilt lapack_lite to support them. Used…
Oct 31, 2012
861e694
updated umath_linalg_content.txt
Oct 31, 2012
747cd46
wrote a wrapper module for umath_linalg. Named gufuncs_linalg (in pyt…
Nov 2, 2012
ecfb93c
first iteration with tests. Incomplete and some failing. Just a start…
Nov 9, 2012
814add8
work on tests and related fixes. Getting things in shape to commit to…
Nov 13, 2012
f74546d
removed some wrappers that weren't needed with the harness fix, just …
Nov 13, 2012
a0c09b8
modified umath_linalg_content.txt to reflect changes.
Nov 13, 2012
8817773
updated the umath_linalg_content.txt adding a mention to the wrapper …
Jan 21, 2013
f6aaecb
fixed bug in matrix_multiply when using cdoubles
Nov 15, 2012
c355550
fixed the problem in eigvals (apparently)
Nov 15, 2012
2276eaa
work in progress: proper tests for eig.
Nov 16, 2012
a75fb9e
added tests for ufuncs in gufuncs_linalg (the ones based on pdl). Add…
Nov 19, 2012
3e77076
reverted matrix_dot in umath_gufuncs to matrix_multiply.
Nov 20, 2012
0132755
updated documentation
Jan 14, 2013
367f333
BLD: Windows build fixes + some tabs removed
Jan 23, 2013
d4945ea
STY: made sure that split strings had \ at the end
Jan 24, 2013
866d230
updated api version, as one merge changed it.
Jan 28, 2013
76a1963
fixed testdet test. It failed due to eigvails failing in single preci…
Jan 28, 2013
e41e426
TST: fixed test for gufuncs_linalg Det
Jan 28, 2013
2cc6fb4
ENH: cholesky handling of _potrf failures (set result to nan)
Jan 30, 2013
f2b0bdd
ENH: eigh, eigvalsh set result to nan on LAPACK error (_ssyevd, _heevd)
Jan 30, 2013
fb2270d
ENH: solve sets result to nan on LAPACK error (_gesv)
Jan 30, 2013
7aa26c3
ENH: inv sets result to nan on LAPACK error (_gesv)
Jan 30, 2013
ec5020c
ENH: svd sets results to nan on LAPACK error (_gesdd)
Jan 30, 2013
170726c
ENH: chosolve sets result to nan on LAPACK error (_potrf, _potrs)
Jan 30, 2013
43c25bb
DOC: Added docstring for eigh
Jan 30, 2013
82976c0
DOC: Added docstring to eigvalsh
Jan 30, 2013
b75a0cb
DOC: added docstring to solve
Jan 30, 2013
87cd05f
DOC: added docstring for svd
Jan 30, 2013
1f79b69
DOC: Added docstring to chosolve
Jan 30, 2013
bca1bbe
DOC: added docstring for poinv
Jan 30, 2013
6e352ad
DOC: Added notes on error handling.
Jan 30, 2013
24b727b
MAINT: renamed umath_linalg module to _umath_linalg as it is internal.
Jan 30, 2013
e1c7ed4
MAINT: renamed the file describing the gufuncs_linalg module
Jan 30, 2013
bbd674d
MAINT: Rewrote the gufuncs_linalg_contents as a rst file and updated it.
Jan 30, 2013
1ec2024
STY: PEP8
Feb 8, 2013
a2afc85
DOC: corrected documentation - arrays of functions -> arrays of matrices
Feb 8, 2013
f48c134
ENH: Added np.seterr handling of errors
Feb 8, 2013
2eeddab
BLD: python 3.x compile fix
Feb 11, 2013
fd435bc
BLD: Python3 build problem fixed
Feb 11, 2013
8556374
DOC: Added doctests to docstring for fused operations
Feb 12, 2013
cd6c20b
DOC: added more doctests
Feb 14, 2013
05ceb12
DOC: changed doctests for eig and eigh to be more robust
Feb 20, 2013
8e8f247
DOC: fixed doctest in poinv so that the example matrix is positive-de…
Feb 20, 2013
7e3176f
BUG: fixed a bug in eig for complex numbers. Eigenvector results are …
Feb 20, 2013
ad8b29b
FIX: problems with eig and eigvals. Enhanced tests.
Mar 1, 2013
60f54b6
ENH: added complex version for inner1d. Also added dotc1d
Mar 22, 2013
5dc27ac
FIX: matrix_multiply now works when given a column matrix
Mar 22, 2013
0afe276
DOC: changed <NDIMS> to … in shape descriptions in docstrings
Apr 5, 2013
1f8efc0
MAINT: added from __future__ as suggested by charris
Apr 5, 2013
e7a54da
BLD: reverted api version back to 8
Apr 5, 2013
35f4b17
MAINT: mark gufuncs_linalg.py as a internal testing-only module
pv Apr 8, 2013
f0a78c7
DOC: document the behavior of generalized N-dim linear algebra functions
pv Apr 8, 2013
2e8b24e
ENH: linalg: add helper routines for gufuncs
pv Apr 9, 2013
5b0fead
ENH: linalg: use _umath_linalg for det()
pv Apr 8, 2013
87dc3f6
ENH: linalg: use _umath_linalg for slogdet()
pv Apr 8, 2013
7d2fed6
ENH: linalg: use _umath_linalg for inv()
pv Apr 8, 2013
04ad33e
ENH: linalg: use _umath_linalg for solve()
pv Apr 9, 2013
2dd6405
ENH: linalg: use _umath_linalg for cholesky()
pv Apr 9, 2013
15a9c3b
ENH: linalg: use _umath_linalg for eigvals()
pv Apr 9, 2013
74e1477
ENH: linalg: use _umath_linalg for eigvalsh()
pv Apr 9, 2013
1253d57
ENH: linalg: use _umath_linalg for eig()
pv Apr 9, 2013
cc7b048
ENH: linalg: use _umath_linalg for eigh()
pv Apr 9, 2013
bbdca51
ENH: linalg: use _umath_linalg for svd()
pv Apr 9, 2013
63a8aef
BUG: core/umath_linalg: ensure FP error status reflects LAPACK error …
pv Apr 9, 2013
9bfa19b
TST: linalg: add tests for generalized linalg functions
pv Apr 9, 2013
9c00887
MAINT: move umath_linalg under numpy/linalg and use the same lapack_lite
pv Apr 10, 2013
1b27cb0
MAINT: move gufuncs_linalg_contents.rst to the docstring of the module
pv Apr 10, 2013
20cc77a
BUG: linalg: fix Py3 syntax
pv Apr 10, 2013
1b3834d
BUG: linalg: make umath_linalg to track errors from all inner loop it…
pv Apr 12, 2013
aa8fde0
ENH: linalg: use signature= for internal casting rather than astype i…
pv Apr 12, 2013
fb9b5bd
TST: linalg: test return types of generalized linalg routines
pv Apr 12, 2013
68c186d
BUG: linalg: do not assume that GIL is enabled in xerbla_
pv Apr 13, 2013
374e0b4
BUG: linalg: fix LAPACK error handling in lapack_litemodule
pv Apr 13, 2013
8eebee8
TST: linalg: add tests for xerbla functionality (with and without GIL)
pv Apr 13, 2013
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions doc/source/reference/routines.linalg.rst
Original file line number Diff line number Diff line change
Expand Up @@ -67,3 +67,21 @@ Exceptions
:toctree: generated/

linalg.LinAlgError

Linear algebra on several matrices at once
------------------------------------------

Several of the linear algebra routines listed above are able to
compute results for several matrices at once, if they are stacked into
the same array.

This is indicated in the documentation via input parameter
specifications such as ``a : (..., M, M) array_like``. This means that
if for instance given an input array ``a.shape == (N, M, M)``, it is
interpreted as a "stack" of N matrices, each of size M-by-M. Similar
specification applies to return values, for instance the determinant
has ``det : (...)`` and will in this case return an array of shape
``det(a).shape == (N,)``. This generalizes to linear algebra
operations on higher-dimensional arrays: the last 1 or 2 dimensions of
a multidimensional array are interpreted as vectors or matrices, as
appropriate for each operation.
Loading
0