35 #ifndef TEMPLATE_LAPACK_STEVX_HEADER 36 #define TEMPLATE_LAPACK_STEVX_HEADER 41 d__, Treal *e,
const Treal *vl,
const Treal *vu,
const integer *il,
175 integer z_dim1, z_offset, i__1, i__2;
179 Treal rmin, rmax, tnrm;
194 Treal smlnum, eps, vll, vuu, tmp1;
195 #define z___ref(a_1,a_2) z__[(a_2)*z_dim1 + a_1] 202 z_offset = 1 + z_dim1 * 1;
217 }
else if (! (alleig || valeig || indeig)) {
223 if (*n > 0 && *vu <= *vl) {
227 if (*il < 1 || *il >
maxMACRO(1,*n)) {
229 }
else if (*iu <
minMACRO(*n,*il) || *iu > *n) {
235 if (*ldz < 1 || (wantz && *ldz < *n) ) {
254 if (alleig || indeig) {
258 if (*vl < d__[1] && *vu >= d__[1]) {
273 smlnum = safmin / eps;
274 bignum = 1. / smlnum;
291 if (tnrm > 0. && tnrm < rmin) {
294 }
else if (tnrm > rmax) {
312 if ((alleig || (indeig && *il == 1 && *iu == *n) ) && *abstol <= 0.) {
324 for (i__ = 1; i__ <= i__1; ++i__) {
340 *(
unsigned char *)order =
'B';
342 *(
unsigned char *)order =
'E';
346 indisp = indibl + *n;
347 indiwo = indisp + *n;
348 template_lapack_stebz(range, order, n, &vll, &vuu, il, iu, abstol, &d__[1], &e[1], m, &
349 nsplit, &w[1], &iwork[indibl], &iwork[indisp], &work[indwrk], &
350 iwork[indiwo], info);
354 z__[z_offset], ldz, &work[indwrk], &iwork[indiwo], &ifail[1],
376 for (j = 1; j <= i__1; ++j) {
380 for (jj = j + 1; jj <= i__2; ++jj) {
389 itmp1 = iwork[indibl + i__ - 1];
391 iwork[indibl + i__ - 1] = iwork[indibl + j - 1];
393 iwork[indibl + j - 1] = itmp1;
397 ifail[i__] = ifail[j];
int template_blas_scal(const integer *n, const Treal *da, Treal *dx, const integer *incx)
Definition: template_blas_scal.h:41
int integer
Definition: template_blas_common.h:38
#define maxMACRO(a, b)
Definition: template_blas_common.h:43
#define minMACRO(a, b)
Definition: template_blas_common.h:44
int template_lapack_stebz(const char *range, const char *order, const integer *n, const Treal *vl, const Treal *vu, const integer *il, const integer *iu, const Treal *abstol, const Treal *d__, const Treal *e, integer *m, integer *nsplit, Treal *w, integer *iblock, integer *isplit, Treal *work, integer *iwork, integer *info)
Definition: template_lapack_stebz.h:40
int template_lapack_steqr(const char *compz, const integer *n, Treal *d__, Treal *e, Treal *z__, const integer *ldz, Treal *work, integer *info)
Definition: template_lapack_steqr.h:40
int template_blas_erbla(const char *srname, integer *info)
Definition: template_blas_common.cc:144
int template_blas_swap(const integer *n, Treal *dx, const integer *incx, Treal *dy, const integer *incy)
Definition: template_blas_swap.h:40
#define z___ref(a_1, a_2)
int template_lapack_stein(const integer *n, const Treal *d__, const Treal *e, const integer *m, const Treal *w, const integer *iblock, const integer *isplit, Treal *z__, const integer *ldz, Treal *work, integer *iwork, integer *ifail, integer *info)
Definition: template_lapack_stein.h:40
Treal template_lapack_lamch(const char *cmach, Treal dummyReal)
Definition: template_lapack_lamch.h:199
bool logical
Definition: template_blas_common.h:39
int template_blas_copy(const integer *n, const Treal *dx, const integer *incx, Treal *dy, const integer *incy)
Definition: template_blas_copy.h:40
int template_lapack_sterf(const integer *n, Treal *d__, Treal *e, integer *info)
Definition: template_lapack_sterf.h:41
Treal template_lapack_lanst(const char *norm, const integer *n, const Treal *d__, const Treal *e)
Definition: template_lapack_lanst.h:40
Treal template_blas_sqrt(Treal x)
logical template_blas_lsame(const char *ca, const char *cb)
Definition: template_blas_common.cc:44
int template_lapack_stevx(const char *jobz, const char *range, const integer *n, Treal *d__, Treal *e, const Treal *vl, const Treal *vu, const integer *il, const integer *iu, const Treal *abstol, integer *m, Treal *w, Treal *z__, const integer *ldz, Treal *work, integer *iwork, integer *ifail, integer *info)
Definition: template_lapack_stevx.h:40