Package edu.jas.poly

Class GenSolvablePolynomialRing<C extends RingElem<C>>

    • Constructor Detail

      • GenSolvablePolynomialRing

        public GenSolvablePolynomialRing​(RingFactory<C> cf,
                                         int n)
        The constructor creates a solvable polynomial factory object with the default term order and commutative relations.
        Parameters:
        cf - factory for coefficients of type C.
        n - number of variables.
      • GenSolvablePolynomialRing

        public GenSolvablePolynomialRing​(RingFactory<C> cf,
                                         int n,
                                         RelationTable<C> rt)
        The constructor creates a solvable polynomial factory object with the default term order.
        Parameters:
        cf - factory for coefficients of type C.
        n - number of variables.
        rt - solvable multiplication relations.
      • GenSolvablePolynomialRing

        public GenSolvablePolynomialRing​(RingFactory<C> cf,
                                         int n,
                                         TermOrder t)
        The constructor creates a solvable polynomial factory object with the given term order and commutative relations.
        Parameters:
        cf - factory for coefficients of type C.
        n - number of variables.
        t - a term order.
      • GenSolvablePolynomialRing

        public GenSolvablePolynomialRing​(RingFactory<C> cf,
                                         int n,
                                         TermOrder t,
                                         RelationTable<C> rt)
        The constructor creates a solvable polynomial factory object with the given term order.
        Parameters:
        cf - factory for coefficients of type C.
        n - number of variables.
        t - a term order.
        rt - solvable multiplication relations.
      • GenSolvablePolynomialRing

        public GenSolvablePolynomialRing​(RingFactory<C> cf,
                                         int n,
                                         TermOrder t,
                                         java.lang.String[] v)
        The constructor creates a solvable polynomial factory object with the given term order and commutative relations.
        Parameters:
        cf - factory for coefficients of type C.
        n - number of variables.
        t - a term order.
        v - names for the variables.
      • GenSolvablePolynomialRing

        public GenSolvablePolynomialRing​(RingFactory<C> cf,
                                         TermOrder t,
                                         java.lang.String[] v)
        The constructor creates a solvable polynomial factory object with the given term order and commutative relations.
        Parameters:
        cf - factory for coefficients of type C.
        t - a term order.
        v - names for the variables.
      • GenSolvablePolynomialRing

        public GenSolvablePolynomialRing​(RingFactory<C> cf,
                                         java.lang.String[] v)
        The constructor creates a solvable polynomial factory object with the default term order.
        Parameters:
        cf - factory for coefficients of type C.
        v - names for the variables.
      • GenSolvablePolynomialRing

        public GenSolvablePolynomialRing​(RingFactory<C> cf,
                                         int n,
                                         TermOrder t,
                                         java.lang.String[] v,
                                         RelationTable<C> rt)
        The constructor creates a solvable polynomial factory object with the given term order.
        Parameters:
        cf - factory for coefficients of type C.
        n - number of variables.
        t - a term order.
        v - names for the variables.
        rt - solvable multiplication relations.
      • GenSolvablePolynomialRing

        public GenSolvablePolynomialRing​(RingFactory<C> cf,
                                         GenPolynomialRing o)
        The constructor creates a solvable polynomial factory object with the the same term order, number of variables and variable names as the given polynomial factory, only the coefficient factories differ and the solvable multiplication relations are empty.
        Parameters:
        cf - factory for coefficients of type C.
        o - other (solvable) polynomial ring.
    • Method Detail

      • addRelations

        public void addRelations​(RelationGenerator<C> rg)
        Generate the relation table of the solvable polynomial ring from a relation generator.
        Parameters:
        rg - relation generator.
      • addRelations

        public void addRelations​(java.util.List<GenPolynomial<C>> rel)
        Generate the relation table of the solvable polynomial ring from a polynomial list of relations.
        Parameters:
        rel - polynomial list of relations [..., ei, fj, pij, ... ] with ei * fj = pij.
      • addSolvRelations

        public void addSolvRelations​(java.util.List<GenSolvablePolynomial<C>> rel)
        Generate the relation table of the solvable polynomial ring from a solvable polynomial list of relations.
        Parameters:
        rel - solvable polynomial list of relations [..., ei, fj, pij, ... ] with ei * fj = pij.
      • toString

        public java.lang.String toString()
        Get the String representation.
        Overrides:
        toString in class GenPolynomialRing<C extends RingElem<C>>
        See Also:
        Object.toString()
      • equals

        public boolean equals​(java.lang.Object other)
        Comparison with any other object.
        Overrides:
        equals in class GenPolynomialRing<C extends RingElem<C>>
        See Also:
        Object.equals(java.lang.Object)
      • random

        public GenSolvablePolynomial<C> random​(int n)
        Random solvable polynomial. Generates a random solvable polynomial with k = 5, l = n, d = (nvar == 1) ? n : 3, q = (nvar == 1) ? 0.7 : 0.3.
        Specified by:
        random in interface ElemFactory<C extends RingElem<C>>
        Overrides:
        random in class GenPolynomialRing<C extends RingElem<C>>
        Parameters:
        n - number of terms.
        Returns:
        a random solvable polynomial.
      • random

        public GenSolvablePolynomial<C> random​(int n,
                                               java.util.Random rnd)
        Random solvable polynomial. Generates a random solvable polynomial with k = 5, l = n, d = (nvar == 1) ? n : 3, q = (nvar == 1) ? 0.7 : 0.3.
        Specified by:
        random in interface ElemFactory<C extends RingElem<C>>
        Overrides:
        random in class GenPolynomialRing<C extends RingElem<C>>
        Parameters:
        n - number of terms.
        rnd - is a source for random bits.
        Returns:
        a random solvable polynomial.
      • random

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

        public GenSolvablePolynomial<C> random​(int k,
                                               int l,
                                               int d,
                                               float q,
                                               java.util.Random rnd)
        Random solvable polynomial.
        Overrides:
        random in class GenPolynomialRing<C extends RingElem<C>>
        Parameters:
        k - size of random coefficients.
        l - number of terms.
        d - maximal degree in each variable.
        q - density of nozero exponents.
        rnd - is a source for random bits.
        Returns:
        a random solvable polynomial.
      • univariate

        public GenSolvablePolynomial<C> univariate​(int i,
                                                   long e)
        Generate univariate solvable polynomial in a given variable with given exponent.
        Overrides:
        univariate in class GenPolynomialRing<C extends RingElem<C>>
        Parameters:
        i - the index of the variable.
        e - the exponent of the variable.
        Returns:
        X_i^e as solvable univariate polynomial.
      • univariate

        public GenSolvablePolynomial<C> univariate​(int modv,
                                                   int i,
                                                   long e)
        Generate univariate solvable polynomial in a given variable with given exponent.
        Overrides:
        univariate in class GenPolynomialRing<C extends RingElem<C>>
        Parameters:
        modv - number of module variables.
        i - the index of the variable.
        e - the exponent of the variable.
        Returns:
        X_i^e as solvable univariate polynomial.
      • univariateList

        public java.util.List<? extends GenSolvablePolynomial<C>> univariateList​(int modv)
        Generate list of univariate polynomials in all variables.
        Overrides:
        univariateList in class GenPolynomialRing<C extends RingElem<C>>
        Parameters:
        modv - number of module variables.
        Returns:
        List(X_1,...,X_n) a list of univariate polynomials.
      • univariateList

        public java.util.List<? extends GenSolvablePolynomial<C>> univariateList​(int modv,
                                                                                 long e)
        Generate list of univariate polynomials in all variables with given exponent.
        Overrides:
        univariateList in class GenPolynomialRing<C extends RingElem<C>>
        Parameters:
        modv - number of module variables.
        e - the exponent of the variables.
        Returns:
        List(X_1^e,...,X_n^e) a list of univariate polynomials.
      • extend

        public GenSolvablePolynomialRing<C> extend​(int i)
        Extend variables. Used e.g. in module embedding. Extend number of variables by i. New variables commute with the exiting variables.
        Overrides:
        extend in class GenPolynomialRing<C extends RingElem<C>>
        Parameters:
        i - number of variables to extend.
        Returns:
        extended solvable polynomial ring factory.
      • extend

        public GenSolvablePolynomialRing<C> extend​(int i,
                                                   boolean top)
        Extend variables. Used e.g. in module embedding. Extend number of variables by i. New variables commute with the exiting variables.
        Overrides:
        extend in class GenPolynomialRing<C extends RingElem<C>>
        Parameters:
        i - number of variables to extend.
        top - true for TOP term order, false for POT term order.
        Returns:
        extended solvable polynomial ring factory.
      • extend

        public GenSolvablePolynomialRing<C> extend​(java.lang.String[] vn)
        Extend variables. Used e.g. in module embedding. Extend number of variables by length(vn). New variables commute with the exiting variables.
        Overrides:
        extend in class GenPolynomialRing<C extends RingElem<C>>
        Parameters:
        vn - names for extended variables.
        Returns:
        extended polynomial ring factory.
      • extend

        public GenSolvablePolynomialRing<C> extend​(java.lang.String[] vn,
                                                   boolean top)
        Extend variables. Used e.g. in module embedding. Extend number of variables by length(vn). New variables commute with the exiting variables.
        Overrides:
        extend in class GenPolynomialRing<C extends RingElem<C>>
        Parameters:
        vn - names for extended variables.
        top - true for TOP term order, false for POT term order.
        Returns:
        extended polynomial ring factory.
      • contract

        public GenSolvablePolynomialRing<C> contract​(int i)
        Contract variables. Used e.g. in module embedding. Contract number of variables by i.
        Overrides:
        contract in class GenPolynomialRing<C extends RingElem<C>>
        Parameters:
        i - number of variables to remove.
        Returns:
        contracted solvable polynomial ring factory.
      • reverse

        public GenSolvablePolynomialRing<C> reverse​(boolean partial)
        Reverse variables. Used e.g. in opposite rings.
        Overrides:
        reverse in class GenPolynomialRing<C extends RingElem<C>>
        Parameters:
        partial - true for partially reversed term orders.
        Returns:
        solvable polynomial ring factory with reversed variables.
      • permutation

        public GenPolynomialRing<C> permutation​(java.util.List<java.lang.Integer> P)
        Permutation of polynomial ring variables.
        Overrides:
        permutation in class GenPolynomialRing<C extends RingElem<C>>
        Parameters:
        P - permutation, must be compatible with the commutator relations.
        Returns:
        P(this).