Skip to content

Commit 5cc05fc

Browse files
committed
Complex additions and missing file
1 parent bc5eb45 commit 5cc05fc

File tree

3 files changed

+60
-21
lines changed

3 files changed

+60
-21
lines changed

Diff for: src/types/SisoTfTypes/SisoRational.jl

+14-14
Original file line numberDiff line numberDiff line change
@@ -95,26 +95,26 @@ function isapprox(f1::SisoRational, f2::SisoRational; rtol::Real=sqrt(eps()), at
9595
end
9696

9797
+(f1::SisoRational, f2::SisoRational) = SisoRational(f1.num*f2.den + f2.num*f1.den, f1.den*f2.den)
98-
+(f::SisoRational, n::Real) = SisoRational(f.num + n*f.den, f.den)
99-
+(n::Real, f::SisoRational) = f + n
100-
#.+(f::SisoRational, n::Real) = t + n
101-
#.+(n::Real, f::SisoRational) = t + n
98+
+(f::SisoRational, n::Number) = SisoRational(f.num + n*f.den, f.den)
99+
+(n::Number, f::SisoRational) = f + n
100+
#.+(f::SisoRational, n::Number) = t + n
101+
#.+(n::Number, f::SisoRational) = t + n
102102

103103
-(f1::SisoRational, f2::SisoRational) = SisoRational(f1.num*f2.den - f2.num*f1.den, f1.den*f2.den)
104-
-(n::Real, f::SisoRational) = SisoRational(n*f.den - f.num, f.den)
105-
-(f::SisoRational, n::Real) = +(f, -n)
106-
#.-(f::SisoRational, n::Real) = -(t, n)
107-
#.-(n::Real, f::SisoRational) = -(n, t)
104+
-(n::Number, f::SisoRational) = SisoRational(n*f.den - f.num, f.den)
105+
-(f::SisoRational, n::Number) = +(f, -n)
106+
#.-(f::SisoRational, n::Number) = -(t, n)
107+
#.-(n::Number, f::SisoRational) = -(n, t)
108108

109109
-(f::SisoRational) = SisoRational(-f.num, f.den)
110110

111111
*(f1::SisoRational, f2::SisoRational) = SisoRational(f1.num*f2.num, f1.den*f2.den)
112-
*(f::SisoRational, n::Real) = SisoRational(f.num*n, f.den)
113-
*(n::Real, f::SisoRational) = *(f, n)
112+
*(f::SisoRational, n::Number) = SisoRational(f.num*n, f.den)
113+
*(n::Number, f::SisoRational) = *(f, n)
114114
#.*(f1::SisoRational, f2::SisoRational) = *(f1, f2)
115-
#.*(f::SisoRational, n::Real) = *(f, n)
116-
#.*(n::Real, f::SisoRational) = *(f, n)
115+
#.*(f::SisoRational, n::Number) = *(f, n)
116+
#.*(n::Number, f::SisoRational) = *(f, n)
117117

118-
/(n::Real, f::SisoRational) = SisoRational(n*f.den, f.num)
119-
/(f::SisoRational, n::Real) = f*(1/n)
118+
/(n::Number, f::SisoRational) = SisoRational(n*f.den, f.num)
119+
/(f::SisoRational, n::Number) = f*(1/n)
120120
/(f1::SisoRational, f2::SisoRational) = f1*(1/f2)

Diff for: src/types/SisoTfTypes/SisoZpk.jl

+7-7
Original file line numberDiff line numberDiff line change
@@ -214,14 +214,14 @@ end
214214

215215
+(f::SisoZpk, n::T) where {T<:Number} = f + SisoZpk{T,T}(T[],T[],n)
216216
+(n::Number, f::SisoZpk) = f + n
217-
#.+(t::SisoZpk, n::Real) = t + n
218-
#.+(n::Real, t::SisoZpk) = t + n
217+
#.+(t::SisoZpk, n::Number) = t + n
218+
#.+(n::Number, t::SisoZpk) = t + n
219219

220220
-(t1::SisoZpk, t2::SisoZpk) = +(t1,-t2)
221221
-(n::T, f::SisoZpk) where {T<:Number} = SisoZpk{T,T}(T[],T[],n) - f
222-
-(t::SisoZpk, n::Real) = +(t, -n)
223-
#.-(t::SisoZpk, n::Real) = -(t, n)
224-
#.-(n::Real, t::SisoZpk) = -(n, t)
222+
-(t::SisoZpk, n::Number) = +(t, -n)
223+
#.-(t::SisoZpk, n::Number) = -(t, n)
224+
#.-(n::Number, t::SisoZpk) = -(n, t)
225225

226226

227227
-(f::SisoZpk) = SisoZpk(f.z, f.p, -f.k)
@@ -231,8 +231,8 @@ end
231231
*(f::SisoZpk, n::Number) = SisoZpk(f.z, f.p, f.k*n)
232232
*(n::Number, f::SisoZpk) = *(f, n)
233233
#.*(f1::SisoZpk, f2::SisoZpk) = *(f1, f2)
234-
#.*(t::SisoZpk, n::Real) = *(t, n)
235-
#.*(n::Real, t::SisoZpk) = *(t, n)
234+
#.*(t::SisoZpk, n::Number) = *(t, n)
235+
#.*(n::Number, t::SisoZpk) = *(t, n)
236236

237237
/(n::Number, f::SisoZpk) = SisoZpk(f.p, f.z, n/f.k)
238238
/(f::SisoZpk, n::Number) = SisoZpk(f.z, f.p, f.k/n)

Diff for: src/types/SisoTfTypes/polyprint.jl

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Get show compatible function with var set
2+
printpolyfun(var) = (io, p, mimetype = MIME"text/plain"()) -> printpolydesc(io, p, var, mimetype)
3+
4+
# Specialized function, copied and adapted from Polynomials.jl
5+
# Ignores var as set in Poly
6+
""" Prints polynomial in descending order, with variable `var`
7+
"""
8+
function printpolydesc(io::IO, p::Poly{T}, var, mimetype = MIME"text/plain"()) where {T}
9+
printpoly2(io, p, var, mimetype)
10+
end
11+
12+
13+
# Specialized function, copied and adapted from Polynomials.jl
14+
# Ignores var as set in Poly
15+
function printpoly2(io::IO, p::Poly{T}, var, mimetype) where {T}
16+
first = true
17+
printed_anything = false
18+
for i in reverse(eachindex(p))
19+
printed = showterm2(io, p, i, first, var, mimetype)
20+
first &= !printed
21+
printed_anything |= printed
22+
end
23+
printed_anything || print(io, zero(T))
24+
return nothing
25+
end
26+
27+
#Specialized function, copied and adapted from Polynomials.jl
28+
# Ignores var as set in Poly
29+
function showterm2(io::IO, p::Poly{T}, j, first, var, mimetype) where {T}
30+
pj = p[j]
31+
32+
pj == zero(T) && return false
33+
34+
pj = Polynomials.printsign(io, pj, j, first, mimetype)
35+
Polynomials.printcoefficient(io, pj, j, mimetype)
36+
Polynomials.printproductsign(io, pj, j, mimetype)
37+
Polynomials.printexponent(io, var, j, mimetype)
38+
true
39+
end

0 commit comments

Comments
 (0)