1 #include "gmx_lapack.h"
4 F77_FUNC(dgebd2,DGEBD2)(int *m,
20 /* reduce to upper bidiag. form */
23 i2 = ( (i+1) < (*m-1)) ? (i+1) : (*m-1);
25 F77_FUNC(dlarfg,DLARFG)(&i1,&(a[i*(*lda)+i]),&(a[i*(*lda)+i2]),&i3,&(tauq[i]));
29 F77_FUNC(dlarf,DLARF)("L",&i1,&i2,&(a[i*(*lda)+i]),&i3,&(tauq[i]),&(a[(i+1)*(*lda)+i]),lda,work);
35 i2 = ( (i+2) < (*n-1)) ? (i+2) : (*n-1);
36 F77_FUNC(dlarfg,DLARFG)(&i1,&(a[(i+1)*(*lda)+i]),&(a[i2*(*lda)+i]),lda,&(taup[i]));
38 e[i] = a[(i+1)*(*lda)+i];
39 a[(i+1)*(*lda)+i] = 1.0;
43 F77_FUNC(dlarf,DLARF)("R",&i1,&i2,&(a[(i+1)*(*lda)+i]),lda,&(taup[i]),&(a[(i+1)*(*lda)+i+1]),lda,work);
44 a[(i+1)*(*lda)+i] = e[i];
49 /* reduce to lower bidiag. form */
52 i2 = ( (i+1) < (*n-1)) ? (i+1) : (*n-1);
54 F77_FUNC(dlarfg,DLARFG)(&i1,&(a[i*(*lda)+i]),&(a[i2*(*lda)+i]),lda,&(taup[i]));
59 i3 = ( (i+1) < (*m-1)) ? (i+1) : (*m-1);
60 F77_FUNC(dlarf,DLARF)("R",&i2,&i1,&(a[i*(*lda)+i]),lda,&(taup[i]),&(a[(i)*(*lda)+i3]),lda,work);
66 i2 = ( (i+2) < (*m-1)) ? (i+2) : (*m-1);
68 F77_FUNC(dlarfg,DLARFG)(&i1,&(a[(i)*(*lda)+i+1]),&(a[i*(*lda)+i2]),&i3,&(tauq[i]));
70 e[i] = a[(i)*(*lda)+i+1];
71 a[(i)*(*lda)+i+1] = 1.0;
76 F77_FUNC(dlarf,DLARF)("L",&i1,&i2,&(a[(i)*(*lda)+i+1]),&i3,&(tauq[i]),&(a[(i+1)*(*lda)+i+1]),lda,work);
77 a[(i)*(*lda)+i+1] = e[i];