Skip to content

Conversation

tscrim
Copy link
Collaborator

@tscrim tscrim commented Mar 31, 2024

We implement the Jordan decomposition of a matrix $A = S + N$, where $S$ is a semisimple matrix and $N$ is a nilpotent matrix. We also implement a check for the matrix being semisimple by using the minpoly() being square-free.

📝 Checklist

  • The title is concise and informative.
  • The description explains in detail what this PR is about.
  • I have linked a relevant issue or discussion.
  • I have created tests covering the changes.
  • I have updated the documentation accordingly.

⌛ Dependencies

Copy link
Contributor

@mkoeppe mkoeppe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

For inexact fields, that while loop looks a bit scary, but that can be the concern of specialized implementations.

@tscrim tscrim force-pushed the matrix/jordan_decomposition branch from da73fca to ba94896 Compare April 3, 2024 06:02
@tscrim
Copy link
Collaborator Author

tscrim commented Apr 3, 2024

Thanks.

Indeed, that is a good point about the inexact fields. I have now forbidden it. I also made the checks a bit better for things over nonfields.

Actually, I found something that could actually make this a bit better even:

https://acl.inf.ethz.ch/people/chrisw/projects/felix/thesis.pdf

@tscrim
Copy link
Collaborator Author

tscrim commented Apr 3, 2024

This seems to be the best possible algorithm. Sorry for a bit of noise.

Copy link
Contributor

@mkoeppe mkoeppe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, thanks for working on this improvement.

@vbraun
Copy link
Member

vbraun commented Apr 6, 2024

merge conflict

@tscrim tscrim force-pushed the matrix/jordan_decomposition branch from ba94896 to 70809e9 Compare April 9, 2024 02:01
@tscrim
Copy link
Collaborator Author

tscrim commented Apr 9, 2024

Rebased (although I found no merge conflict).

Copy link

github-actions bot commented Apr 9, 2024

Documentation preview for this PR (built with commit 70809e9; changes) is ready! 🎉

@vbraun vbraun merged commit e16ce82 into sagemath:develop Apr 12, 2024
@tscrim tscrim deleted the matrix/jordan_decomposition branch April 13, 2024 02:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants