37 #ifndef TEMPLATE_LAPACK_STERF_HEADER 38 #define TEMPLATE_LAPACK_STERF_HEADER 93 Treal d__1, d__2, d__3;
99 Treal p, gamma, r__, s, alpha, sigma, anorm;
103 Treal oldgam, safmin;
108 Treal ssfmax, rt1, rt2, eps, rte;
138 safmax = 1. / safmin;
162 for (m = l1; m <= i__1; ++m) {
187 if (anorm > ssfmax) {
195 }
else if (anorm < ssfmin) {
206 for (i__ = l; i__ <= i__1; ++i__) {
209 e[i__] = d__1 * d__1;
229 for (m = l; m <= i__1; ++m) {
230 if ((d__2 = e[m],
absMACRO(d__2)) <= eps2 * (d__1 = d__[m] * d__[m
264 if (jtot == nmaxit) {
272 sigma = (d__[l + 1] - p) / (rte * 2.);
278 gamma = d__[m] - sigma;
284 for (i__ = m - 1; i__ >= i__1; --i__) {
288 e[i__ + 1] = s * r__;
295 gamma = c__ * (alpha - sigma) - s * oldgam;
296 d__[i__ + 1] = oldgam + (alpha - gamma);
298 p = gamma * gamma / c__;
306 d__[l] = sigma + gamma;
328 for (m = l; m >= i__1; --m) {
329 if ((d__2 = e[m - 1],
absMACRO(d__2)) <= eps2 * (d__1 = d__[m] * d__[m
362 if (jtot == nmaxit) {
370 sigma = (d__[l - 1] - p) / (rte * 2.);
376 gamma = d__[m] - sigma;
382 for (i__ = m; i__ <= i__1; ++i__) {
386 e[i__ - 1] = s * r__;
392 alpha = d__[i__ + 1];
393 gamma = c__ * (alpha - sigma) - s * oldgam;
394 d__[i__] = oldgam + (alpha - gamma);
396 p = gamma * gamma / c__;
404 d__[l] = sigma + gamma;
424 i__1 = lendsv - lsv + 1;
429 i__1 = lendsv - lsv + 1;
441 for (i__ = 1; i__ <= i__1; ++i__) {
#define absMACRO(x)
Definition: template_blas_common.h:47
int template_lapack_lascl(const char *type__, const integer *kl, const integer *ku, const Treal *cfrom, const Treal *cto, const integer *m, const integer *n, Treal *a, const integer *lda, integer *info)
Definition: template_lapack_lascl.h:42
int integer
Definition: template_blas_common.h:40
Treal template_lapack_lapy2(Treal *x, Treal *y)
Definition: template_lapack_lapy2.h:42
int template_lapack_lasrt(const char *id, const integer *n, Treal *d__, integer *info)
Definition: template_lapack_lasrt.h:42
Treal template_lapack_d_sign(const Treal *a, const Treal *b)
Definition: template_lapack_lamch.h:48
int template_blas_erbla(const char *srname, integer *info)
Definition: template_blas_common.cc:146
Treal template_lapack_lamch(const char *cmach, Treal dummyReal)
Definition: template_lapack_lamch.h:202
int template_lapack_sterf(const integer *n, Treal *d__, Treal *e, integer *info)
Definition: template_lapack_sterf.h:43
int template_lapack_lae2(const Treal *a, const Treal *b, const Treal *c__, Treal *rt1, Treal *rt2)
Definition: template_lapack_lae2.h:42
Treal template_lapack_lanst(const char *norm, const integer *n, const Treal *d__, const Treal *e)
Definition: template_lapack_lanst.h:42
Treal template_blas_sqrt(Treal x)