@@ -65732,7 +65732,7 @@ module stdlib_linalg_lapack_c
65732
65732
call stdlib_cgeqrf( m, n, a, lda, work( itau ), work( nwork ),lwork-nwork+1, &
65733
65733
ierr )
65734
65734
! zero out below r
65735
- call stdlib_claset( 'L', n-1, n-1, czero, czero, a( 2, 1 ),lda )
65735
+ if (n>1) call stdlib_claset( 'L', n-1, n-1, czero, czero, a( 2, 1 ),lda )
65736
65736
ie = 1
65737
65737
itauq = 1
65738
65738
itaup = itauq + n
@@ -65918,7 +65918,7 @@ module stdlib_linalg_lapack_c
65918
65918
call stdlib_cungqr( m, m, n, u, ldu, work( itau ),work( nwork ), lwork-nwork+&
65919
65919
1, ierr )
65920
65920
! produce r in a, zeroing out below it
65921
- call stdlib_claset( 'L', n-1, n-1, czero, czero, a( 2, 1 ),lda )
65921
+ if (n>1) call stdlib_claset( 'L', n-1, n-1, czero, czero, a( 2, 1 ),lda )
65922
65922
ie = 1
65923
65923
itauq = itau
65924
65924
itaup = itauq + n
@@ -66294,7 +66294,7 @@ module stdlib_linalg_lapack_c
66294
66294
call stdlib_cgelqf( m, n, a, lda, work( itau ), work( nwork ),lwork-nwork+1, &
66295
66295
ierr )
66296
66296
! zero out above l
66297
- call stdlib_claset( 'U', m-1, m-1, czero, czero, a( 1, 2 ),lda )
66297
+ if (m>1) call stdlib_claset( 'U', m-1, m-1, czero, czero, a( 1, 2 ),lda )
66298
66298
ie = 1
66299
66299
itauq = 1
66300
66300
itaup = itauq + m
@@ -66485,7 +66485,7 @@ module stdlib_linalg_lapack_c
66485
66485
call stdlib_cunglq( n, n, m, vt, ldvt, work( itau ),work( nwork ), lwork-&
66486
66486
nwork+1, ierr )
66487
66487
! produce l in a, zeroing out above it
66488
- call stdlib_claset( 'U', m-1, m-1, czero, czero, a( 1, 2 ),lda )
66488
+ if (m>1) call stdlib_claset( 'U', m-1, m-1, czero, czero, a( 1, 2 ),lda )
66489
66489
ie = 1
66490
66490
itauq = itau
66491
66491
itaup = itauq + m
@@ -68327,7 +68327,7 @@ module stdlib_linalg_lapack_c
68327
68327
call stdlib_cgelqf( m, n, a, lda, work( itau ), work( iwork ),lwork-iwork+1, &
68328
68328
ierr )
68329
68329
! zero out above l
68330
- call stdlib_claset( 'U', m-1, m-1, czero, czero, a( 1, 2 ),lda )
68330
+ if (m>1) call stdlib_claset( 'U', m-1, m-1, czero, czero, a( 1, 2 ),lda )
68331
68331
ie = 1
68332
68332
itauq = 1
68333
68333
itaup = itauq + m
@@ -68483,7 +68483,7 @@ module stdlib_linalg_lapack_c
68483
68483
1, ierr )
68484
68484
! copy l to u, zeroing about above it
68485
68485
call stdlib_clacpy( 'L', m, m, a, lda, u, ldu )
68486
- call stdlib_claset( 'U', m-1, m-1, czero, czero, u( 1, 2 ),ldu )
68486
+ if (m>1) call stdlib_claset( 'U', m-1, m-1, czero, czero, u( 1, 2 ),ldu )
68487
68487
! generate q in a
68488
68488
! (cworkspace: need m*m+2*m, prefer m*m+m+m*nb)
68489
68489
! (rworkspace: 0)
@@ -68540,7 +68540,7 @@ module stdlib_linalg_lapack_c
68540
68540
1, ierr )
68541
68541
! copy l to u, zeroing out above it
68542
68542
call stdlib_clacpy( 'L', m, m, a, lda, u, ldu )
68543
- call stdlib_claset( 'U', m-1, m-1, czero, czero, u( 1, 2 ),ldu )
68543
+ if (m>1) call stdlib_claset( 'U', m-1, m-1, czero, czero, u( 1, 2 ),ldu )
68544
68544
! generate q in a
68545
68545
! (cworkspace: need 2*m, prefer m+m*nb)
68546
68546
! (rworkspace: 0)
@@ -68654,7 +68654,7 @@ module stdlib_linalg_lapack_c
68654
68654
itaup = itauq + m
68655
68655
iwork = itaup + m
68656
68656
! zero out above l in a
68657
- call stdlib_claset( 'U', m-1, m-1, czero, czero,a( 1, 2 ), lda )
68657
+ if (m>1) call stdlib_claset( 'U', m-1, m-1, czero, czero,a( 1, 2 ), lda )
68658
68658
! bidiagonalize l in a
68659
68659
! (cworkspace: need 3*m, prefer 2*m+2*m*nb)
68660
68660
! (rworkspace: need m)
@@ -68774,7 +68774,7 @@ module stdlib_linalg_lapack_c
68774
68774
itaup = itauq + m
68775
68775
iwork = itaup + m
68776
68776
! zero out above l in a
68777
- call stdlib_claset( 'U', m-1, m-1, czero, czero,a( 1, 2 ), lda )
68777
+ if (m>1) call stdlib_claset( 'U', m-1, m-1, czero, czero,a( 1, 2 ), lda )
68778
68778
! bidiagonalize l in a
68779
68779
! (cworkspace: need 3*m, prefer 2*m+2*m*nb)
68780
68780
! (rworkspace: need m)
@@ -68882,7 +68882,7 @@ module stdlib_linalg_lapack_c
68882
68882
lwork-iwork+1, ierr )
68883
68883
! copy l to u, zeroing out above it
68884
68884
call stdlib_clacpy( 'L', m, m, a, lda, u, ldu )
68885
- call stdlib_claset( 'U', m-1, m-1, czero, czero,u( 1, 2 ), ldu )
68885
+ if (m>1) call stdlib_claset( 'U', m-1, m-1, czero, czero,u( 1, 2 ), ldu )
68886
68886
ie = 1
68887
68887
itauq = itau
68888
68888
itaup = itauq + m
@@ -68995,7 +68995,7 @@ module stdlib_linalg_lapack_c
68995
68995
itaup = itauq + m
68996
68996
iwork = itaup + m
68997
68997
! zero out above l in a
68998
- call stdlib_claset( 'U', m-1, m-1, czero, czero,a( 1, 2 ), lda )
68998
+ if (m>1) call stdlib_claset( 'U', m-1, m-1, czero, czero,a( 1, 2 ), lda )
68999
68999
! bidiagonalize l in a
69000
69000
! (cworkspace: need 3*m, prefer 2*m+2*m*nb)
69001
69001
! (rworkspace: need m)
@@ -69117,7 +69117,7 @@ module stdlib_linalg_lapack_c
69117
69117
itaup = itauq + m
69118
69118
iwork = itaup + m
69119
69119
! zero out above l in a
69120
- call stdlib_claset( 'U', m-1, m-1, czero, czero,a( 1, 2 ), lda )
69120
+ if (m>1) call stdlib_claset( 'U', m-1, m-1, czero, czero,a( 1, 2 ), lda )
69121
69121
! bidiagonalize l in a
69122
69122
! (cworkspace: need 3*m, prefer 2*m+2*m*nb)
69123
69123
! (rworkspace: need m)
@@ -69228,7 +69228,7 @@ module stdlib_linalg_lapack_c
69228
69228
lwork-iwork+1, ierr )
69229
69229
! copy l to u, zeroing out above it
69230
69230
call stdlib_clacpy( 'L', m, m, a, lda, u, ldu )
69231
- call stdlib_claset( 'U', m-1, m-1, czero, czero,u( 1, 2 ), ldu )
69231
+ if (m>1) call stdlib_claset( 'U', m-1, m-1, czero, czero,u( 1, 2 ), ldu )
69232
69232
ie = 1
69233
69233
itauq = itau
69234
69234
itaup = itauq + m
@@ -70098,7 +70098,7 @@ module stdlib_linalg_lapack_c
70098
70098
v(q,p) = conjg(u(p,nr+q))
70099
70099
end do
70100
70100
end do
70101
- call stdlib_claset('U',nr-1,nr-1,czero,czero,v(1,2),ldv)
70101
+ if (nr>1) call stdlib_claset('U',nr-1,nr-1,czero,czero,v(1,2),ldv)
70102
70102
call stdlib_cgesvd( 'S', 'O', nr, nr, v, ldv, s, u, ldu,v,ldv, cwork(n+nr+&
70103
70103
1),lcwork-n-nr,rwork, info )
70104
70104
call stdlib_claset('A',n-nr,nr,czero,czero,v(nr+1,1),ldv)
@@ -75163,7 +75163,7 @@ module stdlib_linalg_lapack_c
75163
75163
end do
75164
75164
end do
75165
75165
else
75166
- call stdlib_claset( 'U', nr-1,nr-1, czero,czero, a(1,2),lda )
75166
+ if (nr>1) call stdlib_claset( 'U', nr-1,nr-1, czero,czero, a(1,2),lda )
75167
75167
end if
75168
75168
! Second Preconditioning Using The Qr Factorization
75169
75169
call stdlib_cgeqrf( n,nr, a,lda, cwork, cwork(n+1),lwork-n, ierr )
@@ -75188,7 +75188,7 @@ module stdlib_linalg_lapack_c
75188
75188
end do
75189
75189
end do
75190
75190
else
75191
- call stdlib_claset( 'U', nr-1, nr-1, czero, czero, a(1,2), lda )
75191
+ if (nr>1) call stdlib_claset( 'U', nr-1, nr-1, czero, czero, a(1,2), lda )
75192
75192
end if
75193
75193
! .. and one-sided jacobi rotations are started on a lower
75194
75194
! triangular matrix (plus perturbation which is ignored in
@@ -75206,25 +75206,25 @@ module stdlib_linalg_lapack_c
75206
75206
call stdlib_ccopy( n-p+1, a(p,p), lda, v(p,p), 1 )
75207
75207
call stdlib_clacgv( n-p+1, v(p,p), 1 )
75208
75208
end do
75209
- call stdlib_claset( 'U', nr-1,nr-1, czero, czero, v(1,2), ldv )
75209
+ if (nr>1) call stdlib_claset( 'U', nr-1,nr-1, czero, czero, v(1,2), ldv )
75210
75210
call stdlib_cgesvj( 'L','U','N', n, nr, v, ldv, sva, nr, a, lda,cwork, lwork, &
75211
75211
rwork, lrwork, info )
75212
75212
scalem = rwork(1)
75213
75213
numrank = nint(rwork(2),KIND=ilp)
75214
75214
else
75215
75215
! .. two more qr factorizations ( one qrf is not enough, two require
75216
75216
! accumulated product of jacobi rotations, three are perfect )
75217
- call stdlib_claset( 'L', nr-1,nr-1, czero, czero, a(2,1), lda )
75217
+ if (nr>1) call stdlib_claset( 'L', nr-1,nr-1, czero, czero, a(2,1), lda )
75218
75218
call stdlib_cgelqf( nr,n, a, lda, cwork, cwork(n+1), lwork-n, ierr)
75219
75219
call stdlib_clacpy( 'L', nr, nr, a, lda, v, ldv )
75220
- call stdlib_claset( 'U', nr-1,nr-1, czero, czero, v(1,2), ldv )
75220
+ if (nr>1) call stdlib_claset( 'U', nr-1,nr-1, czero, czero, v(1,2), ldv )
75221
75221
call stdlib_cgeqrf( nr, nr, v, ldv, cwork(n+1), cwork(2*n+1),lwork-2*n, ierr )
75222
75222
75223
75223
do p = 1, nr
75224
75224
call stdlib_ccopy( nr-p+1, v(p,p), ldv, v(p,p), 1 )
75225
75225
call stdlib_clacgv( nr-p+1, v(p,p), 1 )
75226
75226
end do
75227
- call stdlib_claset('U', nr-1, nr-1, czero, czero, v(1,2), ldv)
75227
+ if (nr>1) call stdlib_claset('U', nr-1, nr-1, czero, czero, v(1,2), ldv)
75228
75228
call stdlib_cgesvj( 'L', 'U','N', nr, nr, v,ldv, sva, nr, u,ldu, cwork(n+1), &
75229
75229
lwork-n, rwork, lrwork, info )
75230
75230
scalem = rwork(1)
@@ -75247,7 +75247,7 @@ module stdlib_linalg_lapack_c
75247
75247
call stdlib_clacpy( 'A', n, n, v, ldv, u, ldu )
75248
75248
end if
75249
75249
else if ( jracc .and. (.not. lsvec) .and. ( nr== n ) ) then
75250
- call stdlib_claset( 'L', n-1,n-1, czero, czero, a(2,1), lda )
75250
+ if (n>1) call stdlib_claset( 'L', n-1,n-1, czero, czero, a(2,1), lda )
75251
75251
call stdlib_cgesvj( 'U','N','V', n, n, a, lda, sva, n, v, ldv,cwork, lwork, rwork, &
75252
75252
lrwork, info )
75253
75253
scalem = rwork(1)
@@ -75261,14 +75261,14 @@ module stdlib_linalg_lapack_c
75261
75261
call stdlib_ccopy( n-p+1, a(p,p), lda, u(p,p), 1 )
75262
75262
call stdlib_clacgv( n-p+1, u(p,p), 1 )
75263
75263
end do
75264
- call stdlib_claset( 'U', nr-1, nr-1, czero, czero, u(1,2), ldu )
75264
+ if (nr>1) call stdlib_claset( 'U', nr-1, nr-1, czero, czero, u(1,2), ldu )
75265
75265
call stdlib_cgeqrf( n, nr, u, ldu, cwork(n+1), cwork(2*n+1),lwork-2*n, ierr )
75266
75266
75267
75267
do p = 1, nr - 1
75268
75268
call stdlib_ccopy( nr-p, u(p,p+1), ldu, u(p+1,p), 1 )
75269
75269
call stdlib_clacgv( n-p+1, u(p,p), 1 )
75270
75270
end do
75271
- call stdlib_claset( 'U', nr-1, nr-1, czero, czero, u(1,2), ldu )
75271
+ if (nr>1) call stdlib_claset( 'U', nr-1, nr-1, czero, czero, u(1,2), ldu )
75272
75272
call stdlib_cgesvj( 'L', 'U', 'N', nr,nr, u, ldu, sva, nr, a,lda, cwork(n+1), lwork-&
75273
75273
n, rwork, lrwork, info )
75274
75274
scalem = rwork(1)
@@ -75327,7 +75327,7 @@ module stdlib_linalg_lapack_c
75327
75327
end do
75328
75328
end do
75329
75329
else
75330
- call stdlib_claset( 'U', nr-1, nr-1, czero, czero, v(1,2), ldv )
75330
+ if (nr>1) call stdlib_claset( 'U', nr-1, nr-1, czero, czero, v(1,2), ldv )
75331
75331
end if
75332
75332
! estimate the row scaled condition number of r1
75333
75333
! (if r1 is rectangular, n > nr, then the condition number
@@ -75409,7 +75409,7 @@ module stdlib_linalg_lapack_c
75409
75409
end do
75410
75410
end do
75411
75411
else
75412
- call stdlib_claset( 'L',nr-1,nr-1,czero,czero,v(2,1),ldv )
75412
+ if (nr>1) call stdlib_claset( 'L',nr-1,nr-1,czero,czero,v(2,1),ldv )
75413
75413
end if
75414
75414
! now, compute r2 = l3 * q3, the lq factorization.
75415
75415
call stdlib_cgelqf( nr, nr, v, ldv, cwork(2*n+n*nr+1),cwork(2*n+n*nr+nr+1), &
@@ -75443,7 +75443,7 @@ module stdlib_linalg_lapack_c
75443
75443
end do
75444
75444
end do
75445
75445
else
75446
- call stdlib_claset( 'U', nr-1,nr-1, czero,czero, v(1,2), ldv )
75446
+ if (nr>1) call stdlib_claset( 'U', nr-1,nr-1, czero,czero, v(1,2), ldv )
75447
75447
end if
75448
75448
! second preconditioning finished; continue with jacobi svd
75449
75449
! the input matrix is lower trinagular.
@@ -75662,7 +75662,7 @@ module stdlib_linalg_lapack_c
75662
75662
end do
75663
75663
end do
75664
75664
else
75665
- call stdlib_claset( 'U', nr-1, nr-1, czero, czero, v(1,2), ldv )
75665
+ if (nr>1) call stdlib_claset( 'U', nr-1, nr-1, czero, czero, v(1,2), ldv )
75666
75666
end if
75667
75667
call stdlib_cgeqrf( n, nr, v, ldv, cwork(n+1), cwork(2*n+1),lwork-2*n, ierr )
75668
75668
@@ -75681,7 +75681,7 @@ module stdlib_linalg_lapack_c
75681
75681
end do
75682
75682
end do
75683
75683
else
75684
- call stdlib_claset('U', nr-1, nr-1, czero, czero, u(1,2), ldu )
75684
+ if (nr>1) call stdlib_claset('U', nr-1, nr-1, czero, czero, u(1,2), ldu )
75685
75685
end if
75686
75686
call stdlib_cgesvj( 'L', 'U', 'V', nr, nr, u, ldu, sva,n, v, ldv, cwork(2*n+n*nr+1),&
75687
75687
lwork-2*n-n*nr,rwork, lrwork, info )
0 commit comments