public override Function Add(Function f) { Variable g = f as Variable; if(g != null && this.Equals(g)) { return new Multiple(2, this); } if(f is Constant) { return base.Add(f); } return f.Add(this); }