Skip to content

Commit c57e36a

Browse files
authored
Merge pull request #883 from angsch/master
Fix workspace query corner cases
2 parents 308bf2f + 98f3f67 commit c57e36a

File tree

12 files changed

+14
-14
lines changed

12 files changed

+14
-14
lines changed

SRC/csytrf.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ SUBROUTINE CSYTRF( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO )
232232
* Determine the block size
233233
*
234234
NB = ILAENV( 1, 'CSYTRF', UPLO, N, -1, -1, -1 )
235-
LWKOPT = N*NB
235+
LWKOPT = MAX( 1, N*NB )
236236
WORK( 1 ) = LWKOPT
237237
END IF
238238
*

SRC/csytrf_rk.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ SUBROUTINE CSYTRF_RK( UPLO, N, A, LDA, E, IPIV, WORK, LWORK,
310310
* Determine the block size
311311
*
312312
NB = ILAENV( 1, 'CSYTRF_RK', UPLO, N, -1, -1, -1 )
313-
LWKOPT = N*NB
313+
LWKOPT = MAX( 1, N*NB )
314314
WORK( 1 ) = LWKOPT
315315
END IF
316316
*

SRC/ctrevc3.f

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -321,9 +321,9 @@ SUBROUTINE CTREVC3( SIDE, HOWMNY, SELECT, N, T, LDT, VL, LDVL, VR,
321321
*
322322
INFO = 0
323323
NB = ILAENV( 1, 'CTREVC', SIDE // HOWMNY, N, -1, -1, -1 )
324-
MAXWRK = N + 2*N*NB
324+
MAXWRK = MAX( 1, N + 2*N*NB )
325325
WORK(1) = MAXWRK
326-
RWORK(1) = N
326+
RWORK(1) = MAX( 1, N )
327327
LQUERY = ( LWORK.EQ.-1 .OR. LRWORK.EQ.-1 )
328328
IF( .NOT.RIGHTV .AND. .NOT.LEFTV ) THEN
329329
INFO = -1

SRC/dsytrf.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ SUBROUTINE DSYTRF( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO )
232232
* Determine the block size
233233
*
234234
NB = ILAENV( 1, 'DSYTRF', UPLO, N, -1, -1, -1 )
235-
LWKOPT = N*NB
235+
LWKOPT = MAX( 1, N*NB )
236236
WORK( 1 ) = LWKOPT
237237
END IF
238238
*

SRC/dsytrf_rk.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ SUBROUTINE DSYTRF_RK( UPLO, N, A, LDA, E, IPIV, WORK, LWORK,
310310
* Determine the block size
311311
*
312312
NB = ILAENV( 1, 'DSYTRF_RK', UPLO, N, -1, -1, -1 )
313-
LWKOPT = N*NB
313+
LWKOPT = MAX( 1, N*NB )
314314
WORK( 1 ) = LWKOPT
315315
END IF
316316
*

SRC/dtrevc3.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ SUBROUTINE DTREVC3( SIDE, HOWMNY, SELECT, N, T, LDT, VL, LDVL,
298298
*
299299
INFO = 0
300300
NB = ILAENV( 1, 'DTREVC', SIDE // HOWMNY, N, -1, -1, -1 )
301-
MAXWRK = N + 2*N*NB
301+
MAXWRK = MAX( 1, N + 2*N*NB )
302302
WORK(1) = MAXWRK
303303
LQUERY = ( LWORK.EQ.-1 )
304304
IF( .NOT.RIGHTV .AND. .NOT.LEFTV ) THEN

SRC/ssytrf.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ SUBROUTINE SSYTRF( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO )
232232
* Determine the block size
233233
*
234234
NB = ILAENV( 1, 'SSYTRF', UPLO, N, -1, -1, -1 )
235-
LWKOPT = N*NB
235+
LWKOPT = MAX( 1, N*NB )
236236
WORK( 1 ) = LWKOPT
237237
END IF
238238
*

SRC/ssytrf_rk.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ SUBROUTINE SSYTRF_RK( UPLO, N, A, LDA, E, IPIV, WORK, LWORK,
310310
* Determine the block size
311311
*
312312
NB = ILAENV( 1, 'SSYTRF_RK', UPLO, N, -1, -1, -1 )
313-
LWKOPT = N*NB
313+
LWKOPT = MAX( 1, N*NB )
314314
WORK( 1 ) = LWKOPT
315315
END IF
316316
*

SRC/strevc3.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ SUBROUTINE STREVC3( SIDE, HOWMNY, SELECT, N, T, LDT, VL, LDVL,
298298
*
299299
INFO = 0
300300
NB = ILAENV( 1, 'STREVC', SIDE // HOWMNY, N, -1, -1, -1 )
301-
MAXWRK = N + 2*N*NB
301+
MAXWRK = MAX( 1, N + 2*N*NB )
302302
WORK(1) = MAXWRK
303303
LQUERY = ( LWORK.EQ.-1 )
304304
IF( .NOT.RIGHTV .AND. .NOT.LEFTV ) THEN

SRC/zsytrf.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ SUBROUTINE ZSYTRF( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO )
232232
* Determine the block size
233233
*
234234
NB = ILAENV( 1, 'ZSYTRF', UPLO, N, -1, -1, -1 )
235-
LWKOPT = N*NB
235+
LWKOPT = MAX( 1, N*NB )
236236
WORK( 1 ) = LWKOPT
237237
END IF
238238
*

0 commit comments

Comments
 (0)