@@ -626,7 +626,7 @@ operation(a::Add) = +
626626
627627function arguments (a:: Add )
628628 a. sorted_args_cache[] != = nothing && return a. sorted_args_cache[]
629- args = sort! ([similarterm (k, * ,[v,k]) for (k,v) in a. dict], lt= < ₑ)
629+ args = sort! ([v * k for (k,v) in a. dict], lt= < ₑ)
630630 a. sorted_args_cache[] = iszero (a. coeff) ? args : vcat (a. coeff, args)
631631end
632632
@@ -949,16 +949,15 @@ function similarterm(p::NumericTerm, f, args, T=nothing; metadata=nothing)
949949 if T === nothing
950950 T = _promote_symtype (f, args)
951951 end
952- if T <: Number
953- if f === ( + )
954- return Add (T, makeadd ( 1 , 0 , args ... ) ... ; metadata = metadata )
955- elseif f == ( * )
956- return Mul (T, makemul ( 1 , args... ) ... ; metadata = metadata)
957- elseif f == ( ^ ) && length (args) == 2
958- return Pow {T, typeof.(args)...} (args ... ; metadata = metadata)
959- end
952+ if f === ( + )
953+ Add (T, makeadd ( 1 , 0 , args ... ) ... ; metadata = metadata )
954+ elseif f == ( * )
955+ Mul (T, makemul ( 1 , args ... ) ... ; metadata = metadata )
956+ elseif f == ( ^ ) && length ( args) == 2
957+ Pow {T, typeof.(args)...} (args... ; metadata = metadata)
958+ else
959+ Term {T} (f, args; metadata = metadata)
960960 end
961- Term {T} (f, args; metadata= metadata)
962961end
963962
964963function Base. hash (t:: Union{Add,Mul} , u:: UInt64 )
0 commit comments