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];
#define absMACRO(x)
Definition: template_blas_common.h:47
int template_lapack_larrb(integer *n, Treal *d__, Treal *lld, integer *ifirst, integer *ilast, Treal *rtol1, Treal *rtol2, integer *offset, Treal *w, Treal *wgap, Treal *werr, Treal *work, integer *iwork, Treal *pivmin, Treal *spdiam, integer *twist, integer *info)
Definition: template_lapack_larrb.h:45
int integer
Definition: template_blas_common.h:40
#define maxMACRO(a, b)
Definition: template_blas_common.h:45
int template_lapack_laneg(integer *n, Treal *d__, Treal *lld, Treal *sigma, Treal *pivmin, integer *r__)
Definition: template_lapack_laneg.h:45
#define minMACRO(a, b)
Definition: template_blas_common.h:46
Treal template_blas_log(Treal x)