edu.jas.gbufd
Class GroebnerBasePartial<C extends GcdRingElem<C>>

java.lang.Object
  extended by edu.jas.gb.GroebnerBaseAbstract<C>
      extended by edu.jas.gbufd.GroebnerBasePartial<C>
Type Parameters:
C - coefficient type
All Implemented Interfaces:
GroebnerBase<C>, java.io.Serializable

public class GroebnerBasePartial<C extends GcdRingElem<C>>
extends GroebnerBaseAbstract<C>

Partial Groebner Bases for subsets of variables. Let pvars be a subset of variables vars of the polynomial ring K[vars]. Methods compute Groebner bases with coefficients from K[vars \ pvars] in the polynomial ring K[vars \ pvars][pvars].

Author:
Heinz Kredel
See Also:
Serialized Form

Field Summary
protected  GroebnerBaseAbstract<C> bb
          Backing Groebner base engine.
protected  GroebnerBaseAbstract<GenPolynomial<C>> rbb
          Backing recursive Groebner base engine.
 
Fields inherited from class edu.jas.gb.GroebnerBaseAbstract
blas, red, strategy
 
Constructor Summary
GroebnerBasePartial()
          Constructor.
GroebnerBasePartial(GroebnerBaseAbstract<C> bb, GroebnerBaseAbstract<GenPolynomial<C>> rbb)
          Constructor.
GroebnerBasePartial(RingFactory<GenPolynomial<C>> rf)
          Constructor.
 
Method Summary
 OptimizedPolynomialList<C> elimPartialGB(java.util.List<GenPolynomial<C>> F, java.lang.String[] evars, java.lang.String[] pvars)
          Partial Groebner base for specific variables.
 java.util.List<GenPolynomial<C>> GB(int modv, java.util.List<GenPolynomial<C>> F)
          Groebner base using pairlist class.
static java.util.List<java.lang.Integer> getPermutation(java.lang.String[] aname, java.lang.String[] ename)
          Permutation of variables for elimination.
static int indexOf(java.lang.String s, java.lang.String[] A)
          Index of s in A.
 boolean isGBrec(int modv, java.util.List<GenPolynomial<GenPolynomial<C>>> F)
          Groebner base test.
 boolean isGBrec(java.util.List<GenPolynomial<GenPolynomial<C>>> F)
          Groebner base test.
 OptimizedPolynomialList<C> partialGB(java.util.List<GenPolynomial<C>> F, java.lang.String[] pvars)
          Partial Groebner base for specific variables.
 OptimizedPolynomialList<GenPolynomial<C>> partialGBrec(java.util.List<GenPolynomial<C>> F, java.lang.String[] pvars)
          Partial recursive Groebner base for specific variables.
static java.util.List<java.lang.Integer> partialPermutation(java.lang.String[] vars, java.lang.String[] pvars)
          Partial permuation for specific variables.
static java.util.List<java.lang.Integer> partialPermutation(java.lang.String[] vars, java.lang.String[] pvars, java.lang.String[] rvars)
          Partial permuation for specific variables.
static java.util.List<java.lang.Integer> partialPermutation(java.lang.String[] vars, java.lang.String[] evars, java.lang.String[] pvars, java.lang.String[] rvars)
          Partial permuation for specific variables.
static java.lang.String[] remainingVars(java.lang.String[] vars, java.lang.String[] pvars)
          Remaining variables vars \ pvars.
 
Methods inherited from class edu.jas.gb.GroebnerBaseAbstract
cancel, commonZeroTest, extGB, extGB, GB, isGB, isGB, isReductionMatrix, isReductionMatrix, minimalExtendedGB, minimalGB, normalizeMatrix, terminate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

bb

protected GroebnerBaseAbstract<C extends GcdRingElem<C>> bb
Backing Groebner base engine.


rbb

protected GroebnerBaseAbstract<GenPolynomial<C extends GcdRingElem<C>>> rbb
Backing recursive Groebner base engine.

Constructor Detail

GroebnerBasePartial

public GroebnerBasePartial()
Constructor.


GroebnerBasePartial

public GroebnerBasePartial(RingFactory<GenPolynomial<C>> rf)
Constructor.

Parameters:
rf - coefficient ring factory.

GroebnerBasePartial

public GroebnerBasePartial(GroebnerBaseAbstract<C> bb,
                           GroebnerBaseAbstract<GenPolynomial<C>> rbb)
Constructor.

Parameters:
bb - Groebner base engine
rbb - recursive Groebner base engine
Method Detail

GB

public java.util.List<GenPolynomial<C>> GB(int modv,
                                           java.util.List<GenPolynomial<C>> F)
Groebner base using pairlist class.

Parameters:
modv - module variable number.
F - polynomial list.
Returns:
GB(F) a Groebner base of F.

isGBrec

