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 an example to perform a QR factorization without storing Q #88

Open
amontoison opened this issue Apr 16, 2024 · 6 comments
Open

Add an example to perform a QR factorization without storing Q #88

amontoison opened this issue Apr 16, 2024 · 6 comments
Assignees

Comments

@amontoison
Copy link
Member

amontoison commented Apr 16, 2024

It's relevant when we want to solve AA'x = b <=> R'Rx = b with A' = QR.

@dpo
Copy link
Member

dpo commented Apr 29, 2024

When you solve either AA'x = b or A'Ax = A'b with Q-less QR, you have to perform one step of iterative refinement for the method to be backward stable. Do you think it would make sense to add functions in this module to perform the whole procedure (factorization + solve + iterative refinement)?

@amontoison
Copy link
Member Author

amontoison commented Apr 29, 2024

Yes, we should add new functions for that.

I also think we should incorporate a generic API (cholesky, qr, lq, \, ldiv!) for the spmat type.
I implemented this for CuSparseMatrixCSR in CUDSS.jl, which greatly simplifies tasks for the user: https://github.com/exanauts/CUDSS.jl/blob/main/src/generic.jl

We can introduce a keyword argument seminormal (or something similar) when creating a spmat to indicate that we want to solve systems with AA' or A'A.
The \ operation will then handle the entire procedure for us (factorization + solve + iterative refinement).

@amontoison
Copy link
Member Author

@abuttari
Alfredo, do you have an option to perform iterative refinement during the solve phase in qr_mumps?

@abuttari
Copy link
Contributor

@abuttari Alfredo, do you have an option to perform iterative refinement during the solve phase in qr_mumps?

nope, no iterative refinement in qr_mumps currently but shouldn't take too long to add.

@dpo
Copy link
Member

dpo commented Apr 29, 2024

We could simply do it in Julia. It’s not strictly necessary to add it to QRMumps itself, unless you want to.

@MaxenceGollier
Copy link
Contributor

I added said documentation in PR #105, I don't use iterative refinement though, let me know if I should add it to the tutorial.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants