@@ -2,28 +2,27 @@ import Base: promote_rule
22
33promo_error = " Cannot promote types with different moduli"
44
5- promote_rule (:: Type{Mod{M}} , :: Type{Mod{N}} ) where {M,N} =
6- error (promo_error)
5+ promote_rule (:: Type{Mod{M}} , :: Type{Mod{N}} ) where {M,N} = error (promo_error)
76
8- promote_rule (:: Type{GaussMod{M}} , :: Type{GaussMod{N}} ) where {M,N} =
9- error (promo_error)
7+ promote_rule (:: Type{GaussMod{M}} , :: Type{GaussMod{N}} ) where {M,N} = error (promo_error)
108
11- promote_rule (:: Type{Mod{M}} , :: Type{GaussMod{N}} ) where {M,N} =
12- error (promo_error)
9+ promote_rule (:: Type{Mod{M}} , :: Type{GaussMod{N}} ) where {M,N} = error (promo_error)
1310
1411promote_rule (:: Type{Mod{N}} , :: Type{Mod{N}} ) where {N} = Mod{N}
1512promote_rule (:: Type{GaussMod{N}} , :: Type{Mod{N}} ) where {N} = GaussMod{N}
1613promote_rule (:: Type{Mod{N}} , :: Type{GaussMod{N}} ) where {N} = GaussMod{N}
1714
18- promote_rule (:: Type{Mod{N}} , :: Type{T} ) where {N, T<: Integer } = Mod{N}
19- promote_rule (:: Type{Mod{N}} , :: Type{Complex{T}} ) where {N, T<: Integer } = GaussMod{N}
15+ promote_rule (:: Type{Mod{N}} , :: Type{T} ) where {N,T<: Integer } = Mod{N}
16+ promote_rule (:: Type{Mod{N}} , :: Type{Complex{T}} ) where {N,T<: Integer } = GaussMod{N}
2017
21- promote_rule (:: Type{GaussMod{N}} , :: Type{T} ) where {N, T<: Union{Integer,Complex} } = GaussMod{N}
18+ promote_rule (:: Type{GaussMod{N}} , :: Type{T} ) where {N,T<: Union{Integer,Complex} } =
19+ GaussMod{N}
2220
2321
24- promote_rule (:: Type{Mod{N}} , :: Type{Rational{T}} ) where {N, T<: Integer } = Mod{N}
25- promote_rule (:: Type{GaussMod{N}} , :: Type{Rational{T}} ) where {N, T<: Integer } = GaussMod{N}
26-
27- promote_rule (:: Type{Mod{N}} , :: Type{Complex{Rational{T}}} ) where {N, T<: Integer } = GaussMod{N}
28- promote_rule (:: Type{GaussMod{N}} , :: Type{Complex{Rational{T}}} ) where {N, T<: Integer } = GaussMod{N}
22+ promote_rule (:: Type{Mod{N}} , :: Type{Rational{T}} ) where {N,T<: Integer } = Mod{N}
23+ promote_rule (:: Type{GaussMod{N}} , :: Type{Rational{T}} ) where {N,T<: Integer } = GaussMod{N}
2924
25+ promote_rule (:: Type{Mod{N}} , :: Type{Complex{Rational{T}}} ) where {N,T<: Integer } =
26+ GaussMod{N}
27+ promote_rule (:: Type{GaussMod{N}} , :: Type{Complex{Rational{T}}} ) where {N,T<: Integer } =
28+ GaussMod{N}
0 commit comments