Skip to content

Commit cfc9bad

Browse files
committed
linalg: Make norm2 work for non-matrices
1 parent eb7ad16 commit cfc9bad

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

src/array/linalg.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
function LinearAlgebra.norm2(A::DArray{T,2}) where T
1+
function LinearAlgebra.norm2(A::DArray{T,N}) where {T,N}
22
Ac = A.chunks
3-
norms = [Dagger.@spawn mapreduce(LinearAlgebra.norm_sqr, +, chunk) for chunk in Ac]::Matrix{DTask}
3+
norms = [Dagger.@spawn mapreduce(LinearAlgebra.norm_sqr, +, chunk) for chunk in Ac]::Array{DTask,N}
44
zeroRT = zero(real(T))
55
return sqrt(sum(map(norm->fetch(norm)::real(T), norms); init=zeroRT))
66
end

test/array/linalg/core.jl

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,17 @@
99
L2 = LowerTriangular(DArray(A, Blocks(16, 16)))
1010
@test isapprox(L1, L2)
1111
end
12+
13+
@testset "norm" begin
14+
A = rand(16, 16)
15+
DA = DArray(A)
16+
@test isapprox(norm(A), norm(DA))
17+
18+
A = rand(16)
19+
DA = DArray(A)
20+
@test isapprox(norm(A), norm(DA))
21+
22+
A = rand(16, 16, 16)
23+
DA = DArray(A)
24+
@test isapprox(norm(A), norm(DA))
25+
end

0 commit comments

Comments
 (0)