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);
 }