public static Polynomial Substract(Polynomial a, Polynomial b) { if ((a == null) || (b == null)) throw new ArgumentNullException(); Polynomial c=new Polynomial(b.ToArray()); for (int i = 0; i < c.Length; i++) c[i] = -c[i]; return Add(a,c); }
public static Polynomial Add(Polynomial a, Polynomial b) { if ((a==null)||(b==null)) throw new ArgumentNullException(); double[] firstArray = a.ToArray(); Array.Reverse(firstArray); double[] secondArray = b.ToArray(); Array.Reverse(secondArray); double[] resultArray=new double[Math.Max(a.Length,b.Length)]; for (int i = 0; i < firstArray.Length; i++) resultArray[i] = firstArray[i]; for (int i = 0; i < secondArray.Length; i++) resultArray[i] += secondArray[i]; Array.Reverse(resultArray); return new Polynomial(resultArray); }