Skip to content
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

Add xGETRF/xGETRS #114

Open
Grissess opened this issue Jan 10, 2020 · 1 comment
Open

Add xGETRF/xGETRS #114

Grissess opened this issue Jan 10, 2020 · 1 comment
Labels
accepted This sounds like something to look into.

Comments

@Grissess
Copy link

Hello!

Hopefully this is a quick one: although xGESV is broken out in Solve right now, there's a very similar pair of functions in the issue name, documented e.g. on he very top of this page, that (xGETRF) factor a matrix into a form conducive to (xGETRS) using it to solve for many different "B" vectors. If "A" is large and "B" changes quite a bit more frequently than "A", this gives some tangible performance improvements.

This technically also provides you with an LU factorization, but I think that's an implementation detail that shouldn't necessarily be relied upon.

If you don't have the time, let me know; I could be motivated to turn this issue into a PR for my current use case.

Thanks!

@Grissess
Copy link
Author

Ah, the Decomposition class wasn't linked from the main documentation--it appears the xGETRF half is already implemented. I still don't see the xGETRS, unfortunately, nor do I see any other fast way to get quick solutions for (two) triangular matrices. Given that the necessary substitution is fairly trivial, it might not actually be worth the JNI boundary cost, but I'd still consider adding it for completeness. At the very least, this will make for a working prototype :)

@mikiobraun mikiobraun added the accepted This sounds like something to look into. label Aug 25, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
accepted This sounds like something to look into.
Projects
None yet
Development

No branches or pull requests

2 participants