edu.jas.poly
Class TermOrderOptimization

java.lang.Object
  extended by edu.jas.poly.TermOrderOptimization

public class TermOrderOptimization
extends java.lang.Object

Term order optimization. See mas10/maspoly/DIPTOO.m{di}.

Author:
Heinz Kredel

Constructor Summary
TermOrderOptimization()
           
 
Method Summary
static
<T> T[]
arrayPermutation(java.util.List<java.lang.Integer> P, T[] a)
          Permutation of an array.
static
<C extends RingElem<C>>
java.util.List<GenPolynomial<BigInteger>>
degreeMatrix(java.util.Collection<GenPolynomial<C>> L)
          Degree matrix.
static
<C extends RingElem<C>>
java.util.List<GenPolynomial<BigInteger>>
degreeMatrix(GenPolynomial<C> A)
          Degree matrix.
static
<C extends RingElem<C>>
java.util.List<GenPolynomial<BigInteger>>
degreeMatrixOfCoefficients(java.util.Collection<GenPolynomial<GenPolynomial<C>>> L)
          Degree matrix of coefficient polynomials.
static
<C extends RingElem<C>>
java.util.List<GenPolynomial<BigInteger>>
degreeMatrixOfCoefficients(GenPolynomial<GenPolynomial<C>> A)
          Degree matrix of coefficient polynomials.
static java.util.List<GenPolynomial<BigInteger>> expVectorAdd(java.util.List<GenPolynomial<BigInteger>> dm, ExpVector e)
          Degree matrix exponent vector add.
static
<T> java.util.List<T>
listPermutation(java.util.List<java.lang.Integer> P, java.util.List<T> L)
          Permutation of a list.
static long[] longArrayPermutation(java.util.List<java.lang.Integer> P, long[] a)
          Permutation of a long array.
static java.util.List<java.lang.Integer> optimalPermutation(java.util.List<GenPolynomial<BigInteger>> D)
          Optimal permutation for the Degree matrix.
static
<C extends RingElem<C>>
OptimizedPolynomialList<C>
optimizeTermOrder(GenPolynomialRing<C> R, java.util.List<GenPolynomial<C>> L)
          Optimize variable order.
static
<C extends RingElem<C>>
OptimizedPolynomialList<C>
optimizeTermOrder(PolynomialList<C> P)
          Optimize variable order.
static
<C extends RingElem<C>>
OptimizedPolynomialList<GenPolynomial<C>>
optimizeTermOrderOnCoefficients(PolynomialList<GenPolynomial<C>> P)
          Optimize variable order on coefficients.
static ExpVector permutation(java.util.List<java.lang.Integer> P, ExpVector e)
          Permutation of an exponent vector.
static
<C extends RingElem<C>>
GenPolynomialRing<C>
permutation(java.util.List<java.lang.Integer> P, GenPolynomialRing<C> R)
          Permutation of polynomial ring variables.
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.
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.
static
<C extends RingElem<C>>
GenPolynomial<GenPolynomial<C>>
permutationOnCoefficients(java.util.List<java.lang.Integer> P, GenPolynomialRing<GenPolynomial<C>> R, GenPolynomial<GenPolynomial<C>> A)
          Permutation of polynomial exponent vectors of coefficient polynomials.
static
<C extends RingElem<C>>
java.util.List<GenPolynomial<GenPolynomial<C>>>
permutationOnCoefficients(java.util.List<java.lang.Integer> P, GenPolynomialRing<GenPolynomial<C>> R, java.util.List<GenPolynomial<GenPolynomial<C>>> L)
          Permutation of polynomial exponent vectors of coefficients.
static java.lang.String[] stringArrayPermutation(java.util.List<java.lang.Integer> P, java.lang.String[] a)
          Permutation of an array.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TermOrderOptimization

public TermOrderOptimization()
Method Detail

degreeMatrix

public static <C extends RingElem<C>> java.util.List<GenPolynomial<BigInteger>> degreeMatrix(GenPolynomial<C> A)
Degree matrix.

Parameters:
A - polynomial to be considered.
Returns:
degree matrix.

expVectorAdd

public static java.util.List<GenPolynomial<BigInteger>> expVectorAdd(java.util.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>> 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 coeficients.

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 coeficients.

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.

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).

stringArrayPermutation

public static java.lang.String[] stringArrayPermutation(java.util.List<java.lang.Integer> P,
                                                        java.lang.String[] a)
Permutation of an array.

Parameters:
a - array.
P - permutation.
Returns:
P(a).

longArrayPermutation

public static long[] longArrayPermutation(java.util.List<java.lang.Integer> P,
                                          long[] a)
Permutation of a long array.

Parameters:
a - array of long.
P - permutation.
Returns:
P(a).

permutation

public static ExpVector permutation(java.util.List<java.lang.Integer> P,
                                    ExpVector e)
Permutation of an exponent vector.

Parameters:
e - exponent vector.
P - permutation.
Returns:
P(e).

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).

permutationOnCoefficients

public static <C extends RingElem<C>> GenPolynomial<GenPolynomial<C>> permutationOnCoefficients(java.util.List<java.lang.Integer> P,
                                                                                                GenPolynomialRing<GenPolynomial<C>> R,
                                                                                                GenPolynomial<GenPolynomial<C>> A)
Permutation of polynomial exponent vectors of coefficient polynomials.

Parameters:
A - polynomial.
R - polynomial ring.
P - permutation.
Returns:
P(A).

permutationOnCoefficients

public static <C extends RingElem<C>> java.util.List<GenPolynomial<GenPolynomial<C>>> permutationOnCoefficients(java.util.List<java.lang.Integer> P,
                                                                                                                GenPolynomialRing<GenPolynomial<C>> R,
                                                                                                                java.util.List<GenPolynomial<GenPolynomial<C>>> L)
Permutation of polynomial exponent vectors of coefficients.

Parameters:
L - list of polynomials.
R - polynomial ring.
P - permutation.
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>> OptimizedPolynomialList<C> optimizeTermOrder(GenPolynomialRing<C> R,
                                                                                   java.util.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.