Skip to content

Commit 8a0bef1

Browse files
xGGQRCS: ensure leading dimension is at least one
Ensure the leading dimension of the assembled matrix `G = [A; B]` is always at least one.
1 parent e805767 commit 8a0bef1

File tree

4 files changed

+8
-4
lines changed

4 files changed

+8
-4
lines changed

SRC/cggqrcs.f

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,8 @@ RECURSIVE SUBROUTINE CGGQRCS( JOBU1, JOBU2, JOBX, M, N, P, L,
452452
*
453453
SWAPPED = .FALSE.
454454
L = 0
455-
LDG = M + P
455+
* The leading dimension must never be zero
456+
LDG = MAX( M + P, 1 )
456457
LDVT = N
457458
LMAX = MIN( M + P, N )
458459
IG = 1

SRC/dggqrcs.f

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,8 @@ RECURSIVE SUBROUTINE DGGQRCS( JOBU1, JOBU2, JOBX, M, N, P, L,
426426
*
427427
SWAPPED = .FALSE.
428428
L = 0
429-
LDG = M + P
429+
* The leading dimension must never be zero
430+
LDG = MAX( M + P, 1 )
430431
LDVT = N
431432
LMAX = MIN( M + P, N )
432433
IG = 1

SRC/sggqrcs.f

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,8 @@ RECURSIVE SUBROUTINE SGGQRCS( JOBU1, JOBU2, JOBX, M, N, P, L,
426426
*
427427
SWAPPED = .FALSE.
428428
L = 0
429-
LDG = M + P
429+
* The leading dimension must never be zero
430+
LDG = MAX( M + P, 1 )
430431
LDVT = N
431432
LMAX = MIN( M + P, N )
432433
IG = 1

SRC/zggqrcs.f

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,8 @@ RECURSIVE SUBROUTINE ZGGQRCS( JOBU1, JOBU2, JOBX, M, N, P, L,
451451
*
452452
SWAPPED = .FALSE.
453453
L = 0
454-
LDG = M + P
454+
* The leading dimension must never be zero
455+
LDG = MAX( M + P, 1 )
455456
LDVT = N
456457
LMAX = MIN( M + P, N )
457458
IG = 1

0 commit comments

Comments
 (0)