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
];