update to LAPACK 3.12

This commit is contained in:
Axel Kohlmeyer
2023-11-24 15:29:14 -05:00
parent 33dcfb5390
commit 2a1af662d4
15 changed files with 109 additions and 103 deletions

View File

@ -20,6 +20,7 @@ int dgecon_(char *norm, integer *n, doublereal *a, integer *lda, doublereal *ano
integer *);
extern doublereal dlamch_(char *, ftnlen);
extern integer idamax_(integer *, doublereal *, integer *);
extern logical disnan_(doublereal *);
extern int xerbla_(char *, integer *, ftnlen);
doublereal ainvnm;
extern int dlatrs_(char *, char *, char *, char *, integer *, doublereal *, integer *,
@ -27,12 +28,13 @@ int dgecon_(char *norm, integer *n, doublereal *a, integer *lda, doublereal *ano
ftnlen);
logical onenrm;
char normin[1];
doublereal smlnum;
doublereal smlnum, hugeval;
a_dim1 = *lda;
a_offset = 1 + a_dim1;
a -= a_offset;
--work;
--iwork;
hugeval = dlamch_((char *)"Overflow", (ftnlen)8);
*info = 0;
onenrm = *(unsigned char *)norm == '1' || lsame_(norm, (char *)"O", (ftnlen)1, (ftnlen)1);
if (!onenrm && !lsame_(norm, (char *)"I", (ftnlen)1, (ftnlen)1)) {
@ -55,6 +57,13 @@ int dgecon_(char *norm, integer *n, doublereal *a, integer *lda, doublereal *ano
return 0;
} else if (*anorm == 0.) {
return 0;
} else if (disnan_(anorm)) {
*rcond = *anorm;
*info = -5;
return 0;
} else if (*anorm > hugeval) {
*info = -5;
return 0;
}
smlnum = dlamch_((char *)"Safe minimum", (ftnlen)12);
ainvnm = 0.;
@ -92,6 +101,12 @@ L10:
}
if (ainvnm != 0.) {
*rcond = 1. / ainvnm / *anorm;
} else {
*info = 1;
return 0;
}
if (disnan_(rcond) || *rcond > hugeval) {
*info = 1;
}
L20:
return 0;