35 #ifndef TEMPLATE_LAPACK_LARRJ_HEADER
36 #define TEMPLATE_LAPACK_LARRJ_HEADER
41 Treal *w, Treal *werr, Treal *work,
integer *iwork,
42 Treal *pivmin, Treal *spdiam,
integer *info)
56 integer iter, nint, prev, next, savi1;
57 Treal
right, width, dplus;
183 for (i__ = i1; i__ <= i__1; ++i__) {
186 left = w[ii] - werr[ii];
188 right = w[ii] + werr[ii];
194 if (width < *rtol * tmp) {
201 if (i__ == i1 && i__ < i2) {
204 if (prev >= i1 && i__ <= i2) {
205 iwork[(prev << 1) - 1] = i__ + 1;
223 for (j = 2; j <= i__2; ++j) {
224 dplus = d__[j] - s - e2[j - 1] / dplus;
231 left -= werr[ii] * fac;
247 for (j = 2; j <= i__2; ++j) {
248 dplus = d__[j] - s - e2[j - 1] / dplus;
255 right += werr[ii] * fac;
260 iwork[k - 1] = i__ + 1;
278 for (p = 1; p <= i__1; ++p) {
284 mid = (left +
right) * .5;
290 if (width < *rtol * tmp || iter == maxitr) {
300 iwork[(prev << 1) - 1] = next;
317 for (j = 2; j <= i__2; ++j) {
318 dplus = d__[j] - s - e2[j - 1] / dplus;
324 if (cnt <= i__ - 1) {
337 if (nint > 0 && iter <= maxitr) {
344 for (i__ = savi1; 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];
#define absMACRO(x)
Definition: template_blas_common.h:45
int integer
Definition: template_blas_common.h:38
#define maxMACRO(a, b)
Definition: template_blas_common.h:43
Treal template_blas_log(Treal x)
int template_lapack_larrj(integer *n, Treal *d__, Treal *e2, integer *ifirst, integer *ilast, Treal *rtol, integer *offset, Treal *w, Treal *werr, Treal *work, integer *iwork, Treal *pivmin, Treal *spdiam, integer *info)
Definition: template_lapack_larrj.h:39