1 #include "gmx_lapack.h"
4 F77_FUNC(sgebd2,SGEBD2)(int *m,
21 /* reduce to upper bidiag. form */
24 i2 = ( (i+1) < (*m-1)) ? (i+1) : (*m-1);
26 F77_FUNC(slarfg,SLARFG)(&i1,&(a[i*(*lda)+i]),&(a[i*(*lda)+i2]),&i3,&(tauq[i]));
30 F77_FUNC(slarf,SLARF)("L",&i1,&i2,&(a[i*(*lda)+i]),&i3,&(tauq[i]),&(a[(i+1)*(*lda)+i]),lda,work);
36 i2 = ( (i+2) < (*n-1)) ? (i+2) : (*n-1);
37 F77_FUNC(slarfg,SLARFG)(&i1,&(a[(i+1)*(*lda)+i]),&(a[i2*(*lda)+i]),lda,&(taup[i]));
39 e[i] = a[(i+1)*(*lda)+i];
40 a[(i+1)*(*lda)+i] = 1.0;
44 F77_FUNC(slarf,SLARF)("R",&i1,&i2,&(a[(i+1)*(*lda)+i]),lda,&(taup[i]),&(a[(i+1)*(*lda)+i+1]),lda,work);
45 a[(i+1)*(*lda)+i] = e[i];
50 /* reduce to lower bidiag. form */
53 i2 = ( (i+1) < (*n-1)) ? (i+1) : (*n-1);
55 F77_FUNC(slarfg,SLARFG)(&i1,&(a[i*(*lda)+i]),&(a[i2*(*lda)+i]),lda,&(taup[i]));
60 i3 = ( (i+1) < (*m-1)) ? (i+1) : (*m-1);
61 F77_FUNC(slarf,SLARF)("R",&i2,&i1,&(a[i*(*lda)+i]),lda,&(taup[i]),&(a[(i)*(*lda)+i3]),lda,work);
67 i2 = ( (i+2) < (*m-1)) ? (i+2) : (*m-1);
69 F77_FUNC(slarfg,SLARFG)(&i1,&(a[(i)*(*lda)+i+1]),&(a[i*(*lda)+i2]),&i3,&(tauq[i]));
71 e[i] = a[(i)*(*lda)+i+1];
72 a[(i)*(*lda)+i+1] = 1.0;
77 F77_FUNC(slarf,SLARF)("L",&i1,&i2,&(a[(i)*(*lda)+i+1]),&i3,&(tauq[i]),&(a[(i+1)*(*lda)+i+1]),lda,work);
78 a[(i)*(*lda)+i+1] = e[i];