@@ -191,7 +191,7 @@ typedef struct Namelist Namelist;
191191#define c_cos (R ,Z ) { pCf(R)=ccos(Cf(Z)); }
192192#ifdef _MSC_VER
193193#define c_div (c , a , b ) {Cf(c)._Val[0] = (Cf(a)._Val[0]/Cf(b)._Val[0]); Cf(c)._Val[1]=(Cf(a)._Val[1]/Cf(b)._Val[1]);}
194- #define z_div (c , a , b ) {Cd(c)._Val[0] = (Cd(a)._Val[0]/Cd(b)._Val[0]); Cd(c)._Val[1]=(Cd(a)._Val[1]/df (b)._Val[1]);}
194+ #define z_div (c , a , b ) {Cd(c)._Val[0] = (Cd(a)._Val[0]/Cd(b)._Val[0]); Cd(c)._Val[1]=(Cd(a)._Val[1]/Cd (b)._Val[1]);}
195195#else
196196#define c_div (c , a , b ) {pCf(c) = Cf(a)/Cf(b);}
197197#define z_div (c , a , b ) {pCd(c) = Cd(a)/Cd(b);}
@@ -252,11 +252,11 @@ static char junk[] = "\n@(#)LIBF77 VERSION 19990503\n";
252252#define z_exp (R , Z ) {pCd(R) = cexp(Cd(Z));}
253253#define z_sqrt (R , Z ) {pCd(R) = csqrt(Cd(Z));}
254254#define myexit_ () break;
255- #define mycycle () continue;
256- #define myceiling (w ) {ceil(w)}
257- #define myhuge (w ) {HUGE_VAL}
255+ #define mycycle_ () continue;
256+ #define myceiling_ (w ) {ceil(w)}
257+ #define myhuge_ (w ) {HUGE_VAL}
258258//#define mymaxloc_(w,s,e,n) {if (sizeof(*(w)) == sizeof(double)) dmaxloc_((w),*(s),*(e),n); else dmaxloc_((w),*(s),*(e),n);}
259- #define mymaxloc (w ,s ,e ,n ) { dmaxloc_(w,*(s),*(e),n)}
259+ #define mymaxloc_ (w ,s ,e ,n ) dmaxloc_(w,*(s),*(e),n)
260260
261261/* procedure parameter types for -A and -C++ */
262262
@@ -509,12 +509,18 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ
509509
510510
511511
512+ /* -- translated by f2c (version 20000121).
513+ You must link the resulting object file with the libraries:
514+ -lf2c -lm (in that order)
515+ */
516+
517+
512518
513519/* Table of constant values */
514520
515521static integer c__1 = 1 ;
516- static real c_b174 = 0.f ;
517- static real c_b175 = 1.f ;
522+ static real c_b179 = 0.f ;
523+ static real c_b180 = 1.f ;
518524static integer c__0 = 0 ;
519525
520526/* > \brief \b ILAENV */
@@ -599,9 +605,9 @@ f"> */
599605/* > = 9: maximum size of the subproblems at the bottom of the */
600606/* > computation tree in the divide-and-conquer algorithm */
601607/* > (used by xGELSD and xGESDD) */
602- /* > =10: ieee NaN arithmetic can be trusted not to trap */
608+ /* > =10: ieee infinity and NaN arithmetic can be trusted not to trap */
603609/* > =11: infinity arithmetic can be trusted not to trap */
604- /* > 12 <= ISPEC <= 16 : */
610+ /* > 12 <= ISPEC <= 17 : */
605611/* > xHSEQR or related subroutines, */
606612/* > see IPARMQ for detailed explanation */
607613/* > \endverbatim */
@@ -652,9 +658,7 @@ f"> */
652658/* > \author Univ. of Colorado Denver */
653659/* > \author NAG Ltd. */
654660
655- /* > \date November 2019 */
656-
657- /* > \ingroup OTHERauxiliary */
661+ /* > \ingroup ilaenv */
658662
659663/* > \par Further Details: */
660664/* ===================== */
@@ -685,7 +689,7 @@ integer ilaenv_(integer *ispec, char *name__, char *opts, integer *n1,
685689 opts_len )
686690{
687691 /* System generated locals */
688- integer ret_val ;
692+ integer ret_val , i__1 , i__2 , i__3 ;
689693
690694 /* Local variables */
691695 logical twostage ;
@@ -702,10 +706,9 @@ integer ilaenv_(integer *ispec, char *name__, char *opts, integer *n1,
702706 integer * , integer * );
703707
704708
705- /* -- LAPACK auxiliary routine (version 3.9.0) -- */
709+ /* -- LAPACK auxiliary routine -- */
706710/* -- LAPACK is a software package provided by Univ. of Tennessee, -- */
707711/* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- */
708- /* November 2019 */
709712
710713
711714/* ===================================================================== */
@@ -728,6 +731,7 @@ integer ilaenv_(integer *ispec, char *name__, char *opts, integer *n1,
728731 case 14 : goto L160 ;
729732 case 15 : goto L160 ;
730733 case 16 : goto L160 ;
734+ case 17 : goto L160 ;
731735 }
732736
733737/* Invalid value for ISPEC */
@@ -908,6 +912,12 @@ integer ilaenv_(integer *ispec, char *name__, char *opts, integer *n1,
908912 } else {
909913 nb = 64 ;
910914 }
915+ } else if (s_cmp (subnam + 3 , "QP3RK" , (ftnlen )4 , (ftnlen )5 ) == 0 ) {
916+ if (sname ) {
917+ nb = 32 ;
918+ } else {
919+ nb = 32 ;
920+ }
911921 }
912922 } else if (s_cmp (c2 , "PO" , (ftnlen )2 , (ftnlen )2 ) == 0 ) {
913923 if (s_cmp (c3 , "TRF" , (ftnlen )3 , (ftnlen )3 ) == 0 ) {
@@ -1034,6 +1044,21 @@ integer ilaenv_(integer *ispec, char *name__, char *opts, integer *n1,
10341044 } else {
10351045 nb = 64 ;
10361046 }
1047+ } else if (s_cmp (c3 , "SYL" , (ftnlen )3 , (ftnlen )3 ) == 0 ) {
1048+ /* The upper bound is to prevent overly aggressive scaling. */
1049+ if (sname ) {
1050+ /* Computing MIN */
1051+ /* Computing MAX */
1052+ i__2 = 48 , i__3 = (f2cmin (* n1 ,* n2 ) << 4 ) / 100 ;
1053+ i__1 = f2cmax (i__2 ,i__3 );
1054+ nb = f2cmin (i__1 ,240 );
1055+ } else {
1056+ /* Computing MIN */
1057+ /* Computing MAX */
1058+ i__2 = 24 , i__3 = (f2cmin (* n1 ,* n2 ) << 3 ) / 100 ;
1059+ i__1 = f2cmax (i__2 ,i__3 );
1060+ nb = f2cmin (i__1 ,80 );
1061+ }
10371062 }
10381063 } else if (s_cmp (c2 , "LA" , (ftnlen )2 , (ftnlen )2 ) == 0 ) {
10391064 if (s_cmp (c3 , "UUM" , (ftnlen )3 , (ftnlen )3 ) == 0 ) {
@@ -1042,6 +1067,12 @@ integer ilaenv_(integer *ispec, char *name__, char *opts, integer *n1,
10421067 } else {
10431068 nb = 64 ;
10441069 }
1070+ } else if (s_cmp (c3 , "TRS" , (ftnlen )3 , (ftnlen )3 ) == 0 ) {
1071+ if (sname ) {
1072+ nb = 32 ;
1073+ } else {
1074+ nb = 32 ;
1075+ }
10451076 }
10461077 } else if (sname && s_cmp (c2 , "ST" , (ftnlen )2 , (ftnlen )2 ) == 0 ) {
10471078 if (s_cmp (c3 , "EBZ" , (ftnlen )3 , (ftnlen )3 ) == 0 ) {
@@ -1093,6 +1124,12 @@ integer ilaenv_(integer *ispec, char *name__, char *opts, integer *n1,
10931124 } else {
10941125 nbmin = 2 ;
10951126 }
1127+ } else if (s_cmp (subnam + 3 , "QP3RK" , (ftnlen )4 , (ftnlen )5 ) == 0 ) {
1128+ if (sname ) {
1129+ nbmin = 2 ;
1130+ } else {
1131+ nbmin = 2 ;
1132+ }
10961133 }
10971134 } else if (s_cmp (c2 , "SY" , (ftnlen )2 , (ftnlen )2 ) == 0 ) {
10981135 if (s_cmp (c3 , "TRF" , (ftnlen )3 , (ftnlen )3 ) == 0 ) {
@@ -1184,6 +1221,12 @@ integer ilaenv_(integer *ispec, char *name__, char *opts, integer *n1,
11841221 } else {
11851222 nx = 128 ;
11861223 }
1224+ } else if (s_cmp (subnam + 3 , "QP3RK" , (ftnlen )4 , (ftnlen )5 ) == 0 ) {
1225+ if (sname ) {
1226+ nx = 128 ;
1227+ } else {
1228+ nx = 128 ;
1229+ }
11871230 }
11881231 } else if (s_cmp (c2 , "SY" , (ftnlen )2 , (ftnlen )2 ) == 0 ) {
11891232 if (sname && s_cmp (c3 , "TRD" , (ftnlen )3 , (ftnlen )3 ) == 0 ) {
@@ -1270,29 +1313,29 @@ integer ilaenv_(integer *ispec, char *name__, char *opts, integer *n1,
12701313
12711314L140 :
12721315
1273- /* ISPEC = 10: ieee NaN arithmetic can be trusted not to trap */
1316+ /* ISPEC = 10: ieee and infinity NaN arithmetic can be trusted not to trap */
12741317
12751318/* ILAENV = 0 */
12761319 ret_val = 1 ;
12771320 if (ret_val == 1 ) {
1278- ret_val = ieeeck_ (& c__1 , & c_b174 , & c_b175 );
1321+ ret_val = ieeeck_ (& c__1 , & c_b179 , & c_b180 );
12791322 }
12801323 return ret_val ;
12811324
12821325L150 :
12831326
1284- /* ISPEC = 11: infinity arithmetic can be trusted not to trap */
1327+ /* ISPEC = 11: ieee infinity arithmetic can be trusted not to trap */
12851328
12861329/* ILAENV = 0 */
12871330 ret_val = 1 ;
12881331 if (ret_val == 1 ) {
1289- ret_val = ieeeck_ (& c__0 , & c_b174 , & c_b175 );
1332+ ret_val = ieeeck_ (& c__0 , & c_b179 , & c_b180 );
12901333 }
12911334 return ret_val ;
12921335
12931336L160 :
12941337
1295- /* 12 <= ISPEC <= 16 : xHSEQR or related subroutines. */
1338+ /* 12 <= ISPEC <= 17 : xHSEQR or related subroutines. */
12961339
12971340 ret_val = iparmq_ (ispec , name__ , opts , n1 , n2 , n3 , n4 )
12981341 ;
0 commit comments