- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I use LAPACK_dgeqrf to compute QR factorization and this one returns a compact representation in which the Q is not formed explicitly (I believe is in the WY compact form), then I use the documented two methods to use such compact QR to solve systems of equations.
I found an algorithm that updates the QR when blocks of rows are added to the corresponding matrix but this algorithm gives back a Q and R explicitly. Now I need to convert these explicitly formed Q and R into the compact form needed to interface with MKL or LAPACK.
Are there helper MKL functions to create the compact representation given the explicit Q and R?
TIA,
Best regards,
Giovanni
Link Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Giovanni,
You could obtain the WY representation of explicitly formed Q by running DGEQRF on the Q. It will return you R equal to identity matrix and the same Q butin the compact form.
W.B.R.,
Alexander
You could obtain the WY representation of explicitly formed Q by running DGEQRF on the Q. It will return you R equal to identity matrix and the same Q butin the compact form.
W.B.R.,
Alexander
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Alexander,
Thank you, that's smart :) a good tip indeed but I meant implicitly not having to recompute the QR from scratch. In any case I understood the in and outs of the representation so I would be able to modify it myself directly with updates i.e.
upper trapezoidal: R (including the diagonal)
lower: the householder/givens rotator column vectors v_i
tau: the householder coeffiencients t_i
I can build H = I - t_i*(v_i*v_i') this last bit is an outer product that makes a matrix.
I kind of started to understand how to manually update the QR addrows, addcols, delcols. My problem is translating whatever algorithm I can think of into something that can be most efficiently integrated with MKL.
There are some implementations I know:
http://www.maths.manchester.ac.uk/~clucas/updating/
but have had trouble integrating it, and besides they are general and my case is simpler e.g. my addcols is always append column at the end.
Best regards,
Giovanni
Thank you, that's smart :) a good tip indeed but I meant implicitly not having to recompute the QR from scratch. In any case I understood the in and outs of the representation so I would be able to modify it myself directly with updates i.e.
upper trapezoidal: R (including the diagonal)
lower: the householder/givens rotator column vectors v_i
tau: the householder coeffiencients t_i
I can build H = I - t_i*(v_i*v_i') this last bit is an outer product that makes a matrix.
I kind of started to understand how to manually update the QR addrows, addcols, delcols. My problem is translating whatever algorithm I can think of into something that can be most efficiently integrated with MKL.
There are some implementations I know:
http://www.maths.manchester.ac.uk/~clucas/updating/
but have had trouble integrating it, and besides they are general and my case is simpler e.g. my addcols is always append column at the end.
Best regards,
Giovanni
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page