update to LAPACK 3.12
This commit is contained in:
@ -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;
|
||||
|
||||
Reference in New Issue
Block a user