Package edu.jas.ufd

Class QuotientRing<C extends GcdRingElem<C>>

    • Field Detail

      • logger

        private static final org.apache.logging.log4j.Logger logger
      • quoNorm

        public static final QuotientRing.QuoNorm quoNorm
        Default quotient polynomial normalization, simplification.
      • ufdGCD

        public final boolean ufdGCD
        Use GCD of package edu.jas.ufd.
    • Constructor Detail

      • QuotientRing

        public QuotientRing​(GenPolynomialRing<C> r)
        The constructor creates a QuotientRing object from a GenPolynomialRing.
        Parameters:
        r - polynomial ring.
      • QuotientRing

        public QuotientRing​(GenPolynomialRing<C> r,
                            boolean ufdGCD)
        The constructor creates a QuotientRing object from a GenPolynomialRing.
        Parameters:
        r - polynomial ring.
        ufdGCD - flag, if syzygy or gcd based algorithm used for engine.
    • Method Detail

      • isCommutative

        public boolean isCommutative()
        Query if this ring is commutative.
        Specified by:
        isCommutative in interface MonoidFactory<C extends GcdRingElem<C>>
        Returns:
        true if this ring is commutative, else false.
      • isAssociative

        public boolean isAssociative()
        Query if this ring is associative.
        Specified by:
        isAssociative in interface MonoidFactory<C extends GcdRingElem<C>>
        Returns:
        true if this ring is associative, else false.
      • isField

        public boolean isField()
        Query if this ring is a field.
        Specified by:
        isField in interface RingFactory<C extends GcdRingElem<C>>
        Returns:
        true.
      • characteristic

        public java.math.BigInteger characteristic()
        Characteristic of this ring.
        Specified by:
        characteristic in interface RingFactory<C extends GcdRingElem<C>>
        Returns:
        characteristic of this ring.
      • fromInteger

        public Quotient<C> fromInteger​(java.math.BigInteger a)
        Get a Quotient element from a BigInteger value.
        Specified by:
        fromInteger in interface ElemFactory<C extends GcdRingElem<C>>
        Parameters:
        a - BigInteger.
        Returns:
        a Quotient.
      • fromInteger

        public Quotient<C> fromInteger​(long a)
        Get a Quotient element from a long value.
        Specified by:
        fromInteger in interface ElemFactory<C extends GcdRingElem<C>>
        Parameters:
        a - long.
        Returns:
        a Quotient.
      • toString

        public java.lang.String toString()
        Get the String representation as RingFactory.
        Overrides:
        toString in class java.lang.Object
        See Also:
        Object.toString()
      • toScript

        public java.lang.String toScript()
        Get a scripting compatible string representation.
        Specified by:
        toScript in interface ElemFactory<C extends GcdRingElem<C>>
        Returns:
        script compatible representation for this ElemFactory.
        See Also:
        ElemFactory.toScript()
      • equals

        public boolean equals​(java.lang.Object b)
        Comparison with any other object.
        Overrides:
        equals in class java.lang.Object
        See Also:
        Object.equals(java.lang.Object)
      • hashCode

        public int hashCode()
        Hash code for this quotient ring.
        Overrides:
        hashCode in class java.lang.Object
        See Also:
        Object.hashCode()
      • random

        public Quotient<C> random​(int n)
        Quotient random.
        Specified by:
        random in interface ElemFactory<C extends GcdRingElem<C>>
        Parameters:
        n - such that 0 ≤ v ≤ (2n-1).
        Returns:
        a random residue element.
      • random

        public Quotient<C> random​(int k,
                                  int l,
                                  int d,
                                  float q)
        Generate a random quotient polynomial.
        Parameters:
        k - bitsize of random coefficients.
        l - number of terms.
        d - maximal degree in each variable.
        q - density of nozero exponents.
        Returns:
        a random quotient polynomial.
      • random

        public Quotient<C> random​(int n,
                                  java.util.Random rnd)
        Quotient random.
        Specified by:
        random in interface ElemFactory<C extends GcdRingElem<C>>
        Parameters:
        n - such that 0 ≤ v ≤ (2n-1).
        rnd - is a source for random bits.
        Returns:
        a random quotient element.
      • parse

        public Quotient<C> parse​(java.lang.String s)
        Parse Quotient from String. Syntax: "{ polynomial | polynomial }" or "{ polynomial }" or " polynomial | polynomial " or " polynomial "
        Specified by:
        parse in interface ElemFactory<C extends GcdRingElem<C>>
        Parameters:
        s - String.
        Returns:
        Quotient from s.
      • parse

        public Quotient<C> parse​(java.io.Reader r)
        Parse Quotient from Reader.
        Specified by:
        parse in interface ElemFactory<C extends GcdRingElem<C>>
        Parameters:
        r - Reader.
        Returns:
        next Quotient from r.
      • extensionDegree

        public long extensionDegree()
        Degree of extension field.
        Returns:
        degree of this extension field, -1 for transcendental extension.