Skip to content

Commit af30ed9

Browse files
committed
Add support for simple printing
1 parent a7b0da3 commit af30ed9

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

src/show.jl

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1+
Base.print(io::IO, v::AbstractPolynomialLike) = show(io, MIME"text/print"(), v)
2+
13
# VARIABLES
24
Base.show(io::IO, v::AbstractVariable) = print_var(io, MIME"text/plain"(), v)
35
Base.show(io::IO, mime::MIME"text/plain", v::AbstractVariable) = print_var(io, mime, v)
46
Base.show(io::IO, mime::MIME"text/latex", v::AbstractVariable) = print_var(io, mime, v)
7+
Base.show(io::IO, mime::MIME"text/print", v::AbstractVariable) = print_var(io, mime, v)
58

69
function print_var(io::IO, mime::MIME, var::AbstractVariable)
710
base, indices = name_base_indices(var)
@@ -12,6 +15,8 @@ function print_var(io::IO, mime::MIME, var::AbstractVariable)
1215
print_subscript(io, mime, indices)
1316
end
1417
end
18+
print_var(io::IO, mime::MIME"text/print", var::AbstractVariable) = print(io, name(var))
19+
1520
function print_subscript(io::IO, ::MIME"text/latex", index)
1621
print(io, "_{", join(index, ","), "}")
1722
end
@@ -30,15 +35,23 @@ unicode_subscript(i) = unicode_subscripts[i+1]
3035

3136
Base.show(io::IO, mime::MIME"text/latex", m::AbstractMonomial) = print_monomial(io, mime, m)
3237
Base.show(io::IO, mime::MIME"text/plain", m::AbstractMonomial) = print_monomial(io, mime, m)
38+
Base.show(io::IO, mime::MIME"text/print", m::AbstractMonomial) = print_monomial(io, mime, m)
3339
Base.show(io::IO, m::AbstractMonomial) = print_monomial(io, MIME"text/plain"(), m)
3440

3541
function print_monomial(io::IO, mime, m::AbstractMonomial)
3642
if isconstant(m)
3743
print(io, '1')
3844
else
39-
for (var, exp) in zip(variables(m), exponents(m))
45+
printed_var = false
46+
vars = variables(m)
47+
n = length(vars)
48+
for (i, var, exp) in zip(1:n, vars, exponents(m))
4049
if !iszero(exp)
50+
if mime isa MIME"text/print" && printed_var && i > 0 &&
51+
print(io,"*")
52+
end
4153
print_var(io, mime, var)
54+
printed_var = true
4255
if !isone(exp)
4356
print_exponent(io, mime, exp)
4457
end
@@ -48,6 +61,7 @@ function print_monomial(io::IO, mime, m::AbstractMonomial)
4861
end
4962
#
5063
print_exponent(io::IO, ::MIME"text/latex", exp) = print(io, "^{", exp, "}")
64+
print_exponent(io::IO, ::MIME"text/print", exp) = print(io, "^", exp)
5165
function print_exponent(io::IO, mime, exp)
5266
print(io, join(unicode_superscript.(reverse(digits(exp)))))
5367
end
@@ -60,6 +74,7 @@ unicode_superscript(i) = unicode_superscripts[i+1]
6074
Base.show(io::IO, t::AbstractTerm) = print_term(io, MIME"text/plain"(), t)
6175
Base.show(io::IO, mime::MIME"text/latex", t::AbstractTerm) = print_term(io, mime, t)
6276
Base.show(io::IO, mime::MIME"text/plain", t::AbstractTerm) = print_term(io, mime, t)
77+
Base.show(io::IO, mime::MIME"text/print", t::AbstractTerm) = print_term(io, mime, t)
6378

6479
function print_term(io::IO, mime, t::AbstractTerm)
6580
if isconstant(t)
@@ -88,6 +103,7 @@ print_coefficient(io::IO, coeff) = print(io, "(", coeff, ")")
88103
Base.show(io::IO, t::AbstractPolynomial) = print_poly(io, MIME"text/plain"(), t)
89104
Base.show(io::IO, mime::MIME"text/plain", t::AbstractPolynomial) = print_poly(io, mime, t)
90105
Base.show(io::IO, mime::MIME"text/latex", t::AbstractPolynomial) = print_poly(io, mime, t)
106+
Base.show(io::IO, mime::MIME"text/print", t::AbstractPolynomial) = print_poly(io, mime, t)
91107

92108
function print_poly(io::IO, mime, p::AbstractPolynomial{T}) where T
93109
ts = terms(p)
@@ -115,6 +131,7 @@ isnegative(x) = false
115131
Base.show(io::IO, t::RationalPoly) = print_ratpoly(io, MIME"text/plain"(), t)
116132
Base.show(io::IO, mime::MIME"text/plain", t::RationalPoly) = print_ratpoly(io, mime, t)
117133
Base.show(io::IO, mime::MIME"text/latex", t::RationalPoly) = print_ratpoly(io, mime, t)
134+
Base.show(io::IO, mime::MIME"text/print", t::RationalPoly) = print_ratpoly(io, mime, t)
118135

119136
function print_ratpoly(io::IO, mime, p::RationalPoly)
120137
print(io, "(")

0 commit comments

Comments
 (0)