@@ -65732,7 +65732,7 @@ module stdlib_linalg_lapack_c
6573265732 call stdlib_cgeqrf( m, n, a, lda, work( itau ), work( nwork ),lwork-nwork+1, &
6573365733 ierr )
6573465734 ! 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 )
6573665736 ie = 1
6573765737 itauq = 1
6573865738 itaup = itauq + n
@@ -65918,7 +65918,7 @@ module stdlib_linalg_lapack_c
6591865918 call stdlib_cungqr( m, m, n, u, ldu, work( itau ),work( nwork ), lwork-nwork+&
6591965919 1, ierr )
6592065920 ! 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 )
6592265922 ie = 1
6592365923 itauq = itau
6592465924 itaup = itauq + n
@@ -66294,7 +66294,7 @@ module stdlib_linalg_lapack_c
6629466294 call stdlib_cgelqf( m, n, a, lda, work( itau ), work( nwork ),lwork-nwork+1, &
6629566295 ierr )
6629666296 ! 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 )
6629866298 ie = 1
6629966299 itauq = 1
6630066300 itaup = itauq + m
@@ -66485,7 +66485,7 @@ module stdlib_linalg_lapack_c
6648566485 call stdlib_cunglq( n, n, m, vt, ldvt, work( itau ),work( nwork ), lwork-&
6648666486 nwork+1, ierr )
6648766487 ! 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 )
6648966489 ie = 1
6649066490 itauq = itau
6649166491 itaup = itauq + m
@@ -68327,7 +68327,7 @@ module stdlib_linalg_lapack_c
6832768327 call stdlib_cgelqf( m, n, a, lda, work( itau ), work( iwork ),lwork-iwork+1, &
6832868328 ierr )
6832968329 ! 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 )
6833168331 ie = 1
6833268332 itauq = 1
6833368333 itaup = itauq + m
@@ -68483,7 +68483,7 @@ module stdlib_linalg_lapack_c
6848368483 1, ierr )
6848468484 ! copy l to u, zeroing about above it
6848568485 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 )
6848768487 ! generate q in a
6848868488 ! (cworkspace: need m*m+2*m, prefer m*m+m+m*nb)
6848968489 ! (rworkspace: 0)
@@ -68540,7 +68540,7 @@ module stdlib_linalg_lapack_c
6854068540 1, ierr )
6854168541 ! copy l to u, zeroing out above it
6854268542 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 )
6854468544 ! generate q in a
6854568545 ! (cworkspace: need 2*m, prefer m+m*nb)
6854668546 ! (rworkspace: 0)
@@ -68654,7 +68654,7 @@ module stdlib_linalg_lapack_c
6865468654 itaup = itauq + m
6865568655 iwork = itaup + m
6865668656 ! 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 )
6865868658 ! bidiagonalize l in a
6865968659 ! (cworkspace: need 3*m, prefer 2*m+2*m*nb)
6866068660 ! (rworkspace: need m)
@@ -68774,7 +68774,7 @@ module stdlib_linalg_lapack_c
6877468774 itaup = itauq + m
6877568775 iwork = itaup + m
6877668776 ! 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 )
6877868778 ! bidiagonalize l in a
6877968779 ! (cworkspace: need 3*m, prefer 2*m+2*m*nb)
6878068780 ! (rworkspace: need m)
@@ -68882,7 +68882,7 @@ module stdlib_linalg_lapack_c
6888268882 lwork-iwork+1, ierr )
6888368883 ! copy l to u, zeroing out above it
6888468884 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 )
6888668886 ie = 1
6888768887 itauq = itau
6888868888 itaup = itauq + m
@@ -68995,7 +68995,7 @@ module stdlib_linalg_lapack_c
6899568995 itaup = itauq + m
6899668996 iwork = itaup + m
6899768997 ! 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 )
6899968999 ! bidiagonalize l in a
6900069000 ! (cworkspace: need 3*m, prefer 2*m+2*m*nb)
6900169001 ! (rworkspace: need m)
@@ -69117,7 +69117,7 @@ module stdlib_linalg_lapack_c
6911769117 itaup = itauq + m
6911869118 iwork = itaup + m
6911969119 ! 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 )
6912169121 ! bidiagonalize l in a
6912269122 ! (cworkspace: need 3*m, prefer 2*m+2*m*nb)
6912369123 ! (rworkspace: need m)
@@ -69228,7 +69228,7 @@ module stdlib_linalg_lapack_c
6922869228 lwork-iwork+1, ierr )
6922969229 ! copy l to u, zeroing out above it
6923069230 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 )
6923269232 ie = 1
6923369233 itauq = itau
6923469234 itaup = itauq + m
@@ -70098,7 +70098,7 @@ module stdlib_linalg_lapack_c
7009870098 v(q,p) = conjg(u(p,nr+q))
7009970099 end do
7010070100 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)
7010270102 call stdlib_cgesvd( 'S', 'O', nr, nr, v, ldv, s, u, ldu,v,ldv, cwork(n+nr+&
7010370103 1),lcwork-n-nr,rwork, info )
7010470104 call stdlib_claset('A',n-nr,nr,czero,czero,v(nr+1,1),ldv)
@@ -75163,7 +75163,7 @@ module stdlib_linalg_lapack_c
7516375163 end do
7516475164 end do
7516575165 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 )
7516775167 end if
7516875168 ! Second Preconditioning Using The Qr Factorization
7516975169 call stdlib_cgeqrf( n,nr, a,lda, cwork, cwork(n+1),lwork-n, ierr )
@@ -75188,7 +75188,7 @@ module stdlib_linalg_lapack_c
7518875188 end do
7518975189 end do
7519075190 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 )
7519275192 end if
7519375193 ! .. and one-sided jacobi rotations are started on a lower
7519475194 ! triangular matrix (plus perturbation which is ignored in
@@ -75206,25 +75206,25 @@ module stdlib_linalg_lapack_c
7520675206 call stdlib_ccopy( n-p+1, a(p,p), lda, v(p,p), 1 )
7520775207 call stdlib_clacgv( n-p+1, v(p,p), 1 )
7520875208 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 )
7521075210 call stdlib_cgesvj( 'L','U','N', n, nr, v, ldv, sva, nr, a, lda,cwork, lwork, &
7521175211 rwork, lrwork, info )
7521275212 scalem = rwork(1)
7521375213 numrank = nint(rwork(2),KIND=ilp)
7521475214 else
7521575215 ! .. two more qr factorizations ( one qrf is not enough, two require
7521675216 ! 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 )
7521875218 call stdlib_cgelqf( nr,n, a, lda, cwork, cwork(n+1), lwork-n, ierr)
7521975219 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 )
7522175221 call stdlib_cgeqrf( nr, nr, v, ldv, cwork(n+1), cwork(2*n+1),lwork-2*n, ierr )
7522275222
7522375223 do p = 1, nr
7522475224 call stdlib_ccopy( nr-p+1, v(p,p), ldv, v(p,p), 1 )
7522575225 call stdlib_clacgv( nr-p+1, v(p,p), 1 )
7522675226 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)
7522875228 call stdlib_cgesvj( 'L', 'U','N', nr, nr, v,ldv, sva, nr, u,ldu, cwork(n+1), &
7522975229 lwork-n, rwork, lrwork, info )
7523075230 scalem = rwork(1)
@@ -75247,7 +75247,7 @@ module stdlib_linalg_lapack_c
7524775247 call stdlib_clacpy( 'A', n, n, v, ldv, u, ldu )
7524875248 end if
7524975249 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 )
7525175251 call stdlib_cgesvj( 'U','N','V', n, n, a, lda, sva, n, v, ldv,cwork, lwork, rwork, &
7525275252 lrwork, info )
7525375253 scalem = rwork(1)
@@ -75261,14 +75261,14 @@ module stdlib_linalg_lapack_c
7526175261 call stdlib_ccopy( n-p+1, a(p,p), lda, u(p,p), 1 )
7526275262 call stdlib_clacgv( n-p+1, u(p,p), 1 )
7526375263 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 )
7526575265 call stdlib_cgeqrf( n, nr, u, ldu, cwork(n+1), cwork(2*n+1),lwork-2*n, ierr )
7526675266
7526775267 do p = 1, nr - 1
7526875268 call stdlib_ccopy( nr-p, u(p,p+1), ldu, u(p+1,p), 1 )
7526975269 call stdlib_clacgv( n-p+1, u(p,p), 1 )
7527075270 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 )
7527275272 call stdlib_cgesvj( 'L', 'U', 'N', nr,nr, u, ldu, sva, nr, a,lda, cwork(n+1), lwork-&
7527375273 n, rwork, lrwork, info )
7527475274 scalem = rwork(1)
@@ -75327,7 +75327,7 @@ module stdlib_linalg_lapack_c
7532775327 end do
7532875328 end do
7532975329 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 )
7533175331 end if
7533275332 ! estimate the row scaled condition number of r1
7533375333 ! (if r1 is rectangular, n > nr, then the condition number
@@ -75409,7 +75409,7 @@ module stdlib_linalg_lapack_c
7540975409 end do
7541075410 end do
7541175411 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 )
7541375413 end if
7541475414 ! now, compute r2 = l3 * q3, the lq factorization.
7541575415 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
7544375443 end do
7544475444 end do
7544575445 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 )
7544775447 end if
7544875448 ! second preconditioning finished; continue with jacobi svd
7544975449 ! the input matrix is lower trinagular.
@@ -75662,7 +75662,7 @@ module stdlib_linalg_lapack_c
7566275662 end do
7566375663 end do
7566475664 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 )
7566675666 end if
7566775667 call stdlib_cgeqrf( n, nr, v, ldv, cwork(n+1), cwork(2*n+1),lwork-2*n, ierr )
7566875668
@@ -75681,7 +75681,7 @@ module stdlib_linalg_lapack_c
7568175681 end do
7568275682 end do
7568375683 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 )
7568575685 end if
7568675686 call stdlib_cgesvj( 'L', 'U', 'V', nr, nr, u, ldu, sva,n, v, ldv, cwork(2*n+n*nr+1),&
7568775687 lwork-2*n-n*nr,rwork, lrwork, info )
0 commit comments