Fix workspace query corner cases to always return at least 1 (Reference-LAPACK PR 883) (#4146)

* Fix workspace query corner cases to always return at least 1
This commit is contained in:
Martin Kroeker 2023-07-15 16:37:42 +02:00 committed by GitHub
parent 4c43d1eeba
commit 0a637cc403
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 14 additions and 14 deletions

View File

@ -232,7 +232,7 @@
* Determine the block size
*
NB = ILAENV( 1, 'CSYTRF', UPLO, N, -1, -1, -1 )
LWKOPT = N*NB
LWKOPT = MAX( 1, N*NB )
WORK( 1 ) = LWKOPT
END IF
*

View File

@ -310,7 +310,7 @@
* Determine the block size
*
NB = ILAENV( 1, 'CSYTRF_RK', UPLO, N, -1, -1, -1 )
LWKOPT = N*NB
LWKOPT = MAX( 1, N*NB )
WORK( 1 ) = LWKOPT
END IF
*

View File

@ -321,9 +321,9 @@
*
INFO = 0
NB = ILAENV( 1, 'CTREVC', SIDE // HOWMNY, N, -1, -1, -1 )
MAXWRK = N + 2*N*NB
MAXWRK = MAX( 1, N + 2*N*NB )
WORK(1) = MAXWRK
RWORK(1) = N
RWORK(1) = MAX( 1, N )
LQUERY = ( LWORK.EQ.-1 .OR. LRWORK.EQ.-1 )
IF( .NOT.RIGHTV .AND. .NOT.LEFTV ) THEN
INFO = -1

View File

@ -232,7 +232,7 @@
* Determine the block size
*
NB = ILAENV( 1, 'DSYTRF', UPLO, N, -1, -1, -1 )
LWKOPT = N*NB
LWKOPT = MAX( 1, N*NB )
WORK( 1 ) = LWKOPT
END IF
*

View File

@ -310,7 +310,7 @@
* Determine the block size
*
NB = ILAENV( 1, 'DSYTRF_RK', UPLO, N, -1, -1, -1 )
LWKOPT = N*NB
LWKOPT = MAX( 1, N*NB )
WORK( 1 ) = LWKOPT
END IF
*

View File

@ -298,7 +298,7 @@
*
INFO = 0
NB = ILAENV( 1, 'DTREVC', SIDE // HOWMNY, N, -1, -1, -1 )
MAXWRK = N + 2*N*NB
MAXWRK = MAX( 1, N + 2*N*NB )
WORK(1) = MAXWRK
LQUERY = ( LWORK.EQ.-1 )
IF( .NOT.RIGHTV .AND. .NOT.LEFTV ) THEN

View File

@ -232,7 +232,7 @@
* Determine the block size
*
NB = ILAENV( 1, 'SSYTRF', UPLO, N, -1, -1, -1 )
LWKOPT = N*NB
LWKOPT = MAX( 1, N*NB )
WORK( 1 ) = LWKOPT
END IF
*

View File

@ -310,7 +310,7 @@
* Determine the block size
*
NB = ILAENV( 1, 'SSYTRF_RK', UPLO, N, -1, -1, -1 )
LWKOPT = N*NB
LWKOPT = MAX( 1, N*NB )
WORK( 1 ) = LWKOPT
END IF
*

View File

@ -298,7 +298,7 @@
*
INFO = 0
NB = ILAENV( 1, 'STREVC', SIDE // HOWMNY, N, -1, -1, -1 )
MAXWRK = N + 2*N*NB
MAXWRK = MAX( 1, N + 2*N*NB )
WORK(1) = MAXWRK
LQUERY = ( LWORK.EQ.-1 )
IF( .NOT.RIGHTV .AND. .NOT.LEFTV ) THEN

View File

@ -232,7 +232,7 @@
* Determine the block size
*
NB = ILAENV( 1, 'ZSYTRF', UPLO, N, -1, -1, -1 )
LWKOPT = N*NB
LWKOPT = MAX( 1, N*NB )
WORK( 1 ) = LWKOPT
END IF
*

View File

@ -310,7 +310,7 @@
* Determine the block size
*
NB = ILAENV( 1, 'ZSYTRF_RK', UPLO, N, -1, -1, -1 )
LWKOPT = N*NB
LWKOPT = MAX( 1, N*NB )
WORK( 1 ) = LWKOPT
END IF
*

View File

@ -321,9 +321,9 @@
*
INFO = 0
NB = ILAENV( 1, 'ZTREVC', SIDE // HOWMNY, N, -1, -1, -1 )
MAXWRK = N + 2*N*NB
MAXWRK = MAX( 1, N + 2*N*NB )
WORK(1) = MAXWRK
RWORK(1) = N
RWORK(1) = MAX( 1, N )
LQUERY = ( LWORK.EQ.-1 .OR. LRWORK.EQ.-1 )
IF( .NOT.RIGHTV .AND. .NOT.LEFTV ) THEN
INFO = -1