-
Notifications
You must be signed in to change notification settings - Fork 9
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
Make QRPivotedWs compatible with ormqr! #18
Comments
Hi, Fantastic that the package is of use to you! If what I found here is the correct way, then I think that should be very straightforward and I'll implement it shortly. I'm not that well versed in using these methods myself, would the Compact QRWYWs also work similarly? Or would it use a different lapack function? Cheers, |
Thank you for responding and sorry about taking so long to respond, I have been traveling. |
Hi again, I think #24 should have taken care of everything here. I'm not sure that QRWYWs would have worked too since it uses a matrix rather than a vector for the representation of Q. If not, feel free to open a PR with the right implementation. Thanks again for the interest and input, it's very valuable to us! |
Thank you so much for doing that, and I am sorry it took me so long to respond! I will test it out, but looking at what you did I think this is exactly what I need! |
Your implementation works beautifully for real numbers. QRws = QRPivotedWs(B) I get the following error message:
I believe an additional temporary array is required when calling |
Interesting, I will investigate. |
Thanks for fixing that! |
Thanks @cohensbw I'm happy that our package is useful to you! I'm curious why do you need numerically stable algorithms in your field: very big matrices? A mix of very small and very large quantities? |
Your second guess it essentially correct. In determinant quantum Monte Carlo (DQMC) simulations we need to multiply long chains of matrices together, and information about the small numbers is lost, and that information is important to retain, as we need to invert the sums of these long matrix products. There is actually another Julia package very (very) similar to mine that exports almost the same functionality: However, for various reasons (including eliminating dynamic memory allocations) I decided to implement my own version. |
Excellent! Thanks for the background information. |
That is fantastic @cohensbw, I'm a physicist myself working on stuff not too far removed from your field (i'm doing magnetism, multiferroics, etc. from first principles). |
I was thrilled when I discovered your package, exactly what I was looking for!
Great docs and super easy to use, I definitely plan on using it in some of my future projects!
For one of the project I am currently working on I need to call
geqp3!
and thenormqr!
(ororgqr!
instead) afterwards to construct construct the Q matrix.How challenging would it be to make it so that the
QRPivotedWs
workspace is compatible withormqr!
(ororgqr!
)?One idea would also be make something like
abstract type QRWorkspace <: Workspace end
, and then create a version oformqr!
(ororgqr!
) that take any inherited type fromQRWorkspace
as an argument?Just wanted to say again, I really like your package and how well you have documented it, so thank you for developing it!
The text was updated successfully, but these errors were encountered: