152152function svd_compact!(A:: AbstractMatrix , USVᴴ, alg:: LAPACK_SVDAlgorithm )
153153 check_input(svd_compact!, A, USVᴴ, alg)
154154 U, S, Vᴴ = USVᴴ
155+ m, n = size(A)
156+ minmn = min(m, n)
157+ if minmn == 0
158+ one!(U)
159+ zero!(S)
160+ one!(Vᴴ)
161+ return USVᴴ
162+ end
155163
156164 do_gauge_fix = get(alg. kwargs, :fixgauge, default_fixgauge()):: Bool
157165 alg_kwargs = Base. structdiff(alg. kwargs, NamedTuple{(:fixgauge,)})
181189
182190function svd_vals!(A:: AbstractMatrix , S, alg:: LAPACK_SVDAlgorithm )
183191 check_input(svd_vals!, A, S, alg)
192+ m, n = size(A)
193+ minmn = min(m, n)
194+ if minmn == 0
195+ zero!(S)
196+ return S
197+ end
184198 U, Vᴴ = similar(A, (0 , 0 )), similar(A, (0 , 0 ))
185199
186200 alg_kwargs = Base. structdiff(alg. kwargs, NamedTuple{(:fixgauge,)})
@@ -256,6 +270,12 @@ function svd_compact!(A, USVᴴ, alg::DiagonalAlgorithm)
256270end
257271function svd_vals!(A:: AbstractMatrix , S, alg:: DiagonalAlgorithm )
258272 check_input(svd_vals!, A, S, alg)
273+ m, n = size(A)
274+ minmn = min(m, n)
275+ if minmn == 0
276+ zero!(S)
277+ return S
278+ end
259279 Ad = diagview(A)
260280 S .= abs.(Ad)
261281 sort!(S; rev = true )
407427function svd_compact!(A:: AbstractMatrix , USVᴴ, alg:: GPU_SVDAlgorithm )
408428 check_input(svd_compact!, A, USVᴴ, alg)
409429 U, S, Vᴴ = USVᴴ
430+ m, n = size(A)
431+ minmn = min(m, n)
432+ if minmn == 0
433+ one!(U)
434+ zero!(S)
435+ one!(Vᴴ)
436+ return USVᴴ
437+ end
410438
411439 do_gauge_fix = get(alg. kwargs, :fixgauge, default_fixgauge()):: Bool
412440 alg_kwargs = Base. structdiff(alg. kwargs, NamedTuple{(:fixgauge,)})
@@ -431,6 +459,12 @@ _largest(x, y) = abs(x) < abs(y) ? y : x
431459
432460function svd_vals!(A:: AbstractMatrix , S, alg:: GPU_SVDAlgorithm )
433461 check_input(svd_vals!, A, S, alg)
462+ m, n = size(A)
463+ minmn = min(m, n)
464+ if minmn == 0
465+ zero!(S)
466+ return S
467+ end
434468 U, Vᴴ = similar(A, (0 , 0 )), similar(A, (0 , 0 ))
435469
436470 alg_kwargs = Base. structdiff(alg. kwargs, NamedTuple{(:fixgauge,)})
0 commit comments