Page 1 of 1

DORMQR operation or flop count

PostPosted: Sat Sep 08, 2012 8:02 am
by bravegag
Hello,

Can anyone please advice what's the flop count of the function DORMQR? Should be the cost of forming Q plus the cost of the MVM applying it to C (2mn).

Any citation to a paper or article discussing this would be greatly appreciated.

TIA,
Best regards,
Giovanni

Re: DORMQR operation or flop count

PostPosted: Sat Sep 08, 2012 11:02 am
by Julien Langou
Hi Giovanni,

Flops count of (sone of the) LAPACK subroutines is given in Appendix C of the Installation Guide for LAPACK, LAPACK Working Note 41, Susan Blackford and Jack Dongarra.
See http://www.netlib.org/lapack/lawnspdf/lawn41.pdf
For DORMQR go and look at the bottom of page 12, you have two cases SIDE=R or SIDE=L.

And FYI, the cost of DORMQR is NOT the cost of DORGQR (generating Q) + the cost of DGEMM (multiplying with Q), it is significantly less.
In particular since you seems to indicate you only have one vector (since you say the multiplication is 2mn) to multiply with, forming the
whole Q would be a big time consumption and a big memory requirement.

Cheers,
Julien.

Re: DORMQR operation or flop count

PostPosted: Tue Sep 11, 2012 7:51 am
by bravegag
Thank you Julien! That's exactly what I was looking for ... and it matches the Golub cost at least for the first term.

Once more your feedback is most helpful!

Best regards,
Giovanni