* Fix workspace query corner cases to always return at least 1tags/v0.3.24
| @@ -232,7 +232,7 @@ | |||||
| * Determine the block size | * Determine the block size | ||||
| * | * | ||||
| NB = ILAENV( 1, 'CSYTRF', UPLO, N, -1, -1, -1 ) | NB = ILAENV( 1, 'CSYTRF', UPLO, N, -1, -1, -1 ) | ||||
| LWKOPT = N*NB | |||||
| LWKOPT = MAX( 1, N*NB ) | |||||
| WORK( 1 ) = LWKOPT | WORK( 1 ) = LWKOPT | ||||
| END IF | END IF | ||||
| * | * | ||||
| @@ -310,7 +310,7 @@ | |||||
| * Determine the block size | * Determine the block size | ||||
| * | * | ||||
| NB = ILAENV( 1, 'CSYTRF_RK', UPLO, N, -1, -1, -1 ) | NB = ILAENV( 1, 'CSYTRF_RK', UPLO, N, -1, -1, -1 ) | ||||
| LWKOPT = N*NB | |||||
| LWKOPT = MAX( 1, N*NB ) | |||||
| WORK( 1 ) = LWKOPT | WORK( 1 ) = LWKOPT | ||||
| END IF | END IF | ||||
| * | * | ||||
| @@ -321,9 +321,9 @@ | |||||
| * | * | ||||
| INFO = 0 | INFO = 0 | ||||
| NB = ILAENV( 1, 'CTREVC', SIDE // HOWMNY, N, -1, -1, -1 ) | 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 | WORK(1) = MAXWRK | ||||
| RWORK(1) = N | |||||
| RWORK(1) = MAX( 1, N ) | |||||
| LQUERY = ( LWORK.EQ.-1 .OR. LRWORK.EQ.-1 ) | LQUERY = ( LWORK.EQ.-1 .OR. LRWORK.EQ.-1 ) | ||||
| IF( .NOT.RIGHTV .AND. .NOT.LEFTV ) THEN | IF( .NOT.RIGHTV .AND. .NOT.LEFTV ) THEN | ||||
| INFO = -1 | INFO = -1 | ||||
| @@ -232,7 +232,7 @@ | |||||
| * Determine the block size | * Determine the block size | ||||
| * | * | ||||
| NB = ILAENV( 1, 'DSYTRF', UPLO, N, -1, -1, -1 ) | NB = ILAENV( 1, 'DSYTRF', UPLO, N, -1, -1, -1 ) | ||||
| LWKOPT = N*NB | |||||
| LWKOPT = MAX( 1, N*NB ) | |||||
| WORK( 1 ) = LWKOPT | WORK( 1 ) = LWKOPT | ||||
| END IF | END IF | ||||
| * | * | ||||
| @@ -310,7 +310,7 @@ | |||||
| * Determine the block size | * Determine the block size | ||||
| * | * | ||||
| NB = ILAENV( 1, 'DSYTRF_RK', UPLO, N, -1, -1, -1 ) | NB = ILAENV( 1, 'DSYTRF_RK', UPLO, N, -1, -1, -1 ) | ||||
| LWKOPT = N*NB | |||||
| LWKOPT = MAX( 1, N*NB ) | |||||
| WORK( 1 ) = LWKOPT | WORK( 1 ) = LWKOPT | ||||
| END IF | END IF | ||||
| * | * | ||||
| @@ -298,7 +298,7 @@ | |||||
| * | * | ||||
| INFO = 0 | INFO = 0 | ||||
| NB = ILAENV( 1, 'DTREVC', SIDE // HOWMNY, N, -1, -1, -1 ) | 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 | WORK(1) = MAXWRK | ||||
| LQUERY = ( LWORK.EQ.-1 ) | LQUERY = ( LWORK.EQ.-1 ) | ||||
| IF( .NOT.RIGHTV .AND. .NOT.LEFTV ) THEN | IF( .NOT.RIGHTV .AND. .NOT.LEFTV ) THEN | ||||
| @@ -232,7 +232,7 @@ | |||||
| * Determine the block size | * Determine the block size | ||||
| * | * | ||||
| NB = ILAENV( 1, 'SSYTRF', UPLO, N, -1, -1, -1 ) | NB = ILAENV( 1, 'SSYTRF', UPLO, N, -1, -1, -1 ) | ||||
| LWKOPT = N*NB | |||||
| LWKOPT = MAX( 1, N*NB ) | |||||
| WORK( 1 ) = LWKOPT | WORK( 1 ) = LWKOPT | ||||
| END IF | END IF | ||||
| * | * | ||||
| @@ -310,7 +310,7 @@ | |||||
| * Determine the block size | * Determine the block size | ||||
| * | * | ||||
| NB = ILAENV( 1, 'SSYTRF_RK', UPLO, N, -1, -1, -1 ) | NB = ILAENV( 1, 'SSYTRF_RK', UPLO, N, -1, -1, -1 ) | ||||
| LWKOPT = N*NB | |||||
| LWKOPT = MAX( 1, N*NB ) | |||||
| WORK( 1 ) = LWKOPT | WORK( 1 ) = LWKOPT | ||||
| END IF | END IF | ||||
| * | * | ||||
| @@ -298,7 +298,7 @@ | |||||
| * | * | ||||
| INFO = 0 | INFO = 0 | ||||
| NB = ILAENV( 1, 'STREVC', SIDE // HOWMNY, N, -1, -1, -1 ) | 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 | WORK(1) = MAXWRK | ||||
| LQUERY = ( LWORK.EQ.-1 ) | LQUERY = ( LWORK.EQ.-1 ) | ||||
| IF( .NOT.RIGHTV .AND. .NOT.LEFTV ) THEN | IF( .NOT.RIGHTV .AND. .NOT.LEFTV ) THEN | ||||
| @@ -232,7 +232,7 @@ | |||||
| * Determine the block size | * Determine the block size | ||||
| * | * | ||||
| NB = ILAENV( 1, 'ZSYTRF', UPLO, N, -1, -1, -1 ) | NB = ILAENV( 1, 'ZSYTRF', UPLO, N, -1, -1, -1 ) | ||||
| LWKOPT = N*NB | |||||
| LWKOPT = MAX( 1, N*NB ) | |||||
| WORK( 1 ) = LWKOPT | WORK( 1 ) = LWKOPT | ||||
| END IF | END IF | ||||
| * | * | ||||
| @@ -310,7 +310,7 @@ | |||||
| * Determine the block size | * Determine the block size | ||||
| * | * | ||||
| NB = ILAENV( 1, 'ZSYTRF_RK', UPLO, N, -1, -1, -1 ) | NB = ILAENV( 1, 'ZSYTRF_RK', UPLO, N, -1, -1, -1 ) | ||||
| LWKOPT = N*NB | |||||
| LWKOPT = MAX( 1, N*NB ) | |||||
| WORK( 1 ) = LWKOPT | WORK( 1 ) = LWKOPT | ||||
| END IF | END IF | ||||
| * | * | ||||
| @@ -321,9 +321,9 @@ | |||||
| * | * | ||||
| INFO = 0 | INFO = 0 | ||||
| NB = ILAENV( 1, 'ZTREVC', SIDE // HOWMNY, N, -1, -1, -1 ) | 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 | WORK(1) = MAXWRK | ||||
| RWORK(1) = N | |||||
| RWORK(1) = MAX( 1, N ) | |||||
| LQUERY = ( LWORK.EQ.-1 .OR. LRWORK.EQ.-1 ) | LQUERY = ( LWORK.EQ.-1 .OR. LRWORK.EQ.-1 ) | ||||
| IF( .NOT.RIGHTV .AND. .NOT.LEFTV ) THEN | IF( .NOT.RIGHTV .AND. .NOT.LEFTV ) THEN | ||||
| INFO = -1 | INFO = -1 | ||||