Package edu.jas.poly

Class TermOrderOptimization


  • public class TermOrderOptimization
    extends java.lang.Object
    Term order optimization. See mas10/maspoly/DIPTOO.m{di}.
    • Field Detail

      • logger

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

        private static final boolean debug
    • Constructor Detail

      • TermOrderOptimization

        public TermOrderOptimization()
    • Method Detail

      • degreeMatrixOfCoefficients

        public static <C extends RingElem<C>> java.util.List<GenPolynomial<BigInteger>> degreeMatrixOfCoefficients​(GenPolynomial<GenPolynomial<C>> A)
        Degree matrix of coefficient polynomials.
        Parameters:
        A - polynomial to be considered.
        Returns:
        degree matrix for the coefficients.
      • degreeMatrix

        public static <C extends RingElem<C>> java.util.List<GenPolynomial<BigInteger>> degreeMatrix​(java.util.Collection<GenPolynomial<C>> L)
        Degree matrix.
        Parameters:
        L - list of polynomial to be considered.
        Returns:
        degree matrix.
      • degreeMatrixOfCoefficients

        public static <C extends RingElem<C>> java.util.List<GenPolynomial<BigInteger>> degreeMatrixOfCoefficients​(java.util.Collection<GenPolynomial<GenPolynomial<C>>> L)
        Degree matrix of coefficient polynomials.
        Parameters:
        L - list of polynomial to be considered.
        Returns:
        degree matrix for the coefficients.
      • optimalPermutation

        public static java.util.List<java.lang.Integer> optimalPermutation​(java.util.List<GenPolynomial<BigInteger>> D)
        Optimal permutation for the Degree matrix.
        Parameters:
        D - degree matrix.
        Returns:
        optimal permutation for D.
      • inversePermutation

        public static java.util.List<java.lang.Integer> inversePermutation​(java.util.List<java.lang.Integer> P)
        Inverse of a permutation.
        Parameters:
        P - permutation.
        Returns:
        S with S*P = id.
      • isIdentityPermutation

        public static boolean isIdentityPermutation​(java.util.List<java.lang.Integer> P)
        Test for identity permutation.
        Parameters:
        P - permutation.
        Returns:
        true , if P = id, else false.
      • multiplyPermutation

        public static java.util.List<java.lang.Integer> multiplyPermutation​(java.util.List<java.lang.Integer> P,
                                                                            java.util.List<java.lang.Integer> S)
        Multiplication permutations.
        Parameters:
        P - permutation.
        S - permutation.
        Returns:
        P*S.
      • listPermutation

        public static <T> java.util.List<T> listPermutation​(java.util.List<java.lang.Integer> P,
                                                            java.util.List<T> L)
        Permutation of a list.
        Parameters:
        L - list.
        P - permutation.
        Returns:
        P(L).
      • arrayPermutation

        public static <T> T[] arrayPermutation​(java.util.List<java.lang.Integer> P,
                                               T[] a)
        Permutation of an array. Compiles, but does not work, requires JDK 1.6 to work.
        Parameters:
        a - array.
        P - permutation.
        Returns:
        P(a).
      • permutation

        public static <C extends RingElem<C>> GenPolynomial<C> permutation​(java.util.List<java.lang.Integer> P,
                                                                           GenPolynomialRing<C> R,
                                                                           GenPolynomial<C> A)
        Permutation of polynomial exponent vectors.
        Parameters:
        A - polynomial.
        R - polynomial ring.
        P - permutation.
        Returns:
        P(A).
      • permutation

        public static <C extends RingElem<C>> java.util.List<GenPolynomial<C>> permutation​(java.util.List<java.lang.Integer> P,
                                                                                           GenPolynomialRing<C> R,
                                                                                           java.util.List<GenPolynomial<C>> L)
        Permutation of polynomial exponent vectors.
        Parameters:
        L - list of polynomials.
        R - polynomial ring.
        P - permutation.
        Returns:
        P(L).
      • permutation

        public static <C extends RingElem<C>> java.util.List<GenSolvablePolynomial<C>> permutation​(java.util.List<java.lang.Integer> P,
                                                                                                   GenSolvablePolynomialRing<C> R,
                                                                                                   java.util.List<GenSolvablePolynomial<C>> L)
        Permutation of solvable polynomial exponent vectors.
        Parameters:
        L - list of solvable polynomials.
        R - solvable polynomial ring.
        P - permutation, must be compatible with the commutator relations.
        Returns:
        P(L).
      • permutation

        public static <C extends RingElem<C>> GenPolynomialRing<C> permutation​(java.util.List<java.lang.Integer> P,
                                                                               GenPolynomialRing<C> R)
        Permutation of polynomial ring variables.
        Parameters:
        R - polynomial ring.
        P - permutation.
        Returns:
        P(R).
      • optimizeTermOrder

        public static <C extends RingElem<C>> OptimizedModuleList<C> optimizeTermOrder​(ModuleList<C> P)
        Optimize variable order.
        Parameters:
        P - module list.
        Returns:
        optimized module list.
      • optimizeTermOrderModule

        public static <C extends RingElem<C>> OptimizedModuleList<C> optimizeTermOrderModule​(GenPolynomialRing<C> R,
                                                                                             java.util.List<java.util.List<GenPolynomial<C>>> L)
        Optimize variable order.
        Parameters:
        R - polynomial ring.
        L - list of lists of polynomials.
        Returns:
        optimized module list.