|
81 | 81 | # forward gcd |
82 | 82 |
|
83 | 83 | PF = :(PolyForm{promote_symtype(/, symtype(x), symtype(y))}) |
| 84 | +const FriendlyCoeffType = Union{Integer, Rational} |
84 | 85 | @eval begin |
85 | 86 | Base.div(x::PolyForm, y::PolyForm) = $PF(div(x.p, y.p), mix_dicts(x, y)...) |
86 | | - Base.div(x::Integer, y::PolyForm) = $PF(div(x, y.p), y.pvar2sym, y.sym2term) |
87 | | - Base.div(x::PolyForm, y::Integer) = $PF(div(x.p, y), x.pvar2sym, x.sym2term) |
| 87 | + Base.div(x::FriendlyCoeffType, y::PolyForm) = $PF(div(x, y.p), y.pvar2sym, y.sym2term) |
| 88 | + Base.div(x::PolyForm, y::FriendlyCoeffType) = $PF(div(x.p, y), x.pvar2sym, x.sym2term) |
88 | 89 |
|
89 | 90 | Base.gcd(x::PolyForm, y::PolyForm) = $PF(_gcd(x.p, y.p), mix_dicts(x, y)...) |
90 | | - Base.gcd(x::Integer, y::PolyForm) = $PF(_gcd(x, y.p), y.pvar2sym, y.sym2term) |
91 | | - Base.gcd(x::PolyForm, y::Integer) = $PF(_gcd(x.p, y), x.pvar2sym, x.sym2term) |
| 91 | + Base.gcd(x::FriendlyCoeffType, y::PolyForm) = $PF(_gcd(x, y.p), y.pvar2sym, y.sym2term) |
| 92 | + Base.gcd(x::PolyForm, y::FriendlyCoeffType) = $PF(_gcd(x.p, y), x.pvar2sym, x.sym2term) |
92 | 93 | end |
93 | 94 |
|
94 | 95 | _isone(p::PolyForm) = isone(p.p) |
|
0 commit comments