public Complex Evaluate() { if (Variables.Any()) { return(Complex.Multiply(CoEfficient, Variables.Select(indt => indt.Evaluate()).Aggregate(Complex.Multiply))); } else { return(CoEfficient.Clone());; } }
public override int GetHashCode() { int hashCode = CoEfficient.GetHashCode(); if (Variables.Any()) { foreach (var variable in Variables) { hashCode = CombineHashCodes(hashCode, variable.GetHashCode()); } } return(hashCode); }
public override string ToString() { if (CoEfficient == 0) { return("0"); } string signString = string.Empty; string coefficientString = string.Empty; string variableString = string.Empty; string multiplyString = string.Empty; if (Variables.Any()) { variableString = string.Join("*", Variables.Select(v => v.ToString())); } else if (BigInteger.Abs(CoEfficient) == 1) { coefficientString = CoEfficient.ToString(); } if (BigInteger.Abs(CoEfficient) != 1) { if (Variables.Any()) { multiplyString = "*"; } coefficientString = CoEfficient.ToString(); } else if (Variables.Any() && CoEfficient.Sign == -1) { coefficientString = "-"; } return($"{coefficientString}{multiplyString}{variableString}"); }
public Term Clone() { return(new Term(CoEfficient.Clone(), CloneHelper <Indeterminate> .CloneCollection(Variables).ToArray())); }