Package edu.jas.poly
Class TermOrderOptimization
java.lang.Object
edu.jas.poly.TermOrderOptimization
Term order optimization. See mas10/maspoly/DIPTOO.m{di}.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <T> T[]
arrayPermutation
(List<Integer> P, T[] a) Permutation of an array.static <C extends RingElem<C>>
List<GenPolynomial<BigInteger>> degreeMatrix
(GenPolynomial<C> A) Degree matrix.static <C extends RingElem<C>>
List<GenPolynomial<BigInteger>> degreeMatrix
(Collection<GenPolynomial<C>> L) Degree matrix.static <C extends RingElem<C>>
List<GenPolynomial<BigInteger>> Degree matrix of coefficient polynomials.static <C extends RingElem<C>>
List<GenPolynomial<BigInteger>> Degree matrix of coefficient polynomials.static List
<GenPolynomial<BigInteger>> expVectorAdd
(List<GenPolynomial<BigInteger>> dm, ExpVector e) Degree matrix exponent vector add.Inverse of a permutation.static boolean
Test for identity permutation.static <T> List
<T> listPermutation
(List<Integer> P, List<T> L) Permutation of a list.multiplyPermutation
(List<Integer> P, List<Integer> S) Multiplication permutations.Optimal permutation for the Degree matrix.static <C extends RingElem<C>>
OptimizedPolynomialList<C> optimizeTermOrder
(GenPolynomialRing<C> R, List<GenPolynomial<C>> L) Optimize variable order.static <C extends RingElem<C>>
OptimizedModuleList<C> optimizeTermOrder
(ModuleList<C> P) Optimize variable order.static <C extends RingElem<C>>
OptimizedPolynomialList<C> Optimize variable order.static <C extends RingElem<C>>
OptimizedModuleList<C> optimizeTermOrderModule
(GenPolynomialRing<C> R, List<List<GenPolynomial<C>>> L) Optimize variable order.static <C extends RingElem<C>>
OptimizedPolynomialList<GenPolynomial<C>> optimizeTermOrderOnCoefficients
(GenPolynomialRing<GenPolynomial<C>> ring, List<GenPolynomial<GenPolynomial<C>>> L) Optimize variable order on coefficients.static <C extends RingElem<C>>
OptimizedModuleList<GenPolynomial<C>> Optimize variable order on coefficients.static <C extends RingElem<C>>
OptimizedPolynomialList<GenPolynomial<C>> Optimize variable order on coefficients.static <C extends RingElem<C>>
GenPolynomialRing<C> permutation
(List<Integer> P, GenPolynomialRing<C> R) Permutation of polynomial ring variables.static <C extends RingElem<C>>
GenPolynomial<C> permutation
(List<Integer> P, GenPolynomialRing<C> R, GenPolynomial<C> A) Permutation of polynomial exponent vectors.static <C extends RingElem<C>>
List<GenPolynomial<C>> permutation
(List<Integer> P, GenPolynomialRing<C> R, List<GenPolynomial<C>> L) Permutation of polynomial exponent vectors.static <C extends RingElem<C>>
List<GenSolvablePolynomial<C>> permutation
(List<Integer> P, GenSolvablePolynomialRing<C> R, List<GenSolvablePolynomial<C>> L) Permutation of solvable polynomial exponent vectors.static <C extends RingElem<C>>
GenPolynomial<GenPolynomial<C>> permutationOnCoefficients
(List<Integer> P, GenPolynomialRing<GenPolynomial<C>> R, GenPolynomial<GenPolynomial<C>> A) Permutation of polynomial exponent vectors of coefficient polynomials.static <C extends RingElem<C>>
List<GenPolynomial<GenPolynomial<C>>> permutationOnCoefficients
(List<Integer> P, GenPolynomialRing<GenPolynomial<C>> R, List<GenPolynomial<GenPolynomial<C>>> L) Permutation of polynomial exponent vectors of coefficients.
-
Field Details
-
logger
private static final org.apache.logging.log4j.Logger logger -
debug
private static final boolean debug
-
-
Constructor Details
-
TermOrderOptimization
public TermOrderOptimization()
-
-
Method Details
-
degreeMatrix
public static <C extends RingElem<C>> List<GenPolynomial<BigInteger>> degreeMatrix(GenPolynomial<C> A) Degree matrix.- Parameters:
A
- polynomial to be considered.- Returns:
- degree matrix.
-
expVectorAdd
public static List<GenPolynomial<BigInteger>> expVectorAdd(List<GenPolynomial<BigInteger>> dm, ExpVector e) Degree matrix exponent vector add.- Parameters:
dm
- degree matrix.e
- exponent vector.- Returns:
- degree matrix + e.
-
degreeMatrixOfCoefficients
public static <C extends RingElem<C>> 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>> List<GenPolynomial<BigInteger>> degreeMatrix(Collection<GenPolynomial<C>> L) Degree matrix.- Parameters:
L
- list of polynomial to be considered.- Returns:
- degree matrix.
-
degreeMatrixOfCoefficients
public static <C extends RingElem<C>> List<GenPolynomial<BigInteger>> degreeMatrixOfCoefficients(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
Optimal permutation for the Degree matrix.- Parameters:
D
- degree matrix.- Returns:
- optimal permutation for D.
-
inversePermutation
Inverse of a permutation.- Parameters:
P
- permutation.- Returns:
- S with S*P = id.
-
isIdentityPermutation
Test for identity permutation.- Parameters:
P
- permutation.- Returns:
- true , if P = id, else false.
-
multiplyPermutation
Multiplication permutations.- Parameters:
P
- permutation.S
- permutation.- Returns:
- P*S.
-
listPermutation
Permutation of a list.- Parameters:
P
- permutation.L
- list.- Returns:
- P(L).
-
arrayPermutation
Permutation of an array. Compiles, but does not work, requires JDK 1.6 to work.- Parameters:
P
- permutation.a
- array.- Returns:
- P(a).
-
permutation
public static <C extends RingElem<C>> GenPolynomial<C> permutation(List<Integer> P, GenPolynomialRing<C> R, GenPolynomial<C> A) Permutation of polynomial exponent vectors.- Parameters:
P
- permutation.R
- polynomial ring.A
- polynomial.- Returns:
- P(A).
-
permutation
public static <C extends RingElem<C>> List<GenPolynomial<C>> permutation(List<Integer> P, GenPolynomialRing<C> R, List<GenPolynomial<C>> L) Permutation of polynomial exponent vectors.- Parameters:
P
- permutation.R
- polynomial ring.L
- list of polynomials.- Returns:
- P(L).
-
permutation
public static <C extends RingElem<C>> List<GenSolvablePolynomial<C>> permutation(List<Integer> P, GenSolvablePolynomialRing<C> R, List<GenSolvablePolynomial<C>> L) Permutation of solvable polynomial exponent vectors.- Parameters:
P
- permutation, must be compatible with the commutator relations.R
- solvable polynomial ring.L
- list of solvable polynomials.- Returns:
- P(L).
-
permutationOnCoefficients
public static <C extends RingElem<C>> GenPolynomial<GenPolynomial<C>> permutationOnCoefficients(List<Integer> P, GenPolynomialRing<GenPolynomial<C>> R, GenPolynomial<GenPolynomial<C>> A) Permutation of polynomial exponent vectors of coefficient polynomials.- Parameters:
P
- permutation.R
- polynomial ring.A
- polynomial.- Returns:
- P(A).
-
permutationOnCoefficients
public static <C extends RingElem<C>> List<GenPolynomial<GenPolynomial<C>>> permutationOnCoefficients(List<Integer> P, GenPolynomialRing<GenPolynomial<C>> R, List<GenPolynomial<GenPolynomial<C>>> L) Permutation of polynomial exponent vectors of coefficients.- Parameters:
P
- permutation.R
- polynomial ring.L
- list of polynomials.- Returns:
- P(L).
-
permutation
public static <C extends RingElem<C>> GenPolynomialRing<C> permutation(List<Integer> P, GenPolynomialRing<C> R) Permutation of polynomial ring variables.- Parameters:
P
- permutation.R
- polynomial ring.- Returns:
- P(R).
-
optimizeTermOrder
public static <C extends RingElem<C>> OptimizedPolynomialList<C> optimizeTermOrder(GenPolynomialRing<C> R, List<GenPolynomial<C>> L) Optimize variable order.- Parameters:
R
- polynomial ring.L
- list of polynomials.- Returns:
- optimized polynomial list.
-
optimizeTermOrder
public static <C extends RingElem<C>> OptimizedPolynomialList<C> optimizeTermOrder(PolynomialList<C> P) Optimize variable order.- Parameters:
P
- polynomial list.- Returns:
- optimized polynomial list.
-
optimizeTermOrderOnCoefficients
public static <C extends RingElem<C>> OptimizedPolynomialList<GenPolynomial<C>> optimizeTermOrderOnCoefficients(PolynomialList<GenPolynomial<C>> P) Optimize variable order on coefficients.- Parameters:
P
- polynomial list.- Returns:
- optimized polynomial list.
-
optimizeTermOrderOnCoefficients
public static <C extends RingElem<C>> OptimizedPolynomialList<GenPolynomial<C>> optimizeTermOrderOnCoefficients(GenPolynomialRing<GenPolynomial<C>> ring, List<GenPolynomial<GenPolynomial<C>>> L) Optimize variable order on coefficients.- Parameters:
ring
- polynomial ring.L
- list of polynomials.- Returns:
- optimized polynomial list.
-
optimizeTermOrder
Optimize variable order.- Parameters:
P
- module list.- Returns:
- optimized module list.
-
optimizeTermOrderModule
public static <C extends RingElem<C>> OptimizedModuleList<C> optimizeTermOrderModule(GenPolynomialRing<C> R, List<List<GenPolynomial<C>>> L) Optimize variable order.- Parameters:
R
- polynomial ring.L
- list of lists of polynomials.- Returns:
- optimized module list.
-
optimizeTermOrderOnCoefficients
public static <C extends RingElem<C>> OptimizedModuleList<GenPolynomial<C>> optimizeTermOrderOnCoefficients(ModuleList<GenPolynomial<C>> P) Optimize variable order on coefficients.- Parameters:
P
- module list.- Returns:
- optimized module list.
-