-
-
Notifications
You must be signed in to change notification settings - Fork 10.9k
Linear Algebra routines as generalized ufuncs #2954
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
Closed
Closed
Changes from all commits
Commits
Show all changes
77 commits
Select commit
Hold shift + click to select a range
1613e09
BUG: Fix generalized ufunc so repeating labels in one input/output is ok
mwiebe be911e8
BUG: Missed case of broadcasting onto core dimensions in gufunc
mwiebe 9a70cfd
BUG: Make sure the nditer doesn't complain when 0 broadcast dims
mwiebe b5c7733
TST: Add test for gufunc scalar case
mwiebe 12be5b7
BUG: Fix bug in gufunc scalar case
mwiebe fa9dbef
TST: Test for a generalized ufunc bug, for zero-sized inputs
mwiebe cac3de5
BUG: Fix for generalized ufunc zero-sized input case
mwiebe 153e02e
created a new module to hold linalg ufuncs.
06613da
inner1d and mat_mult implemented using blas.
0ab4a14
refactored some code, make it cleaner overall and ready to reuse some…
e6d08ea
det and slogdet working
a3baf1c
eigh and eigvalsh working
e53b3d3
solve gufunc working
6ad2738
solve1 and inv working
1276782
fixed possible issues with BLAS _copy (0 is not a valid incx/incy val…
ee4138d
working eig and eigvals priority 2 functions.
b1c3e09
svd implemented. Single output working. Multiple options not function…
c229ba0
modified the code so it just used external definitions of blas/lapack…
4b5f777
lapack_lite for builds of umath_linalg without an optimized lapack in…
b29fa3c
added some single precision functions to f2c_lite.c that were missing…
56d70ff
added plenty of simple functions (quadratic_form plus all the "inspir…
3cde140
added information about the contents of umath-linalg module
f26444d
fixed gufuncs so that they use the proper signature (mwiebe fix present)
839e597
fixed a warning in f2c_lite.c for umath/lapack_lite
4f2a508
poinv and chosolve working. Rebuilt lapack_lite to support them. Used…
b7d0f7b
updated umath_linalg_content.txt
6100e8a
wrote a wrapper module for umath_linalg. Named gufuncs_linalg (in pyt…
fdeafbd
first iteration with tests. Incomplete and some failing. Just a start…
3bfb914
work on tests and related fixes. Getting things in shape to commit to…
c4a2cff
removed some wrappers that weren't needed with the harness fix, just …
23a6380
modified umath_linalg_content.txt to reflect changes.
0735c95
updated the umath_linalg_content.txt adding a mention to the wrapper …
6e0ea34
fixed bug in matrix_multiply when using cdoubles
250786b
fixed the problem in eigvals (apparently)
8565a63
work in progress: proper tests for eig.
f9372ab
added tests for ufuncs in gufuncs_linalg (the ones based on pdl). Add…
d8ed21d
reverted matrix_dot in umath_gufuncs to matrix_multiply.
a5e5833
updated documentation
f2c81b4
compile fix on linux/mac
c25e0b7
Merge branch 'gufunc-fix' into gufunc-linalg-stable
a4f540d
BLD: Windows build fixes + some tabs removed
6a09b5c
STY: made sure that split strings had \ at the end
e7b6a2b
updated api version, as one merge changed it.
05d0146
fixed testdet test. It failed due to eigvails failing in single preci…
32b0617
TST: fixed test for gufuncs_linalg Det
22b163c
ENH: cholesky handling of _potrf failures (set result to nan)
6e1b48c
ENH: eigh, eigvalsh set result to nan on LAPACK error (_ssyevd, _heevd)
69f6464
ENH: solve sets result to nan on LAPACK error (_gesv)
48c4ab4
ENH: inv sets result to nan on LAPACK error (_gesv)
a5a1b83
ENH: svd sets results to nan on LAPACK error (_gesdd)
40d3746
ENH: chosolve sets result to nan on LAPACK error (_potrf, _potrs)
01186ca
DOC: Added docstring for eigh
d7b2a58
DOC: Added docstring to eigvalsh
a6c51c6
DOC: added docstring to solve
89083d4
DOC: added docstring for svd
e538255
8000
DOC: Added docstring to chosolve
f008fdb
DOC: added docstring for poinv
fa1c5f8
DOC: Added notes on error handling.
3a970dc
MAINT: renamed umath_linalg module to _umath_linalg as it is internal.
6cf6586
MAINT: renamed the file describing the gufuncs_linalg module
b686a76
MAINT: Rewrote the gufuncs_linalg_contents as a rst file and updated it.
2b334c6
STY: PEP8
7ad0b50
DOC: corrected documentation - arrays of functions -> arrays of matrices
19240e0
ENH: Added np.seterr handling of errors
38c2de2
BLD: python 3.x compile fix
7d8396e
BLD: Python3 build problem fixed
1fc7a3a
DOC: Added doctests to docstring for fused operations
3e15fa8
DOC: added more doctests
adcad92
DOC: changed doctests for eig and eigh to be more robust
3fe3ea3
DOC: fixed doctest in poinv so that the example matrix is positive-de…
5efdd41
BUG: fixed a bug in eig for complex numbers. Eigenvector results are …
41b51bd
FIX: problems with eig and eigvals. Enhanced tests.
b6f6d85
ENH: added complex version for inner1d. Also added dotc1d
0e23dbb
FIX: matrix_multiply now works when given a column matrix
d31d830
DOC: changed <NDIMS> to … in shape descriptions in docstrings
83556f6
MAINT: added from __future__ as suggested by charris
a344d47
BLD: reverted api version back to 8
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
python_xerbla.c
?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In LAPACK xerbla is an error handling function. LAPACK routines print out their errors using that function. python_xerbla is a version of the function friendly with Python.
I had to make a version of lapack_lite, following the instructions present in lapack_lite inside the linalg package. I needed to do so as I use some routines not present on the current lapack_lite (notably the single precision ones and some extra).
The build configuration is inspired by the build configuration of linalg (i.e. ruthlessly copied :) ).