-
Notifications
You must be signed in to change notification settings - Fork 89
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add rules for Symmetric/Hermitian eigen and svd (#323)
* Move symmetric rules to own file * Move symmetric tests to own file * Adapt eigen and eigvals rules from #321 * Don't allocate * Implement mutating forms for frule * Add sortby keyword * Use fewer indices * Correctly reference BlasReal * Move eigen pullback to external function * Add hermitian svd rrule * Hermitrize in pullback * Separate out eigvals sign code * Add svdvals rrule * Rearrange functions * Realify eigenvalue cotangents * Restrict to StridedMatrixes * Reduce allocations and unnecessary ops * Avoid unnecessary allocation in svd * Explicitly create eigvals pullback inputs * Simplify _hermitrize! * Add svdvals section * Don't use convenience type not in v1.0 * Fix multiplication order * Remove ambiguity in signature * Define missing variable * Make pure imaginary * Add tests for eigendecomposition rules * Test from nonsymmetric matrix * Add newlines * Remove unnecessary unthunks * Test type-stability * Test mixtures of Zeros * Use more informative testset names * Fix svd pullback bugs * Add svd pullback tests * Return correct argument * Remove unused (co)tangents * Add svdvals tests * Fix typo * Restrict SVD test to greater than v1.3.0 * Only check type-stability on 1.6 * Avoid specifying sortby keyword This is not defined on earlier Julia versions * Remove obsolete comment * Abandon ship when derivatives explode * Handle Hermitian special-case for general eigen * Fix comment * Resolve type-instability * Handle when just ΔV is Zero * Test eigen for hermitian Matrix * Make hermitian Matrix * Call eigen pullback from eigvals * Only pass sortby to Hermitian eigen * Support Julia 1.0's return for _symherm_back * Call Hermitian eigvals! frule * Call eigen rrule in eigval rrule * Test eigvals for hermitian Matrix-es * Do less expensive eltype check first * Correctly handle sortby default * Increment version number * Add references and notes * More clearly name tests * Add comment explaining test set
- Loading branch information
Showing
4 changed files
with
610 additions
and
24 deletions.
There are no files selected for viewing
This file contains 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 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.
053a6c0
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.
@JuliaRegistrator register
053a6c0
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.
Error while trying to register: "Tag with name
v0.7.43
already exists and points to a different commit"