@@ -201,27 +201,33 @@ end
201201 Any two MultivariateFunctions can be multiplied to form a MultivariateFunction reflecting the product.
202202"""
203203function * (f1:: PE_Function ,f2:: PE_Function )
204- f1_bases = get_bases(f1)
205- f2_bases = get_bases(f2)
206- min_bases = merge(min, f1_bases, f2_bases)
207- f1_rebase = change_base(f1, min_bases)
208- f2_rebase = change_base(f2, min_bases)
209- L1 = length(f1_rebase)
210- L2 = length(f2_rebase)
211- if (L1 == 1 ) & (L2 == 1 )
212- f1_ = f1_rebase[1 ]
213- f2_ = f2_rebase[1 ]
214- new_mult = f1_. multiplier_ * f2_. multiplier_
215- return PE_Function(new_mult, merge(* , f1_. units_, f2_. units_ ))
204+ if (length(f1. units_) == 0 )
205+ return f1. multiplier_ * f2
206+ elseif (length(f2. units_) == 0 )
207+ return f2. multiplier_ * f1
216208 else
217- PEs = Array{PE_Function,1 }()
218- for f in f1_rebase
219- for g in f2_rebase
220- append!(PEs, [f * g])
209+ f1_bases = get_bases(f1)
210+ f2_bases = get_bases(f2)
211+ min_bases = merge(min, f1_bases, f2_bases)
212+ f1_rebase = change_base(f1, min_bases)
213+ f2_rebase = change_base(f2, min_bases)
214+ L1 = length(f1_rebase)
215+ L2 = length(f2_rebase)
216+ if (L1 == 1 ) & (L2 == 1 )
217+ f1_ = f1_rebase[1 ]
218+ f2_ = f2_rebase[1 ]
219+ new_mult = f1_. multiplier_ * f2_. multiplier_
220+ return PE_Function(new_mult, merge(* , f1_. units_, f2_. units_ ))
221+ else
222+ PEs = Array{PE_Function,1 }()
223+ for f in f1_rebase
224+ for g in f2_rebase
225+ append!(PEs, [f * g])
226+ end
221227 end
222228 end
229+ return Sum_Of_Functions(PEs)
223230 end
224- return Sum_Of_Functions(PEs)
225231end
226232
227233function * (f1:: PE_Function , f2:: Sum_Of_Functions )
0 commit comments