public boolean isGBrec(java.util.List<GenPolynomial<GenPolynomial<C>>> F)
Groebner base test.

Parameters:
F - polynomial list.
Returns:
true, if F is a partial Groebner base, else false.

isGBrec

public boolean isGBrec(int modv,
                       java.util.List<GenPolynomial<GenPolynomial<C>>> F)
Groebner base test.

Parameters:
modv - module variable number.
F - polynomial list.
Returns:
true, if F is a partial Groebner base, else false.

partialPermutation

public static java.util.List<java.lang.Integer> partialPermutation(java.lang.String[] vars,
                                                                   java.lang.String[] pvars)
Partial permuation for specific variables. Computes a permutation perm for the variables vars, such that perm(vars) == pvars ... (vars \ pvars). Uses internal (reversed) variable sorting.

Parameters:
vars - names for all variables.
pvars - names for main variables, pvars subseteq vars.
Returns:
permutation for vars, such that perm(vars) == pvars ... (vars \ pvars).

getPermutation

public static java.util.List<java.lang.Integer> getPermutation(java.lang.String[] aname,
                                                               java.lang.String[] ename)
Permutation of variables for elimination.

Parameters:
aname - variables for the full polynomial ring.
ename - variables for the elimination ring, subseteq aname.
Returns:
perm({vars \ ename},ename)

indexOf

public static int indexOf(java.lang.String s,
                          java.lang.String[] A)
Index of s in A.

Parameters:
s - search string
A - string array
Returns:
i if s == A[i] for some i, else -1.

partialPermutation

public static java.util.List<java.lang.Integer> partialPermutation(java.lang.String[] vars,
                                                                   java.lang.String[] pvars,
                                                                   java.lang.String[] rvars)
Partial permuation for specific variables. Computes a permutation perm for the variables vars, such that perm(vars) == pvars ... (vars \ pvars). Uses internal (reversed) variable sorting.

Parameters:
vars - names for all variables.
pvars - names for main variables, pvars subseteq vars.
rvars - names for remaining variables, rvars eq { vars \ pvars }.
Returns:
permutation for vars, such that perm(vars) == (pvars, {vars \ pvars}).

partialPermutation

public static java.util.List<java.lang.Integer> partialPermutation(java.lang.String[] vars,
                                                                   java.lang.String[] evars,
                                                                   java.lang.String[] pvars,
                                                                   java.lang.String[] rvars)
Partial permuation for specific variables. Computes a permutation perm for the variables vars, such that perm(vars) == (evars, pvars, (vars \ { evars, pvars }). Uses internal (reversed) variable sorting.

Parameters:
vars - names for all variables.
evars - names for elimination variables, evars subseteq vars.
pvars - names for main variables, pvars subseteq vars.
rvars - names for remaining variables, rvars eq {vars \ { evars, pvars } }.
Returns:
permutation for vars, such that perm(vars) == (evars,pvars, {vars \ {evars,pvars}}.

remainingVars

public static java.lang.String[] remainingVars(java.lang.String[] vars,
                                               java.lang.String[] pvars)
Remaining variables vars \ pvars. Uses internal (reversed) variable sorting, original order is preserved.

Parameters:
vars - names for all variables.
pvars - names for main variables, pvars subseteq vars.
Returns:
remaining vars = (vars \ pvars).

partialGBrec

public OptimizedPolynomialList<GenPolynomial<C>> partialGBrec(java.util.List<GenPolynomial<C>> F,
                                                              java.lang.String[] pvars)
Partial recursive Groebner base for specific variables. Computes Groebner base in K[vars \ pvars][pvars] with coefficients from K[vars \ pvars].

Parameters:
F - polynomial list.
pvars - names for main variables of partial Groebner base computation.
Returns:
a container for a partial Groebner base of F wrt pvars.

partialGB

public OptimizedPolynomialList<C> partialGB(java.util.List<GenPolynomial<C>> F,
                                            java.lang.String[] pvars)
Partial Groebner base for specific variables. Computes Groebner base in K[vars \ pvars][pvars] with coefficients from K[vars \ pvars] but returns polynomials in K[vars \ pvars, pvars].

Parameters:
F - polynomial list.
pvars - names for main variables of partial Groebner base computation.
Returns:
a container for a partial Groebner base of F wrt pvars.

elimPartialGB

public OptimizedPolynomialList<C> elimPartialGB(java.util.List<GenPolynomial<C>> F,
                                                java.lang.String[] evars,
                                                java.lang.String[] pvars)
Partial Groebner base for specific variables. Computes Groebner base with coefficients from K[pvars] but returns polynomials in K[pvars, evars].

Parameters:
F - polynomial list.
evars - names for upper main variables of partial Groebner base computation.
pvars - names for lower main variables of partial Groebner base computation.
Returns:
a container for a partial Groebner base of F wrt (pvars,evars).