Skip to content

Commit 6a53243

Browse files
committed
xGEQP3 changes July 2024
1 parent 694e337 commit 6a53243

4 files changed

Lines changed: 24 additions & 4 deletions

File tree

SRC/cgeqp3.f

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,11 @@ SUBROUTINE CGEQP3( M, N, A, LDA, JPVT, TAU, WORK, LWORK, RWORK,
249249
JPVT( J ) = J
250250
END IF
251251
10 CONTINUE
252+
*
253+
* Quick return if possible.
254+
*
255+
IF( M.EQ.0 ) RETURN
256+
*
252257
NFXD = NFXD - 1
253258
*
254259
* Factorize fixed columns

SRC/dgeqp3.f

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,11 @@ SUBROUTINE DGEQP3( M, N, A, LDA, JPVT, TAU, WORK, LWORK, INFO )
240240
JPVT( J ) = J
241241
END IF
242242
10 CONTINUE
243+
*
244+
* Quick return if possible
245+
*
246+
IF( M.EQ.0 ) RETURN
247+
*
243248
NFXD = NFXD - 1
244249
*
245250
* Factorize fixed columns
@@ -290,14 +295,14 @@ SUBROUTINE DGEQP3( M, N, A, LDA, JPVT, TAU, WORK, LWORK, INFO )
290295
*
291296
* Determine if workspace is large enough for blocked code.
292297
*
293-
MINWS = 2*SN + ( SN+1 )*NB
298+
MINWS = 2*N + ( SN+1 )*NB
294299
IWS = MAX( IWS, MINWS )
295300
IF( LWORK.LT.MINWS ) THEN
296301
*
297302
* Not enough workspace to use optimal NB: Reduce NB and
298303
* determine the minimum value of NB.
299304
*
300-
NB = ( LWORK-2*SN ) / ( SN+1 )
305+
NB = ( LWORK-2*N ) / ( SN+1 )
301306
NBMIN = MAX( 2, ILAENV( INBMIN, 'DGEQRF', ' ', SM,
302307
$ SN,
303308
$ -1, -1 ) )

SRC/sgeqp3.f

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,11 @@ SUBROUTINE SGEQP3( M, N, A, LDA, JPVT, TAU, WORK, LWORK, INFO )
237237
JPVT( J ) = J
238238
END IF
239239
10 CONTINUE
240+
*
241+
* Quick return if possible.
242+
*
243+
IF( M.EQ.0 ) RETURN
244+
*
240245
NFXD = NFXD - 1
241246
*
242247
* Factorize fixed columns
@@ -287,14 +292,14 @@ SUBROUTINE SGEQP3( M, N, A, LDA, JPVT, TAU, WORK, LWORK, INFO )
287292
*
288293
* Determine if workspace is large enough for blocked code.
289294
*
290-
MINWS = 2*SN + ( SN+1 )*NB
295+
MINWS = 2*N + ( SN+1 )*NB
291296
IWS = MAX( IWS, MINWS )
292297
IF( LWORK.LT.MINWS ) THEN
293298
*
294299
* Not enough workspace to use optimal NB: Reduce NB and
295300
* determine the minimum value of NB.
296301
*
297-
NB = ( LWORK-2*SN ) / ( SN+1 )
302+
NB = ( LWORK-2*N ) / ( SN+1 )
298303
NBMIN = MAX( 2, ILAENV( INBMIN, 'SGEQRF', ' ', SM,
299304
$ SN,
300305
$ -1, -1 ) )

SRC/zgeqp3.f

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,11 @@ SUBROUTINE ZGEQP3( M, N, A, LDA, JPVT, TAU, WORK, LWORK, RWORK,
249249
JPVT( J ) = J
250250
END IF
251251
10 CONTINUE
252+
*
253+
* Quick return if possible.
254+
*
255+
IF( M.EQ.0 ) RETURN
256+
*
252257
NFXD = NFXD - 1
253258
*
254259
* Factorize fixed columns

0 commit comments

Comments
 (0)