public static Polynomial <T, TField> Subtract(Polynomial <T, TField> p, Term <T> t) { var terms = p.CloneList(); Add(terms, new Term <T>(t.Deg, p.Field.Negate(t.Coeff))); return(new Polynomial <T, TField>(terms)); }
public static Polynomial <T, TField> Add(Polynomial <T, TField> p, Term <T> t) { var terms = p.CloneList(); Add(terms, t); return(new Polynomial <T, TField>(terms)); }
public static Polynomial <T, TField> Divide(Polynomial <T, TField> p, int n) { var terms = p.CloneList(); for (int i = 0; i < terms.Count; i++) { terms[i] = new Term <T>(terms[i].Deg, p.Field.Divide(terms[i].Coeff, n)); } return(new Polynomial <T, TField>(terms)); }
public static Polynomial <T, TField> Multiply(Polynomial <T, TField> p, Term <T> t) { var terms = p.CloneList(); for (int i = 0; i < terms.Count; i++) { terms[i] = new Term <T>(terms[i].Deg + t.Deg, p.Field.Multiply(terms[i].Coeff, t.Coeff)); } return(new Polynomial <T, TField>(terms)); }
public static Polynomial <T, TField> Subtract(Polynomial <T, TField> p1, Polynomial <T, TField> p2) { var terms = p1.CloneList(); foreach (Term <T> t in p2) { Add(terms, new Term <T>(t.Deg, p1.Field.Negate(t.Coeff))); } return(new Polynomial <T, TField>(terms)); }
public static Polynomial <T, TField> Add(Polynomial <T, TField> p1, Polynomial <T, TField> p2) { var terms = p1.CloneList(); foreach (Term <T> t in p2) { Add(terms, t); } return(new Polynomial <T, TField>(terms)); }