Could some help me on this: I want to perform economy size bidiagonal factorization over a m x n matrix A (m<=n), such that A=QBP' where B is a bidiagonal matrix of size m x m, and Q, P are orthogonal matrices. Currently, I use following two Lapack functions to do the job, from which I can get the factorization A=USV' where S is bidiagonal matrix of size m x n.
dgebrd(&m,&n,x,&m,d,e,tauq,taup,work,&lwork,&info); dorgbr(&qp,&m,&m,&n,x,&m,tauq,work,&lwork,&info);
I can truncate the matrix S and V to get correct B and P. However this is not optimal in term of speed. From my test, this method is even slower than performing a economy size SVD. Which function should I use or how to use them so that I can directly get the economy size result? Thanks in advance.