37 #ifndef TEMPLATE_LAPACK_STEBZ_HEADER
38 #define TEMPLATE_LAPACK_STEBZ_HEADER
43 *vl,
const Treal *vu,
const integer *il,
const integer *iu,
const Treal *abstol,
218 Treal d__1, d__2, d__3, d__4, d__5;
220 integer iend, ioff, iout, itmp1, j, jdisc;
226 Treal wkill, rtoli, tnorm;
286 }
else if (iorder <= 0) {
290 }
else if (irange == 2) {
294 }
else if (irange == 3 && (*il < 1 || *il >
maxMACRO(1,*n))) {
296 }
else if (irange == 3 && (*iu <
minMACRO(*n,*il) || *iu > *n)) {
321 if (irange == 3 && *il == 1 && *iu == *n) {
343 if (irange == 2 && (*vl >= d__[1] || *vu < d__[1])) {
361 for (j = 2; j <= i__1; ++j) {
367 if ((d__1 = d__[j] * d__[j - 1],
absMACRO(d__1)) * (d__2 * d__2) + safemn
369 isplit[*nsplit] = j - 1;
378 isplit[*nsplit] = *n;
396 for (j = 1; j <= i__1; ++j) {
399 d__1 =
gu, d__2 = d__[j] + tmp1 + tmp2;
402 d__1 = gl, d__2 = d__[j] - tmp1 - tmp2;
409 d__1 =
gu, d__2 = d__[*n] + tmp1;
412 d__1 = gl, d__2 = d__[*n] - tmp1;
417 gl = gl - tnorm * 2. * ulp * *n - pivmin * 4.;
418 gu =
gu + tnorm * 2. * ulp * *n + pivmin * 2.;
443 &d__[1], &e[1], &work[1], &iwork[5], &work[*n + 1], &work[*n
444 + 5], &iout, &iwork[1], &w[1], &iblock[1], &iinfo);
446 if (iwork[6] == *iu) {
462 if (nwl < 0 || nwl >= *n || nwu < 1 || nwu > *n) {
476 for (j = 2; j <= i__1; ++j) {
478 d__4 = tnorm, d__5 = (d__1 = d__[j],
absMACRO(d__1)) + (d__2 = e[j - 1]
510 for (jb = 1; jb <= i__1; ++jb) {
520 if (irange == 1 || wl >= d__[ibegin] - pivmin) {
523 if (irange == 1 || wu >= d__[ibegin] - pivmin) {
526 if (irange == 1 || ( wl < d__[ibegin] - pivmin && wu >= d__[ibegin]
544 for (j = ibegin; j <= i__2; ++j) {
545 tmp2 = (d__1 = e[j],
absMACRO(d__1));
547 d__1 =
gu, d__2 = d__[j] + tmp1 + tmp2;
550 d__1 = gl, d__2 = d__[j] - tmp1 - tmp2;
557 d__1 =
gu, d__2 = d__[iend] + tmp1;
560 d__1 = gl, d__2 = d__[iend] - tmp1;
565 gl = gl - bnorm * 2. * ulp * in - pivmin * 2.;
566 gu =
gu + bnorm * 2. * ulp * in + pivmin * 2.;
594 work[*n + in + 1] =
gu;
596 pivmin, &d__[ibegin], &e[ibegin], &work[ibegin], idumma, &
597 work[*n + 1], &work[*n + (in << 1) + 1], &im, &iwork[1], &
598 w[*m + 1], &iblock[*m + 1], &iinfo);
601 nwu += iwork[in + 1];
602 iwoff = *m - iwork[1];
609 pivmin, &d__[ibegin], &e[ibegin], &work[ibegin], idumma, &
610 work[*n + 1], &work[*n + (in << 1) + 1], &iout, &iwork[1],
611 &w[*m + 1], &iblock[*m + 1], &iinfo);
617 for (j = 1; j <= i__2; ++j) {
618 tmp1 = (work[j + *n] + work[j + in + *n]) * .5;
622 if (j > iout - iinfo) {
628 i__3 = iwork[j + in] + iwoff;
629 for (je = iwork[j] + 1 + iwoff; je <= i__3; ++je) {
648 idiscl = *il - 1 - nwl;
651 if (idiscl > 0 || idiscu > 0) {
653 for (je = 1; je <= i__1; ++je) {
654 if (w[je] <= wlu && idiscl > 0) {
656 }
else if (w[je] >= wul && idiscu > 0) {
661 iblock[im] = iblock[je];
667 if (idiscl > 0 || idiscu > 0) {
682 for (jdisc = 1; jdisc <= i__1; ++jdisc) {
685 for (je = 1; je <= i__2; ++je) {
686 if (iblock[je] != 0 && (w[je] < wkill || iw == 0)) {
700 for (jdisc = 1; jdisc <= i__1; ++jdisc) {
703 for (je = 1; je <= i__2; ++je) {
704 if (iblock[je] != 0 && (w[je] > wkill || iw == 0)) {
716 for (je = 1; je <= i__1; ++je) {
717 if (iblock[je] != 0) {
720 iblock[im] = iblock[je];
726 if (idiscl < 0 || idiscu < 0) {
735 if (iorder == 1 && *nsplit > 1) {
737 for (je = 1; je <= i__1; ++je) {
741 for (j = je + 1; j <= i__2; ++j) {
752 iblock[ie] = iblock[je];