37 #ifndef TEMPLATE_LAPACK_LARRB_HEADER
38 #define TEMPLATE_LAPACK_LARRB_HEADER
47 integer *offset, Treal *w, Treal *wgap, Treal *werr,
48 Treal *work,
integer *iwork, Treal *pivmin, Treal *
56 integer i__, k, r__, i1, ii, ip;
57 Treal gap, mid, tmp, back, lgap, rgap,
left;
59 Treal cvrgd,
right, width;
193 mnwdth = *pivmin * 2.;
196 if (r__ < 1 || r__ > *n) {
212 rgap = wgap[i1 - *offset];
214 for (i__ = i1; i__ <= i__1; ++i__) {
217 left = w[ii] - werr[ii];
218 right = w[ii] + werr[ii];
230 if (negcnt > i__ - 1) {
252 d__1 = *rtol1 * gap, d__2 = *rtol2 * tmp;
254 if (width <= cvrgd || width <= mnwdth) {
261 if (i__ == i1 && i__ < *ilast) {
264 if (prev >= i1 && i__ <= *ilast) {
265 iwork[(prev << 1) - 1] = i__ + 1;
271 iwork[k - 1] = i__ + 1;
288 for (ip = 1; ip <= i__1; ++ip) {
307 d__1 = *rtol1 * gap, d__2 = *rtol2 * tmp;
309 if (width <= cvrgd || width <= mnwdth || iter == maxitr) {
319 iwork[(prev << 1) - 1] = next;
330 if (negcnt <= i__ - 1) {
343 if (nint > 0 && iter <= maxitr) {
350 for (i__ = *ifirst; i__ <= i__1; ++i__) {
354 if (iwork[k - 1] == 0) {
355 w[ii] = (work[k - 1] + work[k]) * .5;
356 werr[ii] = work[k] - w[ii];
362 for (i__ = *ifirst + 1; i__ <= i__1; ++i__) {
366 d__1 = 0., d__2 = w[ii] - werr[ii] - w[ii - 1] - werr[ii - 1];