@@ -39,17 +39,18 @@ macro register(name)
39
39
quote
40
40
Base. convert (:: Type{P} , p:: P ) where {P<: $poly } = p
41
41
Base. convert (P:: Type{<:$poly} , p:: $poly{T} ) where {T} = P (coeffs (p), p. var)
42
+ Base. promote (p:: P , q:: Q ) where {T, P <: $poly{T} , Q <: $poly{T} } = p,q
42
43
Base. promote_rule (:: Type{<:$poly{T}} , :: Type{<:$poly{S}} ) where {T,S} =
43
44
$ poly{promote_type (T, S)}
44
45
Base. promote_rule (:: Type{<:$poly{T}} , :: Type{S} ) where {T,S<: Number } =
45
46
$ poly{promote_type (T, S)}
46
47
$ poly (coeffs:: AbstractVector{T} , var:: SymbolLike = :x ) where {T} =
47
48
$ poly {T} (coeffs, Symbol (var))
48
- $ poly {T} (x:: AbstractVector{S} , var = :x ) where {T,S<: Number } =
49
- $ poly (T .(x), var)
50
- $ poly {T} (n:: S , var = :x ) where {T, S<: Number } =
51
- $ poly (T[n], var)
52
- $ poly (n:: Number , var = :x ) = $ poly ([n], var)
49
+ $ poly {T} (x:: AbstractVector{S} , var:: SymbolLike = :x ) where {T,S<: Number } =
50
+ $ poly (T .(x), Symbol ( var) )
51
+ $ poly {T} (n:: S , var:: SymbolLike = :x ) where {T, S<: Number } =
52
+ $ poly (T[n], Symbol ( var) )
53
+ $ poly (n:: Number , var:: SymbolLike = :x ) = $ poly ([n], Symbol ( var) )
53
54
$ poly {T} (var:: SymbolLike = :x ) where {T} = variable ($ poly{T}, Symbol (var))
54
55
$ poly (var:: SymbolLike = :x ) = variable ($ poly, Symbol (var))
55
56
end
@@ -61,19 +62,20 @@ macro register1(name)
61
62
poly = esc (name)
62
63
quote
63
64
Base. convert (:: Type{P} , p:: P ) where {P<: $poly } = p
64
- Base. promote_rule (:: Type{$poly{α,T}} , :: Type{$poly{α,S}} ) where {α,T,S} =
65
+ Base. promote (p:: P , q:: Q ) where {α,T, P <: $poly{α,T} , Q <: $poly{α,T} } = p,q
66
+ Base. promote_rule (:: Type{<:$poly{α,T}} , :: Type{<:$poly{α,S}} ) where {α,T,S} =
65
67
$ poly{α,promote_type (T, S)}
66
- Base. promote_rule (:: Type{$poly{α,T}} , :: Type{S} ) where {α,T,S<: Number } =
68
+ Base. promote_rule (:: Type{<: $poly{α,T}} , :: Type{S} ) where {α,T,S<: Number } =
67
69
$ poly{α,promote_type (T,S)}
68
- function $poly {α,T} (x:: AbstractVector{S} , var:: Polynomials. SymbolLike = :x ) where {α,T,S}
70
+ function $poly {α,T} (x:: AbstractVector{S} , var:: SymbolLike = :x ) where {α,T,S}
69
71
$ poly {α,T} (T .(x), Symbol (var))
70
72
end
71
- $ poly {α} (coeffs:: AbstractVector{T} , var:: Polynomials. SymbolLike= :x ) where {α,T} =
73
+ $ poly {α} (coeffs:: AbstractVector{T} , var:: SymbolLike = :x ) where {α,T} =
72
74
$ poly {α,T} (coeffs, Symbol (var))
73
- $ poly {α,T} (n:: Number , var:: Polynomials. SymbolLike = :x ) where {α,T} = n* one ($ poly{α,T}, Symbol (var))
74
- $ poly {α} (n:: Number , var:: Polynomials. SymbolLike = :x ) where {α} = n* one ($ poly{α}, Symbol (var))
75
- $ poly {α,T} (var:: Polynomials. SymbolLike= :x ) where {α, T} = variable ($ poly{α,T}, Symbol (var))
76
- $ poly {α} (var:: Polynomials. SymbolLike= :x ) where {α} = variable ($ poly{α}, Symbol (var))
75
+ $ poly {α,T} (n:: Number , var:: SymbolLike = :x ) where {α,T} = n* one ($ poly{α,T}, Symbol (var))
76
+ $ poly {α} (n:: Number , var:: SymbolLike = :x ) where {α} = n* one ($ poly{α}, Symbol (var))
77
+ $ poly {α,T} (var:: SymbolLike = :x ) where {α, T} = variable ($ poly{α,T}, Symbol (var))
78
+ $ poly {α} (var:: SymbolLike = :x ) where {α} = variable ($ poly{α}, Symbol (var))
77
79
end
78
80
end
79
81
@@ -83,17 +85,18 @@ macro register2(name)
83
85
poly = esc (name)
84
86
quote
85
87
Base. convert (:: Type{P} , p:: P ) where {P<: $poly } = p
86
- Base. promote_rule (:: Type{$poly{α,β,T}} , :: Type{$poly{α,β,S}} ) where {α,β,T,S} =
88
+ Base. promote (p:: P , q:: Q ) where {α,β,T, P <: $poly{α,β,T} , Q <: $poly{α,β,T} } = p,q
89
+ Base. promote_rule (:: Type{<:$poly{α,β,T}} , :: Type{<:$poly{α,β,S}} ) where {α,β,T,S} =
87
90
$ poly{α,β,promote_type (T, S)}
88
- Base. promote_rule (:: Type{$poly{α,β,T}} , :: Type{S} ) where {α,β,T,S<: Number } =
91
+ Base. promote_rule (:: Type{<: $poly{α,β,T}} , :: Type{S} ) where {α,β,T,S<: Number } =
89
92
$ poly{α,β,promote_type (T, S)}
90
- $ poly {α,β} (coeffs:: AbstractVector{T} , var:: Polynomials. SymbolLike = :x ) where {α,β,T} =
93
+ $ poly {α,β} (coeffs:: AbstractVector{T} , var:: SymbolLike = :x ) where {α,β,T} =
91
94
$ poly {α,β,T} (coeffs, Symbol (var))
92
- $ poly {α,β,T} (x:: AbstractVector{S} , var = :x ) where {α,β,T,S<: Number } = $ poly {α,β,T} (T .(x), var)
93
- $ poly {α,β,T} (n:: Number , var = :x ) where {α,β,T} = n* one ($ poly{α,β,T}, var)
94
- $ poly {α,β} (n:: Number , var = :x ) where {α,β} = n* one ($ poly{α,β}, var)
95
- $ poly {α,β,T} (var= :x ) where {α,β, T} = variable ($ poly{α,β,T}, var)
96
- $ poly {α,β} (var= :x ) where {α,β} = variable ($ poly{α,β}, var)
95
+ $ poly {α,β,T} (x:: AbstractVector{S} , var:: SymbolLike = :x ) where {α,β,T,S<: Number } = $ poly {α,β,T} (T .(x), var)
96
+ $ poly {α,β,T} (n:: Number , var:: SymbolLike = :x ) where {α,β,T} = n* one ($ poly{α,β,T}, Symbol ( var) )
97
+ $ poly {α,β} (n:: Number , va :: SymbolLiker = :x ) where {α,β} = n* one ($ poly{α,β}, Symbol ( var) )
98
+ $ poly {α,β,T} (var:: SymbolLike = :x ) where {α,β, T} = variable ($ poly{α,β,T}, Symbol ( var) )
99
+ $ poly {α,β} (var:: SymbolLike = :x ) where {α,β} = variable ($ poly{α,β}, Symbol ( var) )
97
100
end
98
101
end
99
102
0 commit comments