version 1.16, 2017/06/17 10:54:07
|
version 1.20, 2023/08/07 08:39:14
|
Line 79
|
Line 79
|
*> = 9: maximum size of the subproblems at the bottom of the |
*> = 9: maximum size of the subproblems at the bottom of the |
*> computation tree in the divide-and-conquer algorithm |
*> computation tree in the divide-and-conquer algorithm |
*> (used by xGELSD and xGESDD) |
*> (used by xGELSD and xGESDD) |
*> =10: ieee NaN arithmetic can be trusted not to trap |
*> =10: ieee infinity and NaN arithmetic can be trusted not to trap |
*> =11: infinity arithmetic can be trusted not to trap |
*> =11: infinity arithmetic can be trusted not to trap |
*> 12 <= ISPEC <= 16: |
*> 12 <= ISPEC <= 17: |
*> xHSEQR or related subroutines, |
*> xHSEQR or related subroutines, |
*> see IPARMQ for detailed explanation |
*> see IPARMQ for detailed explanation |
*> \endverbatim |
*> \endverbatim |
Line 132
|
Line 132
|
*> \author Univ. of Colorado Denver |
*> \author Univ. of Colorado Denver |
*> \author NAG Ltd. |
*> \author NAG Ltd. |
* |
* |
*> \date December 2016 |
|
* |
|
*> \ingroup OTHERauxiliary |
*> \ingroup OTHERauxiliary |
* |
* |
*> \par Further Details: |
*> \par Further Details: |
Line 162
|
Line 160
|
* ===================================================================== |
* ===================================================================== |
INTEGER FUNCTION ILAENV( ISPEC, NAME, OPTS, N1, N2, N3, N4 ) |
INTEGER FUNCTION ILAENV( ISPEC, NAME, OPTS, N1, N2, N3, N4 ) |
* |
* |
* -- LAPACK auxiliary routine (version 3.7.0) -- |
* -- LAPACK auxiliary routine -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* December 2016 |
|
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
CHARACTER*( * ) NAME, OPTS |
CHARACTER*( * ) NAME, OPTS |
Line 176
|
Line 173
|
* |
* |
* .. Local Scalars .. |
* .. Local Scalars .. |
INTEGER I, IC, IZ, NB, NBMIN, NX |
INTEGER I, IC, IZ, NB, NBMIN, NX |
LOGICAL CNAME, SNAME |
LOGICAL CNAME, SNAME, TWOSTAGE |
CHARACTER C1*1, C2*2, C4*2, C3*3, SUBNAM*6 |
CHARACTER C1*1, C2*2, C4*2, C3*3, SUBNAM*16 |
* .. |
* .. |
* .. Intrinsic Functions .. |
* .. Intrinsic Functions .. |
INTRINSIC CHAR, ICHAR, INT, MIN, REAL |
INTRINSIC CHAR, ICHAR, INT, MIN, REAL |
Line 189
|
Line 186
|
* .. Executable Statements .. |
* .. Executable Statements .. |
* |
* |
GO TO ( 10, 10, 10, 80, 90, 100, 110, 120, |
GO TO ( 10, 10, 10, 80, 90, 100, 110, 120, |
$ 130, 140, 150, 160, 160, 160, 160, 160, |
$ 130, 140, 150, 160, 160, 160, 160, 160, 160)ISPEC |
$ 170, 170, 170, 170, 170 )ISPEC |
|
* |
* |
* Invalid value for ISPEC |
* Invalid value for ISPEC |
* |
* |
Line 257
|
Line 253
|
C2 = SUBNAM( 2: 3 ) |
C2 = SUBNAM( 2: 3 ) |
C3 = SUBNAM( 4: 6 ) |
C3 = SUBNAM( 4: 6 ) |
C4 = C3( 2: 3 ) |
C4 = C3( 2: 3 ) |
|
TWOSTAGE = LEN( SUBNAM ).GE.11 |
|
$ .AND. SUBNAM( 11: 11 ).EQ.'2' |
* |
* |
GO TO ( 50, 60, 70 )ISPEC |
GO TO ( 50, 60, 70 )ISPEC |
* |
* |
Line 270
|
Line 268
|
* |
* |
NB = 1 |
NB = 1 |
* |
* |
IF( C2.EQ.'GE' ) THEN |
IF( SUBNAM(2:6).EQ.'LAORH' ) THEN |
|
* |
|
* This is for *LAORHR_GETRFNP routine |
|
* |
|
IF( SNAME ) THEN |
|
NB = 32 |
|
ELSE |
|
NB = 32 |
|
END IF |
|
ELSE IF( C2.EQ.'GE' ) THEN |
IF( C3.EQ.'TRF' ) THEN |
IF( C3.EQ.'TRF' ) THEN |
IF( SNAME ) THEN |
IF( SNAME ) THEN |
NB = 64 |
NB = 64 |
Line 360
|
Line 367
|
ELSE IF( C2.EQ.'SY' ) THEN |
ELSE IF( C2.EQ.'SY' ) THEN |
IF( C3.EQ.'TRF' ) THEN |
IF( C3.EQ.'TRF' ) THEN |
IF( SNAME ) THEN |
IF( SNAME ) THEN |
NB = 64 |
IF( TWOSTAGE ) THEN |
|
NB = 192 |
|
ELSE |
|
NB = 64 |
|
END IF |
ELSE |
ELSE |
NB = 64 |
IF( TWOSTAGE ) THEN |
|
NB = 192 |
|
ELSE |
|
NB = 64 |
|
END IF |
END IF |
END IF |
ELSE IF( SNAME .AND. C3.EQ.'TRD' ) THEN |
ELSE IF( SNAME .AND. C3.EQ.'TRD' ) THEN |
NB = 32 |
NB = 32 |
Line 371
|
Line 386
|
END IF |
END IF |
ELSE IF( CNAME .AND. C2.EQ.'HE' ) THEN |
ELSE IF( CNAME .AND. C2.EQ.'HE' ) THEN |
IF( C3.EQ.'TRF' ) THEN |
IF( C3.EQ.'TRF' ) THEN |
NB = 64 |
IF( TWOSTAGE ) THEN |
|
NB = 192 |
|
ELSE |
|
NB = 64 |
|
END IF |
ELSE IF( C3.EQ.'TRD' ) THEN |
ELSE IF( C3.EQ.'TRD' ) THEN |
NB = 32 |
NB = 32 |
ELSE IF( C3.EQ.'GST' ) THEN |
ELSE IF( C3.EQ.'GST' ) THEN |
Line 450
|
Line 469
|
ELSE |
ELSE |
NB = 64 |
NB = 64 |
END IF |
END IF |
|
ELSE IF( C3.EQ.'SYL' ) THEN |
|
* The upper bound is to prevent overly aggressive scaling. |
|
IF( SNAME ) THEN |
|
NB = MIN( MAX( 48, INT( ( MIN( N1, N2 ) * 16 ) / 100) ), |
|
$ 240 ) |
|
ELSE |
|
NB = MIN( MAX( 24, INT( ( MIN( N1, N2 ) * 8 ) / 100) ), |
|
$ 80 ) |
|
END IF |
END IF |
END IF |
ELSE IF( C2.EQ.'LA' ) THEN |
ELSE IF( C2.EQ.'LA' ) THEN |
IF( C3.EQ.'UUM' ) THEN |
IF( C3.EQ.'UUM' ) THEN |
Line 458
|
Line 486
|
ELSE |
ELSE |
NB = 64 |
NB = 64 |
END IF |
END IF |
|
ELSE IF( C3.EQ.'TRS' ) THEN |
|
IF( SNAME ) THEN |
|
NB = 32 |
|
ELSE |
|
NB = 32 |
|
END IF |
END IF |
END IF |
ELSE IF( SNAME .AND. C2.EQ.'ST' ) THEN |
ELSE IF( SNAME .AND. C2.EQ.'ST' ) THEN |
IF( C3.EQ.'EBZ' ) THEN |
IF( C3.EQ.'EBZ' ) THEN |
Line 664
|
Line 698
|
* |
* |
140 CONTINUE |
140 CONTINUE |
* |
* |
* ISPEC = 10: ieee NaN arithmetic can be trusted not to trap |
* ISPEC = 10: ieee and infinity NaN arithmetic can be trusted not to trap |
* |
* |
* ILAENV = 0 |
* ILAENV = 0 |
ILAENV = 1 |
ILAENV = 1 |
Line 675
|
Line 709
|
* |
* |
150 CONTINUE |
150 CONTINUE |
* |
* |
* ISPEC = 11: infinity arithmetic can be trusted not to trap |
* ISPEC = 11: ieee infinity arithmetic can be trusted not to trap |
* |
* |
* ILAENV = 0 |
* ILAENV = 0 |
ILAENV = 1 |
ILAENV = 1 |
Line 686
|
Line 720
|
* |
* |
160 CONTINUE |
160 CONTINUE |
* |
* |
* 12 <= ISPEC <= 16: xHSEQR or related subroutines. |
* 12 <= ISPEC <= 17: xHSEQR or related subroutines. |
* |
* |
ILAENV = IPARMQ( ISPEC, NAME, OPTS, N1, N2, N3, N4 ) |
ILAENV = IPARMQ( ISPEC, NAME, OPTS, N1, N2, N3, N4 ) |
RETURN |
RETURN |
* |
* |
170 CONTINUE |
|
* |
|
* 17 <= ISPEC <= 21: 2stage eigenvalues and SVD or related subroutines. |
|
* |
|
ILAENV = IPARAM2STAGE( ISPEC, NAME, OPTS, N1, N2, N3, N4 ) |
|
RETURN |
|
* |
|
* End of ILAENV |
* End of ILAENV |
* |
* |
END |
END |