diff --git a/src/special.jl b/src/special.jl index 262c792..3fc572c 100644 --- a/src/special.jl +++ b/src/special.jl @@ -249,3 +249,11 @@ triu(A::TriangularToeplitz, k::Integer=0) = triu!(_copymutable(A), k) isdiag(A::Union{Circulant, LowerTriangularToeplitz, SymmetricToeplitz}) = all(iszero, @view _vc(A)[2:end]) isdiag(A::UpperTriangularToeplitz) = all(iszero, @view _vr(A)[2:end]) + +# display triangular matrices with dots +function Base.replace_in_print_matrix(A::UpperTriangularToeplitz, i::Integer, j::Integer, s::AbstractString) + i <= j ? s : Base.replace_with_centered_mark(s) +end +function Base.replace_in_print_matrix(A::LowerTriangularToeplitz, i::Integer, j::Integer, s::AbstractString) + i >= j ? s : Base.replace_with_centered_mark(s) +end diff --git a/test/runtests.jl b/test/runtests.jl index 4d8d121..1a7e3d9 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -641,6 +641,20 @@ end @test inv(TL)::TriangularToeplitz ≈ inv(Matrix(TL)) end + @testset "display" begin + UT = UpperTriangularToeplitz([1,2,3,4]) + U = UpperTriangular(Matrix(UT)) + st = sprint(show, "text/plain", UT) + s = sprint(show, "text/plain", U) + @test split(st, '\n')[2:end] == split(s, '\n')[2:end] + + LT = LowerTriangularToeplitz([1,2,3,4]) + L = LowerTriangular(Matrix(LT)) + st = sprint(show, "text/plain", LT) + s = sprint(show, "text/plain", L) + @test split(st, '\n')[2:end] == split(s, '\n')[2:end] + end + @testset "eigen" begin for T in (UpperTriangularToeplitz, LowerTriangularToeplitz) for p in ([1:6;], rand(ComplexF64, 5))