public static Algebraic[] reduce_exp(Algebraic[] p) { var v = new ArrayList(); var vars = new ArrayList(); var g = new GetExpVars2(v); foreach (var t in p) { g.SymEval(t); } foreach (var t in v) { var a = ( Algebraic )t; Variable x = null; if (a is Polynomial) { x = (( Polynomial )a)._v; } else { continue; } if (vars.Contains(x)) { continue; } else { vars.Add(x); } var gcd = exp_gcd(v, x); if (gcd != Symbolic.ZERO && gcd != Symbolic.ONE) { var sb = new SubstExp(gcd, x); for (int k = 0; k < p.Length; k++) { p[k] = sb.SymEval(p[k]); } } } return(p); }
public static Algebraic[] reduce_exp(Algebraic[] p) { ArrayList v = new ArrayList(); ArrayList vars = new ArrayList(); GetExpVars2 g = new GetExpVars2(v); for (int i = 0; i < p.Length; i++) { g.f_exakt(p[i]); } for (int i = 0; i < v.Count; i++) { Algebraic a = (Algebraic)v[i]; Variable x = null; if (a is Polynomial) { x = ((Polynomial)a).v; } else { continue; } if (vars.Contains(x)) { continue; } else { vars.Add(x); } Zahl gcd = exp_gcd(v, x); if (!gcd.Equals(Zahl.ZERO) && !gcd.Equals(Zahl.ONE)) { SubstExp sb = new SubstExp(gcd, x); for (int k = 0; k < p.Length; k++) { p[k] = sb.f_exakt(p[k]); } } } return(p); }