update linalg to version 1.4 corresponding to LAPACK 3.12.1
This commit is contained in:
@ -27,11 +27,9 @@ int dlaqr3_(logical *wantt, logical *wantz, integer *n, integer *ktop, integer *
|
||||
integer lwk1, lwk2, lwk3;
|
||||
doublereal beta;
|
||||
integer kend, kcol, info, nmin, ifst, ilst, ltop, krow;
|
||||
extern int dlarf_(char *, integer *, integer *, doublereal *, integer *, doublereal *,
|
||||
doublereal *, integer *, doublereal *, ftnlen),
|
||||
dgemm_(char *, char *, integer *, integer *, integer *, doublereal *, doublereal *,
|
||||
integer *, doublereal *, integer *, doublereal *, doublereal *, integer *, ftnlen,
|
||||
ftnlen);
|
||||
extern int dgemm_(char *, char *, integer *, integer *, integer *, doublereal *, doublereal *,
|
||||
integer *, doublereal *, integer *, doublereal *, doublereal *, integer *,
|
||||
ftnlen, ftnlen);
|
||||
logical bulge;
|
||||
extern int dcopy_(integer *, doublereal *, integer *, doublereal *, integer *);
|
||||
integer infqr, kwtop;
|
||||
@ -39,8 +37,7 @@ int dlaqr3_(logical *wantt, logical *wantz, integer *n, integer *ktop, integer *
|
||||
doublereal *, doublereal *, doublereal *, doublereal *, doublereal *),
|
||||
dlaqr4_(logical *, logical *, integer *, integer *, integer *, doublereal *, integer *,
|
||||
doublereal *, doublereal *, integer *, integer *, doublereal *, integer *,
|
||||
doublereal *, integer *, integer *),
|
||||
dlabad_(doublereal *, doublereal *);
|
||||
doublereal *, integer *, integer *);
|
||||
extern doublereal dlamch_(char *, ftnlen);
|
||||
extern int dgehrd_(integer *, integer *, integer *, doublereal *, integer *, doublereal *,
|
||||
doublereal *, integer *, integer *),
|
||||
@ -63,6 +60,8 @@ int dlaqr3_(logical *wantt, logical *wantz, integer *n, integer *ktop, integer *
|
||||
ftnlen);
|
||||
logical sorted;
|
||||
doublereal smlnum;
|
||||
extern int dlarf1f_(char *, integer *, integer *, doublereal *, integer *, doublereal *,
|
||||
doublereal *, integer *, doublereal *, ftnlen);
|
||||
integer lwkopt;
|
||||
h_dim1 = *ldh;
|
||||
h_offset = 1 + h_dim1;
|
||||
@ -115,7 +114,6 @@ int dlaqr3_(logical *wantt, logical *wantz, integer *n, integer *ktop, integer *
|
||||
}
|
||||
safmin = dlamch_((char *)"SAFE MINIMUM", (ftnlen)12);
|
||||
safmax = 1. / safmin;
|
||||
dlabad_(&safmin, &safmax);
|
||||
ulp = dlamch_((char *)"PRECISION", (ftnlen)9);
|
||||
smlnum = safmin * ((doublereal)(*n) / ulp);
|
||||
i__1 = *nw, i__2 = *kbot - *ktop + 1;
|
||||
@ -299,15 +297,15 @@ L60:
|
||||
dcopy_(ns, &v[v_offset], ldv, &work[1], &c__1);
|
||||
beta = work[1];
|
||||
dlarfg_(ns, &beta, &work[2], &c__1, &tau);
|
||||
work[1] = 1.;
|
||||
i__1 = jw - 2;
|
||||
i__2 = jw - 2;
|
||||
dlaset_((char *)"L", &i__1, &i__2, &c_b17, &c_b17, &t[t_dim1 + 3], ldt, (ftnlen)1);
|
||||
dlarf_((char *)"L", ns, &jw, &work[1], &c__1, &tau, &t[t_offset], ldt, &work[jw + 1],
|
||||
(ftnlen)1);
|
||||
dlarf_((char *)"R", ns, ns, &work[1], &c__1, &tau, &t[t_offset], ldt, &work[jw + 1], (ftnlen)1);
|
||||
dlarf_((char *)"R", &jw, ns, &work[1], &c__1, &tau, &v[v_offset], ldv, &work[jw + 1],
|
||||
(ftnlen)1);
|
||||
dlarf1f_((char *)"L", ns, &jw, &work[1], &c__1, &tau, &t[t_offset], ldt, &work[jw + 1],
|
||||
(ftnlen)1);
|
||||
dlarf1f_((char *)"R", ns, ns, &work[1], &c__1, &tau, &t[t_offset], ldt, &work[jw + 1],
|
||||
(ftnlen)1);
|
||||
dlarf1f_((char *)"R", &jw, ns, &work[1], &c__1, &tau, &v[v_offset], ldv, &work[jw + 1],
|
||||
(ftnlen)1);
|
||||
i__1 = *lwork - jw;
|
||||
dgehrd_(&jw, &c__1, ns, &t[t_offset], ldt, &work[1], &work[jw + 1], &i__1, &info);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user