コード例 #1
0
        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] + "}");
        }
コード例 #2
0
ファイル: CyclicGroup.cs プロジェクト: QuinnKolt/BranchMath
        public override string DisplayElement(AlgebraicElement <BigInteger> g)
        {
            var iden = g.Identifier;

            if (iden == 0)
            {
                return("e");
            }

            if (iden == 1)
            {
                return("g");
            }

            return($"g^{iden}");
        }
コード例 #3
0
        /// <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");
            }
        }
コード例 #4
0
        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);
        }
コード例 #5
0
 public abstract string DisplayElement(AlgebraicElement <I> g);
コード例 #6
0
 public virtual Boolean compare(AlgebraicElement <I> g, AlgebraicElement <I> h)
 {
     return(g.evaluate().Equals(h.evaluate()));
 }
コード例 #7
0
 public override Boolean compare(AlgebraicElement <BigInteger[]> g, AlgebraicElement <BigInteger[]> h)
 {
     return(g.Identifier[0] == h.Identifier[0] && g.Identifier[1] == h.Identifier[1]);
 }
コード例 #8
0
 public override string DisplayElement(AlgebraicElement <I> g)
 {
     return(ring.DisplayElement(g));
 }
コード例 #9
0
ファイル: Integers.cs プロジェクト: QuinnKolt/BranchMath
 public override string DisplayElement(AlgebraicElement <BigInteger> g)
 {
     return(g.Identifier.ToString());
 }