35 #ifndef TEMPLATE_LAPACK_LARRB_HEADER
36 #define TEMPLATE_LAPACK_LARRB_HEADER
41 integer *offset, Treal *w, Treal *wgap, Treal *werr,
42 Treal *work,
integer *iwork, Treal *pivmin, Treal *
50 integer i__, k, r__, i1, ii, ip;
51 Treal gap, mid, tmp, back, lgap, rgap,
left;
53 Treal cvrgd,
right, width;
187 mnwdth = *pivmin * 2.;
190 if (r__ < 1 || r__ > *n) {
206 rgap = wgap[i1 - *offset];
208 for (i__ = i1; i__ <= i__1; ++i__) {
211 left = w[ii] - werr[ii];
212 right = w[ii] + werr[ii];
224 if (negcnt > i__ - 1) {
246 d__1 = *rtol1 * gap, d__2 = *rtol2 * tmp;
248 if (width <= cvrgd || width <= mnwdth) {
255 if (i__ == i1 && i__ < *ilast) {
258 if (prev >= i1 && i__ <= *ilast) {
259 iwork[(prev << 1) - 1] = i__ + 1;
265 iwork[k - 1] = i__ + 1;
282 for (ip = 1; ip <= i__1; ++ip) {
294 mid = (left +
right) * .5;
301 d__1 = *rtol1 * gap, d__2 = *rtol2 * tmp;
303 if (width <= cvrgd || width <= mnwdth || iter == maxitr) {
313 iwork[(prev << 1) - 1] = next;
324 if (negcnt <= i__ - 1) {
337 if (nint > 0 && iter <= maxitr) {
344 for (i__ = *ifirst; i__ <= i__1; ++i__) {
348 if (iwork[k - 1] == 0) {
349 w[ii] = (work[k - 1] + work[k]) * .5;
350 werr[ii] = work[k] - w[ii];
356 for (i__ = *ifirst + 1; i__ <= i__1; ++i__) {
360 d__1 = 0., d__2 = w[ii] - werr[ii] - w[ii - 1] - werr[ii - 1];