I take a matrix as following and do dgeqrt
A = 0.1029 0.0322 0.0543 -0.0907
-0.0756 -0.0338 -0.0896 0.0760
-0.0412 0.0034 0.0267 -0.0858
0.0671 0.1131 -0.1209 -0.0248
then I updated value of A is following
A = 0.1500 0.0888 0.0210 -0.0881
1.6056 0.0842 -0.1267 -0.0091
0.8747 -1.9381 0.0991 -0.1043
-1.4239 -1.1942 0.6984 0.0573
Now when I apply the reflectors generated in the previous step using dlarfb on a matrix whose values is same as initial value of A
i.e.
B = 0.1029 0.0322 0.0543 -0.0907
-0.0756 -0.0338 -0.0896 0.0760
-0.0412 0.0034 0.0267 -0.0858
0.0671 0.1131 -0.1209 -0.0248
B after dlarfb
Q.B= 0.150005 0.088763 0.021032 -0.088050
-0.000000 0.084232 -0.126670 -0.009072
-0.000000 -0.000000 0.099144 -0.104275
0.000000 0.000000 0.000000 -0.057265
So it is expected that all entry above and on diagonal of A and B should be same , Since its the same transform in the both case. But if see the B(4,4) and A(4,4) they have different signs. I've following things to ask
1. I've tried it many data sets for n=4,n=5 and it seems only in some cases above kind of error occures. So I'm not able to decide which of the two dlarfb or dgeqrt has bug.
2. what is relative cost of dgeqrf->dorgqr->dormqr Vs. dgeqrt->dlarfb given that I've to do dgeqrt ones and apply the same in many blocks using dlarfb.
Following are details of passed arguments to dlarfb
char SIDE = 'L', TRANS='T', DIRECT='F', STOREV='C';
int K=3, LDV=4, LDWORK=4,LDC=4;

