37 #ifndef TEMPLATE_LAPACK_STEVX_HEADER 38 #define TEMPLATE_LAPACK_STEVX_HEADER 43 d__, Treal *e,
const Treal *vl,
const Treal *vu,
const integer *il,
177 integer z_dim1, z_offset, i__1, i__2;
181 Treal rmin, rmax, tnrm;
196 Treal smlnum, eps, vll, vuu, tmp1;
197 #define z___ref(a_1,a_2) z__[(a_2)*z_dim1 + a_1] 204 z_offset = 1 + z_dim1 * 1;
219 }
else if (! (alleig || valeig || indeig)) {
225 if (*n > 0 && *vu <= *vl) {
229 if (*il < 1 || *il >
maxMACRO(1,*n)) {
231 }
else if (*iu <
minMACRO(*n,*il) || *iu > *n) {
237 if (*ldz < 1 || (wantz && *ldz < *n) ) {
256 if (alleig || indeig) {
260 if (*vl < d__[1] && *vu >= d__[1]) {
275 smlnum = safmin / eps;
276 bignum = 1. / smlnum;
293 if (tnrm > 0. && tnrm < rmin) {
296 }
else if (tnrm > rmax) {
314 if ((alleig || (indeig && *il == 1 && *iu == *n) ) && *abstol <= 0.) {
326 for (i__ = 1; i__ <= i__1; ++i__) {
342 *(
unsigned char *)order =
'B';
344 *(
unsigned char *)order =
'E';
348 indisp = indibl + *n;
349 indiwo = indisp + *n;
350 template_lapack_stebz(range, order, n, &vll, &vuu, il, iu, abstol, &d__[1], &e[1], m, &
351 nsplit, &w[1], &iwork[indibl], &iwork[indisp], &work[indwrk], &
352 iwork[indiwo], info);
356 z__[z_offset], ldz, &work[indwrk], &iwork[indiwo], &ifail[1],
378 for (j = 1; j <= i__1; ++j) {
382 for (jj = j + 1; jj <= i__2; ++jj) {
391 itmp1 = iwork[indibl + i__ - 1];
393 iwork[indibl + i__ - 1] = iwork[indibl + j - 1];
395 iwork[indibl + j - 1] = itmp1;
399 ifail[i__] = ifail[j];
int template_blas_scal(const integer *n, const Treal *da, Treal *dx, const integer *incx)
Definition: template_blas_scal.h:43
int integer
Definition: template_blas_common.h:40
#define maxMACRO(a, b)
Definition: template_blas_common.h:45
#define minMACRO(a, b)
Definition: template_blas_common.h:46
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:42
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:42
int template_blas_erbla(const char *srname, integer *info)
Definition: template_blas_common.cc:146
int template_blas_swap(const integer *n, Treal *dx, const integer *incx, Treal *dy, const integer *incy)
Definition: template_blas_swap.h:42
#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:42
Treal template_lapack_lamch(const char *cmach, Treal dummyReal)
Definition: template_lapack_lamch.h:202
bool logical
Definition: template_blas_common.h:41
int template_blas_copy(const integer *n, const Treal *dx, const integer *incx, Treal *dy, const integer *incy)
Definition: template_blas_copy.h:42
int template_lapack_sterf(const integer *n, Treal *d__, Treal *e, integer *info)
Definition: template_lapack_sterf.h:43
Treal template_lapack_lanst(const char *norm, const integer *n, const Treal *d__, const Treal *e)
Definition: template_lapack_lanst.h:42
Treal template_blas_sqrt(Treal x)
logical template_blas_lsame(const char *ca, const char *cb)
Definition: template_blas_common.cc:46
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:42