public override string DisplayElement(AlgebraicElement <BigInteger[]> g) { var iden = g.Identifier; var str = ""; if (iden[0] == 0 && iden[1] == 0) { return("e"); } if (iden[0] == 1) { str += "s"; } if (iden[1] == 0) { return(str); } if (iden[1] == 1) { return(str + "r"); } return(str + "r^{" + iden[1] + "}"); }
public override string DisplayElement(AlgebraicElement <BigInteger> g) { var iden = g.Identifier; if (iden == 0) { return("e"); } if (iden == 1) { return("g"); } return($"g^{iden}"); }
/// <summary> /// Give the LaTeX representation of the element of the group by writing a tuple of individual representations /// in the tuple. /// </summary> /// <param name="g">The element to display</param> /// <returns>The LaTeX representation of g</returns> public override string DisplayElement(AlgebraicElement <I[]> g) { try { var str = "("; for (var i = 0; i < Groups.Length; ++i) { str += Groups[i].DisplayElement(new GroupElement <I>(g.Identifier[i], Groups[i])); if (i != Groups.Length - 1) { str += ","; } } return(str + ")"); } catch { throw new InvalidElementException("Element not in Group"); } }
public override string DisplayElement(AlgebraicElement <R[]> g) { var poly = (Polynomial)g; var str = ""; for (var i = poly.degree(); i >= 0; --i) { if (poly[i] == 0) { continue; } switch (i) { case 0: if (i < poly.degree()) { str += " + "; } str += poly[0].ToLaTeX(); break; case 1: if (i < poly.degree()) { str += " + "; } str += poly[1] == 1? "x": poly[1].ToLaTeX() + "x"; break; default: if (i < poly.degree()) { str += " + "; } str += poly[i] == 1? $"x^{{{i}}}": poly[i].ToLaTeX() + $"x^{{{i}}}"; break; } } return(str); }
public abstract string DisplayElement(AlgebraicElement <I> g);
public virtual Boolean compare(AlgebraicElement <I> g, AlgebraicElement <I> h) { return(g.evaluate().Equals(h.evaluate())); }
public override Boolean compare(AlgebraicElement <BigInteger[]> g, AlgebraicElement <BigInteger[]> h) { return(g.Identifier[0] == h.Identifier[0] && g.Identifier[1] == h.Identifier[1]); }
public override string DisplayElement(AlgebraicElement <I> g) { return(ring.DisplayElement(g)); }
public override string DisplayElement(AlgebraicElement <BigInteger> g) { return(g.Identifier.ToString()); }