Skip to content

Commit 0606a8c

Browse files
authored
More special operations for Diagonal{<:Any,<:AbstractFill} (#139)
1 parent b51bb8a commit 0606a8c

File tree

3 files changed

+11
-4
lines changed

3 files changed

+11
-4
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "FillArrays"
22
uuid = "1a297f60-69ca-5386-bcde-b61e274b549b"
3-
version = "0.11.4"
3+
version = "0.11.5"
44

55
[deps]
66
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"

src/FillArrays.jl

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -380,10 +380,14 @@ const Eye{T,Axes} = RectOrDiagonal{T,Ones{T,1,Tuple{Axes}}}
380380

381381
isone(::SquareEye) = true
382382

383-
for f in (:permutedims, :inv, :triu, :triu!, :tril, :tril!)
384-
@eval ($f)(IM::SquareEye) = IM
383+
# These should actually be in StdLib, LinearAlgebra.jl, for all Diagonal
384+
for f in (:permutedims, :triu, :triu!, :tril, :tril!)
385+
@eval ($f)(IM::Diagonal{<:Any,<:AbstractFill}) = IM
385386
end
386387

388+
inv(IM::SquareEye) = IM
389+
inv(IM::Diagonal{<:Any,<:AbstractFill}) = Diagonal(map(inv, IM.diag))
390+
387391
Eye(n::Integer, m::Integer) = RectDiagonal(Ones(min(n,m)), n, m)
388392
Eye{T}(n::Integer, m::Integer) where T = RectDiagonal{T}(Ones{T}(min(n,m)), n, m)
389393
function Eye{T}((a,b)::NTuple{2,AbstractUnitRange{Int}}) where T

test/runtests.jl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -926,11 +926,14 @@ end
926926

927927
@testset "Eye identity ops" begin
928928
m = Eye(10)
929+
D = Diagonal(Fill(2,10))
929930
for op in (permutedims, inv)
930931
@test op(m) === m
931932
end
933+
@test permutedims(D) D
934+
@test inv(D) Diagonal(Fill(1/2,10))
932935

933-
for m in (Eye(10), Eye(10, 10), Eye(10, 8), Eye(8, 10))
936+
for m in (Eye(10), Eye(10, 10), Eye(10, 8), Eye(8, 10), D)
934937
for op in (tril, triu, tril!, triu!)
935938
@test op(m) === m
936939
end

0 commit comments

Comments
 (0)