Skip to content

Commit 81f058b

Browse files
committed
Handle zeros even better
1 parent 0ea7bfd commit 81f058b

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

src/implementations/svd.jl

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,12 @@ end
189189

190190
function svd_vals!(A::AbstractMatrix, S, alg::LAPACK_SVDAlgorithm)
191191
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
192198
U, Vᴴ = similar(A, (0, 0)), similar(A, (0, 0))
193199

194200
alg_kwargs = Base.structdiff(alg.kwargs, NamedTuple{(:fixgauge,)})
@@ -447,6 +453,12 @@ _largest(x, y) = abs(x) < abs(y) ? y : x
447453

448454
function svd_vals!(A::AbstractMatrix, S, alg::GPU_SVDAlgorithm)
449455
check_input(svd_vals!, A, S, alg)
456+
m, n = size(A)
457+
minmn = min(m, n)
458+
if minmn == 0
459+
zero!(S)
460+
return S
461+
end
450462
U, Vᴴ = similar(A, (0, 0)), similar(A, (0, 0))
451463

452464
alg_kwargs = Base.structdiff(alg.kwargs, NamedTuple{(:fixgauge,)})

0 commit comments

Comments
 (0)