public static HyperEquation operator +(HyperEquation v, Abc shift) { var he = new HyperEquation(); //foreach(var vi in v) he.Add(vi[shift - vi.AbcShift].GetShiftedObj()[shift + vi.AbcShift]); foreach (var vi in v) { he.Add(vi.GetShiftedObj(shift)); } he.FromEquations = v.FromEquations; return(he); }
public HyperEquation Simplify() { var he = new HyperEquation(); foreach (var c in this) { he.Add(c.Simplify()); } var cm = Expression.CommonMultiplier(he._cfs.ToArray(m => m.Data.StrFunc)); if (cm[0] != '-' && he._cfs.Data.StrFunc.StartsWith("-", StringComparison.OrdinalIgnoreCase)) { cm = "-" + cm; } foreach (var c in he._cfs) { c.Data = (c.Data / new Coef(cm, c.Data.AbcShift)).Simplify(); } he.FromEquations = FromEquations; return(he); }