Skip to content

Commit

Permalink
Make printing of UnitLower/UpperTriangular similar to the non-Unit (J…
Browse files Browse the repository at this point in the history
…uliaLang#25726)

versions and export the Unit types
  • Loading branch information
andreasnoack committed Jan 25, 2018
1 parent 6db812f commit d4db28b
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 5 deletions.
2 changes: 2 additions & 0 deletions stdlib/LinearAlgebra/src/LinearAlgebra.jl
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ export
Symmetric,
LowerTriangular,
UpperTriangular,
UnitLowerTriangular,
UnitUpperTriangular,
Diagonal,
UniformScaling,

Expand Down
11 changes: 6 additions & 5 deletions stdlib/LinearAlgebra/src/triangular.jl
Original file line number Diff line number Diff line change
Expand Up @@ -218,14 +218,15 @@ end


## structured matrix methods ##
function Base.replace_in_print_matrix(A::UpperTriangular,i::Integer,j::Integer,s::AbstractString)
i<=j ? s : Base.replace_with_centered_mark(s)
function Base.replace_in_print_matrix(A::Union{UpperTriangular,UnitUpperTriangular},
i::Integer, j::Integer, s::AbstractString)
return i <= j ? s : Base.replace_with_centered_mark(s)
end
function Base.replace_in_print_matrix(A::LowerTriangular,i::Integer,j::Integer,s::AbstractString)
i>=j ? s : Base.replace_with_centered_mark(s)
function Base.replace_in_print_matrix(A::Union{LowerTriangular,UnitLowerTriangular},
i::Integer, j::Integer, s::AbstractString)
return i >= j ? s : Base.replace_with_centered_mark(s)
end


istril(A::LowerTriangular) = true
istril(A::UnitLowerTriangular) = true
istriu(A::UpperTriangular) = true
Expand Down
11 changes: 11 additions & 0 deletions stdlib/LinearAlgebra/test/triangular.jl
Original file line number Diff line number Diff line change
Expand Up @@ -538,4 +538,15 @@ end
end
end

@testset "special printing of Lower/UpperTriangular" begin
@test sprint(show, MIME"text/plain"(), LowerTriangular(2ones(Int64,3,3))) ==
"3×3 LinearAlgebra.LowerTriangular{Int64,Array{Int64,2}}:\n 2 ⋅ ⋅\n 2 2 ⋅\n 2 2 2"
@test sprint(show, MIME"text/plain"(), UnitLowerTriangular(2ones(Int64,3,3))) ==
"3×3 LinearAlgebra.UnitLowerTriangular{Int64,Array{Int64,2}}:\n 1 ⋅ ⋅\n 2 1 ⋅\n 2 2 1"
@test sprint(show, MIME"text/plain"(), UpperTriangular(2ones(Int64,3,3))) ==
"3×3 LinearAlgebra.UpperTriangular{Int64,Array{Int64,2}}:\n 2 2 2\n ⋅ 2 2\n ⋅ ⋅ 2"
@test sprint(show, MIME"text/plain"(), UnitUpperTriangular(2ones(Int64,3,3))) ==
"3×3 LinearAlgebra.UnitUpperTriangular{Int64,Array{Int64,2}}:\n 1 2 2\n ⋅ 1 2\n ⋅ ⋅ 1"
end

end # module TestTriangular

0 comments on commit d4db28b

Please sign in to comment.